Preskočiť na obsah
API dokumentácia

Automations

Automation scenarios: a graph of triggers, conditions, waits and actions; validation, versions, activation, test and trace, run history, statistics, and the contact events API that feeds event triggers (custom events, carts, page visits).

Technická referencia je v angličtine (rovnako ako strojovo čitateľný dokument OpenAPI). Celú skupinu pre AI agenta načítate z /api/openapi.json?tag=Automations.

Prihlásenie: Authorization: Bearer pst_... alebo HTTP Basic (e-mail člena firmy a API kľúč).

Operácie

MetódaCestaPopis
GET/api/v1/tenants/{tenant}/automationsList automations
POST/api/v1/tenants/{tenant}/automationsCreate an automation (draft)
POST/api/v1/tenants/{tenant}/automations/resolve-timeResolve a time spec to a moment (preview)
POST/api/v1/tenants/{tenant}/automations/tagsChange labels of automations
POST/api/v1/tenants/{tenant}/automations/validateValidate a graph without saving
GET/api/v1/tenants/{tenant}/automations/{automation_id}Get an automation with its graph and issues
PATCH/api/v1/tenants/{tenant}/automations/{automation_id}Update name, description or labels of an automation
DELETE/api/v1/tenants/{tenant}/automations/{automation_id}Delete an automation that never ran
POST/api/v1/tenants/{tenant}/automations/{automation_id}/activateActivate (start) an automation
POST/api/v1/tenants/{tenant}/automations/{automation_id}/contactsAdd contacts by hand to a running automation
POST/api/v1/tenants/{tenant}/automations/{automation_id}/copyCopy an automation as a new draft
GET/api/v1/tenants/{tenant}/automations/{automation_id}/countsLive counts per node and output
POST/api/v1/tenants/{tenant}/automations/{automation_id}/editingReport that the editor has a scenario open and see who else has it
GET/api/v1/tenants/{tenant}/automations/{automation_id}/editorEverything the editor needs in one answer
PUT/api/v1/tenants/{tenant}/automations/{automation_id}/graphSave the graph of an automation (new version)
GET/api/v1/tenants/{tenant}/automations/{automation_id}/nodes/{key}/passesContacts that went through a node
POST/api/v1/tenants/{tenant}/automations/{automation_id}/nodes/{key}/releaseRelease the contacts waiting in a node
POST/api/v1/tenants/{tenant}/automations/{automation_id}/nodes/{key}/rescheduleRecompute the end of waiting in a node
POST/api/v1/tenants/{tenant}/automations/{automation_id}/pausePause an automation
GET/api/v1/tenants/{tenant}/automations/{automation_id}/reportStatistics of the e-mail nodes (JSON or CSV)
GET/api/v1/tenants/{tenant}/automations/{automation_id}/runsRun history per contact
POST/api/v1/tenants/{tenant}/automations/{automation_id}/testTest the scenario on today's data (nothing is sent)
POST/api/v1/tenants/{tenant}/automations/{automation_id}/traceTrace one contact through the scenario (nothing is sent)
GET/api/v1/tenants/{tenant}/automations/{automation_id}/versionsList saved versions of the graph
GET/api/v1/tenants/{tenant}/automations/{automation_id}/versions/{version}Get one saved version of the graph
POST/api/v1/tenants/{tenant}/contact-eventsRecord an event of a contact (custom event, cart, page visit)

List automations

GET /api/v1/tenants/{tenant}/automations

Oprávnenie: modul campaigns, úroveň read; kľúč s prístupom read alebo full · Nástroj MCP: list_automations

Automations (draft, active, paused) with entered, active and sent counts.

Parametre

NázovKdeTypPovinnéPopis
tenantpathstring (uuid)ánoPublic id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page.
pagequeryintegerniePage number, from 1. default 1, min 1
pageSizequeryintegernieItems per page, 1 to 100. default 25, min 1, max 100
qquerystringnieSearch text. max 200 chars
shopquerystringnieShop id filter.
sortquerystringnieSort fields separated by commas, "-" = descending, at most 3 (e.g. name,-id).
statusqueryone of: draft, active, pausednieStatus.
tagquerystringnieLabel filter; repeat for more labels.

Odpovede

  • 200 OK: application/json object

Chyby

StavKódHodnoty message
400validationq, sort, status, tag
401401 unauthorized: missing, unknown, revoked, expired or idle API key.
403403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack.
429429 rate_limited: wait Retry-After seconds.

Create an automation (draft)

POST /api/v1/tenants/{tenant}/automations

Oprávnenie: modul campaigns, úroveň full; kľúč s prístupom full · Nástroj MCP: create_automation

Creates an automation as a draft (it sends nothing until activate_automation). graph = {nodes, edges} (get_api_reference Automatizace).

Parametre

NázovKdeTypPovinnéPopis
tenantpathstring (uuid)ánoPublic id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page.

Telo požiadavky (application/json)

PoleTypPovinnéPopis
namestringáno
shopIdstringáno
descriptionstringnie
tagsarray of stringnie
graphAutomationGraphnie
transactionalbooleannieTransactional mode; switched only while the automation does not run and only for a graph that fits it.

Odpovede

Chyby

StavKódHodnoty message
400validationdescription, graph, node, shopId, tags, transactional
401401 unauthorized: missing, unknown, revoked, expired or idle API key.
403403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack.
404not_found
409conflictconfirm, name, runs, status, version, waiting
429429 rate_limited: wait Retry-After seconds.
503unavailabledata_key

Resolve a time spec to a moment (preview)

POST /api/v1/tenants/{tenant}/automations/resolve-time

Oprávnenie: modul campaigns, úroveň read; kľúč s prístupom read alebo full · Nástroj MCP: resolve_automation_time

Previews a time spec of a wait or a condition (calendar, interval or event variant): the moment it means now, in UTC and in the account's local time.

The preview of the shared time choice (core/timespec.py): {spec, place?, base?} -> {at (UTC), local (YYYY-MM-DDTHH:MM of the tenant)}. 400 validation spec with params.issues for an invalid spec.

Parametre

NázovKdeTypPovinnéPopis
tenantpathstring (uuid)ánoPublic id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page.

Telo požiadavky (application/json): Required by the server: spec.

PoleTypPovinnéPopis
specTimeSpecáno
placeone of: condition, waitáno

Odpovede

  • 200 OK: application/json object

Chyby

StavKódHodnoty message
400validationbase, place, spec
401401 unauthorized: missing, unknown, revoked, expired or idle API key.
403403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack.
429429 rate_limited: wait Retry-After seconds.

Change labels of automations

POST /api/v1/tenants/{tenant}/automations/tags

Oprávnenie: modul campaigns, úroveň full; kľúč s prístupom full

Parametre

NázovKdeTypPovinnéPopis
tenantpathstring (uuid)ánoPublic id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page.

Telo požiadavky (application/json): Required by the server: ids.

PoleTypPovinnéPopis
idsarray of stringáno
addarray of stringnie
removearray of stringnie
tagsarray of stringnie

Odpovede

  • 200 OK: application/json object

Chyby

StavKódHodnoty message
400validationids
401401 unauthorized: missing, unknown, revoked, expired or idle API key.
403403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack.
429429 rate_limited: wait Retry-After seconds.

Validate a graph without saving

POST /api/v1/tenants/{tenant}/automations/validate

Oprávnenie: modul campaigns, úroveň read; kľúč s prístupom read alebo full · Nástroj MCP: validate_automation_graph

Checks a graph without saving: errors and incomplete settings.

{errors, incomplete} of a graph for a shop without saving it (the canvas checks before saving).

Parametre

NázovKdeTypPovinnéPopis
tenantpathstring (uuid)ánoPublic id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page.

Telo požiadavky (application/json): Required by the server: graph, shopId.

PoleTypPovinnéPopis
shopIdstringáno
graphAutomationGrapháno

Odpovede

Chyby

StavKódHodnoty message
400validation
401401 unauthorized: missing, unknown, revoked, expired or idle API key.
403403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack.
429429 rate_limited: wait Retry-After seconds.

Get an automation with its graph and issues

GET /api/v1/tenants/{tenant}/automations/{automation_id}

Oprávnenie: modul campaigns, úroveň read; kľúč s prístupom read alebo full · Nástroj MCP: get_automation

One automation with its graph (nodes, edges, version) and the issues that block activation.

Parametre

NázovKdeTypPovinnéPopis
tenantpathstring (uuid)ánoPublic id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page.
automation_idpathstringánoId of the automation (string of digits).

Odpovede

Chyby

StavKódHodnoty message
400validation
401401 unauthorized: missing, unknown, revoked, expired or idle API key.
403403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack.
404not_found
429429 rate_limited: wait Retry-After seconds.

Update name, description or labels of an automation

PATCH /api/v1/tenants/{tenant}/automations/{automation_id}

Oprávnenie: modul campaigns, úroveň full; kľúč s prístupom full · Nástroj MCP: update_automation

Changes name, description or tags.

Parametre

NázovKdeTypPovinnéPopis
tenantpathstring (uuid)ánoPublic id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page.
automation_idpathstringánoId of the automation (string of digits).

Telo požiadavky (application/json)

PoleTypPovinnéPopis
namestringnie
tagsarray of stringnie
descriptionstringnie
transactionalbooleannieTransactional mode; switched only while the automation does not run and only for a graph that fits it.

Odpovede

Chyby

StavKódHodnoty message
400validationdescription, graph, node, shopId, tags, transactional
401401 unauthorized: missing, unknown, revoked, expired or idle API key.
403403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack.
404not_found
409conflictconfirm, name, runs, status, version, waiting
429429 rate_limited: wait Retry-After seconds.
503unavailabledata_key

Delete an automation that never ran

DELETE /api/v1/tenants/{tenant}/automations/{automation_id}

Oprávnenie: modul campaigns, úroveň full; kľúč s prístupom full · Nástroj MCP: delete_automation (cez MCP len s náhľadom a potvrdením)

Deletes an automation nobody entered.

Parametre

NázovKdeTypPovinnéPopis
tenantpathstring (uuid)ánoPublic id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page.
automation_idpathstringánoId of the automation (string of digits).

Odpovede

  • 204 No content

Chyby

StavKódHodnoty message
400validationgraph, node, shopId, transactional
401401 unauthorized: missing, unknown, revoked, expired or idle API key.
403403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack.
404not_found
409conflictconfirm, name, runs, status, version, waiting
429429 rate_limited: wait Retry-After seconds.
503unavailabledata_key

Activate (start) an automation

POST /api/v1/tenants/{tenant}/automations/{automation_id}/activate

Oprávnenie: modul campaigns, úroveň full; kľúč s prístupom full · Nástroj MCP: activate_automation (cez MCP len s náhľadom a potvrdením)

Activates (starts) an automation: from now on it sends its e-mails to contacts who enter.

Parametre

NázovKdeTypPovinnéPopis
tenantpathstring (uuid)ánoPublic id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page.
automation_idpathstringánoId of the automation (string of digits).

Telo požiadavky (application/json)

object

Odpovede

Chyby

StavKódHodnoty message
400validationgraph, node, shopId, transactional
401401 unauthorized: missing, unknown, revoked, expired or idle API key.
403403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack.
404not_found
409conflictconfirm, name, runs, status, test_only, version, waiting
429429 rate_limited: wait Retry-After seconds.
503unavailabledata_key

Add contacts by hand to a running automation

POST /api/v1/tenants/{tenant}/automations/{automation_id}/contacts

Oprávnenie: modul campaigns, úroveň full; kľúč s prístupom full · Nástroj MCP: add_automation_contacts (cez MCP len s náhľadom a potvrdením)

Adds contacts by hand to a running automation whose trigger is manual (Ručně přidané kontakty); those that can be mailed enter at the next tick and get its e-mails. The preview shows how many can enter.

