Customer.io

Customer.io is an automated cloud messaging platform for marketing automation that allows crafting and sending data-driven emails, push notifications, and SMS messages. Skyvia uses Customer.io App API.

Data integration: Skyvia supports importing data to and from Customer.io, exporting Customer.io data to CSV files, replicating Customer.io data to relational databases, and synchronizing Customer.io data with other cloud apps and relational databases.

Backup: Skyvia Backup does not support Customer.io backup.

Query: Skyvia Query supports Customer.io.

Customer.io-Specific Features and Limitations

Skyvia has the following limitations for Customer.io:

  • In Data Integration product, Customer.io connections are supported only for packages, which use a new data integration runtime.

    Make sure that the Use new runtime checkbox is selected on the tab bar if you want to use Customer.io in your package.

  • Skyvia supports Replication with Incremental Updates for the following objects: BroadcastActions, BroadcastMessages, Broadcasts, BroadcastTriggers, CampaignActions, Campaigns, Collections, CustomerMessages, Customers, Exports, Messages, NewsletterMessages, Newsletters, Snippets, TransactionalMessageDeliveries, TransactionalMessages.

    Besides, the following objects have only the CreateDate field, and thus, replication with incremental updates detects only the new records, but not updates to existing records: BroadcastMessages, BroadcastTriggers, CustomerMessages, Customers, Messages, NewsletterMessages, TransactionalMessageDeliveries.

  • Only the Collections object supports synchronization.
  • Custom attributes of the Customers object are available via the CustomersAttributes object.
  • Some Customer.io objects can be accessed only via their parent objects. For example, to query CustomerSegments, CustomerMessages, or CustomerActivities, Shopify API requires the ID of the corresponding Customer (Skyvia uses the CioId field).

    Skyvia does not require the ID of the parent object from user. If you don’t specify the IDs of the parent objects (for example, in a filter), Skyvia queries all the parent object records first, takes their IDs and then queries child object records for each parent object record. This allows querying child objects without knowing their parents, but this method takes much time and consumes many API calls. It uses at least one API call for every parent object record. Thus, working with child records can be slow.

    Because of this, it is recommended to use filters on the parent object fields when querying data from such child objects. This reduces the number of parent object records, for which child object data must be queried.

  • Skyvia supports the following DML operations for Customer.io objects:

    INSERT, UPDATE, DELETE: Collections, ReportingWebhooks.

    UPDATE, DELETE: Snippets.

    INSERT, DELETE: Segments.

    UPDATE: NewsletterVariants, CampaignActions.

  • Skyvia implements sending emails in Customer.io via stored procedures. Use the corresponding stored procedure to send email with template or without template:

    call SendTransactionalEmailWithTemplate(:TransactionalMessageId, :To, :Identifiers_Email, :Body, :Subject, :From, :MessageData, :SendAt, :Bcc, :FakeBcc, :ReplyTo, :Preheader, :PlaintextBody, :Attachments, :Headers, :DisableMessageRetention, :SendToUnsubscribed, :Tracked, :QueueDraft, :DisableCssPreprocessing);

    call SendTransactionalEmailWithoutTemplate(:Body, :Subject, :From, :To, :Identifiers_Email, :MessageData, :SendAt, :Bcc, :FakeBcc, :ReplyTo, :Preheader, :PlaintextBody, :Attachments, :Headers, :DisableMessageRetention, :SendToUnsubscribed, :Tracked, :QueueDraft, :DisableCssPreprocessing);

    You can use a call to the stored procedure, for example as a text of the command in the ExecuteCommand action in a Target component of a Data Flow.

    Here is the list of parameters:

    • TransactionalMessageId - the id of the transactional message that you want to use as the template.
    • To - recepients’ email addresses, separated by commas. Can contain up to 15 recepients.
    • Identifiers_Email - Identifies the person represented by your transactional message by email.
    • Body - The body of the email message to send. For the SendTransactionalEmailWithTemplate procedure, it overrides the template body.
    • Subject - The subject of the email message to send. For the SendTransactionalEmailWithTemplate procedure, it overrides the template subject.
    • From - The address that your email is from. This address must be verified by Customer.io. You can include a display-friendly name in the format Person <[email protected]>. For the SendTransactionalEmailWithTemplate procedure, it overrides the template from address.
    • MessageData - An object containing the key-value pairs referenced using liquid in your message.
    • SendAt - a timestamp to send the email message at, in unix timestamp format.
    • Bcc - Blind copy message recipients. Supports multiple email addresses separated by commas. Can contain up to 15 email addresses.
    • FakeBcc - If true, instead of sending true copies to BCC addresses, Customer.io sends a copy of the message with the subject line containing the recipient address(es).
    • ReplyTo - The address that recipients can reply to, if it needs to be different from the From address.
    • Preheader - The block block of preview text that users see next to, or underneath, the subject line in their inbox.
    • PlaintextBody - You can use this parameter to override the automatically generated plaintext version of your message body.
    • Attachments - A JSON dictionary of attachments with filenames as keys and base64-encoded file contents as values. The total size of all attachments must not exceed 2 MB. Some filetype extensions are restricted.
    • Headers - An array of header JSON objects. Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten.
    • DisableMessageRetention - If true, the message body is not retained in delivery history. For the SendTransactionalEmailWithTemplate procedure, this parameter overrides the corresponding template setting. Default value is false.
    • SendToUnsubscribed - If true, the message is sent to unsubscribed recipients. For the SendTransactionalEmailWithTemplate procedure, this parameter overrides the corresponding template setting. Default value is true.
    • Tracked - Enables tracking of email message opens and link clicks. Default value is false.
    • QueueDraft - If true, the email message is held as a draft in Customer.io and is not sent directly to recepients. To send your message, go to the Deliveries and Drafts page.
    • DisableCssPreprocessing - Disables CSS preprocessing. For the SendTransactionalEmailWithTemplate procedure, this parameter overrides the corresponding template setting. Default value is false.

Customer.io Connections

To establish a connection, you need to select your subdomain values,

To create a Customer.io connection, perform the following steps:

  1. Click +NEW in the top menu.
  2. Open the Select Connector page by clicking Connection in the menu on the left.
  3. In the opened pane, click Customer.io.
  4. In the Connection Editor page, in the Untitled field, specify a connection name that will be used to identify the connection.

    Connection window

  5. Select the Account Region if you use a non US region.
  6. Enter your App API Key. You can manage your API keys in your Customer.io account settings. See Customer.io documentation for more information.
  7. Click Create Connection.

Supported Actions and Actions Specifics

Customer.io connector supports the following actions: