Skip to main content
Altcraft Docs LogoAltcraft Docs Logo
User guide iconUser guide
Developer guide iconDeveloper guide
Admin guide iconAdmin guide
English
  • Русский
  • English
Login
    User API documentationAPI interactionMatching
      Profilesarrow
    • Import profileUpdate profileImport multiple profilesUpdate multiple profilesAdd multiple profilesAdd profile to databaseQuick profile importImport profile to RabbitMQGet profile dataUploading profiles to a fileSuspend all database profilesUnsuspend all profiles in a databaseDelete profileSubscription fields functional updateDatabase fields functional updateMerging multiple profilesUnsubscribe profile from resourceProfile splitting
        Subscriptionsarrow
      • Add or edit subscriptionGet all profile subscriptionsGet all subscriptions from multiple profilesGet profile subscriptionDelete profile subscriptionRestore deleted subscriptionSuspend all subscriptionsUnsuspend all suspended subscriptions
        Action historyarrow
      • Get profile action historyGet multiple profiles action history
        Profile relationsarrow
      • Attach relationDetach relationModify relation propertiesOverwrite relation propertiesGet profile relations infoGet profile relations info
      Get data for multiple profiles
      Databasesarrow
    • Get database statisticsUpdate statistics on databaseGet database listGet database informationGet database fieldsDatabase wipe
      Resourcesarrow
    • Get resource statisticsUpdate statistics on resourceGet resources listGet resource informationGet resource subscription fields
      Segmentsarrow
    • Get statistics on resourceUpdate statistics on segmentAdd or remove profileGet profile data in a static segmentCreate segmentUpdate segmentGet segment informationGet segments listDelete segment
      Suppression listsarrow
    • Create suppression listUpdate suppression listGet suppression list infoGet the list of suppression listsDelete suppression listUpload suppression list data to file
        Suppression list actionsarrow
      • Check if email is suppressedAdd email to suppression listAdd multiple emails to suppression listRemove email from suppression listRemove all emails from suppression listCheck if domain is suppressedAdd domain to suppression listAdd multiple domains to suppression listRemove domain from suppression listRemove all domains from suppression listCheck if phone number is suppressedAdd phone number to suppression listAdd multiple phones to suppression listRemove phone number from suppression listRemove all phone numbers from suppression list
      Templates and fragmentsarrow
    • Get templates listGet template infoDelete templateAdd templateUpdate templateChannel object
      Campaignsarrow
    • Get campaign informationGet campaign listActivate campaignComplete campaignDeactivate campaignGet campaign status
      Mailingsarrow
    • Activate mailingDeactivate mailingGet mailing listGet mailing informationGet mailing logClone mailingDelete mailingGet mailing status
        Broadcast mailingsarrow
      • Get broadcasts listGet broadcast informationCreate broadcast mailingUpdate broadcast mailingLaunch a broadcast mailing
        Regular mailingsarrow
      • Get regular mailings listGet regular mailing informationCreate regular mailingUpdate regular mailingLaunch a regular mailing
        Trigger mailingsarrow
      • Get trigger mailings listGet trigger mailing informationCreate trigger mailingUpdate trigger mailingTrigger launch (API call)Profile import + trigger mailing launchTask for bulk trigger launchTask for bulk profiles import + trigger launchBulk trigger launchBulk profiles import + trigger mailing launchClone a trigger mailingData array
      Automation scenariosarrow
    • Engage profile in scenarioImport and engage profile in scenarioBatch import and engage profiles in a scenarioTask for batch import and engaging profiles in the scenarioGet scenarios listActivate scenarioDeactivate scenario
      Loyalty Programsarrow
    • Get profile tier in a loyalty programExport points transactionsExpiring points for a periodGet profile account transactionsGet trigger promotions listAccrue points to a memberRedeem member pointsCommit temporary transactionPreliminary Order CalculationOrder ConfirmationRoll back temporary transactionCancel points transactionGet points account balanceRegister member in a loyalty programRemove member from loyalty program
      Promo codesarrow
    • Import promo codesGet promo code informationActivate promo codeUpdate promo codeAttach promo codeDetach promo codeGet all promo codes
      Goalsarrow
    • Goals and goal values registration
      Application push notificationsarrow
    • Processing and adding a subscriptionAdd app push events
      Marketarrow
      • Market objectsarrow
      • Order data objectProduct data objectSKU data objectCategories arrayCustom fields array
        Ordersarrow
      • Import order and item statusesGet orders listDelete orderGet order statusUpdate order line status
        Products and SKUarrow
      • Import products, SKUs and categoriesImport SKUs and categoriesGet products listGet SKUs listDelete productsDelete SKU
      Analytic reportsarrow
    • Get summary reportGet soft bounces reportGet undeliveries report
      Sendersarrow
    • Get senders list
        Virtual senders (Smart accounts only)arrow
      • Get virtual senders listGet virtual sender informationClone virtual senderCreate virtual senderUpdate virtual senderDelete virtual sender
      External datatables queriesarrow
      • Segmentation queriesarrow
      • Add segmentation queryUpdate segmentation queryGet segmentation query informationGet segmentation queries listDelete segmentation query
        Template queriesarrow
      • Add template queryUpdate template queryGet template query informationGet template queries listDelete template query
      Objectsarrow
    • AKMTA objectContent objectEmail rule objectFile objectProfile data objectSMS rule objectSender objectSender typesStart schedule objectSubscription objectTrigger types
      Miscellaneousarrow
    • Upload fileGet message web versionPush providersDeduplication of requestsHow to send API request with RabbitMQList of gender identificationsObtain valid values for fields: browsers, devices, tz, oses, languages
    Importing the API collection in PostmanList of API endpoints
      SDKarrow
      • mSDKarrow
        • Androidarrow
        • Quick StartSDK FunctionalitySDK ConfigurationPublic SDK API
            Provider configuration androidarrow
          • Firebase Cloud MessagingHuawei Mobile ServicesRuStore
          iOSarrow
        • Quick StartSDK FunctionalitySDK ConfigurationPublic SDK API
            Provider configurationarrow
          • Apple Push Notification ServiceFirebase Cloud MessagingHuawei Mobile Services
          React Native (Android/iOS)arrow
        • Quick StartSDK ConfigurationSDK FunctionalityPublic SDK APIProvider setup
        Managing JWT and Role Token
  • Mailings
  • Trigger mailings
  • Trigger launch (API call)

