Incomaker Commons v4
API Reference
API Reference
  1. API Reference
  • Incomaker Commons v4
  • Sklik audience response validation
  • Social Accounts
    • Get Accounts
      GET
  • Ad Accounts
    • Get Accounts for Facebook
      GET
  • Assets
    • Generate e-mail content (AI)
      POST
  • Audiences
    • Get Audiences
      GET
  • Campaigns
    • Get campaigns
      GET
    • Archive Campaign
      POST
    • Pause/Resume/Cancel Campaign
      POST
    • Rename Campaign
      PUT
    • Duplicate Campaign
      POST
    • Delete Campaign
      DELETE
    • Get Categories
      GET
    • Add New Category
      POST
  • Contacts
    • Get contact by clientContactId
      GET
    • Get contact by email
      GET
    • Add contact to the list by id
      PUT
    • Remove contact from the list by id
      DELETE
    • Add contact to the list by name
      PUT
    • Remove contact from the list by name
      DELETE
    • Get contact by phoneNumber1
      GET
    • Upsert multiple contacts (async)
      POST
    • Get contact events
      GET
    • Get contact events by client id
      GET
    • Get contact events by email
      GET
    • Partially update contact
      PATCH
    • Get all contacts
      GET
    • Create contact
      POST
    • Upsert contact
      PUT
    • Get contact
      GET
    • Update contact
      PUT
    • Delete contact
      DELETE
    • Get total number of contacts
      GET
    • Upsert multiple contacts
      PUT
    • Delete multiple contacts
      DELETE
    • Contact login
      POST
    • Contact logout
      POST
    • Get contact`s subscriptions
      GET
    • Replace contact's subscriptions (full set)
      PUT
    • Adjust contact's subscriptions (partial)
      PATCH
    • Unsubscribe a contact from all lists
      PATCH
  • Carts
    • Add an Item to Cart
    • Remove an Item from Cart
    • Create an Order from Cart (checkout)
  • Deals
    • Get deal
    • Update deal
    • Delete deal
    • Find deals
    • Create deal
    • Get deals attachments
    • Post deals attachment
    • Delete deals attachment
    • Get deals contacts
    • Add deals contacts
    • Remove contact from deal
    • Get deals activities
    • List deal states
    • Create deal state
    • Update deal state
    • Delete deal state
  • Delivery
    • Send E-mails delivery
    • Send SMS delivery
    • Send push delivery
    • Send Test E-mail
    • Send Test SMS
    • Send Test Push
    • Validate E-mail (dry run)
    • Validate SMS (dry run)
    • Validate Push (dry run)
    • Get Delivery Job
    • List Delivery Jobs
    • Cancel Delivery Job
    • Pause Delivery Job
  • Events
    • Add event with contact
    • Add tracking event
    • Get event types
  • Forms
    • Get form settings
    • Update form settings
    • Get form field mappings
    • Update form field mappings
  • Notifications
    • Get notifications
    • Get notification
    • Modify notification
    • Delete notification
  • Lists
    • Get Lists
    • Create List
    • Get List
    • Update List
    • Delete List
    • Get List by name
    • Update List by name
    • Delete List by name
    • Get number of contacts for a list
    • Get number of contacts for a list by name
    • Get contact counts for all lists (grouped by category)
    • Upsert Lists (bulk)
    • Get List categories
    • Create List category
    • Get List category
    • Update List category
    • Delete List category
    • Get List category by name
    • Update List category by name
    • Delete List category by name
    • Upsert List categories (bulk)
  • Products
    • Get total number of products
    • Delete multiple products
    • Get variant
    • Get products
    • Get products categories
    • Get tags
    • Create product
    • Upsert product
    • Upsert multiple products (sync)
    • Upsert multiple products (async job)
    • Get product
    • Replace product
    • Partially update product
    • Delete (deactivate) product
    • Upsert single variant
    • Partially update variant
    • Delete (deactivate) variant
    • Add tag to product
    • Remove tag from product
    • Add product to category
    • Remove product from category
    • Create product category
    • Upsert product category
    • Upsert multiple product categories
    • Get product category
    • Replace product category
    • Partially update product category
    • Delete (hide) product category
  • Orders
    • Get orders
    • Create order
    • Upsert multiple orders
    • Get order
    • Update order
    • Update order state
    • Delete order
    • Get order by client ID
    • Update order by client ID
    • Update order state by client ID
    • Delete order by client ID
  • Scenarios
    • Abandoned cart notification by e-mail
    • Abandoned cart notification by SMS
    • Abandoned cart notification by push
    • Abandoned cart notification by Facebook
    • Create birthday greetings
    • Create nameday greetings
    • Create first purchase anniversary
  • Smartflows
    • Triggers
      • Start
        • Get Start trigger
        • Delete Start trigger
        • Create Start trigger
      • Added to list
      • Removed from list
      • Scheduled start
        • Get Scheduled start trigger
        • Update Scheduled start trigger
        • Delete Scheduled start trigger
        • Create Scheduled start trigger
      • Recurring
        • Get Recurring trigger
        • Update Recurring trigger
        • Delete Recurring trigger
        • Create Recurring trigger
      • Nameday
        • Get Nameday trigger
        • Update Nameday trigger
        • Delete Nameday trigger
        • Create Nameday trigger
      • Birthday
        • Get Birthday trigger
        • Update Birthday trigger
        • Delete Birthday trigger
        • Create Birthday trigger
      • First registration
        • Get First registration trigger
        • Update First registration trigger
        • Delete First registration trigger
        • Create First registration trigger
      • First purchase
        • Get First purchase trigger
        • Update First purchase trigger
        • Delete First purchase trigger
        • Create First purchase trigger
      • Email subscription confirmed
        • Get Email subscription confirmed trigger
        • Update Email subscription confirmed trigger
        • Delete Email subscription confirmed trigger
        • Create Email subscription confirmed trigger
      • Link click
        • Get Link click trigger
        • Update Link click trigger
        • Delete Link click trigger
        • Create Link click trigger
      • Mail open
        • Get Open mail trigger
        • Update Open mail trigger
        • Delete Open mail trigger
        • Create Open mail trigger
      • Product added to cart
        • Get Product added to cart trigger
        • Update Product added to cart trigger
        • Delete Product added to cart trigger
        • Create Product added to cart trigger
      • Custom event
        • Get Custom event trigger
        • Update Custom event trigger
        • Delete Custom event trigger
        • Create Custom event trigger
      • Abandoned cart
        • Get Abandoned cart trigger
        • Update Abandoned cart trigger
        • Delete Abandoned cart trigger
        • Create Abandoned cart trigger
    • Actions
      • Sklik Audience
        • Get Sklik audience action
        • Update Sklik audience action
        • Delete Sklik audience action
        • Create Sklik audience action
        • Connect Sklik account
        • Disconnect Sklik account
        • Get Sklik audiences for action
        • Create Sklik audience
      • Meta audience
        • Create Meta audience
        • Get Meta audience action
        • Update Meta audience action
        • Delete Meta audience action
        • Create Meta audience action
        • Get Meta audiences for action
        • Connect Meta Account
        • Disconnect Meta account
        • Get list of business portfolios
        • Get list of advertising accounts
      • GoogleAds Audience
        • Create GoogleAds audience
        • Get GoogleAds audience action
        • Update GoogleAds audience action
        • Delete GoogleAds audience action
        • Create GoogleAds audience action
        • Get GoogleAds audiences for action
        • Connect GoogleAds Account
        • Disconnect GoogleAds account
        • Get list of users
      • Double Opt-In
        • Get Double Opt-In action
        • Update Double Opt-In action
        • Delete Double Opt-In action
        • Create Double Opt-In action
        • Swap branches
      • Add contact to list
        • Get Add contact to list action
        • Update Add contact to list action
        • Delete Add contact to list action
        • Create Add contact to list action
      • Remove contact from list
        • Get Remove contact from list action
        • Update Remove contact from list action
        • Delete Remove contact from list action
        • Create Remove contact from list action
      • Teaser
        • Get Teaer action
        • Create Teaer action
        • Delete Teaer action
      • Add tag to contact
        • Get Add tag action
        • Update Add tag action
        • Delete Add tag action
        • Create Add tag action
      • Remove tag from contact
        • Get Remove tag action
        • Update Remove tag action
        • Delete Remove tag action
        • Create Remove tag action
      • Notification
        • Get Send notification
      • Website Widget
        • Get Website Widget action
        • Create Website Widget action
        • Update Website Widget action
        • Delete Website Widget action
    • Targets
    • Activities
      • Convert activity
      • Duplicate activity
      • Enable/Disable activity
      • Update activity shared fields
    • Structure
      • Get smartflow structure
      • Delete a part of smartflow
    • Get Added to contact list trigger
    • Get smartflows
    • Update Added to contact list trigger
    • Create smartflow
    • Delete Added to contact list trigger
    • Get smartflow
    • Create Added to contact list trigger
    • Update smartflow
    • Get Removed from contact list trigger
    • Delete smartflow
    • Update Remove from contact list trigger
    • Delete Remove from contact list trigger
    • Generate smartflow (AI)
    • Create Removed from contact list trigger
    • Pause/Resume/Cancel smartflow
    • Execute smartflow
    • Validate smartflow
    • Export smartflow
    • Import smartflow
    • Duplicate smartflow
    • Get smartflow actions
    • Archive smartflow
    • Get templates
    • Create template
    • Get template actions
    • Get folders
    • Create folder
    • Modify folder
    • Delete folder
    • Get Product in Cart is back in Stock trigger
    • Update Product in cart is back in stock trigger
    • Delete Product in cart is back in stock trigger
    • Create Product in cart is back in stock trigger
    • Get Product in Cart discounted trigger
    • Update Product in Cart discounted trigger
    • Delete Product in Cart discounted trigger
    • Create Product in Cart discounted trigger
    • Get Product in cart running out trigger
    • Update Product in cart running out trigger
    • Delete Product in cart running out trigger
    • Create Product in cart running out trigger
    • Get Product purchased trigger
    • Update Product purchased trigger
    • Delete Product purchased trigger
    • Create Product purchased trigger
    • Get Recently purchased trigger
    • Update Recently purchased trigger
    • Delete Recently purchased trigger
    • Create Recently purchased trigger
    • Get Checkout visited trigger
    • Update Checkout visited trigger
    • Delete Checkout visited trigger
    • Create Checkout visited trigger
    • Get Order cancelled trigger
    • Delete Order cancelled trigger
    • Create Order cancelled trigger
    • Get Invoice confirmation trigger
    • Delete Invoice confirmation trigger
    • Create Invoice confirmation trigger
    • Get Return confirmation trigger
    • Delete Return confirmation trigger
    • Create Return confirmation trigger
    • Get Website search trigger
    • Update Website search trigger
    • Delete Website search trigger
    • Create Website search trigger
    • Get Campaign sent trigger
    • Update Campaign sent trigger
    • Delete Campaign sent trigger
    • Create Campaign sent trigger
    • Get Shipping confirmed trigger
    • Update Shipping confirmed trigger
    • Delete Shipping confirmed trigger
    • Create Shipping confirmed trigger
    • Get Website Viewed trigger
    • Update Website Viewed trigger
    • Delete Website Viewed trigger
    • Create Website Viewed trigger
    • Get Filter target
    • Update Filter target
    • Delete Filter target
    • Create Filter target
    • Get Merge target
    • Delete Merge target
    • Create Merge target
    • Get Split target
    • Update Split target
    • Delete Split target
    • Create Split target
    • Get Splitter target
    • Update Splitter target
    • Delete Splitter target
    • Create Splitter target
    • Get Condition target
    • Update Condition target
    • Delete Condition target
    • Create Condition target
    • Get A/B test action
    • Update A/B test action
    • Delete AB test target
    • Create AB test target
    • Get Send mail action
    • Update Send email action
    • Delete Send mail action
    • Create Send mail action
    • Get Send sms action
    • Update Send sms action
    • Delete Send sms action
    • Create Send sms action
    • Get Send social post action
    • Update Send social post action
    • Delete Send social post action
    • Create Send social post action
    • Get Send NPS action
    • Update Send NPS action
    • Delete Send NPS action
    • Create Send NPS action
    • Get Webhook action
    • Update Webhook action
    • Delete Webhook action
    • Create Webhook action
    • Get Delay action
    • Update Delay action
    • Delete Delay action
    • Create Delay action
    • Get Landing page action
    • Update Landing page action
    • Delete Landing page action
    • Create Landing page action
    • Get Unsubscribe action
    • Update Unsubscribe action
    • Delete Unsubscribe action
    • Create Unsubscribe action
    • Get list of contact fields to update
    • Get Update contact action
    • Update Update contact action
    • Delete Update contact action
    • Create Update contact action
    • Get Popup action
    • Update Popup action
    • Delete Popup action
    • Create Popup action
  • Website
    • Get Website Info
    • Get Teaser settings
  • Tags
    • Get Tags
    • Create Tag
    • Update Tag
    • Get Tag
    • Delete Tag
    • Get number of contacts for a tag
    • Get contact counts for all tags (grouped by category)
    • Create Tags (bulk)
    • Get Tag categories
    • Create Tag category
    • Get Tag category
    • Update Tag category
    • Delete Tag category
    • Create Tag categories (bulk)
  • Context
    • Get Context
    • Update Context
    • Replace Context
  • Admin
    • Refresh Currency Rates
  • Jobs
    • Get job status
    • List jobs
    • List job items
    • Cancel job
  • SMS
    • Get SMS Templates
    • Get SMS Templates History
    • Create SMS Template
    • Get SMS Senders
  • Coupons
    • Get Coupons
    • Get Coupons types
    • Get Coupon type
  • Tracking Links
    • Create Tracking Link
  • Webhooks
    • Webhooks — Usage Guide
    • List webhook topics
    • Create webhook
    • List webhooks
    • Get webhook
    • Update webhook
    • Delete webhook
    • Test-send webhook
    • List deliveries for a webhook
    • Get delivery detail
  • Messages
    • Send e-mail
    • Send e-mails (batch)
    • Validate e-mail (dry run)
    • Send SMS
    • Send SMS (batch)
    • Validate SMS (dry run)
    • List messages
    • Get message
    • Cancel scheduled message
    • Send e-mails (batch, async)
    • Send SMS (batch, async)
    • Send e-mail to an audience
    • Send SMS to an audience
  • Billing
    • Create billing settings
    • Update billing settings
    • Get billing settings
  • List domains
    GET
  • Add domain
    POST
  • Get DNS records
    GET
  • Get link shorteners
    GET
  • Update link shorteners
    PUT
  • Verify DNS changes
    POST
  • Get eshop settings
    GET
  • Update eshop settings
    PUT
  • Get Smartflow Validation Rules
    GET
  • Get invoices
    GET
  • Get invoices
    GET
  • Get custom contact field placeholders
    GET
  • Get contact placeholders
    GET
  • Get system placeholders
    GET
  • Get account placeholders
    GET
  • Get user placeholders
    GET
  • Get external placeholders
    GET
  • Get coupon placeholders
    GET
  • Get media
    GET
  • Upload media
    POST
  • Get media item
    GET
  • Update media metadata
    PUT
  • Delete media
    DELETE
  • Get media tags
    GET
  • Schemas
    • Audience
    • Notification
    • Error
    • CampaignType
    • Contact
    • Product (read)
    • ProductWriteNoId
    • Product tag
    • ProductCategoryWriteNoId
    • Price
    • CampaignChannel
    • CampaignState
    • Campaign
    • CustomField
    • Context
    • ProductLanguage
    • ProductVariantWriteNoId
    • CreateActionResponse
    • ProductVariantWrite
    • TeaserFontFamily
    • TeaserFontWeight
    • ProductWrite
    • TeaserCloseButtonSize
    • TeaserCloseButtonPosition
    • ProductVariant
    • TeaserPosition
    • NotificationSeverity
    • CategoryLanguage
    • NotificationChannel
    • Tag
    • ProductCategoryWrite
    • TagCategory
    • ProductCategory
    • List
    • UpsertResult
    • ListCategory
    • VariantUpsertResult
    • CategoryUpsertResult
    • SmartflowTemplateAction
    • BulkResult
    • SmartflowAction
    • CategoryBulkResult
    • SmartflowState
    • SmartflowCompletedState
    • SocialNetworkType
    • SocialNetworkEntityType
    • SocialNetworkEntity
    • SocialNetworkUser
    • Smartflow
    • SmartflowFolder
    • SocialAccount
    • AudienceInput
    • EmailAsset
    • SmsAsset
    • PushAsset
    • Cron
    • SocialAccountsResponse
    • AdAccount
    • AdAccountsResponse
    • AudiencesResponse
    • ProductsResponse
    • ProductsCategoriesResponse
    • ProductTagsResponse
    • SmartflowsResponse
    • SmartflowFoldersResponse
    • SmartflowActionsResponse
    • SmartflowTemplateActionsResponse
    • Paging
    • TeaserSettings
    • WebsiteSettings
    • General rules
    • PermId
    • Events
    • CouponType
    • Coupon
    • Media item
  1. API Reference

Get Smartflow Validation Rules

Developing
GET
/smartflows/validation-rules

Smartflow Validation Rules#

This endpoint returns the currently active rules used to validate the structure and configuration of Smartflow graphs.
Validation checks whether activities can be connected, whether required activities exist upstream, whether forbidden activities or configurations are present, and whether connection counts or individual parameters are valid.

Rule set format#

{
  "version": 1,
  "rules": [
    {
      "id": "unique-rule-id",
      "scope": "ancestorForbidden",
      "severity": "error",
      "subjectTypes": ["target_abtest"],
      "relatedTypes": ["trigger_start"],
      "relatedParams": {"sendTimeOptimization": true},
      "message": "A/B testing cannot be used while send-time optimization is enabled"
    }
  ]
}
Every rule has a unique id and a scope. subjectTypes identifies the activity to which the rule applies. Type lists support the wildcard "*", meaning any activity type.

Validation severity#

error — the operation is rejected until the validation problem is fixed.
warning — the operation may continue, but the problem is reported as a validation warning.

Rule scopes#

parent and child#

Check which activity types may be directly connected.
{
  "id": "email-must-follow-filter",
  "scope": "parent",
  "effect": "allow",
  "subjectTypes": ["action_email"],
  "relatedTypes": ["target_filter"],
  "passThroughTypes": ["action_delay"]
}
For parent, passThroughTypes allows the validator to look past transparent activities, such as a delay, when determining the relevant upstream activity.
A deny rule rejects a matching connection:
{
  "id": "condition-only-after-email",
  "scope": "parent",
  "effect": "deny",
  "severity": "error",
  "subjectTypes": ["target_condition"],
  "relatedTypes": ["*"],
  "message": "A condition must follow an eligible send activity"
}
Matching allow rules take precedence over matching deny rules. If no rule matches, the connection is allowed by default.

ancestorRequired#

Requires at least one activity of a listed type anywhere upstream in the same branch.
{
  "id": "send-requires-narrowing",
  "scope": "ancestorRequired",
  "severity": "error",
  "subjectTypes": ["action_email", "action_sms", "action_social"],
  "relatedTypes": ["target_filter", "target_condition"],
  "requiredIfAncestorTypes": ["trigger_start", "trigger_recurring", "trigger_scheduled_start"],
  "message": "A bulk send must have a contact-narrowing activity upstream"
}
requiredIfAncestorTypes makes the rule conditional. In the example, narrowing is required only when the send is reachable from a bulk trigger. If omitted, the requirement always applies.

ancestorForbidden#

Rejects a subject when a listed activity is present anywhere upstream.
{
  "id": "abtest-forbidden-send-time-optimization",
  "scope": "ancestorForbidden",
  "severity": "error",
  "subjectTypes": ["target_abtest"],
  "relatedTypes": ["trigger_start", "trigger_recurring", "trigger_scheduled_start"],
  "relatedParams": {"sendTimeOptimization": true},
  "message": "A/B testing cannot be used while send-time optimization is enabled"
}
relatedParams is an optional predicate on the matching upstream activity. Every listed parameter must have exactly the specified value. The upstream activity must match both relatedTypes and relatedParams; a matching activity type with a different value does not violate the rule.
For example, the rule above rejects an A/B test only when an upstream bulk trigger has sendTimeOptimization set to true. A value of false or an omitted value does not match this predicate.
subjectParams is the equivalent predicate for the subject activity itself:
{
  "id": "open-filter-after-email",
  "scope": "parent",
  "effect": "allow",
  "subjectTypes": ["target_condition"],
  "subjectParams": {"filter": "open"},
  "relatedTypes": ["action_email", "target_abtest"]
}
Both parameter predicates are optional and use strict equality for each listed key.

cardinality#

Limits the number of upstream and downstream connections.
{
  "id": "cardinality-merge",
  "scope": "cardinality",
  "subjectTypes": ["target_merge"],
  "minAncestors": 1,
  "maxAncestors": null,
  "maxDescendants": 1,
  "severity": "error"
}
null means unlimited. The first matching cardinality rule is used, so specific rules should precede a wildcard rule.

param#

Checks one parameter on the subject activity.
{
  "id": "scheduled-start-datetime-future",
  "scope": "param",
  "severity": "warning",
  "subjectTypes": ["trigger_scheduled_start"],
  "field": "startDateTime",
  "check": "futureDateTime",
  "whenSmartflowState": ["running"],
  "message": "The scheduled start must be in the future"
}
Supported checks:
futureDateTime — the specified value must represent a future date and time. Empty values are skipped.
paramPresent — the specified parameter must have a truthy value.
whenSmartflowState optionally limits the rule to selected Smartflow states. Without it, the rule applies in every state.

flow#

Checks the Smartflow as a whole rather than one activity.
{
  "id": "max-one-start",
  "scope": "flow",
  "effect": "deny",
  "severity": "error",
  "check": "maxCountByType",
  "types": ["trigger_start"],
  "max": 1,
  "message": "A Smartflow may contain only one immediate trigger"
}
Supported checks:
maxCountByType — rejects the flow when the number of matching activities exceeds max.
requiresTypePresent — rejects the flow when none of the listed activity types is present.

Examples of built-in validation behavior#

A/B tests may be used only in campaigns started by a bulk or scheduled trigger. They cannot be used when an upstream bulk trigger has sendTimeOptimization: true.
A bulk email, SMS, or social send must have a target_filter or target_condition somewhere upstream.
A target_condition may follow action_email, action_sms, action_social, or target_abtest (through action_delay); for filter="open", the upstream activity must be action_email or target_abtest.
Website popup and teaser activities must be connected to a website-viewed trigger, allowing transparent activities in between.
A Double Opt-In activity must follow a compatible form or externally supplied contact-data source.
Trigger activities may be roots, while ordinary activities require an upstream activity.
Merge, split, condition, and other branching activities have specific connection-count limits.

Custom messages#

A rule may define a custom message. The placeholders {subjectType} and {relatedType} are replaced with the actual activity types when applicable. If no message is provided, a generic validation message is generated.
The response from this endpoint is the active rule set used by Smartflow validation. The exact set may change as validation policy evolves.

target_abtest condition#

The target_abtest activity must define params.condition. The value is normalized by trimming whitespace and converting it to lowercase, so the accepted values are:
open — evaluate the variants by unique email opens.
click — evaluate the variants by unique email clicks.
A missing value or any other value is invalid and must be reported as a validation error before the Smartflow can be saved or executed. The condition applies to the A/B test activity itself; it is independent of the upstream trigger and target connection rules.

Request

None

Responses

🟢200Success
application/json
Active smartflow validation rules.
Bodyapplication/json

🟠401Unauthorized
🔴500Internal Server Error
Request Request Example
Shell
JavaScript
Java
Swift
curl --location '/smartflows/validation-rules'
Response Response Example
200 - Example 1
{
    "version": 0,
    "rules": [
        {
            "id": "string",
            "scope": "string",
            "effect": "string",
            "severity": "string",
            "subjectTypes": [
                "string"
            ],
            "relatedTypes": [
                "string"
            ],
            "property1": "string",
            "property2": "string"
        }
    ]
}
Modified at 2026-09-14 11:05:47
Previous
Update eshop settings
Next
Get invoices
Built with