Adds contacts by hand ({contactIds}) to a running scenario whose trigger is "Ručně přidané kontakty" (event manual); they enter at the next tick when they may (mailable, customer exception). {added: n}.

Parametre

NázovKdeTypPovinnéPopis
tenantpathstring (uuid)ánoPublic id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page.
automation_idpathstringánoId of the automation (string of digits).

Telo požiadavky (application/json): Required by the server: contactIds.

PoleTypPovinnéPopis
contactIdsarray of stringáno

Odpovede

  • 200 OK: application/json object

Chyby

StavKódHodnoty message
400validation
401401 unauthorized: missing, unknown, revoked, expired or idle API key.
403403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack.
404not_found
409conflictstatus, trigger
429429 rate_limited: wait Retry-After seconds.

Copy an automation as a new draft

POST /api/v1/tenants/{tenant}/automations/{automation_id}/copy

Oprávnenie: modul campaigns, úroveň full; kľúč s prístupom full · Nástroj MCP: copy_automation

Creates a draft copy of an automation ("<name> - kopie", the same graph; webhook passwords are not copied).

A draft copy "<name> - kopie" (SmartEmailing's Vytvořit kopii); webhook passwords are not copied.

Parametre

NázovKdeTypPovinnéPopis
tenantpathstring (uuid)ánoPublic id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page.
automation_idpathstringánoId of the automation (string of digits).

Telo požiadavky (application/json)

object

Odpovede

Chyby

StavKódHodnoty message
400validationgraph, node, shopId, transactional
401401 unauthorized: missing, unknown, revoked, expired or idle API key.
403403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack.
404not_found
409conflictconfirm, name, runs, status, version, waiting
429429 rate_limited: wait Retry-After seconds.
503unavailabledata_key

Live counts per node and output

GET /api/v1/tenants/{tenant}/automations/{automation_id}/counts

Oprávnenie: modul campaigns, úroveň read; kľúč s prístupom read alebo full · Nástroj MCP: get_automation_counts

Live numbers per node: passed, yes / no, outputs per branch, skipped, failed, left, waiting (contacts waiting there now), holding, queued, sent, opened, clicked; runs per state.

Live numbers per node key: passed, yes, no, skipped, failed, left, outputs per branch, waiting (holding in a storage), queued, sent, opened, clicked; runs per state. Optional from / to (ISO) limit steps and e-mails to a period; waiting is always now.

Parametre

NázovKdeTypPovinnéPopis
tenantpathstring (uuid)ánoPublic id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page.
automation_idpathstringánoId of the automation (string of digits).
fromquerystringnieISO start of the period.
toquerystringnieISO end of the period.

Odpovede

Chyby

StavKódHodnoty message
400validation
401401 unauthorized: missing, unknown, revoked, expired or idle API key.
403403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack.
404not_found
429429 rate_limited: wait Retry-After seconds.

Report that the editor has a scenario open and see who else has it

POST /api/v1/tenants/{tenant}/automations/{automation_id}/editing

Oprávnenie: modul campaigns, úroveň read; kľúč s prístupom read alebo full

The editor reports itself every 30 s (AU-16); {"others": [names]} of the other people who have the scenario open. Body {"leave": true} when the editor closes. An API key or an app has no presence (empty list).

Parametre

NázovKdeTypPovinnéPopis
tenantpathstring (uuid)ánoPublic id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page.
automation_idpathstringánoId of the automation (string of digits).

Telo požiadavky (application/json)

object

Odpovede

  • 200 OK: application/json object

Chyby

StavKódHodnoty message
400validationleave
401401 unauthorized: missing, unknown, revoked, expired or idle API key.
403403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack.
404not_found
429429 rate_limited: wait Retry-After seconds.

Everything the editor needs in one answer

GET /api/v1/tenants/{tenant}/automations/{automation_id}/editor

Oprávnenie: modul campaigns, úroveň read; kľúč s prístupom read alebo full

Everything the editor opens with in one answer: the detail (as GET .../automations/<id>) and the option catalogs (core/automation_editor.py). A catalog of a module the caller cannot read is empty, as its list endpoint would answer 403.

Parametre

NázovKdeTypPovinnéPopis
tenantpathstring (uuid)ánoPublic id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page.
automation_idpathstringánoId of the automation (string of digits).

Odpovede

Chyby

StavKódHodnoty message
400validation
401401 unauthorized: missing, unknown, revoked, expired or idle API key.
403403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack.
404not_found
429429 rate_limited: wait Retry-After seconds.

Save the graph of an automation (new version)

PUT /api/v1/tenants/{tenant}/automations/{automation_id}/graph

Oprávnenie: modul campaigns, úroveň full; kľúč s prístupom full · Nástroj MCP: save_automation_graph (cez MCP len s náhľadom a potvrdením)

Saves the graph of an automation (several triggers allowed). baseVersion = the version you read. A running (active) automation is saved only after the confirm step (its contacts go on by the new graph); a node where contacts wait cannot be removed. Every save keeps a version (list_automation_versions).

Parametre

NázovKdeTypPovinnéPopis
tenantpathstring (uuid)ánoPublic id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page.
automation_idpathstringánoId of the automation (string of digits).

Telo požiadavky (application/json): Required by the server: baseVersion, graph.

PoleTypPovinnéPopis
confirmRunningbooleannie
baseVersionnumberáno
graphAutomationGrapháno

Odpovede

Chyby

StavKódHodnoty message
400validationbaseVersion, confirmRunning, graph, node, shopId, transactional
401401 unauthorized: missing, unknown, revoked, expired or idle API key.
403403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack.
404not_found
409conflictconfirm, name, runs, status, version, waiting
429429 rate_limited: wait Retry-After seconds.
503unavailabledata_key

Contacts that went through a node

GET /api/v1/tenants/{tenant}/automations/{automation_id}/nodes/{key}/passes

Oprávnenie: modul campaigns, úroveň read; kľúč s prístupom read alebo full · Nástroj MCP: list_node_passes

Contacts that went through a node, newest first, with the outcome and branch.

Contacts that went through a node (SmartEmailing's "Kontakty, které prošly uzlem"): ?branch, ?q (e-mail), ?from, ?to; newest first.

Parametre

NázovKdeTypPovinnéPopis
tenantpathstring (uuid)ánoPublic id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page.
automation_idpathstringánoId of the automation (string of digits).
keypathstringánoNode key (id of the node in the graph).
branchquerystringnieOutput (next, yes, no, v1 to v10).
fromquerystringnieISO start.
pagequeryintegerniePage number, from 1. default 1, min 1
pageSizequeryintegernieItems per page, 1 to 100. default 25, min 1, max 100
qquerystringnieSearch text. max 200 chars
toquerystringnieISO end.

Odpovede

  • 200 OK: application/json object

Chyby

StavKódHodnoty message
400validationbranch, q
401401 unauthorized: missing, unknown, revoked, expired or idle API key.
403403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack.
404not_found
429429 rate_limited: wait Retry-After seconds.

Release the contacts waiting in a node

POST /api/v1/tenants/{tenant}/automations/{automation_id}/nodes/{key}/release

Oprávnenie: modul campaigns, úroveň full; kľúč s prístupom full · Nástroj MCP: release_waiting_contacts (cez MCP len s náhľadom a potvrdením)

Lets every contact waiting in a wait (or a condition waiting for its rules) go on now; they get the next e-mails of the scenario. The preview shows how many wait there.

SmartEmailing's "Uvolnit všechny čekající kontakty" of a wait or a waiting condition: {released: n}.

Parametre

NázovKdeTypPovinnéPopis
tenantpathstring (uuid)ánoPublic id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page.
automation_idpathstringánoId of the automation (string of digits).
keypathstringánoNode key (id of the node in the graph).

Telo požiadavky (application/json)

object

Odpovede

  • 200 OK: application/json object

Chyby

StavKódHodnoty message
400validationgraph, node, shopId, transactional
401401 unauthorized: missing, unknown, revoked, expired or idle API key.
403403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack.
404not_found
409conflictconfirm, name, runs, status, version, waiting
429429 rate_limited: wait Retry-After seconds.
503unavailabledata_key

Recompute the end of waiting in a node

POST /api/v1/tenants/{tenant}/automations/{automation_id}/nodes/{key}/reschedule

Oprávnenie: modul campaigns, úroveň full; kľúč s prístupom full · Nástroj MCP: reschedule_waiting_contacts (cez MCP len s náhľadom a potvrdením)

The contacts waiting in a wait get their end computed again from the node's current settings (after the wait was changed). The preview shows how many wait there.

SmartEmailing's "Aktualizovat dobu čekání": the waiting contacts get the node's current wait: {rescheduled}.

Parametre

NázovKdeTypPovinnéPopis
tenantpathstring (uuid)ánoPublic id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page.
automation_idpathstringánoId of the automation (string of digits).
keypathstringánoNode key (id of the node in the graph).

Telo požiadavky (application/json)

object

Odpovede

  • 200 OK: application/json object

Chyby

StavKódHodnoty message
400validationgraph, node, shopId, transactional
401401 unauthorized: missing, unknown, revoked, expired or idle API key.
403403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack.
404not_found
409conflictconfirm, name, runs, status, version, waiting
429429 rate_limited: wait Retry-After seconds.
503unavailabledata_key

Pause an automation

POST /api/v1/tenants/{tenant}/automations/{automation_id}/pause

Oprávnenie: modul campaigns, úroveň full; kľúč s prístupom full · Nástroj MCP: pause_automation

Pauses an active automation.

Parametre

NázovKdeTypPovinnéPopis
tenantpathstring (uuid)ánoPublic id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page.
automation_idpathstringánoId of the automation (string of digits).

Telo požiadavky (application/json)

object

Odpovede

Chyby

StavKódHodnoty message
400validationgraph, node, shopId, transactional
401401 unauthorized: missing, unknown, revoked, expired or idle API key.
403403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack.
404not_found
409conflictconfirm, name, runs, status, version, waiting
429429 rate_limited: wait Retry-After seconds.
503unavailabledata_key

Statistics of the e-mail nodes (JSON or CSV)

GET /api/v1/tenants/{tenant}/automations/{automation_id}/report

Oprávnenie: modul campaigns, úroveň read; kľúč s prístupom read alebo full · Nástroj MCP: get_automation_report

Statistics of the scenario for a period: per e-mail node (sent, opens, clicks, conversions), the chosen nodes summed, webhook calls.

Statistics of the scenario: ?from, ?to (local days YYYY-MM-DD, both included), ?nodes=a,b (selected nodes summed), ?format=csv for the table as a file.

Parametre

NázovKdeTypPovinnéPopis
tenantpathstring (uuid)ánoPublic id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page.
automation_idpathstringánoId of the automation (string of digits).
formatqueryone of: json, csvniecsv = a CSV file (UTF-8 with BOM, semicolons).
fromquerystringnieFirst local day YYYY-MM-DD.
nodesquerystringnieNode keys to sum, comma separated.
toquerystringnieLast local day YYYY-MM-DD.

Odpovede

  • 200 JSON, or CSV with format=csv: application/json AutomationReport, text/csv string

Chyby

StavKódHodnoty message
400validation
401401 unauthorized: missing, unknown, revoked, expired or idle API key.
403403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack.
404not_found
429429 rate_limited: wait Retry-After seconds.

Run history per contact

GET /api/v1/tenants/{tenant}/automations/{automation_id}/runs

Oprávnenie: modul campaigns, úroveň read; kľúč s prístupom read alebo full · Nástroj MCP: list_automation_runs

Runs of contacts through the automation with their steps (active = still in it, with the node it waits in and until when).

Run history, newest first, each with its steps; contactId narrows it to one contact of the tenant.

Parametre

NázovKdeTypPovinnéPopis
tenantpathstring (uuid)ánoPublic id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page.
automation_idpathstringánoId of the automation (string of digits).
contactIdquerystringnieContact id.
pagequeryintegerniePage number, from 1. default 1, min 1
pageSizequeryintegernieItems per page, 1 to 100. default 25, min 1, max 100
statusqueryone of: active, completed, exitednieStatus.

Odpovede

  • 200 OK: application/json object

Chyby

StavKódHodnoty message
400validationcontactId, status
401401 unauthorized: missing, unknown, revoked, expired or idle API key.
403403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack.
404not_found
429429 rate_limited: wait Retry-After seconds.

Test the scenario on today's data (nothing is sent)

POST /api/v1/tenants/{tenant}/automations/{automation_id}/test

Oprávnenie: modul campaigns, úroveň read; kľúč s prístupom read alebo full · Nástroj MCP: test_automation

Dry run of the scenario over today's data: how many contacts would reach, wait in and leave each node. Nothing is saved or sent.

Test of the scenario (AU-05): expected contacts per node of one pass over the current data, nothing written or sent. Body (optional): graph = the editor's graph (default the stored one), days = the replayed window of event triggers (0 to 90, default 0: a Při události trigger lets nobody in, as SmartEmailing's test). A graph with errors or incomplete settings is 400 validation graph with params.issues (as SmartEmailing: "Scénář není možné ... testovat, dokud neopravíte chyby v nastavení").

Parametre

NázovKdeTypPovinnéPopis
tenantpathstring (uuid)ánoPublic id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page.
automation_idpathstringánoId of the automation (string of digits).

Telo požiadavky (application/json)

PoleTypPovinnéPopis
graphAutomationGraphnieThe editor's graph; the stored graph when omitted.
daysnumbernie1 to AUTOMATION_TEST_MAX_DAYS, default AUTOMATION_TEST_MAX_DAYS.

Odpovede

Chyby

StavKódHodnoty message
400validationdays, graph
401401 unauthorized: missing, unknown, revoked, expired or idle API key.
403403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack.
404not_found
429429 rate_limited: wait Retry-After seconds.

Trace one contact through the scenario (nothing is sent)

POST /api/v1/tenants/{tenant}/automations/{automation_id}/trace

Oprávnenie: modul campaigns, úroveň read; kľúč s prístupom read alebo full · Nástroj MCP: trace_automation

Simulation of one contact: the way it would take through the scenario step by step (conditions, waits, e-mails) with the reasons. Nothing is saved or sent.

The way of one contact through the scenario (core/automation_sim.py trace): body contactId or email, graph (default the stored one), triggerKey (default the first trigger), days (replayed window of an event trigger).

Parametre

NázovKdeTypPovinnéPopis
tenantpathstring (uuid)ánoPublic id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page.
automation_idpathstringánoId of the automation (string of digits).

Telo požiadavky (application/json)

PoleTypPovinnéPopis
contactIdstringnie
emailstringnie
graphAutomationGraphnie
triggerKeystringnie
daysnumbernie

Odpovede

Chyby

StavKódHodnoty message
400validationcontact, days, graph, triggerKey
401401 unauthorized: missing, unknown, revoked, expired or idle API key.
403403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack.
404not_found
429429 rate_limited: wait Retry-After seconds.

List saved versions of the graph

GET /api/v1/tenants/{tenant}/automations/{automation_id}/versions

Oprávnenie: modul campaigns, úroveň read; kľúč s prístupom read alebo full · Nástroj MCP: list_automation_versions

Saved versions of the graph, newest first (version, status, saved at and by, node count).

Parametre

NázovKdeTypPovinnéPopis
tenantpathstring (uuid)ánoPublic id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page.
automation_idpathstringánoId of the automation (string of digits).

Odpovede

  • 200 OK: application/json object

Chyby

StavKódHodnoty message
400validation
401401 unauthorized: missing, unknown, revoked, expired or idle API key.
403403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack.
404not_found
429429 rate_limited: wait Retry-After seconds.

Get one saved version of the graph

GET /api/v1/tenants/{tenant}/automations/{automation_id}/versions/{version}

Oprávnenie: modul campaigns, úroveň read; kľúč s prístupom read alebo full · Nástroj MCP: get_automation_version

The graph of one saved version (to compare or to save it again with save_automation_graph).

Parametre

NázovKdeTypPovinnéPopis
tenantpathstring (uuid)ánoPublic id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page.
automation_idpathstringánoId of the automation (string of digits).
versionpathintegeránoVersion number.

Odpovede

  • 200 OK: application/json object

Chyby

StavKódHodnoty message
400validation
401401 unauthorized: missing, unknown, revoked, expired or idle API key.
403403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack.
404not_found
429429 rate_limited: wait Retry-After seconds.

Record an event of a contact (custom event, cart, page visit)

POST /api/v1/tenants/{tenant}/contact-events

Oprávnenie: modul campaigns, úroveň full; kľúč s prístupom full · Nástroj MCP: record_contact_event (cez MCP len s náhľadom a potvrdením)

Records an event of an existing contact (never creates one) for the event triggers of automations: type custom {name, data}, cart {shopId, items, currency, total} or visit {shopId, url, visitType, attributes}. At most 60 events of one contact in 10 minutes.

An event of an existing contact (contactId or email) for the event triggers: type custom {name, data}, cart {shopId, items, currency, total} or visit {shopId, url, visitType, attributes}. Never creates a contact. 201 {id}; 429 rate_limited after contact_events.API_PER_CONTACT events of one contact in API_WINDOW_S.

Parametre

NázovKdeTypPovinnéPopis
tenantpathstring (uuid)ánoPublic id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page.

Telo požiadavky (application/json)

PoleTypPovinnéPopis
typeone of: custom, cart, visitánoEvent type.
contactIdstringnieContact id (or email).
emailstringnieContact address.
shopIdstringnieShop id (required for cart).
namestringnieCustom event name: a-z, 0-9 and -, up to 50.
dataobjectnieCustom event data.
itemsarray of objectnieCart items.
currencystringnieCart currency.
totalstringnieCart total.
urlstringnieVisited URL.
visitTypeone of: home, article, cart, product, category, search, order_done, othernieVisit type.
attributesobjectnieVisit attributes.

Odpovede

  • 201 Created: application/json object

Chyby

StavKódHodnoty message
400validationtype
401401 unauthorized: missing, unknown, revoked, expired or idle API key.
403403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack.
404not_foundcontact
429rate_limitedcontact

Schémy

Automation

PoleTypPovinnéPopis
idstringáno
namestringáno
shopIdstringáno
statusAutomationStatusáno
versionnumberáno
activeSincestring or nullánoSince when it runs without a pause; null unless active.
firstActivatedAtstring or nulláno
pausedReasonone of: manual, bounce_rate, complaint_rate, unsubscribe_rate, template_error, nulláno
transactionalbooleanánoTransactional mode (contract communication such as invoice reminders, migration 0351): started only by custom events, e-mails also to contacts without newsletter consent, never to a blocked address, no unsubscribe link.
tagsarray of stringáno
createdAtstringáno
updatedAtstringáno
statsAutomationStatsáno

AutomationCounts

PoleTypPovinnéPopis
nodesmap of AutomationNodeCountsáno
runsobjectáno

AutomationDetail

PoleTypPovinnéPopis
descriptionstringáno
graphAutomationGrapháno
issuesarray of AutomationIssueánoEverything that keeps it from running (incomplete settings, lint, unverified sender).
triggersmap of objectniePer trigger node key: a one-off trigger that already took its contacts (done) and the next scheduled pass.
nodeMetamap of AutomationNodeMetaniePer node key (AU-11): SE's Poslední editace and Poznámka aktualizována / Aktualizováno uživatelem.
idstringáno
namestringáno
shopIdstringáno
statusAutomationStatusáno
versionnumberáno
activeSincestring or nullánoSince when it runs without a pause; null unless active.
firstActivatedAtstring or nulláno
pausedReasonone of: manual, bounce_rate, complaint_rate, unsubscribe_rate, template_error, nulláno
transactionalbooleanánoTransactional mode (contract communication such as invoice reminders, migration 0351): started only by custom events, e-mails also to contacts without newsletter consent, never to a blocked address, no unsubscribe link.
tagsarray of stringáno
createdAtstringáno
updatedAtstringáno
statsAutomationStatsáno

AutomationEdge

A connection from an output (branch) of source to target. Every output has at most one edge; no edge into a trigger or goal; no cycles.

PoleTypPovinnéPopis
sourcestringánoNode key.
targetstringánoNode key.
branchstringnienext (one output), yes / no (condition), v1..v10 (ab_test). Default next.
idstringnieIgnored (canvas only).

AutomationEditorData

GET /tenants/{t}/automations/{id}/editor: everything the editor opens with, in one answer. A catalog of a module the user cannot read (its list endpoint would answer 403) is empty.

PoleTypPovinnéPopis
automationAutomationDetailáno
listsarray of AutomationEditorListáno
templatesarray of AutomationEditorOptionánoActive templates, newest change first, then archived ones this automation's e-mail nodes use (archived).
sendersarray of Senderáno
purposesarray of AutomationEditorOptionáno
campaignsarray of AutomationEditorOptionáno
customFieldsarray of objectáno
segmentsarray of AutomationEditorOptionánoSegments of the automation's shop only.
automationsarray of AutomationEditorOptionánoEvery automation of the tenant, this one included.
emailNodesarray of AutomationEmailNodeánoE-mail nodes of the other automations.
couponStacksarray of AutomationEditorOptionáno
feedsarray of AutomationEditorOptionáno
formsarray of AutomationEditorOptionáno
unsubscribePagesarray of AutomationEditorOptionnieActive unsubscribe pages (Pokročilé of an e-mail node, AA-04).

AutomationEditorList

A list as the editor's pickers and checks need it (no member counts).

PoleTypPovinnéPopis
namestringáno
shopIdstring or nullánonull = list of the whole tenant, not bound to one e-shop.
tagsarray of stringánoLabels (štítky), at most 20.
idstringáno
manualMembersbooleanánoFalse for lists filled by an e-shop connection: members are not added or removed by hand (409).

AutomationEditorOption

An option of an editor picker: id and name only.

PoleTypPovinnéPopis
idstringáno
namestringáno
archivedbooleannieTemplates only: an archived template an e-mail node of this automation still uses (kept so the editor never reports it missing; pickers offer it only to the node that has it).
subjectstringnieTemplates only: the subject the e-mail node shows until it has its own (AA-01).
linkParamsarray of objectnieTemplates only: the e-mail's own UTM parameters, shown read-only in the node's Tracking (AA-03).

AutomationEmailNode

An e-mail node of another automation (events and conditions may name it: "e-mailový uzel / název scénáře").

PoleTypPovinnéPopis
automationIdstringáno
automationNamestringáno
nodeKeystringáno
nodeNamestringáno

AutomationGraph

The graph: at most 300 nodes and 600 edges, one or more triggers, acyclic. An output without an edge = the contact leaves.

PoleTypPovinnéPopis
nodesarray of AutomationNodeánoNodes. max 300 items
edgesarray of AutomationEdgenieEdges. max 600 items

AutomationInput

PoleTypPovinnéPopis
namestringáno
shopIdstringáno
descriptionstringnie
tagsarray of stringnie
graphAutomationGraphnie
transactionalbooleannieTransactional mode; switched only while the automation does not run and only for a graph that fits it.

AutomationIssue

A problem of a graph. Errors refuse the save (400 validation graph, params.issues); incomplete settings are saved but block activation and tests (detail.issues).

PoleTypPovinnéPopis
nodestring or nullánoNode key, null for the whole graph.
fieldstringánoConfig field path (e.g. definition.0.listId), "" for the node.
codeone of: required, invalid, unavailable, not_found, locked, empty, lint, unverified, unreachable, too_short, too_long, duplicate, node, cycle, self_trigger, not_whitelisted, reserved, calendar, transactional_node, transactional_trigger, transactional_contentánorequired, invalid, unavailable, not_found, locked, empty, lint, unverified, unreachable, too_short, too_long, duplicate, node, cycle, self_trigger, not_whitelisted, reserved, calendar; transactional automations also transactional_node (a node type the mode does not allow), transactional_trigger (a trigger other than a custom event) and transactional_content (a template with an unsubscribe link, the newsletter footer or a coupon).

AutomationNode

One node of an automation graph; type selects the settings in config. Unknown config keys are dropped when saving.

AutomationNode_trigger_now or AutomationNode_trigger_scheduled or AutomationNode_trigger_repeat or AutomationNode_trigger_event or AutomationNode_trigger_date or AutomationNode_trigger_reorder or AutomationNode_condition or AutomationNode_wait or AutomationNode_ab_test or AutomationNode_holding or AutomationNode_goal or AutomationNode_send_email or AutomationNode_send_sms or AutomationNode_list_change or AutomationNode_send_viber or AutomationNode_webhook or AutomationNode_set_field or AutomationNode_reset or AutomationNode_fb_audience or AutomationNode_sklik_retargeting or AutomationNode_motionlab_adina or AutomationNode_whatsapp or AutomationNode_fire_event or AutomationNode_notify or AutomationNode_goto or AutomationNode_end

AutomationNodeCounts

PoleTypPovinnéPopis
passednumberáno
yesnumberáno
nonumberáno
skippednumberáno
failednumbernieActions that could not be carried out (Monitoring chybových akcí).
waitingnumberáno
holdingnumbernieContacts in a storage node now (Odkladiště).
leftnumbernieContacts that left the scenario at this node.
outputsobjectnieContacts per output.
queuednumberáno
sentnumberáno
openednumberáno
clickednumberáno

AutomationNodeMeta

PoleTypPovinnéPopis
updatedAtstring or nulláno
updatedBystringáno
noteUpdatedAtstring or nulláno
noteUpdatedBystringáno

AutomationNodeTest

PoleTypPovinnéPopis
reachednumberánoContacts that came to the node.
waitingnumberánoContacts that stay waiting in it (a wait not over yet, a condition still waiting for its rules).
leftnumberánoContacts that leave the scenario here (the end node, an output without an edge).
outputsobjectánoContacts per output of the node type: next, or yes and no.

AutomationNodeType

one of: notify, trigger_now, trigger_scheduled, trigger_repeat, trigger_event, trigger_date, trigger_reorder, condition, wait, ab_test, holding, goal, send_email, send_sms, list_change, send_viber, webhook, set_field, reset, fb_audience, sklik_retargeting, motionlab_adina, whatsapp, fire_event, goto, end

AutomationNode_ab_test

Splits contacts randomly (stable per run) into 2 to 10 variants; outputs v1..vN.

PoleTypPovinnéPopis
idstringánoNode key: letters, digits, - and _ (1 to 40), stable across saves. pattern ^[A-Za-z0-9_-]{1,40}$
typeab_testáno
namestringnieLabel on the canvas, at most 100.
notestringnieNote, at most 1 000.
positionobjectnieCanvas position.
configobjectnieSplits contacts randomly (stable per run) into 2 to 10 variants; outputs v1..vN.
json
{
  "id": "ab-test-1",
  "type": "ab_test",
  "config": {
    "variants": [
      {
        "key": "v1",
        "share": 50
      },
      {
        "key": "v2",
        "share": 50
      }
    ]
  }
}

AutomationNode_condition

Splits the run: output yes when the definition holds, else no. With waitUntilMet the contact waits until it holds (then yes) or the time runs out (then no); checked every 20 minutes to once a day.

PoleTypPovinnéPopis
idstringánoNode key: letters, digits, - and _ (1 to 40), stable across saves. pattern ^[A-Za-z0-9_-]{1,40}$
typeconditionáno
namestringnieLabel on the canvas, at most 100.
notestringnieNote, at most 1 000.
positionobjectnieCanvas position.
configobjectnieSplits the run: output yes when the definition holds, else no. With waitUntilMet the contact waits until it holds (then yes) or the time runs out (then no); checked every 20 minutes to once a day.
json
{
  "id": "condition-1",
  "type": "condition",
  "config": {
    "definition": {
      "type": "group",
      "match": "all",
      "rules": [
        {
          "type": "email_activity",
          "operator": "opened",
          "nodeId": null
        }
      ]
    }
  }
}

AutomationNode_end

Ends the run (the contact leaves).

PoleTypPovinnéPopis
idstringánoNode key: letters, digits, - and _ (1 to 40), stable across saves. pattern ^[A-Za-z0-9_-]{1,40}$
typeendáno
namestringnieLabel on the canvas, at most 100.
notestringnieNote, at most 1 000.
positionobjectnieCanvas position.
configobjectnieEnds the run (the contact leaves).
json
{
  "id": "end-1",
  "type": "end",
  "config": {}
}

AutomationNode_fb_audience

Not available yet: needs meta. Shown in the palette, saving reports "unavailable".

PoleTypPovinnéPopis
idstringánoNode key: letters, digits, - and _ (1 to 40), stable across saves. pattern ^[A-Za-z0-9_-]{1,40}$
typefb_audienceáno
namestringnieLabel on the canvas, at most 100.
notestringnieNote, at most 1 000.
positionobjectnieCanvas position.
configobjectnieNot available yet: needs meta. Shown in the palette, saving reports "unavailable".

AutomationNode_fire_event

Fires a custom event of the contact that event triggers (custom) of OTHER automations listen to.

PoleTypPovinnéPopis
idstringánoNode key: letters, digits, - and _ (1 to 40), stable across saves. pattern ^[A-Za-z0-9_-]{1,40}$
typefire_eventáno
namestringnieLabel on the canvas, at most 100.
notestringnieNote, at most 1 000.
positionobjectnieCanvas position.
configobjectnieFires a custom event of the contact that event triggers (custom) of OTHER automations listen to.
json
{
  "id": "fire-event-1",
  "type": "fire_event",
  "config": {
    "name": "vip-reached",
    "data": {
      "level": "gold"
    }
  }
}

AutomationNode_goal

Goal of the scenario: before every step the goals are checked; a contact who meets one leaves the scenario wherever it is. No edges in or out.

PoleTypPovinnéPopis
idstringánoNode key: letters, digits, - and _ (1 to 40), stable across saves. pattern ^[A-Za-z0-9_-]{1,40}$
typegoaláno
namestringnieLabel on the canvas, at most 100.
notestringnieNote, at most 1 000.
positionobjectnieCanvas position.
configobjectnieGoal of the scenario: before every step the goals are checked; a contact who meets one leaves the scenario wherever it is. No edges in or out.
json
{
  "id": "goal-1",
  "type": "goal",
  "config": {
    "definition": {
      "type": "group",
      "match": "all",
      "rules": [
        {
          "type": "ordered_since_entry",
          "operator": "yes",
          "shopId": null
        }
      ]
    }
  }
}

AutomationNode_goto

Jumps to another node of this graph (not a trigger or goal; the jump counts as an edge for cycles, so only forward).

PoleTypPovinnéPopis
idstringánoNode key: letters, digits, - and _ (1 to 40), stable across saves. pattern ^[A-Za-z0-9_-]{1,40}$
typegotoáno
namestringnieLabel on the canvas, at most 100.
notestringnieNote, at most 1 000.
positionobjectnieCanvas position.
configobjectnieJumps to another node of this graph (not a trigger or goal; the jump counts as an edge for cycles, so only forward).

AutomationNode_holding

Storage (Odkladiště): contacts wait here until an edge out of the node is added (then they continue) or 90 days pass.

PoleTypPovinnéPopis
idstringánoNode key: letters, digits, - and _ (1 to 40), stable across saves. pattern ^[A-Za-z0-9_-]{1,40}$
typeholdingáno
namestringnieLabel on the canvas, at most 100.
notestringnieNote, at most 1 000.
positionobjectnieCanvas position.
configobjectnieStorage (Odkladiště): contacts wait here until an edge out of the node is added (then they continue) or 90 days pass.
json
{
  "id": "holding-1",
  "type": "holding",
  "config": {}
}

AutomationNode_list_change

Sets the contact's state in manual lists (confirmed adds, unsubscribed and removed take out). Lists bound to an e-shop cannot be changed.

PoleTypPovinnéPopis
idstringánoNode key: letters, digits, - and _ (1 to 40), stable across saves. pattern ^[A-Za-z0-9_-]{1,40}$
typelist_changeáno
namestringnieLabel on the canvas, at most 100.
notestringnieNote, at most 1 000.
positionobjectnieCanvas position.
configobjectnieSets the contact's state in manual lists (confirmed adds, unsubscribed and removed take out). Lists bound to an e-shop cannot be changed.
json
{
  "id": "list-change-1",
  "type": "list_change",
  "config": {
    "status": "confirmed",
    "listIds": [
      "101"
    ]
  }
}

AutomationNode_motionlab_adina

Not available yet: needs motionlab. Shown in the palette, saving reports "unavailable".

PoleTypPovinnéPopis
idstringánoNode key: letters, digits, - and _ (1 to 40), stable across saves. pattern ^[A-Za-z0-9_-]{1,40}$
typemotionlab_adinaáno
namestringnieLabel on the canvas, at most 100.
notestringnieNote, at most 1 000.
positionobjectnieCanvas position.
configobjectnieNot available yet: needs motionlab. Shown in the palette, saving reports "unavailable".

AutomationNode_notify

Notifies the team in the app (notification centre).

PoleTypPovinnéPopis
idstringánoNode key: letters, digits, - and _ (1 to 40), stable across saves. pattern ^[A-Za-z0-9_-]{1,40}$
typenotifyáno
namestringnieLabel on the canvas, at most 100.
notestringnieNote, at most 1 000.
positionobjectnieCanvas position.
configobjectnieNotifies the team in the app (notification centre).
json
{
  "id": "notify-1",
  "type": "notify",
  "config": {
    "message": "Zákazník dosáhl VIP úrovně",
    "important": false
  }
}

AutomationNode_reset

Ends the contact's other active runs of this scenario that wait in nodes after this one (SmartEmailing Reset).

PoleTypPovinnéPopis
idstringánoNode key: letters, digits, - and _ (1 to 40), stable across saves. pattern ^[A-Za-z0-9_-]{1,40}$
typeresetáno
namestringnieLabel on the canvas, at most 100.
notestringnieNote, at most 1 000.
positionobjectnieCanvas position.
configobjectnieEnds the contact's other active runs of this scenario that wait in nodes after this one (SmartEmailing Reset).
json
{
  "id": "reset-1",
  "type": "reset",
  "config": {}
}

AutomationNode_send_email

Sends an e-mail from a template (once per node and contact within the company's window). Only to mailable contacts, rechecked right before sending.

PoleTypPovinnéPopis
idstringánoNode key: letters, digits, - and _ (1 to 40), stable across saves. pattern ^[A-Za-z0-9_-]{1,40}$
typesend_emailáno
namestringnieLabel on the canvas, at most 100.
notestringnieNote, at most 1 000.
positionobjectnieCanvas position.
configobjectnieSends an e-mail from a template (once per node and contact within the company's window). Only to mailable contacts, rechecked right before sending.
json
{
  "id": "send-email-1",
  "type": "send_email",
  "config": {
    "templateId": "301",
    "subject": "Zapomněli jste něco v košíku",
    "trackOpens": true,
    "trackClicks": true
  }
}

AutomationNode_send_sms

Not available yet: needs sms. Shown in the palette, saving reports "unavailable".

PoleTypPovinnéPopis
idstringánoNode key: letters, digits, - and _ (1 to 40), stable across saves. pattern ^[A-Za-z0-9_-]{1,40}$
typesend_smsáno
namestringnieLabel on the canvas, at most 100.
notestringnieNote, at most 1 000.
positionobjectnieCanvas position.
configobjectnieNot available yet: needs sms. Shown in the palette, saving reports "unavailable".

AutomationNode_send_viber

Not available yet: needs viber. Shown in the palette, saving reports "unavailable".

PoleTypPovinnéPopis
idstringánoNode key: letters, digits, - and _ (1 to 40), stable across saves. pattern ^[A-Za-z0-9_-]{1,40}$
typesend_viberáno
namestringnieLabel on the canvas, at most 100.
notestringnieNote, at most 1 000.
positionobjectnieCanvas position.
configobjectnieNot available yet: needs viber. Shown in the palette, saving reports "unavailable".

AutomationNode_set_field

Sets or clears a contact field. valueKind fixed (a value of the field's type), relative (dates: a time spec from now) or template (text fields: merge tags).

PoleTypPovinnéPopis
idstringánoNode key: letters, digits, - and _ (1 to 40), stable across saves. pattern ^[A-Za-z0-9_-]{1,40}$
typeset_fieldáno
namestringnieLabel on the canvas, at most 100.
notestringnieNote, at most 1 000.
positionobjectnieCanvas position.
configobjectnieSets or clears a contact field. valueKind fixed (a value of the field's type), relative (dates: a time spec from now) or template (text fields: merge tags).
json
{
  "id": "set-field-1",
  "type": "set_field",
  "config": {
    "field": "cf:62",
    "action": "set",
    "valueKind": "fixed",
    "value": "VIP"
  }
}

AutomationNode_sklik_retargeting

Not available yet: needs sklik. Shown in the palette, saving reports "unavailable".

PoleTypPovinnéPopis
idstringánoNode key: letters, digits, - and _ (1 to 40), stable across saves. pattern ^[A-Za-z0-9_-]{1,40}$
typesklik_retargetingáno
namestringnieLabel on the canvas, at most 100.
notestringnieNote, at most 1 000.
positionobjectnieCanvas position.
configobjectnieNot available yet: needs sklik. Shown in the palette, saving reports "unavailable".

AutomationNode_trigger_date

Starts once a day at at for contacts whose date is today: name day, birthday, a date custom field (shifted by offsetDays), fixed holidays (every contact of the shop), or the first completed order exactly days ago.

PoleTypPovinnéPopis
idstringánoNode key: letters, digits, - and _ (1 to 40), stable across saves. pattern ^[A-Za-z0-9_-]{1,40}$
typetrigger_dateáno
namestringnieLabel on the canvas, at most 100.
notestringnieNote, at most 1 000.
positionobjectnieCanvas position.
configobjectnieStarts once a day at at for contacts whose date is today: name day, birthday, a date custom field (shifted by offsetDays), fixed holidays (every contact of the shop), or the first completed order exactly days ago.
json
{
  "id": "trigger-date-1",
  "type": "trigger_date",
  "config": {
    "kind": "name_day",
    "at": "08:00",
    "reentry": "parallel"
  }
}

AutomationNode_trigger_event

Starts when an event happens to a contact (SmartEmailing "Při události"). Only events after the activation count. Event specific settings: cart_updated: The contact's cart changed (POST /contact-events type cart). shopId narrows the shop. contact_created: A new contact of the automation's shop. order_created: A new order (shopId: shop of the order, default the automation's shop). order_changed: An order changed state (state narrows to one state). list_added: The contact was added to listId. contact_updated: A profile field changed (fieldFilter narrows to one field and its values before / after). action_failed: An action of an automation failed (failureType, failureNode narrow it). list_status_changed: The contact's state in listId changed to status. email_sent: An e-mail of emailNode (a send_email node of ANOTHER automation) was sent. page_visit: A web tracking visit (POST /contact-events type visit): url, urlOperator, visitType. link_clicked: The contact clicked a link (link, compareParams) in an e-mail of emailNode (another automation). engagement_changed: The contact's engagement level changed. custom: A custom event named customEvent (POST /contact-events type custom, or a fire_event node of another automation). form_submitted: A form was submitted and confirmed (formId narrows to one form). blacklisted: The contact was blacklisted. order_completed: An order was completed (paid, shipped or delivered). subscribed: The contact subscribed (sources narrows the source; imports only when listed). manual: Contacts added by hand: POST /automations/{id}/contacts.

PoleTypPovinnéPopis
idstringánoNode key: letters, digits, - and _ (1 to 40), stable across saves. pattern ^[A-Za-z0-9_-]{1,40}$
typetrigger_eventáno
namestringnieLabel on the canvas, at most 100.
notestringnieNote, at most 1 000.
positionobjectnieCanvas position.
configobjectnieStarts when an event happens to a contact (SmartEmailing "Při události"). Only events after the activation count. Event specific settings: cart_updated: The contact's cart changed (POST /contact-events type cart). shopId narrows the shop. contact_created: A new contact of the automation's shop. order_created: A new order (shopId: shop of the order, default the automation's shop). order_changed: An order changed state (state narrows to one state). list_added: The contact was added to listId. contact_updated: A profile field changed (fieldFilter narrows to one field and its values before / after). action_failed: An action of an automation failed (failureType, failureNode narrow it). list_status_changed: The contact's state in listId changed to status. email_sent: An e-mail of emailNode (a send_email node of ANOTHER automation) was sent. page_visit: A web tracking visit (POST /contact-events type visit): url, urlOperator, visitType. link_clicked: The contact clicked a link (link, compareParams) in an e-mail of emailNode (another automation). engagement_changed: The contact's engagement level changed. custom: A custom event named customEvent (POST /contact-events type custom, or a fire_event node of another automation). form_submitted: A form was submitted and confirmed (formId narrows to one form). blacklisted: The contact was blacklisted. order_completed: An order was completed (paid, shipped or delivered). subscribed: The contact subscribed (sources narrows the source; imports only when listed). manual: Contacts added by hand: POST /automations/{id}/contacts.
json
{
  "id": "trigger-event-1",
  "type": "trigger_event",
  "config": {
    "event": "cart_updated",
    "shopId": "1",
    "reentry": "restart"
  }
}

AutomationNode_trigger_now

Starts once, right at the activation, with the contacts of the shop matching the filter (SmartEmailing "Hned teď").

PoleTypPovinnéPopis
idstringánoNode key: letters, digits, - and _ (1 to 40), stable across saves. pattern ^[A-Za-z0-9_-]{1,40}$
typetrigger_nowáno
namestringnieLabel on the canvas, at most 100.
notestringnieNote, at most 1 000.
positionobjectnieCanvas position.
configobjectnieStarts once, right at the activation, with the contacts of the shop matching the filter (SmartEmailing "Hned teď").
json
{
  "id": "trigger-now-1",
  "type": "trigger_now",
  "config": {
    "reentry": "once"
  }
}

AutomationNode_trigger_reorder

Starts once a day at at for customers whose last completed order is older than their usual interval between orders ("buy again"): the average gap of their order days, defaultDays with one order day, clamped to minDays..maxDays, plus graceDays.

PoleTypPovinnéPopis
idstringánoNode key: letters, digits, - and _ (1 to 40), stable across saves. pattern ^[A-Za-z0-9_-]{1,40}$
typetrigger_reorderáno
namestringnieLabel on the canvas, at most 100.
notestringnieNote, at most 1 000.
positionobjectnieCanvas position.
configobjectnieStarts once a day at at for customers whose last completed order is older than their usual interval between orders ("buy again"): the average gap of their order days, defaultDays with one order day, clamped to minDays..maxDays, plus graceDays.
json
{
  "id": "trigger-reorder-1",
  "type": "trigger_reorder",
  "config": {
    "at": "10:00",
    "defaultDays": 30,
    "minDays": 14,
    "maxDays": 120,
    "graceDays": 3,
    "reentry": "parallel"
  }
}

AutomationNode_trigger_repeat

Starts repeatedly every every from startAt (default the activation) until stopAt, with the contacts matching the filter (SmartEmailing "Opakovat").

PoleTypPovinnéPopis
idstringánoNode key: letters, digits, - and _ (1 to 40), stable across saves. pattern ^[A-Za-z0-9_-]{1,40}$
typetrigger_repeatáno
namestringnieLabel on the canvas, at most 100.
notestringnieNote, at most 1 000.
positionobjectnieCanvas position.
configobjectnieStarts repeatedly every every from startAt (default the activation) until stopAt, with the contacts matching the filter (SmartEmailing "Opakovat").
json
{
  "id": "trigger-repeat-1",
  "type": "trigger_repeat",
  "config": {
    "every": {
      "value": 1,
      "unit": "days"
    },
    "startAt": "2026-11-01T08:00",
    "reentry": "parallel",
    "filter": {
      "type": "group",
      "match": "all",
      "rules": [
        {
          "type": "contact_anniversary",
          "field": "nameDay",
          "relation": "now"
        }
      ]
    }
  }
}

AutomationNode_trigger_scheduled

Starts once at a local date and time (SmartEmailing "V plánovaný čas").

PoleTypPovinnéPopis
idstringánoNode key: letters, digits, - and _ (1 to 40), stable across saves. pattern ^[A-Za-z0-9_-]{1,40}$
typetrigger_scheduledáno
namestringnieLabel on the canvas, at most 100.
notestringnieNote, at most 1 000.
positionobjectnieCanvas position.
configobjectnieStarts once at a local date and time (SmartEmailing "V plánovaný čas").
json
{
  "id": "trigger-scheduled-1",
  "type": "trigger_scheduled",
  "config": {
    "at": "2026-12-01T09:00",
    "reentry": "once"
  }
}

AutomationNode_wait

Waits. mode time: until the time spec (relative to the arrival at the node, or to the entry with countFrom scenario); preferred: until the contact's usual reading time (most frequent quarter hour of opens, else no wait); spread: releases the contacts evenly over the period; duration: value units; time_of_day: the next HH:MM; weekday: the next listed weekday at time; date: a local date and time. At most 10 years.

PoleTypPovinnéPopis
idstringánoNode key: letters, digits, - and _ (1 to 40), stable across saves. pattern ^[A-Za-z0-9_-]{1,40}$
typewaitáno
namestringnieLabel on the canvas, at most 100.
notestringnieNote, at most 1 000.
positionobjectnieCanvas position.
configobjectnieWaits. mode time: until the time spec (relative to the arrival at the node, or to the entry with countFrom scenario); preferred: until the contact's usual reading time (most frequent quarter hour of opens, else no wait); spread: releases the contacts evenly over the period; duration: value units; time_of_day: the next HH:MM; weekday: the next listed weekday at time; date: a local date and time. At most 10 years.
json
{
  "id": "wait-1",
  "type": "wait",
  "config": {
    "mode": "duration",
    "value": 2,
    "unit": "days"
  }
}

AutomationNode_webhook

Calls a URL (queued, retried 5 times 5 minutes apart on a non-2xx answer, then an action failure "other"). Merge tags work in url (percent-encoded), body (JSON-escaped when the Content-Type is JSON; POST defaults to application/json) and header values. Only public addresses, no redirects.

PoleTypPovinnéPopis
idstringánoNode key: letters, digits, - and _ (1 to 40), stable across saves. pattern ^[A-Za-z0-9_-]{1,40}$
typewebhookáno
namestringnieLabel on the canvas, at most 100.
notestringnieNote, at most 1 000.
positionobjectnieCanvas position.
configobjectnieCalls a URL (queued, retried 5 times 5 minutes apart on a non-2xx answer, then an action failure "other"). Merge tags work in url (percent-encoded), body (JSON-escaped when the Content-Type is JSON; POST defaults to application/json) and header values. Only public addresses, no redirects.
json
{
  "id": "webhook-1",
  "type": "webhook",
  "config": {
    "url": "https://crm.example.cz/hooks/postarna",
    "method": "POST",
    "body": "{\"email\": \"{{df_emailaddress}}\", \"event\": \"cart\"}",
    "headers": [
      {
        "name": "X-Source",
        "value": "postarna"
      }
    ]
  }
}

AutomationNode_whatsapp

Not available yet: needs whatsapp. Shown in the palette, saving reports "unavailable".

PoleTypPovinnéPopis
idstringánoNode key: letters, digits, - and _ (1 to 40), stable across saves. pattern ^[A-Za-z0-9_-]{1,40}$
typewhatsappáno
namestringnieLabel on the canvas, at most 100.
notestringnieNote, at most 1 000.
positionobjectnieCanvas position.
configobjectnieNot available yet: needs whatsapp. Shown in the palette, saving reports "unavailable".

AutomationPass

A contact that went through a node (SmartEmailing's "Kontakty, které prošly uzlem").

PoleTypPovinnéPopis
atstringáno
contactobjectáno
outcomestringáno
branchone of: next, yes, no, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, nulláno
nextNodestring or nulláno

AutomationReport

PoleTypPovinnéPopis
nodesarray of AutomationReportRowáno
selectedEmailMetricsáno
selectedKeysarray of stringáno
webhooksarray of objectáno

AutomationReportRow

Statistics of a scenario: one row per e-mail node (metrics as the e-mail statistics), conversions per currency.

PoleTypPovinnéPopis
nodeKeystringáno
namestringáno
metricsEmailMetricsáno
conversionsarray of objectáno
conversionRatenumberáno

AutomationRun

PoleTypPovinnéPopis
idstringáno
contactobjectáno
statusAutomationRunStatusáno
nodestring or nulláno
entryKeystringáno
enteredAtstringáno
dueAtstring or nulláno
finishedAtstring or nulláno
exitReasonstring or nulláno
stepsarray of objectánoThe real steps (automation_steps): reason = why a step was skipped or failed, messageId = the e-mail it queued.
triggerstring or nullnieThe trigger node the run came in through.

AutomationRunStatus

one of: active, completed, exited

AutomationStats

PoleTypPovinnéPopis
enterednumberáno
activenumberáno
sentnumberáno

AutomationStatus

one of: active, draft, paused

AutomationStepOutcome

one of: expired, queued, failed, skipped, goal, reset, end, yes, no, entered, passed, variant, released, jumped

AutomationTest

POST /automations/{id}/test: one dry pass over the current data; nothing is written or sent.

PoleTypPovinnéPopis
scopeAutomationTestScopeáno
daysnumber or nullánoReplayed window of an event trigger, null for the other scopes.
sincestring or nullánoStart of the replayed window (ISO), null for the other scopes.
testedAtstringáno
enterednumberáno
waitingnumberáno
leftnumberáno
nodesmap of AutomationNodeTestánoEvery node of the tested graph by its key.

AutomationTestInput

PoleTypPovinnéPopis
graphAutomationGraphnieThe editor's graph; the stored graph when omitted.
daysnumbernie1 to AUTOMATION_TEST_MAX_DAYS, default AUTOMATION_TEST_MAX_DAYS.

AutomationTestScope

one of: contacts, events, today, mixed

AutomationTrace

PoleTypPovinnéPopis
contactIdstringáno
emailstringáno
mayEnterbooleanáno
reasonsarray of stringánoWhy the contact may not enter: status, suppressed, weak_consent, shop, exception_expired.
triggerstringáno
offeredbooleanáno
eventAtstring or nulláno
stepsarray of AutomationTraceStepáno
resultone of: waiting, left, holding, goal, end, limitáno

AutomationTraceInput

PoleTypPovinnéPopis
contactIdstringnie
emailstringnie
graphAutomationGraphnie
triggerKeystringnie
daysnumbernie

AutomationTraceStep

POST /automations/{id}/trace: the way of one contact through the scenario, nothing written or sent.

PoleTypPovinnéPopis
nodestringáno
typeAutomationNodeTypeáno
outcomestringáno
branchone of: next, yes, no, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, nulláno
atstringáno
noteobject or nulláno

AutomationValidation

PoleTypPovinnéPopis
errorsarray of AutomationIssueáno
incompletearray of AutomationIssueáno

AutomationVersion

A saved version of a graph (every save keeps one).

PoleTypPovinnéPopis
versionnumberáno
statusAutomationStatusáno
savedAtstringáno
savedBystringáno
nodesnumberáno
currentbooleanáno

ConditionGroup

The definition of a condition, goal or trigger filter: the same tree as a segment, whose rules may also be automation conditions. Every rule may carry negate. Rules with a period take {from, to} time specs.

PoleTypPovinnéPopis
typegroupáno
matchone of: all, anyánoall = AND, any = OR.
rulesarray of ConditionGroup or SegmentRule_field or SegmentRule_list or SegmentRule_order_count or SegmentRule_order_value or SegmentRule_last_order or SegmentRule_engagement or SegmentRule_purpose or SegmentRule_custom_field or SegmentRule_campaign or SegmentRule_order_attribute or SegmentRule_segment or SegmentRule_list_label or SegmentRule_opens or SegmentRule_product_bought or SegmentRule_web_visit or SegmentRule_web_attribute or ConditionRule_contact_in_automation or ConditionRule_contact_in_list or ConditionRule_contact_in_any_list or ConditionRule_contact_in_list_label or ConditionRule_contact_purpose or ConditionRule_contact_origin or ConditionRule_contact_field or ConditionRule_contact_anniversary or ConditionRule_sent_email or ConditionRule_sent_emails_count or ConditionRule_opened_email or ConditionRule_opened_emails_count or ConditionRule_cart_items_count or ConditionRule_day_of_month or ConditionRule_day_of_week or ConditionRule_hour_of_day or ConditionRule_ordered_attribute or ConditionRule_ordered_product or ConditionRule_ordered_product_by_attribute or ConditionRule_orders_total_value or ConditionRule_orders_count or ConditionRule_promo_code or ConditionRule_script or ConditionRule_tracking_url_clicked or ConditionRule_tracking_url_clicked_any or ConditionRule_visited_attribute or ConditionRule_visited_url or ConditionRule_feed_item_count or ConditionRule_ab_test_winner or ConditionRule_ab_test_significant or ConditionRule_engagement_score or ConditionRule_email_activity or ConditionRule_passed_node or ConditionRule_ordered_since_entry or ConditionRule_event_attribute or ConditionRule_cart_items or ConditionRule_score or ConditionRule_seen_viber or ConditionRule_delivered_viber or ConditionRule_sent_sms or ConditionRule_contact_viber_state or ConditionRule_contact_preferenceánoRules and subgroups.

ConditionRule_ab_test_significant

The difference between nodes A and B is significant (95 %, two-proportion z-test).

PoleTypPovinnéPopis
typeab_test_significantáno
metricone of: open_rate, click_rateánoMetric.
nodeAstringánosend_email node key.
nodeBstringánoAnother send_email node key.
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").

ConditionRule_ab_test_winner

Node A beats node B (two send_email nodes of this graph) in open or click rate.

PoleTypPovinnéPopis
typeab_test_winneráno
metricone of: open_rate, click_rateánoMetric.
nodeAstringánosend_email node key.
nodeBstringánoAnother send_email node key.
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").

ConditionRule_cart_items

Old name of cart_items_count (still accepted).

PoleTypPovinnéPopis
typecart_itemsáno
operatorone of: eq, lt, lte, gt, gteánoOperator.
valueanyánoWhole number.
shopIdstring or nullnie
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "cart_items",
  "operator": "gt",
  "value": 0
}

ConditionRule_cart_items_count

Items in the contact's cart (a cart not changed since an order counts as empty).

PoleTypPovinnéPopis
typecart_items_countáno
operatorone of: eq, lt, lte, gt, gteánoOperator.
valueanyánoWhole number.
shopIdstring or nullnieShop, null = any cart.
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "cart_items_count",
  "operator": "gt",
  "value": 0,
  "shopId": "1"
}

ConditionRule_contact_anniversary

Today is (or is offset from) the contact's birthday, name day or a date custom field. nameDay: the contact's own name day, else the calendar of the first name (calendar auto = Slovak for language sk, else by the shop's language).

PoleTypPovinnéPopis
typecontact_anniversaryáno
fieldstringánobirthday, nameDay or cf:<id> of a date field.
calendarone of: auto, cz, sknienameDay only.
relationone of: now, offsetnienow = today; offset = shifted. default now
offsetobjectnieWith relation offset, at least 15 minutes.
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "contact_anniversary",
  "field": "nameDay",
  "calendar": "auto",
  "relation": "now"
}

ConditionRule_contact_field

A contact field (system field or cf:<id>) compared with a value. Text: eq, filled, empty, gt, gte, lt, lte, starts, contains; dates: date_eq, date_filled, date_empty, date_after, date_from, date_before, date_until with a time spec value; numbers: eq, gt, gte, lt, lte, filled, empty; gender: eq (f / m); checkbox: checked, unchecked; choice: eq_option; multi: has_option.

PoleTypPovinnéPopis
typecontact_fieldáno
fieldstringánoSystem field (affiliateId, domain, email, language, firstName, mobile, city, birthday, vocativeFirstName, salutation, salutationFormal, vocativeLastName, gender, note, lastName, postalCode, company, nameDay, phone, titleBefore, titleAfter, street, createdAt, country, companyId) or cf:<id>.
operatorstringánoOperator for the field kind.
valueanynieText, number, f / m, an option, or a time spec for dates.
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "contact_field",
  "field": "city",
  "operator": "eq",
  "value": "Brno"
}

ConditionRule_contact_in_any_list

Contact is in any list in a state.

PoleTypPovinnéPopis
typecontact_in_any_listáno
stateone of: confirmed, unsubscribednieState, default confirmed. default confirmed
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
periodobjectnieTime window of the rule: from and to are time specs relative to now (null = unbounded).
json
{
  "type": "contact_in_any_list"
}

ConditionRule_contact_in_automation

Contact is in an automation (another active run of it). automationId null = this automation (not allowed in a trigger filter).

PoleTypPovinnéPopis
typecontact_in_automationáno
automationIdstring or nullnie
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "contact_in_automation",
  "automationId": "201"
}

ConditionRule_contact_in_list

Contact is in a list in a state.

PoleTypPovinnéPopis
typecontact_in_listáno
listIdstringánoList id.
stateone of: confirmed, unsubscribednieState, default confirmed. default confirmed
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
periodobjectnieTime window of the rule: from and to are time specs relative to now (null = unbounded).
json
{
  "type": "contact_in_list",
  "listId": "101",
  "state": "confirmed"
}

ConditionRule_contact_in_list_label

Contact is in a list with this label.

PoleTypPovinnéPopis
typecontact_in_list_labeláno
labelstringánoLabel, at most 40.
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
periodobjectnieTime window of the rule: from and to are time specs relative to now (null = unbounded).
json
{
  "type": "contact_in_list_label",
  "label": "newsletter"
}

ConditionRule_contact_origin

Contact came from a source.

PoleTypPovinnéPopis
typecontact_origináno
originone of: erp_order, signup_form, import, api, manual, shoptet, smartemailingánoSource.
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "contact_origin",
  "origin": "signup_form"
}

ConditionRule_contact_preference

Not available yet: Poštárna has no preferences data. Saving a graph with it reports "unavailable".

PoleTypPovinnéPopis
typecontact_preferenceáno

ConditionRule_contact_purpose

Contact has a valid consent with a purpose.

PoleTypPovinnéPopis
typecontact_purposeáno
purposeIdstringánoPurpose id.
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
periodobjectnieTime window of the rule: from and to are time specs relative to now (null = unbounded).
json
{
  "type": "contact_purpose",
  "purposeId": "51"
}

ConditionRule_contact_viber_state

Not available yet: Poštárna has no viber data. Saving a graph with it reports "unavailable".

PoleTypPovinnéPopis
typecontact_viber_stateáno

ConditionRule_day_of_month

Today is one of these days of the month.

PoleTypPovinnéPopis
typeday_of_montháno
daysarray of integeránoDays 1 to 31. min 1 items
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "day_of_month",
  "days": [
    1,
    15
  ]
}

ConditionRule_day_of_week

Today is one of these weekdays (1 = Monday).

PoleTypPovinnéPopis
typeday_of_weekáno
weekdaysarray of integeráno1 to 7. min 1 items
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "day_of_week",
  "weekdays": [
    6,
    7
  ]
}

ConditionRule_delivered_viber

Not available yet: Poštárna has no viber data. Saving a graph with it reports "unavailable".

PoleTypPovinnéPopis
typedelivered_viberáno

ConditionRule_email_activity

The contact opened / clicked an e-mail of this run (nodeId null = any). Run only. (not allowed in trigger filters (needs a run))

PoleTypPovinnéPopis
typeemail_activityáno
operatorone of: opened, not_opened, clicked, not_clickedánoOperator.
nodeIdstring or nullniesend_email node key.
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "email_activity",
  "operator": "opened",
  "nodeId": null
}

