Create an appointment reminder with an optional published form
Requires appointments:settings and administrator rights. Existing reminder fields still apply. form_id requires a published form and an approved Utility template with either the exact dynamic URL button for a private tracked invitation or the exact fixed public form URL already authored in BODY text. Fixed BODY links are general, issue no invitation, and require stop_after_response=false.
curl --request POST \
--url https://app.huechat.ai/api/v2/accounts/{accountId}/appointments/reminders \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"inbox_id": 123,
"template_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"bindings": [
{
"literal": "<string>"
}
],
"is_active": true,
"resource_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"minutes_before": 5042,
"minutes_after": 5042,
"send_minute": 719,
"form_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"stop_after_response": true,
"header_media": "<string>",
"eligible_statuses": []
}
'import requests
url = "https://app.huechat.ai/api/v2/accounts/{accountId}/appointments/reminders"
payload = {
"name": "<string>",
"inbox_id": 123,
"template_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"bindings": [{ "literal": "<string>" }],
"is_active": True,
"resource_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"minutes_before": 5042,
"minutes_after": 5042,
"send_minute": 719,
"form_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"stop_after_response": True,
"header_media": "<string>",
"eligible_statuses": []
}
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({
name: '<string>',
inbox_id: 123,
template_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
bindings: [{literal: '<string>'}],
is_active: true,
resource_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
minutes_before: 5042,
minutes_after: 5042,
send_minute: 719,
form_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
stop_after_response: true,
header_media: '<string>',
eligible_statuses: []
})
};
fetch('https://app.huechat.ai/api/v2/accounts/{accountId}/appointments/reminders', 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.huechat.ai/api/v2/accounts/{accountId}/appointments/reminders",
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([
'name' => '<string>',
'inbox_id' => 123,
'template_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'bindings' => [
[
'literal' => '<string>'
]
],
'is_active' => true,
'resource_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'minutes_before' => 5042,
'minutes_after' => 5042,
'send_minute' => 719,
'form_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'stop_after_response' => true,
'header_media' => '<string>',
'eligible_statuses' => [
]
]),
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://app.huechat.ai/api/v2/accounts/{accountId}/appointments/reminders"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"inbox_id\": 123,\n \"template_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"bindings\": [\n {\n \"literal\": \"<string>\"\n }\n ],\n \"is_active\": true,\n \"resource_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"minutes_before\": 5042,\n \"minutes_after\": 5042,\n \"send_minute\": 719,\n \"form_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"stop_after_response\": true,\n \"header_media\": \"<string>\",\n \"eligible_statuses\": []\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://app.huechat.ai/api/v2/accounts/{accountId}/appointments/reminders")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"inbox_id\": 123,\n \"template_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"bindings\": [\n {\n \"literal\": \"<string>\"\n }\n ],\n \"is_active\": true,\n \"resource_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"minutes_before\": 5042,\n \"minutes_after\": 5042,\n \"send_minute\": 719,\n \"form_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"stop_after_response\": true,\n \"header_media\": \"<string>\",\n \"eligible_statuses\": []\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.huechat.ai/api/v2/accounts/{accountId}/appointments/reminders")
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 \"name\": \"<string>\",\n \"inbox_id\": 123,\n \"template_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"bindings\": [\n {\n \"literal\": \"<string>\"\n }\n ],\n \"is_active\": true,\n \"resource_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"minutes_before\": 5042,\n \"minutes_after\": 5042,\n \"send_minute\": 719,\n \"form_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"stop_after_response\": true,\n \"header_media\": \"<string>\",\n \"eligible_statuses\": []\n}"
response = http.request(request)
puts response.read_body{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>",
"code": "plan_disabled",
"feature": "forms"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
Your personal access token where supported, or a scoped API key (hc_…) created inside HueChat at Account → Developer API. Send it as Authorization: Bearer <token>.
Path Parameters
x >= 1Body
before_start, after_start, previous_day 30Show child attributes
Show child attributes
5 <= x <= 100805 <= x <= 100800 <= x <= 1439Optional published form in the same account. The approved template must use either its exact dynamic invitation URL button or its exact fixed public URL in BODY text. The fixed BODY mode persists form_id for configuration validation only and does not identify respondents.
Stops private invitation reminders after an appointment-bound response. Must be false when the approved template uses a fixed public form URL in BODY text.
51212h, 24h tentative, booked, confirmed, completed, cancelled, no_show Response
Reminder created
curl --request POST \
--url https://app.huechat.ai/api/v2/accounts/{accountId}/appointments/reminders \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"inbox_id": 123,
"template_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"bindings": [
{
"literal": "<string>"
}
],
"is_active": true,
"resource_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"minutes_before": 5042,
"minutes_after": 5042,
"send_minute": 719,
"form_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"stop_after_response": true,
"header_media": "<string>",
"eligible_statuses": []
}
'import requests
url = "https://app.huechat.ai/api/v2/accounts/{accountId}/appointments/reminders"
payload = {
"name": "<string>",
"inbox_id": 123,
"template_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"bindings": [{ "literal": "<string>" }],
"is_active": True,
"resource_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"minutes_before": 5042,
"minutes_after": 5042,
"send_minute": 719,
"form_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"stop_after_response": True,
"header_media": "<string>",
"eligible_statuses": []
}
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({
name: '<string>',
inbox_id: 123,
template_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
bindings: [{literal: '<string>'}],
is_active: true,
resource_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
minutes_before: 5042,
minutes_after: 5042,
send_minute: 719,
form_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
stop_after_response: true,
header_media: '<string>',
eligible_statuses: []
})
};
fetch('https://app.huechat.ai/api/v2/accounts/{accountId}/appointments/reminders', 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.huechat.ai/api/v2/accounts/{accountId}/appointments/reminders",
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([
'name' => '<string>',
'inbox_id' => 123,
'template_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'bindings' => [
[
'literal' => '<string>'
]
],
'is_active' => true,
'resource_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'minutes_before' => 5042,
'minutes_after' => 5042,
'send_minute' => 719,
'form_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'stop_after_response' => true,
'header_media' => '<string>',
'eligible_statuses' => [
]
]),
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://app.huechat.ai/api/v2/accounts/{accountId}/appointments/reminders"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"inbox_id\": 123,\n \"template_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"bindings\": [\n {\n \"literal\": \"<string>\"\n }\n ],\n \"is_active\": true,\n \"resource_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"minutes_before\": 5042,\n \"minutes_after\": 5042,\n \"send_minute\": 719,\n \"form_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"stop_after_response\": true,\n \"header_media\": \"<string>\",\n \"eligible_statuses\": []\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://app.huechat.ai/api/v2/accounts/{accountId}/appointments/reminders")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"inbox_id\": 123,\n \"template_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"bindings\": [\n {\n \"literal\": \"<string>\"\n }\n ],\n \"is_active\": true,\n \"resource_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"minutes_before\": 5042,\n \"minutes_after\": 5042,\n \"send_minute\": 719,\n \"form_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"stop_after_response\": true,\n \"header_media\": \"<string>\",\n \"eligible_statuses\": []\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.huechat.ai/api/v2/accounts/{accountId}/appointments/reminders")
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 \"name\": \"<string>\",\n \"inbox_id\": 123,\n \"template_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"bindings\": [\n {\n \"literal\": \"<string>\"\n }\n ],\n \"is_active\": true,\n \"resource_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"minutes_before\": 5042,\n \"minutes_after\": 5042,\n \"send_minute\": 719,\n \"form_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"stop_after_response\": true,\n \"header_media\": \"<string>\",\n \"eligible_statuses\": []\n}"
response = http.request(request)
puts response.read_body{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>",
"code": "plan_disabled",
"feature": "forms"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}
