Přeskočit na obsah
API dokumentace

Reference automatizací

Vše na této stránce se generuje z kódu validátoru Poštárny a testy ověřují, že každý příklad validátor přijme, že bez povinného pole automatizace nejde zapnout a že výčtové hodnoty odpovídají validátoru. Stejná schémata jsou v OpenAPI jako AutomationNode_<typ>, ConditionRule_<typ>, SegmentRule_<typ> a TimeSpec.

Technické popisy polí jsou anglicky, stejně jako v OpenAPI.

Uzly

Každý uzel: {"id": "<klíč>", "type": "<typ>", "name"?, "note"?, "position"?, "config": {...}}. Pole se sloupcem „Povinné“ = ano musí být vyplněná, jinak automatizace nejde zapnout ani otestovat (graf se ale uloží, viz validace). Další pole bývají povinná jen u některých hodnot (například listId u události list_added); popis to uvádí.

Spouštěče

trigger_now

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

Výstupy: next · SmartEmailing: run

PoleTypPovinnéPopis
filterConditionGroup or nullneWho may enter: a condition tree (segment rules and automation conditions except the run only ones). null or left out = every mailable contact of the shop.
reentryone of: parallel, restart, skip, onceneWhat happens when a contact meets the trigger again: parallel (one more run, at most the company's limit of parallel runs; default for new triggers), restart (the new entry ends the running one), skip (nobody enters while their run is active; default of triggers saved without the setting), once (one run per contact for ever).
json
{
  "id": "trigger-now-1",
  "type": "trigger_now",
  "config": {
    "reentry": "once"
  }
}

trigger_scheduled

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

Výstupy: next · Povinné pro zapnutí: at · SmartEmailing: scheduled-time

PoleTypPovinnéPopis
atstringanoYYYY-MM-DDTHH:MM, local time of the company. pattern ^[0-9]{4}-[0-9]{2}-[0-9]{2}T([01][0-9]|2[0-3]):[0-5][0-9]$
filterConditionGroup or nullneWho may enter: a condition tree (segment rules and automation conditions except the run only ones). null or left out = every mailable contact of the shop.
reentryone of: parallel, restart, skip, onceneWhat happens when a contact meets the trigger again: parallel (one more run, at most the company's limit of parallel runs; default for new triggers), restart (the new entry ends the running one), skip (nobody enters while their run is active; default of triggers saved without the setting), once (one run per contact for ever).
json
{
  "id": "trigger-scheduled-1",
  "type": "trigger_scheduled",
  "config": {
    "at": "2026-12-01T09:00",
    "reentry": "once"
  }
}

trigger_repeat

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

Výstupy: next · Povinné pro zapnutí: every · SmartEmailing: repeat

PoleTypPovinnéPopis
everyobjectanoInterval, at least 15 minutes, at most 10 years.
startAtstringneYYYY-MM-DDTHH:MM (local). pattern ^[0-9]{4}-[0-9]{2}-[0-9]{2}T([01][0-9]|2[0-3]):[0-5][0-9]$
stopAtstringneYYYY-MM-DDTHH:MM (local), after startAt. pattern ^[0-9]{4}-[0-9]{2}-[0-9]{2}T([01][0-9]|2[0-3]):[0-5][0-9]$
filterConditionGroup or nullneWho may enter: a condition tree (segment rules and automation conditions except the run only ones). null or left out = every mailable contact of the shop.
reentryone of: parallel, restart, skip, onceneWhat happens when a contact meets the trigger again: parallel (one more run, at most the company's limit of parallel runs; default for new triggers), restart (the new entry ends the running one), skip (nobody enters while their run is active; default of triggers saved without the setting), once (one run per contact for ever).
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"
        }
      ]
    }
  }
}

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.

Výstupy: next · Povinné pro zapnutí: event · SmartEmailing: on-event