ConditionRule_engagement_score

Engagement level of the contact.

PoleTypPovinnéPopis
typeengagement_scoreáno
levelsarray of one of: N, A, B, C, D, EánoLevels. min 1 items
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "engagement_score",
  "levels": [
    "A",
    "B"
  ]
}

ConditionRule_event_attribute

A value of the data of the custom event that started the run (data of POST /contact-events type custom, or of a fire_event node of another automation). Other triggers have no such data. Run only. (not allowed in trigger filters (needs a run))

PoleTypPovinnéPopis
typeevent_attributeáno
attributestringánoName.
operatorone of: eq, contains, starts, gt, gte, lt, lte, filled, emptyánoOperator.
valuestringnieText.
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "event_attribute",
  "attribute": "plan",
  "operator": "eq",
  "value": "gold"
}

ConditionRule_feed_item_count

Number of items of a feed.

PoleTypPovinnéPopis
typefeed_item_countáno
feedIdstringánoFeed id.
operatorone of: eq, lt, lte, gt, gteánoOperator.
valueanyánoWhole number.
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "feed_item_count",
  "feedId": "71",
  "operator": "gt",
  "value": 0
}

ConditionRule_hour_of_day

The current hour (local) is one of these.

PoleTypPovinnéPopis
typehour_of_dayáno
hoursarray of integeráno0 to 23. min 1 items
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "hour_of_day",
  "hours": [
    8,
    9,
    10
  ]
}

