Execute

📘

Success response

In default asynchronous mode, a successful result does not signify that the message has been delivered to gateway, only that all validations have passed (eg. campaign exists, target set, params in correct format).

Review the campaign model properties page to see the available parameters.

Examples

Executing a campaign, targeting a single user by external ID and setting a number of variables in the campaign text.

curl --request POST \
  --url https://external-api.xtremepush.com/api/external/execute/campaign \
  --header 'content-type: application/json' \
  --data '{
    "apptoken": "YOURAPPTOKEN",
    "id": "CAMPAIGNID",
    "target_with_params": {
      "crm-user-1": {"fname": "Alex", "balance": "100 EUR"},
      "crm-user-2": {"fname": "John", "balance": "80 EUR"}
    },
    "target_by": "user_id"
  }'

Executing a campaign at a specific time and including external_message_id in the request, which is a customer-defined reference for the transaction. If passed, it is returned in the payload for the webhooks integration, to easily match transactions on the client’s end.

curl --request POST \
  --url https://external-api.xtremepush.com/api/external/execute/campaign \
  --header 'content-type: application/json' \
  --data '{
    "apptoken": "YOURAPPTOKEN",
    "id": "CAMPAIGN_ID",
    "target": ["user1", "user2"],
    "target_by": "user_id",
    "params": {
        "external_message_id": "987654321"
    },
    "time": "2021-01-01 12:00 UTC"
  }'

Update or create a new profile when executing a campaign

Setting the optional param target_existing_only to 0 allows creating a new user profile and update the following 4 system attributes if they are passed within target_with_params in the request:

  • email
  • mobile_number
  • email_subscription
  • mobile_subscription

The identifier used to execute the campaign should match the projects' primary identifier (user ID by default).

curl --request POST \
  --url https://external-api.xtremepush.com/api/external/execute/campaign \
  --header 'content-type: application/json' \
  --data '{
    "apptoken": "YOURAPPTOKEN",
    "id": "CAMPAIGN_ID",
    "target_by": "PROJECTS_PRIMARY_IDENTIFIER",
    "target_existing_only": "0",
    "target_with_params": {
        "IDENTIFIER1": {
            "external_message_id": "1",
            "email":"[email protected]",
            "mobile_number": "XXXXXXXXXX",
            "first_name": "María"
        },
        "IDENTIFIER2": {
            "external_message_id": "2",
            "email":"[email protected]",
            "mobile_number": "XXXXXXXXXX",
           "first_name": "Grace" 
        }
    }
 }'

Additional campaign parameters

You can use any of the regular parameters for the campaign model to set or overwrite campaign properties to add content, segment users, etc.

For example, you could add a payload like a deeplink to be used when the notification is opened:

curl --request POST \
  --url https://external-api.xtremepush.com/api/external/execute/campaign \
  --header 'content-type: application/json' \
  --data '{
    "apptoken": "YOURAPPTOKEN",
    "id": "CAMPAIGNID",
    "target": [123456],
    "payload_add": [
      {
        "key": "URL_KEY",
        "value": "https://m.example.com/deeplink/123456"
      }
    ]
  }'

Another example, executing a campaign that enables the web push 'require interaction' option, and has a retry period of 2 weeks:

curl --request POST \
  --url https://external-api.xtremepush.com/api/external/execute/campaign \
  --header 'content-type: application/json' \
  --data '{
     "apptoken": "YOURAPPTOKEN",
     "id": "CAMPAIGNID",
     "target_by": "user_id",
     "target": ["12345"],
     "messages": {
         "3": {
             "push_require_interaction": true
         }
     },
     "retry_for": 2,
     "retry_for_period": "weeks"
}'

Another example of executing a campaign for a single user and including external_message_id in the request:

{
    "apptoken": "YOURAPPTOKEN",
    "id": "CAMPAIGNID",
    "target_by": "user_id",
    "target_with_params": {
        "12345": {
            "first_name": "FIRSTNAME",
            "external_message_id": "987654321"
        }
    }
}
Language
Click Try It! to start a request and see the response here!