curl --request POST \
--url https://api.default.com/v1/triggers/{trigger} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"email": "jsmith@example.com",
"responses": {},
"context": {
"utmParams": {
"utm_source": "<string>",
"utm_medium": "<string>",
"utm_campaign": "<string>",
"utm_term": "<string>",
"utm_content": "<string>"
},
"gclid": "<string>",
"pageUrl": "<string>",
"referrer": "<string>",
"userAgent": "<string>",
"ipAddress": "<string>"
}
}
'import requests
url = "https://api.default.com/v1/triggers/{trigger}"
payload = {
"email": "jsmith@example.com",
"responses": {},
"context": {
"utmParams": {
"utm_source": "<string>",
"utm_medium": "<string>",
"utm_campaign": "<string>",
"utm_term": "<string>",
"utm_content": "<string>"
},
"gclid": "<string>",
"pageUrl": "<string>",
"referrer": "<string>",
"userAgent": "<string>",
"ipAddress": "<string>"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
email: 'jsmith@example.com',
responses: {},
context: {
utmParams: {
utm_source: '<string>',
utm_medium: '<string>',
utm_campaign: '<string>',
utm_term: '<string>',
utm_content: '<string>'
},
gclid: '<string>',
pageUrl: '<string>',
referrer: '<string>',
userAgent: '<string>',
ipAddress: '<string>'
}
})
};
fetch('https://api.default.com/v1/triggers/{trigger}', 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.default.com/v1/triggers/{trigger}",
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([
'email' => 'jsmith@example.com',
'responses' => [
],
'context' => [
'utmParams' => [
'utm_source' => '<string>',
'utm_medium' => '<string>',
'utm_campaign' => '<string>',
'utm_term' => '<string>',
'utm_content' => '<string>'
],
'gclid' => '<string>',
'pageUrl' => '<string>',
'referrer' => '<string>',
'userAgent' => '<string>',
'ipAddress' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.default.com/v1/triggers/{trigger}"
payload := strings.NewReader("{\n \"email\": \"jsmith@example.com\",\n \"responses\": {},\n \"context\": {\n \"utmParams\": {\n \"utm_source\": \"<string>\",\n \"utm_medium\": \"<string>\",\n \"utm_campaign\": \"<string>\",\n \"utm_term\": \"<string>\",\n \"utm_content\": \"<string>\"\n },\n \"gclid\": \"<string>\",\n \"pageUrl\": \"<string>\",\n \"referrer\": \"<string>\",\n \"userAgent\": \"<string>\",\n \"ipAddress\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.default.com/v1/triggers/{trigger}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"jsmith@example.com\",\n \"responses\": {},\n \"context\": {\n \"utmParams\": {\n \"utm_source\": \"<string>\",\n \"utm_medium\": \"<string>\",\n \"utm_campaign\": \"<string>\",\n \"utm_term\": \"<string>\",\n \"utm_content\": \"<string>\"\n },\n \"gclid\": \"<string>\",\n \"pageUrl\": \"<string>\",\n \"referrer\": \"<string>\",\n \"userAgent\": \"<string>\",\n \"ipAddress\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.default.com/v1/triggers/{trigger}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"jsmith@example.com\",\n \"responses\": {},\n \"context\": {\n \"utmParams\": {\n \"utm_source\": \"<string>\",\n \"utm_medium\": \"<string>\",\n \"utm_campaign\": \"<string>\",\n \"utm_term\": \"<string>\",\n \"utm_content\": \"<string>\"\n },\n \"gclid\": \"<string>\",\n \"pageUrl\": \"<string>\",\n \"referrer\": \"<string>\",\n \"userAgent\": \"<string>\",\n \"ipAddress\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"executionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"outcome": {
"type": "scheduler",
"schedulerUrl": "<string>",
"schedulingLinkId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}Fire a trigger
Runs the workflow connected to the API trigger with the submitted form responses. Always returns the executionId. The outcome is what the workflow exited with, discriminated on outcome.type. scheduler means a meeting should be booked. Pass outcome.schedulingLinkId as the event to POST /v1/scheduling/events/{event}/slots and executionId as workflowExecutionId when booking. redirect carries a URL the workflow chose to send the lead to. none means the workflow finished, or is still running in the background, without offering either. That is a valid outcome, not an error.
Requires the triggers:write scope.
curl --request POST \
--url https://api.default.com/v1/triggers/{trigger} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"email": "jsmith@example.com",
"responses": {},
"context": {
"utmParams": {
"utm_source": "<string>",
"utm_medium": "<string>",
"utm_campaign": "<string>",
"utm_term": "<string>",
"utm_content": "<string>"
},
"gclid": "<string>",
"pageUrl": "<string>",
"referrer": "<string>",
"userAgent": "<string>",
"ipAddress": "<string>"
}
}
'import requests
url = "https://api.default.com/v1/triggers/{trigger}"
payload = {
"email": "jsmith@example.com",
"responses": {},
"context": {
"utmParams": {
"utm_source": "<string>",
"utm_medium": "<string>",
"utm_campaign": "<string>",
"utm_term": "<string>",
"utm_content": "<string>"
},
"gclid": "<string>",
"pageUrl": "<string>",
"referrer": "<string>",
"userAgent": "<string>",
"ipAddress": "<string>"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
email: 'jsmith@example.com',
responses: {},
context: {
utmParams: {
utm_source: '<string>',
utm_medium: '<string>',
utm_campaign: '<string>',
utm_term: '<string>',
utm_content: '<string>'
},
gclid: '<string>',
pageUrl: '<string>',
referrer: '<string>',
userAgent: '<string>',
ipAddress: '<string>'
}
})
};
fetch('https://api.default.com/v1/triggers/{trigger}', 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.default.com/v1/triggers/{trigger}",
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([
'email' => 'jsmith@example.com',
'responses' => [
],
'context' => [
'utmParams' => [
'utm_source' => '<string>',
'utm_medium' => '<string>',
'utm_campaign' => '<string>',
'utm_term' => '<string>',
'utm_content' => '<string>'
],
'gclid' => '<string>',
'pageUrl' => '<string>',
'referrer' => '<string>',
'userAgent' => '<string>',
'ipAddress' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.default.com/v1/triggers/{trigger}"
payload := strings.NewReader("{\n \"email\": \"jsmith@example.com\",\n \"responses\": {},\n \"context\": {\n \"utmParams\": {\n \"utm_source\": \"<string>\",\n \"utm_medium\": \"<string>\",\n \"utm_campaign\": \"<string>\",\n \"utm_term\": \"<string>\",\n \"utm_content\": \"<string>\"\n },\n \"gclid\": \"<string>\",\n \"pageUrl\": \"<string>\",\n \"referrer\": \"<string>\",\n \"userAgent\": \"<string>\",\n \"ipAddress\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.default.com/v1/triggers/{trigger}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"jsmith@example.com\",\n \"responses\": {},\n \"context\": {\n \"utmParams\": {\n \"utm_source\": \"<string>\",\n \"utm_medium\": \"<string>\",\n \"utm_campaign\": \"<string>\",\n \"utm_term\": \"<string>\",\n \"utm_content\": \"<string>\"\n },\n \"gclid\": \"<string>\",\n \"pageUrl\": \"<string>\",\n \"referrer\": \"<string>\",\n \"userAgent\": \"<string>\",\n \"ipAddress\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.default.com/v1/triggers/{trigger}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"jsmith@example.com\",\n \"responses\": {},\n \"context\": {\n \"utmParams\": {\n \"utm_source\": \"<string>\",\n \"utm_medium\": \"<string>\",\n \"utm_campaign\": \"<string>\",\n \"utm_term\": \"<string>\",\n \"utm_content\": \"<string>\"\n },\n \"gclid\": \"<string>\",\n \"pageUrl\": \"<string>\",\n \"referrer\": \"<string>\",\n \"userAgent\": \"<string>\",\n \"ipAddress\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"executionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"outcome": {
"type": "scheduler",
"schedulerUrl": "<string>",
"schedulingLinkId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}Authorizations
Organization API key, created in workspace settings (Settings → API Keys). Sent as Authorization: Bearer <key>. Shown once at creation; revocable and permission-scoped per key.
Path Parameters
Trigger id from the list endpoint.
Body
The lead being routed. Identity always comes from this field, never from responses. The connected form's email field is filled from it automatically.
Form field values, keyed by field name from the list endpoint.
Show child attributes
Show child attributes
Web context you know about the lead. All fields optional. It becomes form submission data the workflow can reference and records as attribution on a booked meeting.
Show child attributes
Show child attributes
Was this page helpful?