Bulk create pipeline fields
Creates opportunity custom field definitions for a pipeline in bulk.
POST
/
v1
/
pipelines
/
{pipeline_id}
/
fields
/
bulk
Bulk create pipeline fields
curl --request POST \
--url https://api.octolane.com/v1/pipelines/{pipeline_id}/fields/bulk \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
[
{
"name": "Customer Tier",
"property_name": "customer_tier",
"metadata": {},
"order": 2,
"is_hidden": true
}
]
'import requests
url = "https://api.octolane.com/v1/pipelines/{pipeline_id}/fields/bulk"
payload = [
{
"name": "Customer Tier",
"property_name": "customer_tier",
"metadata": {},
"order": 2,
"is_hidden": True
}
]
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify([
{
name: 'Customer Tier',
property_name: 'customer_tier',
metadata: {},
order: 2,
is_hidden: true
}
])
};
fetch('https://api.octolane.com/v1/pipelines/{pipeline_id}/fields/bulk', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.octolane.com/v1/pipelines/{pipeline_id}/fields/bulk",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
[
'name' => 'Customer Tier',
'property_name' => 'customer_tier',
'metadata' => [
],
'order' => 2,
'is_hidden' => true
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.octolane.com/v1/pipelines/{pipeline_id}/fields/bulk"
payload := strings.NewReader("[\n {\n \"name\": \"Customer Tier\",\n \"property_name\": \"customer_tier\",\n \"metadata\": {},\n \"order\": 2,\n \"is_hidden\": true\n }\n]")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.octolane.com/v1/pipelines/{pipeline_id}/fields/bulk")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("[\n {\n \"name\": \"Customer Tier\",\n \"property_name\": \"customer_tier\",\n \"metadata\": {},\n \"order\": 2,\n \"is_hidden\": true\n }\n]")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.octolane.com/v1/pipelines/{pipeline_id}/fields/bulk")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "[\n {\n \"name\": \"Customer Tier\",\n \"property_name\": \"customer_tier\",\n \"metadata\": {},\n \"order\": 2,\n \"is_hidden\": true\n }\n]"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "<string>",
"data": "<unknown>"
}{
"success": true,
"message": "<string>",
"data": "<unknown>"
}{
"success": false,
"message": "Validation failed",
"statusCode": 400
}{
"success": false,
"message": "Validation failed",
"statusCode": 400
}{
"success": false,
"message": "Validation failed",
"statusCode": 400
}Authorizations
Personal API key. Requests act as the workspace member who created the key, with that member's current access, and stop working when the key is disabled or its creator leaves the workspace.
Path Parameters
Pipeline ID.
Body
application/json
Array of field definitions to create. Maximum 100 items.
Required array length:
1 - 100 elementsExample:
"Customer Tier"
Available options:
string, number, checkbox, date, date_range, rating, timestamp, select, multi_select, currency, percentage, location, time, datetime, email, phone, website, url, radio, team_members Optional stable field key. If omitted, Octolane generates a unique property name.
Pattern:
^[a-z][a-z0-9_]*$Example:
"customer_tier"
Optional field metadata. For select fields, include select_options with label/value/color/order entries.
Required range:
x >= 1Was this page helpful?
⌘I
Bulk create pipeline fields
curl --request POST \
--url https://api.octolane.com/v1/pipelines/{pipeline_id}/fields/bulk \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
[
{
"name": "Customer Tier",
"property_name": "customer_tier",
"metadata": {},
"order": 2,
"is_hidden": true
}
]
'import requests
url = "https://api.octolane.com/v1/pipelines/{pipeline_id}/fields/bulk"
payload = [
{
"name": "Customer Tier",
"property_name": "customer_tier",
"metadata": {},
"order": 2,
"is_hidden": True
}
]
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify([
{
name: 'Customer Tier',
property_name: 'customer_tier',
metadata: {},
order: 2,
is_hidden: true
}
])
};
fetch('https://api.octolane.com/v1/pipelines/{pipeline_id}/fields/bulk', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.octolane.com/v1/pipelines/{pipeline_id}/fields/bulk",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
[
'name' => 'Customer Tier',
'property_name' => 'customer_tier',
'metadata' => [
],
'order' => 2,
'is_hidden' => true
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.octolane.com/v1/pipelines/{pipeline_id}/fields/bulk"
payload := strings.NewReader("[\n {\n \"name\": \"Customer Tier\",\n \"property_name\": \"customer_tier\",\n \"metadata\": {},\n \"order\": 2,\n \"is_hidden\": true\n }\n]")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.octolane.com/v1/pipelines/{pipeline_id}/fields/bulk")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("[\n {\n \"name\": \"Customer Tier\",\n \"property_name\": \"customer_tier\",\n \"metadata\": {},\n \"order\": 2,\n \"is_hidden\": true\n }\n]")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.octolane.com/v1/pipelines/{pipeline_id}/fields/bulk")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "[\n {\n \"name\": \"Customer Tier\",\n \"property_name\": \"customer_tier\",\n \"metadata\": {},\n \"order\": 2,\n \"is_hidden\": true\n }\n]"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "<string>",
"data": "<unknown>"
}{
"success": true,
"message": "<string>",
"data": "<unknown>"
}{
"success": false,
"message": "Validation failed",
"statusCode": 400
}{
"success": false,
"message": "Validation failed",
"statusCode": 400
}{
"success": false,
"message": "Validation failed",
"statusCode": 400
}