PoleTypPovinnéPopis
eventone of: cart_updated, contact_created, order_created, order_changed, list_added, contact_updated, score_changed, action_failed, list_status_changed, automation_saved, email_sent, sms_sent, page_visit, motionlab_rendered, link_clicked, engagement_changed, custom, form_submitted, blacklisted, order_completed, subscribed, manualanoThe event. Not available yet: score_changed (scoring), automation_saved (unverified), sms_sent (sms), motionlab_rendered (motionlab).
shopIdstringneOrders, carts, visits: shop (default the automation's).
listIdstringnelist_added, list_status_changed: list id.
sourcesarray of one of: erp_order, signup_form, import, api, manual, shoptet, smartemailingnesubscribed: sources (default erp_order, signup_form, api, manual). min 1 items
stateone of: new, unpaid, paid, processing, shipped, pickup, delivered, cancelled, returned, otherneorder_changed: the new order state.
statusone of: confirmed, unsubscribed, removednelist_status_changed: the new state.
fieldFilterobjectnecontact_updated: one field and optionally its values before and after. Operators by field kind: text: any, eq, empty, filled, contains, starts; date: any, on_day, newer, until, older, from, filled, empty; number: any, gt, gte, lt, lte, filled, empty; choice: any, eq_option, filled, empty; multi: any, has_option, filled, empty; checkbox: any, checked, unchecked. Fields: affiliateId, language, firstName, mobile, city, birthday, vocativeFirstName, salutation, salutationFormal, vocativeLastName, gender, note, lastName, postalCode, company, nameDay, phone, titleBefore, titleAfter, street, country or cf:<id>.
failureTypeone of: customizationDataboxTerminate, customizationDataboxOutOfPromocodes, customizationSyntaxError, contactSetFieldFail, smsRateLimitReached, sklikError, otherneaction_failed: type.
failureNodeobjectneaction_failed: the node (automationId null = this graph).
emailNodeobjectneAn 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.
linkstringnelink_clicked: the URL (at most 2 000); empty = any link.
compareParamsbooleannelink_clicked: compare query parameters, default true.
urlstringnepage_visit: URL (at most 2 000).
urlOperatorone of: eq, startsnepage_visit: eq (default) or starts.
visitTypeone of: home, article, cart, product, category, search, order_done, othernepage_visit: type of page.
customEventstringnecustom: event name, a-z, 0-9 and - (1 to 50), not starting with se-. pattern ^[a-z0-9-]{1,50}$
formIdstringneform_submitted: form id (empty = any form).
reentryone of: parallel, restart, skip, onceneWhat happens when a contact meets the trigger again: parallel (one more run, at most the company's limit of parallel runs; default for new triggers), restart (the new entry ends the running one), skip (nobody enters while their run is active; default of triggers saved without the setting), once (one run per contact for ever).
json
{
  "id": "trigger-event-1",
  "type": "trigger_event",
  "config": {
    "event": "cart_updated",
    "shopId": "1",
    "reentry": "restart"
  }
}

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.

Výstupy: next · Povinné pro zapnutí: kind, at

PoleTypPovinnéPopis
kindone of: name_day, birthday, first_order, custom_date, holidayanoKind of date.
daysintegernefirst_order: days after the first order, 1 to 3 650. min 1, max 3650
fieldstringnecustom_date: cf:<id> of a date custom field.
datesarray of stringneholiday: days of the year MM-DD (at most 366, unique). min 1 items, max 366 items
offsetDaysintegernename_day, birthday, custom_date: shift -365 to 365 (e.g. -3 = three days before). min -365, max 365
atstringanoHH:MM local time of the daily pass. pattern ^([01][0-9]|2[0-3]):[0-5][0-9]$
reentryone of: parallel, restart, skip, onceneWhat happens when a contact meets the trigger again: parallel (one more run, at most the company's limit of parallel runs; default for new triggers), restart (the new entry ends the running one), skip (nobody enters while their run is active; default of triggers saved without the setting), once (one run per contact for ever).
json
{
  "id": "trigger-date-1",
  "type": "trigger_date",
  "config": {
    "kind": "name_day",
    "at": "08:00",
    "reentry": "parallel"
  }
}

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.

Výstupy: next · Povinné pro zapnutí: at

PoleTypPovinnéPopis
atstringanoHH:MM. pattern ^([01][0-9]|2[0-3]):[0-5][0-9]$
defaultDaysintegerne1 to 365, default 30. default 30, min 1, max 365
minDaysintegerne1 to 365, default 14. default 14, min 1, max 365
maxDaysintegerne1 to 365 and >= minDays, default 120. default 120, min 1, max 365
graceDaysintegerne0 to 365, default 0. default 0, min 0, max 365
reentryone of: parallel, restart, skip, onceneWhat happens when a contact meets the trigger again: parallel (one more run, at most the company's limit of parallel runs; default for new triggers), restart (the new entry ends the running one), skip (nobody enters while their run is active; default of triggers saved without the setting), once (one run per contact for ever).
json
{
  "id": "trigger-reorder-1",
  "type": "trigger_reorder",
  "config": {
    "at": "10:00",
    "defaultDays": 30,
    "minDays": 14,
    "maxDays": 120,
    "graceDays": 3,
    "reentry": "parallel"
  }
}

Operátory

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.

Výstupy: yes, no · Povinné pro zapnutí: definition · SmartEmailing: condition

PoleTypPovinnéPopis
definitionConditionGroupano
waitUntilMetobjectneWait for the definition up to this long (15 minutes to 10 years).
waitUpToobjectneOlder form of waitUntilMet (hours or days, at most 30 days).
json
{
  "id": "condition-1",
  "type": "condition",
  "config": {
    "definition": {
      "type": "group",
      "match": "all",
      "rules": [
        {
          "type": "email_activity",
          "operator": "opened",
          "nodeId": null
        }
      ]
    }
  }
}

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.

Výstupy: next · Povinné pro zapnutí: mode · SmartEmailing: wait

PoleTypPovinnéPopis
modeone of: time, preferred, spread, duration, time_of_day, weekday, dateanoMode.
specTimeSpecne
countFromone of: node, scenarionetime: node (default) or scenario.
spreadobjectnespread: period over which contacts are released.
valueintegerneduration: 1 to 100 000. min 1, max 100000
unitone of: minutes, hours, days, weeks, months, yearsneduration: unit.
timestringnetime_of_day, weekday: HH:MM. pattern ^([01][0-9]|2[0-3]):[0-5][0-9]$
weekdaysarray of integerneweekday: 1 (Monday) to 7, unique. min 1 items
datestringnedate: YYYY-MM-DDTHH:MM local. pattern ^[0-9]{4}-[0-9]{2}-[0-9]{2}T([01][0-9]|2[0-3]):[0-5][0-9]$
json
{
  "id": "wait-1",
  "type": "wait",
  "config": {
    "mode": "duration",
    "value": 2,
    "unit": "days"
  }
}

ab_test

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

Výstupy: v1, ..., v10 · Povinné pro zapnutí: variants · SmartEmailing: ab

PoleTypPovinnéPopis
variantsarray of objectano2 to 10 variants {key: "v1".."vN" in order, share 1..99}, shares sum to 100. min 2 items, max 10 items
json
{
  "id": "ab-test-1",
  "type": "ab_test",
  "config": {
    "variants": [
      {
        "key": "v1",
        "share": 50
      },
      {
        "key": "v2",
        "share": 50
      }
    ]
  }
}

holding

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

Výstupy: next · SmartEmailing: storage

Bez nastavení.

json
{
  "id": "holding-1",
  "type": "holding",
  "config": {}
}

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.

Výstupy: - · Povinné pro zapnutí: definition

PoleTypPovinnéPopis
definitionConditionGroupano
json
{
  "id": "goal-1",
  "type": "goal",
  "config": {
    "definition": {
      "type": "group",
      "match": "all",
      "rules": [
        {
          "type": "ordered_since_entry",
          "operator": "yes",
          "shopId": null
        }
      ]
    }
  }
}

Akce

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.

Výstupy: next · Povinné pro zapnutí: templateId · SmartEmailing: send-email

PoleTypPovinnéPopis
templateIdstringanoTemplate with content (GET /templates). Required.
templateRefstringneInformation only (definition files).
subjectstringneSubject, at most 200 characters; default the template's.
preheaderstringnePreheader, at most 300; default the template's.
senderIdstringneSender of the automation's shop (GET /senders); default the shop's default sender. Must be verified to activate.
senderNamestringneSender name, at most 100.
replyTostringneReply-To e-mail address.
trackOpensbooleanneDefault true.
trackClicksbooleanneDefault true.
trackingParamsobjectneUTM parameters added to links.
headersobjectneOwn e-mail headers.
unsubscribePageIdstringneOwn unsubscribe page of this node (GET /unsubscribe-pages).
controlAddressstringneSend every e-mail of this node only to this test address of the company (GET /test-recipients) instead of the contact; for checking a live scenario.
json
{
  "id": "send-email-1",
  "type": "send_email",
  "config": {
    "templateId": "301",
    "subject": "Zapomněli jste něco v košíku",
    "trackOpens": true,
    "trackClicks": true
  }
}

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.

Výstupy: next · Povinné pro zapnutí: status, listIds · SmartEmailing: add-to-list

PoleTypPovinnéPopis
statusone of: confirmed, unsubscribed, removedanoNew state.
actionone of: add, removeneOlder form: add = confirmed, remove = removed.
listIdsarray of stringano1 to 20 manual or form list ids, unique. min 1 items, max 20 items
listRefsarray of stringneInformation only.
json
{
  "id": "list-change-1",
  "type": "list_change",
  "config": {
    "status": "confirmed",
    "listIds": [
      "101"
    ]
  }
}

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.

Výstupy: next · Povinné pro zapnutí: url · SmartEmailing: send-webhook

PoleTypPovinnéPopis
urlstringanohttp(s) URL or one starting with a merge tag, at most 2 000.
methodone of: GET, POSTneDefault POST. default POST
bodystringnePOST body, at most 10 000 characters (merge tags allowed).
headersarray of objectneAt most 20 {name, value}. max 20 items
basicAuthobjectneHTTP Basic of the call. password is write only: answers show passwordSet.
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"
      }
    ]
  }
}

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).