Trigger launch (API call)

Top priority instantly launched trigger mailings.

tip

To launch a trigger at the precise time of a new profile import you can use Import + trigger request.

Version 1.1​

Description​

It has several advantages compared with API V. 1.0:

  • Requests can change mailing content for each launch.
  • Sends messages to an audience instead of single profiles.
  • Advanced audience matching — profile ID, custom fields, external database queries.
  • API token in message body for advanced security.

Static request URL /api/v1.1/campaigns/triggers/start/ as compared to a dynamically generated link bound to a certain profile database.

Request URL​

Method: POST

https://example.com/api/v1.1/campaigns/triggers/start/

Request parameters​

ParameterTypeExampleRequiredDescription
tokenstring"abcdefghijklmnqrstuvwxyz"YesAPI token
idstring5511YesTrigger mailing ID
contentJSON object{ "field": "value" }NoAdditional content for API content filter node
and template apicontent variables
attachJSON array[]NoAttach file(s) to mailing messages
expirationstring"2026-02-22T21:00:00Z"NoMessage expiration date in RFC3339 format, after which it will be removed from the queue and a delivery failure event will be recorded
custom_dataJSON object{ "x": "y"}NoData used for integration action hooks
Profile matching mode
matchingstring"email"
"phone"
"profile_id"
"custom"
No, if matched by emailProfile matching mode
By default - email
emailstring"john@example.com""matching":"email"Email address
phonestring"+79000000000""matching":"phone"Phone number
profile_idstring"abcdefghijklmnqrstuvwxyz""matching":"profile_id"Profile ID
field_namestring"CRM_ID""matching":"custom"Custom profile data field name
field_valueint/string"123420""matching":"custom"

Custom profile data field value.

tip

Searching by combination of tags is available for tag type profile fields. Values are recorded as a string: "tag-1, tag-2".

resource_idint24NoResource ID for email and
phone matching
custom_requestJSON object
{
"email": {
"$in": [
"asd@dsfsd.com",
"zxcv@sdfsd.com"
]
}
}
When no matching
specified
Custom MongoDB database query
subscription_filterJSON objectPush example:
"subscription_filter": {
   "subscription_id": "CAREFULWITHTHATAXE",
   "provider": "Chrome",
   "not_strict": true
}
Email example:
"subscription_filter": {
   "email": "example@example.com",
   "not_strict": true
}
SMS example:
"subscription_filter": {
   "phone": "+79106135133",
   "not_strict": false
}
NoSelects a profile's subscription to send message

Not used if custom_request is set.

not_strict determines what to do when a certain subscription is not found. If "true" — another fitting subscription will be used instead.

Request example​

This example triggers a mailing for a single subscriber:

  • JSON
  • XML
{
"token": "abcdefghijklmnqrstuvwxyz",
"id": 84,
"matching": "profile_id",
"profile_id": "abcdefghijklmnqrstuvwxyz"
}
<xml>
<token>abcdefghijklmnqrstuvwxyz</token>
<id>84</id>
<matching>profile_id</matching>
<profile_id>abcdefghijklmnqrstuvwxyz</profile_id>
</xml>

