v1.0.0
OpenAPI 3.1.0

Send a transactional push

US region

Client Libraries

Send a transactional push

Send a transactional push. You send a message using a transactional_message_id for a transactional push message template composed in the user interface. You can optionally override any of the template values at send time. The transactional_message_id can be either the numerical ID for the template or the Trigger Name that you assigned the template.

You can find your transactional_message_id from the code sample in the Overview tab for your transactional message in the user interface, or you can look up a list of your transactional messages through the App API.

Body
application/json
    • identifiers
      required

      Identifies the person represented by your transactional message by one of, and only one of, id, email, or cio_id.

      Identifies the person represented by your transactional message by one of, and only one of, id, email, or cio_id.

      • id
        Type: string
        required

        The identifier for the person represented by the transactional message. NOTE: If your workspace identifies people by email, use the email identifier instead.

    • transactional_message_id
      required

      The transactional message template that you want to use for your message. You can call the template by its numerical ID or by the Trigger Name that you assigned to the template in the UI (case insensitive).

      • Type: integer · ID (integer)

        The ID of the transactional message you want to send.

    • auto_create
      Type: boolean

      If true and your transactional_message_id doesn't match a record, Customer.io creates an empty record using that value as the Trigger Name. The ID must be a string. If the name already belongs to another channel, the request fails with 400, and numeric IDs ignore this setting. See details.

    • custom_data
      Type: object

      Optional key/value pairs you want to attach to the push payload. Firebase only supports string values. This overrides the Custom Data from your transactional template.

    • custom_device
      Type: object

      A device to perform an upsert operation at the time of send. The device will be added/updated on the profile from the Identifiers block.

    • custom_payload
      Type: object

      Optional key/value pairs you want to attach to the push payload. Firebase only supports string values. This overrides all other payload values, including the Custom Payload from your transactional template.

    • disable_message_retention
      Type: boolean

      If true, the message body is not retained in delivery history. Setting this value overrides the value set in the settings of your transactional_message_id.

    • image_url
      Type: string

      An image URL to show in the push. This overrides Image from the transactional template (referenced by transactional_message_id).

    • language
      Type: string

      Overrides language preferences for the person you want to send your transactional message to. Use one of our supported two- or four-letter language codes.

    • Type: string

      A deep link to open when the push is tapped. This overrides Link from the transactional template (referenced by transactional_message_id).

    • message
      Type: string

      The message body for your notification. This overrides the notification body of the transactional template (referenced by transactional_message_id).

    • message_data
      Type: object

      An object containing the key-value pairs referenced using liquid in your message.

    • queue_draft
      Type: boolean

      If true, your transactional message is held as a draft in Customer.io and not sent directly to your audience. You must go to the Deliveries and Drafts page to send your message.

    • send_at
      Type: integer

      A unix timestamp (seconds since epoch) determining when the message will be sent. The timestamp can be up to 90 days in the future. If this value is in the past, your message is sent immediately.

    • send_to_unsubscribed
      Type: boolean

      If false, your message is not sent to unsubscribed recipients. Setting this value overrides the value set in the settings of your transactional_message_id.

    • sound
      Type: stringenum

      For iOS Only: your notification can alert users with the device's default notification sound or play no sound at all.

      values
      • default
      • none
    • title
      Type: string

      The title for your notification. This overrides the title of the transactional template (referenced by transactional_message_id).

    • to
      Type: stringenum

      The devices you want to send this push to—all, last_used, or a custom device token from the identified profile. Defaults to all and overrides the To value from your transactional template.

      values
      • all
      • last_used
      • $device_token
Responses
  • application/json
  • application/json
  • application/json
Request Example for post/v1/send/push
curl https://api.customer.io/v1/send/push \
  --request POST \
  --header 'X-Workspace-Id: 100' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  --data '{
  "transactional_message_id": 44,
  "title": "Did you really login from a new location?",
  "identifiers": {
    "id": 12345
  },
  "message_data": {
    "password_reset_token": "abcde-12345-fghij-d888",
    "account_id": "123dj"
  }
}'
{
  "delivery_id": "string",
  "queued_at": 1,
  "send_at": 1
}