Výstupy: next · Povinné pro zapnutí: field, action · SmartEmailing: set-field

PoleTypPovinnéPopis
fieldstringanoSystem field (firstName, lastName, titleBefore, titleAfter, company, companyId, phone, mobile, street, city, postalCode, note, affiliateId, salutation, salutationFormal, vocativeFirstName, vocativeLastName, gender, language, country, birthday, nameDay) or cf:<id>.
actionone of: set, clearanoAction.
valueKindone of: fixed, relative, templateneDefault fixed. default fixed
valueanyneset only: by field kind: text (at most 200), textarea (1 000), gender f / m, language xx, country XX, date YYYY-MM-DD, name day MM-DD, number as string, checkbox true / false, select / radio an option, multi_checkbox a list of options.
json
{
  "id": "set-field-1",
  "type": "set_field",
  "config": {
    "field": "cf:62",
    "action": "set",
    "valueKind": "fixed",
    "value": "VIP"
  }
}

reset

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

Výstupy: next · SmartEmailing: reset

Bez nastavení.

json
{
  "id": "reset-1",
  "type": "reset",
  "config": {}
}

fire_event

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

Výstupy: next · Povinné pro zapnutí: name · SmartEmailing: fire-event

PoleTypPovinnéPopis
namestringanoa-z, 0-9 and - (1 to 50), not starting with se-. pattern ^[a-z0-9-]{1,50}$
dataobjectneEvent data, at most 2 000 characters as JSON.
json
{
  "id": "fire-event-1",
  "type": "fire_event",
  "config": {
    "name": "vip-reached",
    "data": {
      "level": "gold"
    }
  }
}

