Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
curl --request GET \
--url https://app.supported.tech/api/user/automate/templates \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.supported.tech/api/user/automate/templates"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.supported.tech/api/user/automate/templates', 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.supported.tech/api/user/automate/templates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.supported.tech/api/user/automate/templates"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.supported.tech/api/user/automate/templates")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.supported.tech/api/user/automate/templates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"key": "post-call-qualified-to-sheets",
"name": "Save qualified leads to Google Sheets",
"description": "After each call, if the AI marked the caller as qualified, appends a row (phone, name, summary, status) to your Google Sheet.",
"use_when": "The user wants qualified calls or call outcomes collected in a spreadsheet automatically.",
"binding": "post_call",
"requires_assistant": true,
"required_connections": ["google-sheets"],
"side_effects": false,
"params": [
{
"key": "spreadsheet_id",
"label": "Google Spreadsheet ID",
"description": "The spreadsheet to append rows to.",
"required": true,
"example": "1AbCdEfGhIjKlMnOpQrStUvWxYz"
},
{
"key": "qualified_variable",
"label": "Qualified variable name",
"description": "The post-call variable checked for true before saving (the assistant must extract it).",
"required": false,
"default": "status",
"example": "qualified"
}
]
}
]
}
List the ready-made automation templates and the parameters each one needs
curl --request GET \
--url https://app.supported.tech/api/user/automate/templates \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.supported.tech/api/user/automate/templates"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.supported.tech/api/user/automate/templates', 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.supported.tech/api/user/automate/templates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.supported.tech/api/user/automate/templates"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.supported.tech/api/user/automate/templates")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.supported.tech/api/user/automate/templates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"key": "post-call-qualified-to-sheets",
"name": "Save qualified leads to Google Sheets",
"description": "After each call, if the AI marked the caller as qualified, appends a row (phone, name, summary, status) to your Google Sheet.",
"use_when": "The user wants qualified calls or call outcomes collected in a spreadsheet automatically.",
"binding": "post_call",
"requires_assistant": true,
"required_connections": ["google-sheets"],
"side_effects": false,
"params": [
{
"key": "spreadsheet_id",
"label": "Google Spreadsheet ID",
"description": "The spreadsheet to append rows to.",
"required": true,
"example": "1AbCdEfGhIjKlMnOpQrStUvWxYz"
},
{
"key": "qualified_variable",
"label": "Qualified variable name",
"description": "The post-call variable checked for true before saving (the assistant must extract it).",
"required": false,
"default": "status",
"example": "qualified"
}
]
}
]
}
| Key | What it does | Assistant | Sends for real | Connections | Params (* = required) |
|---|---|---|---|---|---|
post-call-qualified-to-sheets | Save qualified leads to Google Sheets after each call | yes | no | google-sheets | spreadsheet_id*, qualified_variable |
post-call-transcript-email | Email the call transcript after each call | yes | yes | gmail | recipient_email* |
post-call-hot-lead-alert | Hot lead email alert after each call | yes | yes | gmail | alert_email*, hot_variable |
post-call-sms-followup | SMS follow-up after each call | yes | yes | — | from_phone_id*, message* |
post-call-whatsapp-confirmation | WhatsApp confirmation after each call | yes | yes | — | sender_id*, whatsapp_template*, variable_1 |
post-call-crm-note-http | Log every call to your CRM / any API | yes | yes | — | endpoint_url*, auth_header, auth_value |
post-call-callback | Call the customer back at the time they asked for | yes | yes | — | callback_variable, time_variable, from_timezone |
inbound-caller-lookup-http | Recognize inbound callers via your API | yes | no | — | lookup_url*, api_key_header, api_key, phone_format |
conversation-ended-summary-email | Email a summary when a chat ends | yes | yes | gmail | recipient_email* |
lead-intake-webhook | New lead from any system, call them automatically | no | yes | — | campaign_id* |
midcall-http-lookup | Mid-call lookup in an external API | no | no | — | lookup_url*, auth_header_value |
sheet-rows-to-campaign | Call the leads added to a Google Sheet | no | yes | google-sheets | spreadsheet_id*, campaign_id*, phone_column, name_column, minutes |
sheet-rows-to-whatsapp-daily | Daily WhatsApp template to leads from a Google Sheet | no | yes | google-sheets | spreadsheet_id*, sender_id*, whatsapp_template*, phone_column, name_column, hour, timezone |
calcom-call-before-appointment | Call the customer before their Cal.com appointment | no | yes | cal-com | assistant_id*, hours_before, phone_expression |
calcom-cancel-reschedule-midcall | Cancel or reschedule Cal.com appointments during a call | no | yes | — | attendee_email* |
ghl-appointment-manage-midcall | Cancel or reschedule GoHighLevel appointments during a call | no | no | lead-connector | timezone |
Show template properties
post_call, inbound, conversation_ended), or null for templates that do not attach to an assistant eventassistant_id is required when applying itgoogle-sheets, gmail)confirm_side_effects: trueShow param properties
params when applyingassistant_timezone — the supplied assistant’s own timezone){
"data": [
{
"key": "post-call-qualified-to-sheets",
"name": "Save qualified leads to Google Sheets",
"description": "After each call, if the AI marked the caller as qualified, appends a row (phone, name, summary, status) to your Google Sheet.",
"use_when": "The user wants qualified calls or call outcomes collected in a spreadsheet automatically.",
"binding": "post_call",
"requires_assistant": true,
"required_connections": ["google-sheets"],
"side_effects": false,
"params": [
{
"key": "spreadsheet_id",
"label": "Google Spreadsheet ID",
"description": "The spreadsheet to append rows to.",
"required": true,
"example": "1AbCdEfGhIjKlMnOpQrStUvWxYz"
},
{
"key": "qualified_variable",
"label": "Qualified variable name",
"description": "The post-call variable checked for true before saving (the assistant must extract it).",
"required": false,
"default": "status",
"example": "qualified"
}
]
}
]
}