ConditionRule_opened_email

The contact opened an e-mail of a node.

PoleTypPovinnéPopis
typeopened_emailáno
emailNodeobjectánoAn e-mail node: automationId null (or left out) = a send_email node of this graph, else the id of another automation of the company and its node key.
periodobjectnieTime window of the rule: from and to are time specs relative to now (null = unbounded).
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "opened_email",
  "emailNode": {
    "automationId": "201",
    "nodeKey": "email-1"
  }
}

ConditionRule_opened_emails_count

Number of e-mails the contact opened.

PoleTypPovinnéPopis
typeopened_emails_countáno
operatorone of: eq, lt, lte, gt, gteánoOperator.
valueanyánoWhole number.
kindsarray of one of: automation, campaign, transactionalnieKinds.
periodobjectnieTime window of the rule: from and to are time specs relative to now (null = unbounded).
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "opened_emails_count",
  "operator": "eq",
  "value": 0
}

ConditionRule_ordered_attribute

A value of an order: code, state, status, sourceStatus, currency, companyId, totalWithVat, totalWithoutVat, or any delivery data field.

PoleTypPovinnéPopis
typeordered_attributeáno
attributestringánoAttribute name: letters, digits and _ . : - (at most 60).
attributeTypeone of: text, date, numbernieHow to compare. default text
operatorone of: eq, filled, gt, gte, lt, lte, startsánoOperator.
valueanynieText, a number, or a time spec for attributeType date.
limitToTriggerEventbooleannieOnly the order of the run's own trigger event (order triggers).
periodobjectnieTime window of the rule: from and to are time specs relative to now (null = unbounded).
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "ordered_attribute",
  "attribute": "currency",
  "operator": "eq",
  "value": "CZK"
}