notify

Notifies the team in the app (notification centre).

Výstupy: next · Povinné pro zapnutí: message

PoleTypPovinnéPopis
messagestringano1 to 500 characters.
importantbooleanneMark as important, default false.
json
{
  "id": "notify-1",
  "type": "notify",
  "config": {
    "message": "Zákazník dosáhl VIP úrovně",
    "important": false
  }
}

goto

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

Výstupy: - · Povinné pro zapnutí: target

PoleTypPovinnéPopis
targetstringanoKey of the target node.

end

Ends the run (the contact leaves).

Výstupy: -

Bez nastavení.

json
{
  "id": "end-1",
  "type": "end",
  "config": {}
}

Zatím nedostupné

TypChybí
send_smssms
send_viberviber
fb_audiencemeta
sklik_retargetingsklik
motionlab_adinamotionlab
whatsappwhatsapp

Podmínky automatizací

Pravidla uzlu condition, cíle a filtru spouštěčů (spolu s pravidly segmentů níže). Každé smí mít negate.

ab_test_significant

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

PoleTypPovinnéPopis
typeab_test_significantano
metricone of: open_rate, click_rateanoMetric.
nodeAstringanosend_email node key.
nodeBstringanoAnother send_email node key.
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").

ab_test_winner

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

PoleTypPovinnéPopis
typeab_test_winnerano
metricone of: open_rate, click_rateanoMetric.
nodeAstringanosend_email node key.
nodeBstringanoAnother send_email node key.
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").

cart_items

Old name of cart_items_count (still accepted).

