Skip to content

Ready-made automations

GET
/v1/flow-recipes
curl --request GET \
--url https://api.threadkite.app/v1/flow-recipes \
--header 'Authorization: Bearer <token>'

Automations to switch on and edit: the out-of-hours reply (on every plan), new lead follow-up, missed appointment follow-up and quiet lead, then your industry pack’s (for car dealers, service-to-sales: finance ending, positive equity, in for a service, MOT due, bought elsewhere). Each has the steps a new automation starts from, and says what data it needs and whether you have it.

Media typeapplication/json
Array<object>
object
key
required
string
Allowed values: out_of_hours_reply new_lead_follow_up appointment_no_show quiet_lead ai_responder finance_ending positive_equity in_for_service mot_due bought_elsewhere
name
required
string
description
required
string
onFree
required

Can be switched on with the Free plan

boolean
definition
required

The steps a new automation starts with

object
version
number
default: 1
Allowed values: 1
trigger
required
One of:
object
type
required
string
Allowed values: event
events
required
Array<string>
>= 1 items <= 10 items
conditions
Array
default: <= 20 items
Any of:
Any of:
object
type
required
string
Allowed values: field
field
required
string
/^(event|contact|consent|thread|time|company)\.[A-Za-z0-9_.]{1,100}$/
op
required
string
Allowed values: equals not_equals in not_in contains not_contains is_set is_not_set greater_than less_than is_true is_false in_last_days in_next_days more_than_days_ago
value
Any of:
string
<= 500 characters
conditions
Array
default: <= 20 items
Any of:
Any of:
object
type
required
string
Allowed values: field
field
required
string
/^(event|contact|consent|thread|time|company)\.[A-Za-z0-9_.]{1,100}$/
op
required
string
Allowed values: equals not_equals in not_in contains not_contains is_set is_not_set greater_than less_than is_true is_false in_last_days in_next_days more_than_days_ago
value
Any of:
string
<= 500 characters
steps
required
Array
<= 100 items
Any of:
object
id
required
string
/^[A-Za-z0-9_-]{1,40}$/
type
required
string
Allowed values: wait
wait
required
One of:
object
kind
required
string
Allowed values: duration
duration
required

How long. working counts only opening hours (minutes and hours), or days the location opens (days)

object
amount
required
integer
>= 1 <= 100000
unit
required
string
Allowed values: minutes hours days weeks
working
boolean
exits
object
contactReplied
boolean
default: true
teamReplied
boolean
threadClosed
boolean
default: true
events
Array<string>
default: <= 20 items
reentry
object
kind
required
string
Allowed values: once once_per_thread once_per_thread_per_day every_n_days always
days
integer
>= 1 <= 3650
pack
required

The industry pack that adds it; null for everyone’s

string
nullable
needs
required

What it needs to do anything, and whether you have it yet

Array<object>
object
text
required
string
met
required

You have it already

boolean

Example

[
{
"key": "out_of_hours_reply",
"name": "New lead follow-up",
"definition": {
"version": 1,
"trigger": {
"type": "event",
"conditions": []
},
"conditions": [],
"steps": [
{
"type": "wait",
"wait": {
"kind": "duration",
"duration": {
"unit": "minutes",
"working": false
}
}
}
],
"exits": {
"contactReplied": true,
"teamReplied": false,
"threadClosed": true,
"events": []
},
"reentry": {
"kind": "once_per_thread"
}
},
"pack": "automotive",
"needs": [
{
"text": "Needs order.paid events from your shop system."
}
]
}
]

Missing or invalid API key

Media typeapplication/json
object
statusCode
required
number
code
required

Stable machine-readable reason

string
message
required
string
errors

With code invalid: every problem with the request, by field (message is the first)

Array<object>
object
path
required

Dotted path inside the item, e.g. attributes.price.amountMinor

string
message
required
string

Example

{
"statusCode": 403,
"code": "forbidden",
"message": "You do not have permission to do that.",
"errors": [
{
"message": "Enter the make"
}
]
}

The organisation is on the Free plan (code upgrade_required)

Media typeapplication/json
object
statusCode
required
number
code
required

Stable machine-readable reason

string
message
required
string
feature
required

The feature that needs Pro

string
nullable
Allowed values: extraSeats connections aiAssistant aiReplies rules fullReports api inboxes bulkMessages videoMessages
upgradePath
required

Where to upgrade or pay, in the web app

string

Example

{
"statusCode": 402,
"code": "upgrade_required",
"message": "Connections are part of Pro. Upgrade to connect texts, calls and more.",
"feature": "extraSeats",
"upgradePath": "/settings/billing"
}

The key does not have the scope (or the person the permission)

Media typeapplication/json
object
statusCode
required
number
code
required

Stable machine-readable reason

string
message
required
string
errors

With code invalid: every problem with the request, by field (message is the first)

Array<object>
object
path
required

Dotted path inside the item, e.g. attributes.price.amountMinor

string
message
required
string

Example

{
"statusCode": 403,
"code": "forbidden",
"message": "You do not have permission to do that.",
"errors": [
{
"message": "Enter the make"
}
]
}

Rate limit reached

Media typeapplication/json
object
statusCode
required
number
code
required

Stable machine-readable reason

string
message
required
string
retryAfter
required

Seconds until another request will be accepted

number

Example

{
"statusCode": 429,
"code": "rate_limited",
"message": "Too many requests. Each key can make 120 requests a minute; try again in 12 seconds.",
"retryAfter": 12
}