Customer.io

Before integrating and sending tests with Customer.io, make sure you've completed the following:

  1. Create a campaign in Poplar
  2. Upload creative (can be a placeholder creative for testing purposes - Poplar Creative Templates)
  3. Locate both your Production Access Token and Test Access Token on the API page of your Poplar Account

For the webhook request to hit our API and be accepted, there must be an active campaign with creative uploaded - otherwise a 400 error will be sent back.

1.Log in to customer.io and click the Campaign tab on the left. If creating a new campaign, give your campaign a name, then click Create Campaign.

3.On the Trigger Step, select the criteria for a customer to enter the campaign flow... then when ready click Next.

4.On the Workflow Step, drag and drop the Send and Receive Data action into the flow where you'd like to send your Poplar Mailer.

5. Click the webhook, name it and select the Add Request.

6. Set the URL to: https://api.heypoplar.com/v1/mailing/

7. Add an HTTP Header and configure an Authorization key and set the Bearer <Your API Key> (make sure to also delete the <>)

8. Log into Poplar and setup a new test API Key for Customer.io. You can get the key at https://app.heypoplar.com/credentials. Copy the test API token and head back to the webhook configuration in customer.io

We strongly recommend you use a test API key to start. Once your workflow is set up successfully and running in test mode, go back into the webhook and swap it out for a production API key to begin mailing.

9.Configure the webhook contents. If you're doing address enrichment you just need to pass the email and any other variable data. If mailing existing customer addresses, you'll pass in the full address. Note the double brackets surrounding the variable data being passed.

For an email append: the customer attribute names you have in your account may differ and need to be modified.

{
  "recipient": {
    "email": "{{ customer.email }}"
  },
  "campaign_id": "REPLACE-WITH-YOUR-CAMPAIGN-ID"
}
For a full address mailing:
{
  "recipient": {
    "first_name" : "{{ customer.first_name }}",
    "last_name" : "{{ customer.last_name }}",
    "address_1": "{{ customer.address_1 }}",
    "address_2": "{{ customer.address_2 | default: "" }}",
    "city": "{{ customer.city }}",
    "state": "{{ customer.state }}",
    "postal_code": "{{ customer.postal_code }}"
  },
  "campaign_id": "REPLACE-WITH-YOUR-CAMPAIGN-ID"
}
	

Key Value
campaign_id copy from the right side of the campaign page on Poplar
full_name Optional, you can also replace with a fixed string like 'Current Resident' for use on the address block
first_name When using first & last name instead of full name in your webhook, you must use BOTH or it will error out.
last_name
address_1
address_2
city
state
postal_code
email

You can also add merge tags with your own variable data at the end. When using first & last name options instead of full name you need to include both or it will error.

10. Test your webhook by sending a test, then checking the history tab of the campaign in poplar to see if it appeared.

11. We recommend leaving the webhook live with your test key for a period of time to get a sense for your volume. Once it looks like it's working well, go back in and replace the API key with a production key to begin mailing.


Exceptions/Troubleshooting

You may see an exception when you don't have a name or address_2 or other metadata you are referencing on every recipient record. It's easy to solve this using an if statement in the webhook.

{% if customer.address_2 != blank %}
    {{ customer.address_2 }}
{% else %}
{% endif %}