PoleTypPovinnéPopis
typecart_itemsano
operatorone of: eq, lt, lte, gt, gteanoOperator.
valueanyanoWhole number.
shopIdstring or nullne
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "cart_items",
  "operator": "gt",
  "value": 0
}

cart_items_count

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

PoleTypPovinnéPopis
typecart_items_countano
operatorone of: eq, lt, lte, gt, gteanoOperator.
valueanyanoWhole number.
shopIdstring or nullneShop, null = any cart.
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "cart_items_count",
  "operator": "gt",
  "value": 0,
  "shopId": "1"
}

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_anniversaryano
fieldstringanobirthday, nameDay or cf:<id> of a date field.
calendarone of: auto, cz, sknenameDay only.
relationone of: now, offsetnenow = today; offset = shifted. default now
offsetobjectneWith relation offset, at least 15 minutes.
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "contact_anniversary",
  "field": "nameDay",
  "calendar": "auto",
  "relation": "now"
}

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_fieldano
fieldstringanoSystem 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>.
operatorstringanoOperator for the field kind.
valueanyneText, number, f / m, an option, or a time spec for dates.
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "contact_field",
  "field": "city",
  "operator": "eq",
  "value": "Brno"
}

contact_in_any_list

Contact is in any list in a state.

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

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_automationano
automationIdstring or nullne
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "contact_in_automation",
  "automationId": "201"
}

contact_in_list

Contact is in a list in a state.

PoleTypPovinnéPopis
typecontact_in_listano
listIdstringanoList id.
stateone of: confirmed, unsubscribedneState, default confirmed. default confirmed
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
periodobjectneTime window of the rule: from and to are time specs relative to now (null = unbounded).
json
{
  "type": "contact_in_list",
  "listId": "101",
  "state": "confirmed"
}

contact_in_list_label

Contact is in a list with this label.

PoleTypPovinnéPopis
typecontact_in_list_labelano
labelstringanoLabel, at most 40.
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
periodobjectneTime window of the rule: from and to are time specs relative to now (null = unbounded).
json
{
  "type": "contact_in_list_label",
  "label": "newsletter"
}

contact_origin

Contact came from a source.

PoleTypPovinnéPopis
typecontact_originano
originone of: erp_order, signup_form, import, api, manual, shoptet, smartemailinganoSource.
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "contact_origin",
  "origin": "signup_form"
}

contact_purpose

Contact has a valid consent with a purpose.

PoleTypPovinnéPopis
typecontact_purposeano
purposeIdstringanoPurpose id.
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
periodobjectneTime window of the rule: from and to are time specs relative to now (null = unbounded).
json
{
  "type": "contact_purpose",
  "purposeId": "51"
}

day_of_month

Today is one of these days of the month.

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

day_of_week

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

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

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_activityano
operatorone of: opened, not_opened, clicked, not_clickedanoOperator.
nodeIdstring or nullnesend_email node key.
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "email_activity",
  "operator": "opened",
  "nodeId": null
}

engagement_score

Engagement level of the contact.

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

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_attributeano
attributestringanoName.
operatorone of: eq, contains, starts, gt, gte, lt, lte, filled, emptyanoOperator.
valuestringneText.
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "event_attribute",
  "attribute": "plan",
  "operator": "eq",
  "value": "gold"
}

feed_item_count

Number of items of a feed.

PoleTypPovinnéPopis
typefeed_item_countano
feedIdstringanoFeed id.
operatorone of: eq, lt, lte, gt, gteanoOperator.
valueanyanoWhole number.
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "feed_item_count",
  "feedId": "71",
  "operator": "gt",
  "value": 0
}

hour_of_day

The current hour (local) is one of these.

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

opened_email

The contact opened an e-mail of a node.

PoleTypPovinnéPopis
typeopened_emailano
emailNodeobjectanoAn 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.
periodobjectneTime window of the rule: from and to are time specs relative to now (null = unbounded).
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "opened_email",
  "emailNode": {
    "automationId": "201",
    "nodeKey": "email-1"
  }
}

opened_emails_count

Number of e-mails the contact opened.

PoleTypPovinnéPopis
typeopened_emails_countano
operatorone of: eq, lt, lte, gt, gteanoOperator.
valueanyanoWhole number.
kindsarray of one of: automation, campaign, transactionalneKinds.
periodobjectneTime window of the rule: from and to are time specs relative to now (null = unbounded).
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "opened_emails_count",
  "operator": "eq",
  "value": 0
}

ordered_attribute

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

