TriggerAgentWebhook
curl --request POST \
--url https://app.textql.com/v1/agents/webhook/trigger \
--header 'Authorization: Bearer <token>' \
--header 'Connect-Protocol-Version: <connect-protocol-version>' \
--header 'Content-Type: application/json' \
--data '
{
"triggerId": "00000000-0000-0000-0000-000000000000",
"payload": {
"event": "example.event",
"source": "manual-test"
}
}
'import requests
url = "https://app.textql.com/v1/agents/webhook/trigger"
payload = {
"triggerId": "00000000-0000-0000-0000-000000000000",
"payload": {
"event": "example.event",
"source": "manual-test"
}
}
headers = {
"Connect-Protocol-Version": "<connect-protocol-version>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Connect-Protocol-Version': '<connect-protocol-version>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
triggerId: '00000000-0000-0000-0000-000000000000',
payload: {event: 'example.event', source: 'manual-test'}
})
};
fetch('https://app.textql.com/v1/agents/webhook/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://app.textql.com/v1/agents/webhook/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([
'triggerId' => '00000000-0000-0000-0000-000000000000',
'payload' => [
'event' => 'example.event',
'source' => 'manual-test'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Connect-Protocol-Version: <connect-protocol-version>",
"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://app.textql.com/v1/agents/webhook/trigger"
payload := strings.NewReader("{\n \"triggerId\": \"00000000-0000-0000-0000-000000000000\",\n \"payload\": {\n \"event\": \"example.event\",\n \"source\": \"manual-test\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Connect-Protocol-Version", "<connect-protocol-version>")
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://app.textql.com/v1/agents/webhook/trigger")
.header("Connect-Protocol-Version", "<connect-protocol-version>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"triggerId\": \"00000000-0000-0000-0000-000000000000\",\n \"payload\": {\n \"event\": \"example.event\",\n \"source\": \"manual-test\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.textql.com/v1/agents/webhook/trigger")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Connect-Protocol-Version"] = '<connect-protocol-version>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"triggerId\": \"00000000-0000-0000-0000-000000000000\",\n \"payload\": {\n \"event\": \"example.event\",\n \"source\": \"manual-test\"\n }\n}"
response = http.request(request)
puts response.read_body{
"status": "<string>"
}{
"message": "<string>",
"details": [
{
"type": "<string>",
"value": "<string>",
"debug": {}
}
]
}Agents
Trigger Agent Webhook
Trigger an agent run with a JSON webhook payload
POST
/
v1
/
agents
/
webhook
/
trigger
TriggerAgentWebhook
curl --request POST \
--url https://app.textql.com/v1/agents/webhook/trigger \
--header 'Authorization: Bearer <token>' \
--header 'Connect-Protocol-Version: <connect-protocol-version>' \
--header 'Content-Type: application/json' \
--data '
{
"triggerId": "00000000-0000-0000-0000-000000000000",
"payload": {
"event": "example.event",
"source": "manual-test"
}
}
'import requests
url = "https://app.textql.com/v1/agents/webhook/trigger"
payload = {
"triggerId": "00000000-0000-0000-0000-000000000000",
"payload": {
"event": "example.event",
"source": "manual-test"
}
}
headers = {
"Connect-Protocol-Version": "<connect-protocol-version>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Connect-Protocol-Version': '<connect-protocol-version>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
triggerId: '00000000-0000-0000-0000-000000000000',
payload: {event: 'example.event', source: 'manual-test'}
})
};
fetch('https://app.textql.com/v1/agents/webhook/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://app.textql.com/v1/agents/webhook/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([
'triggerId' => '00000000-0000-0000-0000-000000000000',
'payload' => [
'event' => 'example.event',
'source' => 'manual-test'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Connect-Protocol-Version: <connect-protocol-version>",
"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://app.textql.com/v1/agents/webhook/trigger"
payload := strings.NewReader("{\n \"triggerId\": \"00000000-0000-0000-0000-000000000000\",\n \"payload\": {\n \"event\": \"example.event\",\n \"source\": \"manual-test\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Connect-Protocol-Version", "<connect-protocol-version>")
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://app.textql.com/v1/agents/webhook/trigger")
.header("Connect-Protocol-Version", "<connect-protocol-version>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"triggerId\": \"00000000-0000-0000-0000-000000000000\",\n \"payload\": {\n \"event\": \"example.event\",\n \"source\": \"manual-test\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.textql.com/v1/agents/webhook/trigger")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Connect-Protocol-Version"] = '<connect-protocol-version>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"triggerId\": \"00000000-0000-0000-0000-000000000000\",\n \"payload\": {\n \"event\": \"example.event\",\n \"source\": \"manual-test\"\n }\n}"
response = http.request(request)
puts response.read_body{
"status": "<string>"
}{
"message": "<string>",
"details": [
{
"type": "<string>",
"value": "<string>",
"debug": {}
}
]
}Use this endpoint to start an agent run from an external system. The webhook payload is added as context for the agent run.
You can find an agent’s webhook trigger ID from the agent edit page in TextQL.
Webhook payloads are limited to 16KB after JSON serialization. Requests with larger payloads are rejected before the agent run is queued.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Define the version of the Connect protocol
Available options:
1 Define the timeout, in ms
Body
application/json
Response
Success
Queue status for the agent run.
Example:
"queued"
⌘I