Update template
curl --request PUT \
--url https://api.helloannie.com/v1/templates/{templateId} \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"description": "<string>",
"variables": [
{
"name": "<string>",
"description": "<string>"
}
],
"applicableMediums": [
"PHONE",
"SMS"
]
}
'import requests
url = "https://api.helloannie.com/v1/templates/{templateId}"
payload = {
"name": "<string>",
"description": "<string>",
"variables": [
{
"name": "<string>",
"description": "<string>"
}
],
"applicableMediums": ["PHONE", "SMS"]
}
headers = {"Content-Type": "application/json"}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
description: '<string>',
variables: [{name: '<string>', description: '<string>'}],
applicableMediums: ['PHONE', 'SMS']
})
};
fetch('https://api.helloannie.com/v1/templates/{templateId}', 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.helloannie.com/v1/templates/{templateId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'description' => '<string>',
'variables' => [
[
'name' => '<string>',
'description' => '<string>'
]
],
'applicableMediums' => [
'PHONE',
'SMS'
]
]),
CURLOPT_HTTPHEADER => [
"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.helloannie.com/v1/templates/{templateId}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"variables\": [\n {\n \"name\": \"<string>\",\n \"description\": \"<string>\"\n }\n ],\n \"applicableMediums\": [\n \"PHONE\",\n \"SMS\"\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
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.put("https://api.helloannie.com/v1/templates/{templateId}")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"variables\": [\n {\n \"name\": \"<string>\",\n \"description\": \"<string>\"\n }\n ],\n \"applicableMediums\": [\n \"PHONE\",\n \"SMS\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.helloannie.com/v1/templates/{templateId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"variables\": [\n {\n \"name\": \"<string>\",\n \"description\": \"<string>\"\n }\n ],\n \"applicableMediums\": [\n \"PHONE\",\n \"SMS\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"description": "<string>",
"version": 123,
"createdAt": "<string>",
"variables": [
{
"name": "<string>",
"type": "STRING",
"description": "<string>"
}
],
"workflow": {
"title": "<string>",
"description": "<string>",
"steps": [
{
"title": "<string>",
"description": "<string>",
"instructions": "<string>",
"order": 1,
"examples": [
"<string>"
],
"action": "<string>",
"actionMetadata": {
"templateName": "Appointment Confirmation",
"templateBody": "Your appointment is scheduled for tomorrow at 3 PM."
},
"childSteps": [
{
"title": "<string>",
"description": "<string>",
"instructions": "<string>",
"order": 1,
"examples": [
"<string>"
],
"action": "<string>",
"actionMetadata": {
"templateName": "Appointment Confirmation",
"templateBody": "Your appointment is scheduled for tomorrow at 3 PM."
}
}
]
}
],
"enabled": true,
"usageContext": "<string>",
"order": 0
},
"applicableMediums": [
"PHONE",
"SMS"
],
"officeHoursAvailability": "OPEN"
}
}{
"success": false,
"data": {},
"message": "<string>"
}{
"success": false,
"data": {},
"message": "<string>"
}{
"success": false,
"data": {},
"message": "<string>"
}{
"success": false,
"data": {},
"message": "<string>"
}Templates
Update template
Update an existing workflow template. All fields are optional. When the workflow definition changes, the template version is incremented.
PUT
/
templates
/
{templateId}
Update template
curl --request PUT \
--url https://api.helloannie.com/v1/templates/{templateId} \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"description": "<string>",
"variables": [
{
"name": "<string>",
"description": "<string>"
}
],
"applicableMediums": [
"PHONE",
"SMS"
]
}
'import requests
url = "https://api.helloannie.com/v1/templates/{templateId}"
payload = {
"name": "<string>",
"description": "<string>",
"variables": [
{
"name": "<string>",
"description": "<string>"
}
],
"applicableMediums": ["PHONE", "SMS"]
}
headers = {"Content-Type": "application/json"}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
description: '<string>',
variables: [{name: '<string>', description: '<string>'}],
applicableMediums: ['PHONE', 'SMS']
})
};
fetch('https://api.helloannie.com/v1/templates/{templateId}', 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.helloannie.com/v1/templates/{templateId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'description' => '<string>',
'variables' => [
[
'name' => '<string>',
'description' => '<string>'
]
],
'applicableMediums' => [
'PHONE',
'SMS'
]
]),
CURLOPT_HTTPHEADER => [
"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.helloannie.com/v1/templates/{templateId}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"variables\": [\n {\n \"name\": \"<string>\",\n \"description\": \"<string>\"\n }\n ],\n \"applicableMediums\": [\n \"PHONE\",\n \"SMS\"\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
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.put("https://api.helloannie.com/v1/templates/{templateId}")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"variables\": [\n {\n \"name\": \"<string>\",\n \"description\": \"<string>\"\n }\n ],\n \"applicableMediums\": [\n \"PHONE\",\n \"SMS\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.helloannie.com/v1/templates/{templateId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"variables\": [\n {\n \"name\": \"<string>\",\n \"description\": \"<string>\"\n }\n ],\n \"applicableMediums\": [\n \"PHONE\",\n \"SMS\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"description": "<string>",
"version": 123,
"createdAt": "<string>",
"variables": [
{
"name": "<string>",
"type": "STRING",
"description": "<string>"
}
],
"workflow": {
"title": "<string>",
"description": "<string>",
"steps": [
{
"title": "<string>",
"description": "<string>",
"instructions": "<string>",
"order": 1,
"examples": [
"<string>"
],
"action": "<string>",
"actionMetadata": {
"templateName": "Appointment Confirmation",
"templateBody": "Your appointment is scheduled for tomorrow at 3 PM."
},
"childSteps": [
{
"title": "<string>",
"description": "<string>",
"instructions": "<string>",
"order": 1,
"examples": [
"<string>"
],
"action": "<string>",
"actionMetadata": {
"templateName": "Appointment Confirmation",
"templateBody": "Your appointment is scheduled for tomorrow at 3 PM."
}
}
]
}
],
"enabled": true,
"usageContext": "<string>",
"order": 0
},
"applicableMediums": [
"PHONE",
"SMS"
],
"officeHoursAvailability": "OPEN"
}
}{
"success": false,
"data": {},
"message": "<string>"
}{
"success": false,
"data": {},
"message": "<string>"
}{
"success": false,
"data": {},
"message": "<string>"
}{
"success": false,
"data": {},
"message": "<string>"
}Path Parameters
Body
application/jsonapplication/x-www-form-urlencodedmultipart/form-data
Request body for updating a workflow template. All fields are optional.
Required string length:
1 - 255Show child attributes
Show child attributes
Conversation types where this template can be used: PHONE, SMS, CHAT, or GHL. Set null or an empty array to allow all conversation types. If omitted, new templates allow all conversation types and updates keep the current selection.
Available options:
CHAT, PHONE, GHL, SMS Example:
["PHONE", "SMS"]
When this template can be used, based on your office hours. OPEN allows use during office hours; CLOSED allows use outside office hours. Set null to allow use at any time. If omitted, new templates are available at any time and updates keep the current setting.
Available options:
OPEN, CLOSED Show child attributes
Show child attributes