PoleTypPovinnéPopis
typeordered_attributeano
attributestringanoAttribute name: letters, digits and _ . : - (at most 60).
attributeTypeone of: text, date, numberneHow to compare. default text
operatorone of: eq, filled, gt, gte, lt, lte, startsanoOperator.
valueanyneText, a number, or a time spec for attributeType date.
limitToTriggerEventbooleanneOnly the order of the run's own trigger event (order triggers).
periodobjectneTime window of the rule: from and to are time specs relative to now (null = unbounded).
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "ordered_attribute",
  "attribute": "currency",
  "operator": "eq",
  "value": "CZK"
}

ordered_product

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

PoleTypPovinnéPopis
typeordered_productano
productFieldone of: id, nameneField, default id. default id
operatorone of: eq, starts, containsanoOperator.
valuestringanoText.
limitToTriggerEventbooleanneOnly the order of the run's own trigger event (order triggers).
periodobjectneTime window of the rule: from and to are time specs relative to now (null = unbounded).
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "ordered_product",
  "productField": "id",
  "operator": "eq",
  "value": "SKU-001"
}

ordered_product_by_attribute

The contact ordered a product with a feed attribute.

PoleTypPovinnéPopis
typeordered_product_by_attributeano
attributestringanoAttribute name: letters, digits and _ . : - (at most 60).
attributeTypeone of: text, date, numberneHow to compare. default text
operatorone of: eq, filled, gt, gte, lt, lte, startsanoOperator.
valueanyneText, a number, or a time spec for attributeType date.
limitToTriggerEventbooleanneOnly the order of the run's own trigger event (order triggers).
periodobjectneTime window of the rule: from and to are time specs relative to now (null = unbounded).
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "ordered_product_by_attribute",
  "attribute": "brand",
  "operator": "eq",
  "value": "Example"
}

ordered_since_entry

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

PoleTypPovinnéPopis
typeordered_since_entryano
operatorone of: yes, noanoOperator.
shopIdstring or nullne
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "ordered_since_entry",
  "operator": "yes",
  "shopId": null
}

orders_count

Number of orders.

PoleTypPovinnéPopis
typeorders_countano
operatorone of: eq, lt, lte, gt, gteanoOperator.
valueanyanoWhole number.
paidone of: any, yes, nonePaid filter, default any. default any
statesarray of one of: received, processing, shipped, cancelled, unknownneOrder states (SmartEmailing names).
shopIdstring or nullne
limitToTriggerEventbooleanneOnly the order of the run's own trigger event (order triggers).
periodobjectneTime window of the rule: from and to are time specs relative to now (null = unbounded).
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "orders_count",
  "operator": "eq",
  "value": 1,
  "paid": "any"
}

orders_total_value

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

PoleTypPovinnéPopis
typeorders_total_valueano
operatorone of: eq, lt, lte, gt, gteanoOperator.
valueanyanoNumber.
aggregateone of: sum, avg, min, maxneAggregate, default sum. default sum
currencystringanoCurrency of a shop of the company (CZK, EUR).
shopIdstring or nullne
limitToTriggerEventbooleanneOnly the order of the run's own trigger event (order triggers).
periodobjectneTime window of the rule: from and to are time specs relative to now (null = unbounded).
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "orders_total_value",
  "operator": "gte",
  "value": "3000",
  "currency": "CZK"
}

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_nodeano
operatorone of: passed, not_passedanoOperator.
nodeIdstringanoNode key.
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").

promo_code

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

PoleTypPovinnéPopis
typepromo_codeano
stateone of: assigned, usedanoState.
stackIdstringanoCoupon stack id.
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "promo_code",
  "state": "used",
  "stackId": "81"
}

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
typescriptano
scriptstringanoTwig source, at most 20 000 characters.
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "script",
  "script": "{% if contact.city == 'Brno' %}{{ result.returnTrue() }}{% endif %}"
}

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_emailano
modeone of: node, automationanoMode.
emailNodeobjectneAn 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 nullne
periodobjectneTime window of the rule: from and to are time specs relative to now (null = unbounded).
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "sent_email",
  "mode": "node",
  "emailNode": {
    "automationId": "201",
    "nodeKey": "email-1"
  }
}

sent_emails_count

Number of e-mails sent to the contact.

