Apply blueprint to bot
curl --request POST \
--url https://api.helloannie.com/v1/blueprints/{blueprintId}/apply \
--header 'Content-Type: application/json' \
--data '
{
"botId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"variables": {
"office_name": "Happy Dental",
"phone_number": {
"value": "+15551234567",
"createOrgVariable": true
},
"office_address": {
"existingOrgVariableId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
},
"deleteExistingAppliedWorkflows": false
}
'import requests
url = "https://api.helloannie.com/v1/blueprints/{blueprintId}/apply"
payload = {
"botId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"variables": {
"office_name": "Happy Dental",
"phone_number": {
"value": "+15551234567",
"createOrgVariable": True
},
"office_address": { "existingOrgVariableId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" }
},
"deleteExistingAppliedWorkflows": False
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
botId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
variables: {
office_name: 'Happy Dental',
phone_number: {value: '+15551234567', createOrgVariable: true},
office_address: {existingOrgVariableId: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890'}
},
deleteExistingAppliedWorkflows: false
})
};
fetch('https://api.helloannie.com/v1/blueprints/{blueprintId}/apply', 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/blueprints/{blueprintId}/apply",
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([
'botId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'variables' => [
'office_name' => 'Happy Dental',
'phone_number' => [
'value' => '+15551234567',
'createOrgVariable' => true
],
'office_address' => [
'existingOrgVariableId' => 'a1b2c3d4-e5f6-7890-abcd-ef1234567890'
]
],
'deleteExistingAppliedWorkflows' => false
]),
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/blueprints/{blueprintId}/apply"
payload := strings.NewReader("{\n \"botId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"variables\": {\n \"office_name\": \"Happy Dental\",\n \"phone_number\": {\n \"value\": \"+15551234567\",\n \"createOrgVariable\": true\n },\n \"office_address\": {\n \"existingOrgVariableId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\"\n }\n },\n \"deleteExistingAppliedWorkflows\": false\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.helloannie.com/v1/blueprints/{blueprintId}/apply")
.header("Content-Type", "application/json")
.body("{\n \"botId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"variables\": {\n \"office_name\": \"Happy Dental\",\n \"phone_number\": {\n \"value\": \"+15551234567\",\n \"createOrgVariable\": true\n },\n \"office_address\": {\n \"existingOrgVariableId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\"\n }\n },\n \"deleteExistingAppliedWorkflows\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.helloannie.com/v1/blueprints/{blueprintId}/apply")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"botId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"variables\": {\n \"office_name\": \"Happy Dental\",\n \"phone_number\": {\n \"value\": \"+15551234567\",\n \"createOrgVariable\": true\n },\n \"office_address\": {\n \"existingOrgVariableId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\"\n }\n },\n \"deleteExistingAppliedWorkflows\": false\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"jobId": "<string>",
"templatesQueued": 123
}
}{
"success": false,
"data": {},
"message": "<string>"
}{
"success": false,
"data": {},
"message": "<string>"
}{
"success": false,
"data": {},
"message": "<string>"
}Blueprints
Apply blueprint to bot
Apply a blueprint to a bot by providing values for all required variables. Each template in the blueprint is applied sequentially. Optionally deletes existing workflows and application history created by prior template or blueprint applications for the bot before applying the blueprint. Returns a job ID to track progress.
POST
/
blueprints
/
{blueprintId}
/
apply
Apply blueprint to bot
curl --request POST \
--url https://api.helloannie.com/v1/blueprints/{blueprintId}/apply \
--header 'Content-Type: application/json' \
--data '
{
"botId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"variables": {
"office_name": "Happy Dental",
"phone_number": {
"value": "+15551234567",
"createOrgVariable": true
},
"office_address": {
"existingOrgVariableId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
},
"deleteExistingAppliedWorkflows": false
}
'import requests
url = "https://api.helloannie.com/v1/blueprints/{blueprintId}/apply"
payload = {
"botId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"variables": {
"office_name": "Happy Dental",
"phone_number": {
"value": "+15551234567",
"createOrgVariable": True
},
"office_address": { "existingOrgVariableId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" }
},
"deleteExistingAppliedWorkflows": False
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
botId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
variables: {
office_name: 'Happy Dental',
phone_number: {value: '+15551234567', createOrgVariable: true},
office_address: {existingOrgVariableId: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890'}
},
deleteExistingAppliedWorkflows: false
})
};
fetch('https://api.helloannie.com/v1/blueprints/{blueprintId}/apply', 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/blueprints/{blueprintId}/apply",
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([
'botId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'variables' => [
'office_name' => 'Happy Dental',
'phone_number' => [
'value' => '+15551234567',
'createOrgVariable' => true
],
'office_address' => [
'existingOrgVariableId' => 'a1b2c3d4-e5f6-7890-abcd-ef1234567890'
]
],
'deleteExistingAppliedWorkflows' => false
]),
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/blueprints/{blueprintId}/apply"
payload := strings.NewReader("{\n \"botId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"variables\": {\n \"office_name\": \"Happy Dental\",\n \"phone_number\": {\n \"value\": \"+15551234567\",\n \"createOrgVariable\": true\n },\n \"office_address\": {\n \"existingOrgVariableId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\"\n }\n },\n \"deleteExistingAppliedWorkflows\": false\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.helloannie.com/v1/blueprints/{blueprintId}/apply")
.header("Content-Type", "application/json")
.body("{\n \"botId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"variables\": {\n \"office_name\": \"Happy Dental\",\n \"phone_number\": {\n \"value\": \"+15551234567\",\n \"createOrgVariable\": true\n },\n \"office_address\": {\n \"existingOrgVariableId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\"\n }\n },\n \"deleteExistingAppliedWorkflows\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.helloannie.com/v1/blueprints/{blueprintId}/apply")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"botId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"variables\": {\n \"office_name\": \"Happy Dental\",\n \"phone_number\": {\n \"value\": \"+15551234567\",\n \"createOrgVariable\": true\n },\n \"office_address\": {\n \"existingOrgVariableId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\"\n }\n },\n \"deleteExistingAppliedWorkflows\": false\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"jobId": "<string>",
"templatesQueued": 123
}
}{
"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 applying a blueprint to a bot
The bot to apply the blueprint to
Variable values keyed by variable name. Each value can be a plain string or an options object.
Show child attributes
Show child attributes
Example:
{
"office_name": "Happy Dental",
"phone_number": {
"value": "+15551234567",
"createOrgVariable": true
},
"office_address": {
"existingOrgVariableId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
}When true, deletes existing workflows and application history created by prior template or blueprint applications for this bot before applying the blueprint. Manual workflows are preserved.
⌘I