ConditionRule_ordered_product

The contact ordered a product by id (product code) or name.

PoleTypPovinnéPopis
typeordered_productáno
productFieldone of: id, namenieField, default id. default id
operatorone of: eq, starts, containsánoOperator.
valuestringánoText.
limitToTriggerEventbooleannieOnly the order of the run's own trigger event (order triggers).
periodobjectnieTime window of the rule: from and to are time specs relative to now (null = unbounded).
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "ordered_product",
  "productField": "id",
  "operator": "eq",
  "value": "SKU-001"
}

ConditionRule_ordered_product_by_attribute

The contact ordered a product with a feed attribute.

PoleTypPovinnéPopis
typeordered_product_by_attributeáno
attributestringánoAttribute name: letters, digits and _ . : - (at most 60).
attributeTypeone of: text, date, numbernieHow to compare. default text
operatorone of: eq, filled, gt, gte, lt, lte, startsánoOperator.
valueanynieText, a number, or a time spec for attributeType date.
limitToTriggerEventbooleannieOnly the order of the run's own trigger event (order triggers).
periodobjectnieTime window of the rule: from and to are time specs relative to now (null = unbounded).
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "ordered_product_by_attribute",
  "attribute": "brand",
  "operator": "eq",
  "value": "Example"
}

ConditionRule_ordered_since_entry