PoleTypPovinnéPopis
typesent_emails_countano
operatorone of: eq, lt, lte, gt, gteanoOperator.
valueanyanoWhole number 0 to 10 000 000.
kindsarray of one of: automation, campaign, transactionalneKinds, default automation and campaign.
periodobjectneTime window of the rule: from and to are time specs relative to now (null = unbounded).
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "sent_emails_count",
  "operator": "gte",
  "value": 3
}

tracking_url_clicked

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

PoleTypPovinnéPopis
typetracking_url_clickedano
emailNodeobjectanoAn 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.
linkstringanoURL (at most 2 000).
compareParamsbooleanneCompare query parameters too, default true. default true
periodobjectneTime window of the rule: from and to are time specs relative to now (null = unbounded).
negatebooleannetrue = 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"
}

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_anyano
emailNodeobject or nullne
periodobjectneTime window of the rule: from and to are time specs relative to now (null = unbounded).
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "tracking_url_clicked_any",
  "emailNode": null
}

visited_attribute

A web tracking visit with an attribute.

PoleTypPovinnéPopis
typevisited_attributeano
urlstringneURL.
urlOperatorone of: eq, startsneDefault eq. default eq
visitTypeone of: home, article, cart, product, category, search, order_done, otherneVisit type.
periodobjectneTime window of the rule: from and to are time specs relative to now (null = unbounded).
attributestringanoAttribute name: letters, digits and _ . : - (at most 60).
attributeTypeone of: text, date, numberneHow to compare. default text
valueanyneText, a number, or a time spec for attributeType date.
operatorone of: starts, gt, gte, lt, lte, eqanoOperator.
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "visited_attribute",
  "attribute": "category",
  "operator": "eq",
  "value": "Káva"
}

visited_url

A web tracking visit of a URL.

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

Zatím nedostupné podmínky

TypChybí
contact_preferencepreferences
contact_viber_stateviber
delivered_viberviber
scorescoring
seen_viberviber
sent_smssms

Pravidla segmentů

Pravidla segmentů (a podmínek automatizací). Hodnoty jsou řetězce.

campaign

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

PoleTypPovinnéPopis
typecampaignano
operatorone of: received, not_received, opened, not_opened, clicked, not_clickedanoOperator.
campaignIdstring or nullanoCampaign id; null only with received = an e-mail of any campaign.
linkUrlstringneclicked / not_clicked only.
daysstring or nullneLast N days or null.
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "campaign",
  "operator": "opened",
  "campaignId": "121",
  "days": null
}

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_fieldano
fieldIdstringanoCustom field id (without cf:).
kindone of: bool, choice, date, multi_choice, number, textanoKind of the field type (see above).
operatorstringanoOperator for the kind.
valuestringneValue (string).
valuesarray of stringneOptions (multi_choice).
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "custom_field",
  "fieldId": "62",
  "kind": "text",
  "operator": "equals",
  "value": "VIP"
}

engagement

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

PoleTypPovinnéPopis
typeengagementano
operatorone of: in, not_inanoOperator.
valuesarray of one of: A, B, C, D, E, NanoLevels. min 1 items
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "engagement",
  "operator": "in",
  "values": [
    "A",
    "B"
  ]
}

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
typefieldano
fieldone of: email, firstName, lastName, city, company, companyId, phone, mobile, street, postalCode, note, country, status, gender, language, source, consentBasis, createdAt, lastOpenAt, lastClickAt, lastSentAt, statusAt, consentAtanoContact 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, sinceanoText: 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.
valuestringanoAlways 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.
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "field",
  "field": "lastOpenAt",
  "operator": "in_last_days",
  "value": "60"
}

last_order

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

PoleTypPovinnéPopis
typelast_orderano
operatorone of: in_last_days, older_than_days, before, afteranoOperator.
valuestringanoDays "1" to "3650" or a date YYYY-MM-DD.
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
shopIdstring or nullneOnly orders of this shop (null = any).
currencystring or nullneOnly 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"
}

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
typelistano
operatorone of: in, not_in, added_before, added_after, status_is, longer_than_days, shorter_than_daysanoOperator.
listIdstringanoList id.
valuestringnestatus_is: confirmed, unconfirmed, unsubscribed, removed; added_: YYYY-MM-DD; _than_days: days "1" to "3650".
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "list",
  "operator": "in",
  "listId": "101"
}

list_label

Confirmed or unconfirmed member of any list with this label.