Send messages to subscribers with Custom_IDs from a list ["IpHicQquekzYkufl", "xzFKLXeaJkCYHuMb", "SRNOwHVZiWFItJhr"].

  • JSON
  • XML
{
"token": "abcdefghijklmnqrstuvwxyz",
"id": 84,
"custom_request":{"Custom_ID": {"$in": ["IpHicQquekzYkufl", "xzFKLXeaJkCYHuMb", "SRNOwHVZiWFItJhr"]}}
}
<xml>
<token>abcdefghijklmnqrstuvwxyz</token>
<id>84</id>
<custom_request>{"Custom_ID": {"$in": ["IpHicQquekzYkufl", "xzFKLXeaJkCYHuMb", "SRNOwHVZiWFItJhr"]}}</custom_request>
</xml>

Insert text "New videos on your favorite channels" to replace {apicontent.email_title} message content variable.

Attach files "日本.txt" and US.txt".

  • JSON
  • XML
{
"token": "abcdefghijklmnqrstuvwxyz",
"id": 96,
"matching": "profile_id",
"profile_id": "6606e08f10bcdd88297057a7",
"attach": [
{
"data": "data:text/csv;base64,5LuK5pel44GvCg==",
"name": "日本.txt"
},
{
"data": "data:text/csv;base64,SEVMTE8K",
"name": "US.txt"
}
],
"content": {
"data_lines": [
"Channel A",
"Channel B"
],
"email_title": "New videos on your favorite channels"
}
}
<xml>
<token>abcdefghijklmnqrstuvwxyz</token>
<id>96</id>
<matching>profile_id</matching>
<profile_id>6606e08f10bcdd88297057a7</profile_id>
<attach>
<data>data:text/csv;base64,5LuK5pel44GvCg==</data>
<name>日本.txt</name>
</attach>
<attach>
<data>data:text/csv;base64,SEVMTE8K</data>
<name>US.txt</name>
</attach>
<content>
<data_lines>Channel A</data_lines>
<data_lines>Channel B</data_lines>
<email_title>New videos on your favorite channels</email_title>
</content>
</xml>

Response example​

  • JSON
  • XML
{
"data": null,
"error": 0,
"error_text": "Successful operation"
}
<xml>
<data/>
<error>0</error>
<error_text>Successful operation</error_text>
</xml>

Version 1.0​

Description​

Methods: GET, POST

In this version, each API trigger has a unique link that is displayed after it is created.

http://<your.tracking.domain>/trg/<base16_value_d1d93d9cca76a7c1742a2f23fbacd>/<email|md5|xxh>

The link will change if you change the trigger database.

Using link 1.0 allows you to send a trigger to only one profile per request.

"email" is a deprecated parameter.

GET request {#Triggerlaunch(APIcall)-Method:GET}​

Sends a message with no optional parameters.

Matches profiles by email, md5 hash or XX hash. XX hash profile matching example:

http://trk.example.org/trg/465ea6fedf0a75fa9ee0b5fb8f9d5fe89af34054909af8bb/dd78094ad0e36ca3

POST JSON request {#Triggerlaunch(APIcall)-Method:POST}​

The same link is used as in the GET request.

http://trk.example.org/trg/465ea6fedf0a75fa9ee0b5fb8f9d5fe89af34054909af8bb/dd78094ad0e36ca3

With POST method you have an option to attach JSON data to message body.

You can override database field values for a mailing message or even update database fields.

  • JSON
  • XML
{
"token": "abcdefghijklmnqrstuvwxyz",
"id": 96,
"matching": "profile_id",
"profile_id": "6606e08f10bcdd88297057a7",
"fields": [
{
"name": "FirstName",
"value": "Jason",
"option": 0
},
{
"name": "Order",
"value": "123abc456-78",
"option": 1
}
]
}
<xml>
<token>2fefb577533d4cae919350c450755239</token>
<id>96</id>
<matching>profile_id</matching>
<profile_id>6606e08f10bcdd88297057a4</profile_id>
<fields>
<name>FirstName</name>
<value>Jason</value>
<option>0</option>
</fields>
<fields>
<name>Order</name>
<value>123abc456-78</value>
<option>1</option>
</fields>
</xml>
  • "name" — profile database field name. If no field matches this name — it won't be used.
  • "value" — profile database field value. Must match field data type.
  • "option" — ( 0 | 1 | 2 ) determines data usage options.
  • "option": 0 — if a database field is not empty — request data will be ignored.
  • "option": 1 — request field value will be used in the message, but will not rewrite database value.
  • "option": 2 — request field value will be used in the message and will rewrite database value.
Last updated on Mar 25, 2026
Previous
Update trigger mailing
Next
Profile import + trigger mailing launch
  • Version 1.1
    • Description
    • Request URL
    • Request parameters
    • Request example
    • Response example
  • Version 1.0
    • Description
    • GET request {#Triggerlaunch(APIcall)-Method}
    • POST JSON request {#Triggerlaunch(APIcall)-Method}
© 2015 - 2026 Altcraft, LLC. All rights reserved.