The contact ordered since the run entered. Run only. (not allowed in trigger filters (needs a run))

PoleTypPovinnéPopis
typeordered_since_entryáno
operatorone of: yes, noánoOperator.
shopIdstring or nullnie
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "ordered_since_entry",
  "operator": "yes",
  "shopId": null
}

ConditionRule_orders_count

Number of orders.

PoleTypPovinnéPopis
typeorders_countáno
operatorone of: eq, lt, lte, gt, gteánoOperator.
valueanyánoWhole number.
paidone of: any, yes, noniePaid filter, default any. default any
statesarray of one of: received, processing, shipped, cancelled, unknownnieOrder states (SmartEmailing names).
shopIdstring or nullnie
limitToTriggerEventbooleannieOnly the order of the run's own trigger event (order triggers).
periodobjectnieTime window of the rule: from and to are time specs relative to now (null = unbounded).
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "orders_count",
  "operator": "eq",
  "value": 1,
  "paid": "any"
}

ConditionRule_orders_total_value

Sum (or avg, min, max) of the contact's orders with VAT in one currency.

PoleTypPovinnéPopis
typeorders_total_valueáno
operatorone of: eq, lt, lte, gt, gteánoOperator.
valueanyánoNumber.
aggregateone of: sum, avg, min, maxnieAggregate, default sum. default sum
currencystringánoCurrency of a shop of the company (CZK, EUR).
shopIdstring or nullnie
limitToTriggerEventbooleannieOnly the order of the run's own trigger event (order triggers).
periodobjectnieTime window of the rule: from and to are time specs relative to now (null = unbounded).
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "orders_total_value",
  "operator": "gte",
  "value": "3000",
  "currency": "CZK"
}

