Skip to content

Pause an automation

POST
/v1/flows/{id}/pause
curl --request POST \
--url https://api.threadkite.app/v1/flows/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/pause \
--header 'Authorization: Bearer <token>'

Nobody new starts, and nobody in it moves on, until it is resumed.

id
required
string format: uuid
Media typeapplication/json
object
id
required
string format: uuid
name
required
string
description
required
string
nullable
status
required

draft (never published), live (on) or paused

string
Allowed values: draft live paused
recipeKey
required
string
nullable
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
inbox
required
One of:
object
id
required
string format: uuid
name
required
string
trigger
required
One of:
object
type
required
string
Allowed values: event date manual
events
required

The events it starts on (any of them), for event triggers; empty otherwise

Array<string>
version
required

The published version number

number
nullable
hasDraft
required

There are unpublished changes

boolean
activeRuns
required

Contacts in it now (waiting or running)

number
runsThisWeek
required

Contacts who started it in the last 7 days

number
allowedOnPlan
required

Your plan lets it be switched on (Free: only the out-of-hours reply, with only its wording changed)

boolean
createdAt
required
string format: date-time
updatedAt
required
string format: date-time
definition
required
One of:

A flow: a trigger, conditions checked when a contact would start, steps in order (with if/else branches), when to stop early (exits) and how often a contact can start it (reentry)

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
draftDefinition
required
One of:

A flow: a trigger, conditions checked when a contact would start, steps in order (with if/else branches), when to stop early (exits) and how often a contact can start it (reentry)

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

Example

{
"status": "draft",
"recipeKey": "out_of_hours_reply",
"inbox": {
"name": "Sales"
},
"trigger": {
"type": "event",
"events": [
"lead.created"
]
},
"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"
}
},
"draftDefinition": {
"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"
}
}
}

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"
}
]
}
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"
}
]
}

Never published (flow_not_live)

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
}