List automation templates
curl --request GET \
--url https://app.autocalls.ai/api/user/automate/templates \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.autocalls.ai/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.autocalls.ai/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.autocalls.ai/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.autocalls.ai/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.autocalls.ai/api/user/automate/templates")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.autocalls.ai/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"
}
]
}
]
}
Automations
List automation templates
List the ready-made automation templates and the parameters each one needs
GET
/
user
/
automate
/
templates
List automation templates
curl --request GET \
--url https://app.autocalls.ai/api/user/automate/templates \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.autocalls.ai/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.autocalls.ai/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.autocalls.ai/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.autocalls.ai/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.autocalls.ai/api/user/automate/templates")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.autocalls.ai/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"
}
]
}
]
}
This endpoint lists the curated automation templates: ready-made automations you apply with Apply automation template by supplying a few parameters, instead of writing a definition from scratch. Each entry describes its parameters, the account connections it needs, whether it attaches to an assistant, and whether it sends real messages during its test run.
Required connections are one-time account links (Google Sheets, Gmail, Cal.com, …) made in the app on the Automate page, under Connections.
Available templates
| 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 |
Response
array
The template library
Show template properties
Show template properties
string
The template key — pass it in the URL of Apply automation template
string
The template’s name (also the default name of the automation it creates)
string
What the resulting automation does
string
When this template is the right choice
string | null
The assistant event the resulting automation attaches to (
post_call, inbound, conversation_ended), or null for templates that do not attach to an assistant eventboolean
Whether
assistant_id is required when applying itarray
Account connections that must exist before applying (e.g.
google-sheets, gmail)boolean
Whether the resulting automation really sends messages / starts calls — applying it requires
confirm_side_effects: truearray
The parameters the template needs
Show param properties
Show param properties
string
The parameter key to send in
params when applyingstring
Human-readable label
string
What the value is and where to find it
boolean
Whether the parameter must be supplied
string
The value used when the parameter is omitted (optional parameters only)
string
An example value — for illustration only, never apply a template with example values
string
Present on some optional parameters: how the value is filled automatically when omitted (e.g.
assistant_timezone — the supplied assistant’s own timezone)object
Present on some templates: the sample payload their test run uses
{
"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"
}
]
}
]
}
⌘I