PoleTypPovinnéPopis
typelist_labelano
operatorone of: inanoOperator.
labelstringanoLabel, 1 to 40.
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "list_label",
  "operator": "in",
  "label": "vip"
}

opens

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

PoleTypPovinnéPopis
typeopensano
operatorone of: eq, gt, lt, gte, lteanoOperator.
valuestringanoCount "0" to "100000".
daysstring or nullneOnly the last N days, "1" to "3650" (null = any time).
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "opens",
  "operator": "gte",
  "value": "3",
  "days": "90"
}

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_attributeano
operatorone of: isanoOperator.
scopeone of: item, orderneitem (default) or order. default item
attributestringanoitem: productCode, category, brand or any attribute name; order: status, companyId, deliveryCity, deliveryCountry, deliveryZip, deliveryCompany.
valuestringanoExact value, at most 200 characters.
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
shopIdstring or nullneOnly orders of this shop (null = any).
currencystring or nullneOnly orders in this currency (CZK or EUR; it must be the currency of shopId when both are set).
daysstring or nullneOnly the last N days, "1" to "3650" (null = any time).
json
{
  "type": "order_attribute",
  "operator": "is",
  "attribute": "brand",
  "value": "Example"
}

order_count

Number of completed orders.

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

order_value

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

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

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_boughtano
operatorone of: isanoOperator.
valuestringanoPart of the name or the code, at most 200.
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
shopIdstring or nullneOnly orders of this shop (null = any).
currencystring or nullneOnly orders in this currency (CZK or EUR; it must be the currency of shopId when both are set).
daysstring or nullneOnly the last N days, "1" to "3650" (null = any time).
json
{
  "type": "product_bought",
  "operator": "is",
  "value": "Espresso",
  "days": "30"
}

purpose

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

PoleTypPovinnéPopis
typepurposeano
operatorone of: has, not_hasanoOperator.
purposeIdstringanoPurpose id.
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "purpose",
  "operator": "has",
  "purposeId": "51"
}

segment

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

PoleTypPovinnéPopis
typesegmentano
operatorone of: in, not_in, added_before, added_afteranoOperator.
segmentIdstringanoSegment id.
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "segment",
  "operator": "not_in",
  "segmentId": "91"
}

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_attributeano
attributestringanoAttribute name.
operatorone of: is, starts_with, gt, gte, lt, lteanoOperator.
valuestringanoAt most 200 (a number for gt to lte).
daysstring or nullneOnly the last N days, "1" to "3650" (null = any time).
negatebooleannetrue = the rule must NOT hold (SmartEmailing "Neplatí, že").
json
{
  "type": "web_attribute",
  "attribute": "visitType",
  "operator": "is",
  "value": "product"
}

web_visit

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

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

Časové údaje

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.

calendar

A local calendar date and time.

PoleTypPovinnéPopis
variantcalendarano
datestringanoYYYY-MM-DD (local). pattern ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
timestringneHH:MM (local), default 00:00. pattern ^([01][0-9]|2[0-3]):[0-5][0-9]$

interval

Base plus or minus a number of units.

PoleTypPovinnéPopis
variantintervalano
signone of: +, -ano"+" later, "-" earlier (conditions only).
valueintegerano1 to 100 000. min 1, max 100000
unitone of: minutes, hours, days, weeks, months, yearsanoUnit.
timestring or nullneOptional HH:MM set after the shift (days and longer). pattern ^([01][0-9]|2[0-3]):[0-5][0-9]$

event

A named day: today, tomorrow, this/next/previous weekday, working day, week, month or year, or the last day of this or next month.

PoleTypPovinnéPopis
varianteventano
wordone of: yesterday, previous, today, this, tomorrow, next, last_day_ofanoWhich day.
unitone of: monday, tuesday, wednesday, thursday, friday, saturday, sunday, workday, day, week, month, yearneWith previous, this and next: a weekday, workday, day, week, month or year; with last_day_of: month.
scopeone of: this, nextneWith last_day_of: this or next month.
timestringanoHH:MM (local), required. pattern ^([01][0-9]|2[0-3]):[0-5][0-9]$
json
[
  {
    "variant": "interval",
    "sign": "+",
    "value": 2,
    "unit": "days",
    "time": "09:00"
  },
  {
    "variant": "event",
    "word": "next",
    "unit": "monday",
    "time": "08:00"
  },
  {
    "variant": "calendar",
    "date": "2026-12-24",
    "time": "09:00"
  }
]