ConditionRule_passed_node

This run went (or did not go) through a node. Run only. (not allowed in trigger filters (needs a run))

PoleTypPovinnéPopis
typepassed_nodeáno
operatorone of: passed, not_passedánoOperator.
nodeIdstringánoNode key.
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").

ConditionRule_promo_code

The contact got (assigned) or used a coupon of a stack.

PoleTypPovinnéPopis
typepromo_codeáno
stateone of: assigned, usedánoState.
stackIdstringánoCoupon stack id.
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "promo_code",
  "state": "used",
  "stackId": "81"
}

ConditionRule_score

Not available yet: Poštárna has no scoring data. Saving a graph with it reports "unavailable".

PoleTypPovinnéPopis
typescoreáno

ConditionRule_script

A Twig script; true when it prints {{ result.returnTrue() }}. Not allowed in trigger filters. (not allowed in trigger filters (needs a run))

PoleTypPovinnéPopis
typescriptáno
scriptstringánoTwig source, at most 20 000 characters.
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "script",
  "script": "{% if contact.city == 'Brno' %}{{ result.returnTrue() }}{% endif %}"
}

ConditionRule_seen_viber

Not available yet: Poštárna has no viber data. Saving a graph with it reports "unavailable".

PoleTypPovinnéPopis
typeseen_viberáno

ConditionRule_sent_email

An e-mail was sent to the contact: of one node (mode node) or of an automation (mode automation, automationId null = any).

PoleTypPovinnéPopis
typesent_emailáno
modeone of: node, automationánoMode.
emailNodeobjectnieAn e-mail node: automationId null (or left out) = a send_email node of this graph, else the id of another automation of the company and its node key.
automationIdstring or nullnie
periodobjectnieTime window of the rule: from and to are time specs relative to now (null = unbounded).
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "sent_email",
  "mode": "node",
  "emailNode": {
    "automationId": "201",
    "nodeKey": "email-1"
  }
}

ConditionRule_sent_emails_count

Number of e-mails sent to the contact.

PoleTypPovinnéPopis
typesent_emails_countáno
operatorone of: eq, lt, lte, gt, gteánoOperator.
valueanyánoWhole number 0 to 10 000 000.
kindsarray of one of: automation, campaign, transactionalnieKinds, default automation and campaign.
periodobjectnieTime window of the rule: from and to are time specs relative to now (null = unbounded).
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "sent_emails_count",
  "operator": "gte",
  "value": 3
}

ConditionRule_sent_sms

Not available yet: Poštárna has no sms data. Saving a graph with it reports "unavailable".

PoleTypPovinnéPopis
typesent_smsáno

ConditionRule_tracking_url_clicked

The contact clicked a link in an e-mail of a node.

PoleTypPovinnéPopis
typetracking_url_clickedáno
emailNodeobjectánoAn e-mail node: automationId null (or left out) = a send_email node of this graph, else the id of another automation of the company and its node key.
linkstringánoURL (at most 2 000).
compareParamsbooleannieCompare query parameters too, default true. default true
periodobjectnieTime window of the rule: from and to are time specs relative to now (null = unbounded).
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "tracking_url_clicked",
  "emailNode": {
    "automationId": "201",
    "nodeKey": "email-1"
  },
  "link": "https://www.example.cz/akce"
}

ConditionRule_tracking_url_clicked_any

The contact clicked any link of a node (emailNode null = any e-mail node of this automation).

PoleTypPovinnéPopis
typetracking_url_clicked_anyáno
emailNodeobject or nullnie
periodobjectnieTime window of the rule: from and to are time specs relative to now (null = unbounded).
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "tracking_url_clicked_any",
  "emailNode": null
}

ConditionRule_visited_attribute

A web tracking visit with an attribute.

PoleTypPovinnéPopis
typevisited_attributeáno
urlstringnieURL.
urlOperatorone of: eq, startsnieDefault eq. default eq
visitTypeone of: home, article, cart, product, category, search, order_done, othernieVisit type.
periodobjectnieTime window of the rule: from and to are time specs relative to now (null = unbounded).
attributestringánoAttribute name: letters, digits and _ . : - (at most 60).
attributeTypeone of: text, date, numbernieHow to compare. default text
valueanynieText, a number, or a time spec for attributeType date.
operatorone of: starts, gt, gte, lt, lte, eqánoOperator.
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "visited_attribute",
  "attribute": "category",
  "operator": "eq",
  "value": "Káva"
}

ConditionRule_visited_url

A web tracking visit of a URL.

PoleTypPovinnéPopis
typevisited_urláno
urlstringnieURL.
urlOperatorone of: eq, starts, containsnieDefault eq. default eq
visitTypeone of: home, article, cart, product, category, search, order_done, othernieVisit type.
periodobjectnieTime window of the rule: from and to are time specs relative to now (null = unbounded).
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "visited_url",
  "url": "https://www.example.cz/kosik",
  "urlOperator": "starts"
}

EmailMetrics

Counts of e-mails and their events (server core/stats.py). Rates as SmartEmailing: openRate, unsubscribeRate and complaintRate over the delivered e-mails, ctr and bounceRate over the sent ones; ctor = unique clicks / unique opens. Test e-mails never count.

PoleTypPovinnéPopis
sentnumberáno
deliverednumberánosent - undelivered
undeliverednumberánoHard or soft bounce (SE "Nedoručeno").
bouncednumberáno
softBouncednumberáno
opensnumberáno
uniqueOpensnumberáno
repeatedOpensnumberáno
machineOpensnumberánoE-mails whose pixel only a machine fetched (Apple Mail Privacy Protection, security gateways): whether a person read them is unknown, so they are in no open count or rate.
clicksnumberáno
uniqueClicksnumberáno
unsubscribednumberáno
complainednumberáno
queuednumberáno
failednumberáno
skippednumberáno
openRatenumberáno
ctrnumberáno
ctornumberáno
unsubscribeRatenumberáno
bounceRatenumberáno
complaintRatenumberáno
deliveryRatenumberánodelivered / sent

Error

PoleTypPovinnéPopis
errorobjectáno
json
{
  "error": {
    "code": "validation",
    "message": "email"
  }
}

GridTagsInput

Bulk label change: add and remove, or tags = the new labels of every row.

PoleTypPovinnéPopis
idsarray of stringáno
addarray of stringnie
removearray of stringnie
tagsarray of stringnie

SegmentRule_campaign

Delivered / opened / clicked a campaign (not_* also matches contacts that never got it); linkUrl narrows clicks to one link.

PoleTypPovinnéPopis
typecampaignáno
operatorone of: received, not_received, opened, not_opened, clicked, not_clickedánoOperator.
campaignIdstring or nullánoCampaign id; null only with received = an e-mail of any campaign.
linkUrlstringnieclicked / not_clicked only.
daysstring or nullnieLast N days or null.
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "campaign",
  "operator": "opened",
  "campaignId": "121",
  "days": null
}

SegmentRule_custom_field

A custom field. kind must match the field type: text and textarea -> text, number -> number, date -> date, checkbox -> bool, select and radio -> choice, multi_checkbox -> multi_choice (400 definition.<path>.kind otherwise). Operators: text like the text fields, number gte/lte/eq/is_empty/is_not_empty, date like the date fields, bool is_true/is_false, choice is/is_not, multi_choice contains_any/contains_all/not_contains_any.

PoleTypPovinnéPopis
typecustom_fieldáno
fieldIdstringánoCustom field id (without cf:).
kindone of: bool, choice, date, multi_choice, number, textánoKind of the field type (see above).
operatorstringánoOperator for the kind.
valuestringnieValue (string).
valuesarray of stringnieOptions (multi_choice).
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "custom_field",
  "fieldId": "62",
  "kind": "text",
  "operator": "equals",
  "value": "VIP"
}

SegmentRule_engagement

Engagement level A (best) to E, N = new.

PoleTypPovinnéPopis
typeengagementáno
operatorone of: in, not_inánoOperator.
valuesarray of one of: A, B, C, D, E, NánoLevels. min 1 items
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "engagement",
  "operator": "in",
  "values": [
    "A",
    "B"
  ]
}

SegmentRule_field

A contact field compared with a value. Text operators ignore case and diacritics; date operators count calendar days of the company. Text fields: email, firstName, lastName, city, company, companyId, phone, mobile, street, postalCode, note, country. Enum fields: status (pending/subscribed/unsubscribed/bounced/complained/customer), gender (f/m), language (cs/sk), source (erp_order/signup_form/import/api/manual/shoptet/smartemailing), consentBasis (soft_opt_in_customer/double_opt_in/imported/none). Date fields: createdAt, lastOpenAt, lastClickAt, lastSentAt, statusAt, consentAt.

PoleTypPovinnéPopis
typefieldáno
fieldone of: email, firstName, lastName, city, company, companyId, phone, mobile, street, postalCode, note, country, status, gender, language, source, consentBasis, createdAt, lastOpenAt, lastClickAt, lastSentAt, statusAt, consentAtánoContact field.
operatorone of: contains, not_contains, equals, not_equals, starts_with, ends_with, is_empty, is_not_empty, is, is_not, in_last_days, not_in_last_days, before, after, until, sinceánoText: contains, not_contains, equals, not_equals, starts_with, ends_with, is_empty, is_not_empty; enum: is, is_not; date: in_last_days, not_in_last_days, before, after, until, since, is_empty, is_not_empty.
valuestringánoAlways a string: the text, the enum value, a number of days ("30") for in_last_days / not_in_last_days, or a date YYYY-MM-DD for before / after; "" for is_empty / is_not_empty.
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "field",
  "field": "lastOpenAt",
  "operator": "in_last_days",
  "value": "60"
}

SegmentRule_last_order

The last completed order: within / older than N days, or before / after a date.

PoleTypPovinnéPopis
typelast_orderáno
operatorone of: in_last_days, older_than_days, before, afteránoOperator.
valuestringánoDays "1" to "3650" or a date YYYY-MM-DD.
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
shopIdstring or nullnieOnly orders of this shop (null = any).
currencystring or nullnieOnly orders in this currency (CZK or EUR; it must be the currency of shopId when both are set).
json
{
  "type": "last_order",
  "operator": "older_than_days",
  "value": "180"
}

SegmentRule_list

Membership in a list. in / not_in = confirmed or unconfirmed member; status_is compares the exact state; added_before / added_after compare the day the contact was added; longer_than_days / shorter_than_days: in the list longer / shorter than N days.

PoleTypPovinnéPopis
typelistáno
operatorone of: in, not_in, added_before, added_after, status_is, longer_than_days, shorter_than_daysánoOperator.
listIdstringánoList id.
valuestringniestatus_is: confirmed, unconfirmed, unsubscribed, removed; added_: YYYY-MM-DD; _than_days: days "1" to "3650".
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "list",
  "operator": "in",
  "listId": "101"
}

SegmentRule_list_label

Confirmed or unconfirmed member of any list with this label.

PoleTypPovinnéPopis
typelist_labeláno
operatorone of: inánoOperator.
labelstringánoLabel, 1 to 40.
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "list_label",
  "operator": "in",
  "label": "vip"
}

SegmentRule_opens

Number of the contact's e-mails (campaigns and automations) with an open.

PoleTypPovinnéPopis
typeopensáno
operatorone of: eq, gt, lt, gte, lteánoOperator.
valuestringánoCount "0" to "100000".
daysstring or nullnieOnly the last N days, "1" to "3650" (null = any time).
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "opens",
  "operator": "gte",
  "value": "3",
  "days": "90"
}

SegmentRule_order_attribute

A completed order has an item whose product code, category, brand or another item attribute (as stored on the order item) equals the value; with scope order an attribute of the order itself.

PoleTypPovinnéPopis
typeorder_attributeáno
operatorone of: isánoOperator.
scopeone of: item, ordernieitem (default) or order. default item
attributestringánoitem: productCode, category, brand or any attribute name; order: status, companyId, deliveryCity, deliveryCountry, deliveryZip, deliveryCompany.
valuestringánoExact value, at most 200 characters.
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
shopIdstring or nullnieOnly orders of this shop (null = any).
currencystring or nullnieOnly orders in this currency (CZK or EUR; it must be the currency of shopId when both are set).
daysstring or nullnieOnly the last N days, "1" to "3650" (null = any time).
json
{
  "type": "order_attribute",
  "operator": "is",
  "attribute": "brand",
  "value": "Example"
}

SegmentRule_order_count

Number of completed orders.

PoleTypPovinnéPopis
typeorder_countáno
operatorone of: gte, lte, eqánoOperator.
valuestringánoCount "0" to "100000".
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
shopIdstring or nullnieOnly orders of this shop (null = any).
currencystring or nullnieOnly orders in this currency (CZK or EUR; it must be the currency of shopId when both are set).
daysstring or nullnieOnly the last N days, "1" to "3650" (null = any time).
json
{
  "type": "order_count",
  "operator": "gte",
  "value": "2",
  "shopId": null,
  "currency": null,
  "days": "365"
}

SegmentRule_order_value

Sum of completed orders with VAT in one currency (CZK and EUR are never added up).

PoleTypPovinnéPopis
typeorder_valueáno
operatorone of: gte, lteánoOperator.
amountstringánoAmount, at most 2 decimals, e.g. "1500.50".
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
shopIdstring or nullnieOnly orders of this shop (null = any).
currencystring or nullánoOnly orders in this currency (CZK or EUR; it must be the currency of shopId when both are set).
daysstring or nullnieOnly the last N days, "1" to "3650" (null = any time).
json
{
  "type": "order_value",
  "operator": "gte",
  "amount": "2000",
  "currency": "CZK",
  "shopId": "1",
  "days": "365"
}

SegmentRule_product_bought

A completed order has an item whose name contains the text or whose product code equals it (case and diacritics ignored).

PoleTypPovinnéPopis
typeproduct_boughtáno
operatorone of: isánoOperator.
valuestringánoPart of the name or the code, at most 200.
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
shopIdstring or nullnieOnly orders of this shop (null = any).
currencystring or nullnieOnly orders in this currency (CZK or EUR; it must be the currency of shopId when both are set).
daysstring or nullnieOnly the last N days, "1" to "3650" (null = any time).
json
{
  "type": "product_bought",
  "operator": "is",
  "value": "Espresso",
  "days": "30"
}

SegmentRule_purpose

A valid (not withdrawn, within its validity) consent with a purpose of processing.

PoleTypPovinnéPopis
typepurposeáno
operatorone of: has, not_hasánoOperator.
purposeIdstringánoPurpose id.
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "purpose",
  "operator": "has",
  "purposeId": "51"
}

SegmentRule_segment

Member of another segment of the same shop (never itself; chains at most 5 deep, no cycles).

PoleTypPovinnéPopis
typesegmentáno
operatorone of: in, not_in, added_before, added_afteránoOperator.
segmentIdstringánoSegment id.
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "segment",
  "operator": "not_in",
  "segmentId": "91"
}

SegmentRule_web_attribute

A page visit whose attribute matches: visitType = the page type, other names = the visit's own attributes; gt to lte compare numbers.

PoleTypPovinnéPopis
typeweb_attributeáno
attributestringánoAttribute name.
operatorone of: is, starts_with, gt, gte, lt, lteánoOperator.
valuestringánoAt most 200 (a number for gt to lte).
daysstring or nullnieOnly the last N days, "1" to "3650" (null = any time).
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "web_attribute",
  "attribute": "visitType",
  "operator": "is",
  "value": "product"
}

SegmentRule_web_visit

A page visit recorded by the shop's script or the API; any = any page.

PoleTypPovinnéPopis
typeweb_visitáno
operatorone of: any, is, starts_with, containsánoOperator.
urlstringnieNot with any; at most 2 000.
daysstring or nullnieOnly the last N days, "1" to "3650" (null = any time).
negatebooleannietrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "web_visit",
  "operator": "contains",
  "url": "/kava/",
  "days": "30"
}

Sender

PoleTypPovinnéPopis
idstringáno
shopIdstringáno
namestringáno
emailstringáno
replyTostringáno
verifiedbooleanánoDomain verified (SPF, DKIM, DMARC); only verified senders can send.
isDefaultbooleanáno

TimeSpec

A moment relative to a base moment (SmartEmailing's "Varianta výběru času"). The base is the moment the contact arrived at the node (or entered the scenario, countFrom scenario), or now in conditions. Days and longer keep the local wall time; months are calendar months. In waits only calendar, interval with sign "+" and event without the words yesterday and previous are allowed. Preview any spec with POST /automations/resolve-time.

object