< Customer.io Actions

Send an NPS Survey with Promoter.io

Promoter.io captures actionable customer feedback using the Net Promoter System (NPS) to proactively reduce churn and to drive growth. You can connect Customer.io to Promoter.io, using Webhook Actions, to send a survey after a specific trigger has taken place. In our example, we will send a message to a user who has reached the appropriate step in an automation workflow.

Show me how!

The finished product:

Send an NPS survey with Promoter.io and Customer.io

Login or create an free account on Promoter.io if you do not already have one.

Select your import method

Once created, you will be prompted to select a method to import contacts into Promoter.io.

Choose “Promoter API."

Name and set up your campaign

From here, you will need to work your way through the campaign setup and configuration wizard.

The first step is to name and set up your campaign.

Name and set up your list

Next, you'll want to name and set up your list.

This is the list of contacts to which your NPS newsletter will be sent, and to which Customer.io will be sending data.

Choose or create your NPS template

Choose which survey template you'd like to use from Promoter.io, or create a new one. This is the template that will be used to send out your survey to the above list.

If you need to, you can send a test mail to yourself to see how the template works.

Configure delivery time and recurrence of NPS template

Choose when you'd like to send the newsletter, and whether or not there is a delay in sending, after the user is added to your list.

Get your API information

Once you've finished your setup, you will be presented with a page with all of your API integration information.

You'll need your API key, endpoint, and campaign ID. The endpoint looks something like this:


While your API key will be at the very top of the page, a string of numbers and letters. You'll need both when you're setting up your webhook in Customer.io.

Create your Customer.io campaign

Then, in Customer.io, create your campaign and give it a name. Once you've done that, select your segment or event trigger.

Create your webhook

Now, in the workflow, we can set up our webhook action. Add your webhook, and give it a name.

Then, click Edit Request to get the details set up.

Configure your webhook's headers

Next to POST, add your API endpoint that we mentioned earlier. Again, it should look something like:


Then, click 'Add header'. Give it a name of 'Authorization' and a value of:


Your API key can be found in your campaigns settings, in the step above. Our headers look something like this:

Configure your webhook's body

The body of your webhook is what you'll be adding to the list. In ours, we have the following:

This means that, to our Actions Test List we defined earlier, we will be adding a user with an email of test@email.com, with the attributes "Bronze" for their Plan, and "Ice Cream" as their favourite food. After you confirm your test works you'll want to replace your test email address TEST@EMAIL.COM with the liquid tag.

The only mandatory fields here are "email" and "campaign." This is where you need your campaign ID from earlier; it should be a five-digit number.

Compose and customize the body however you need to. For a more comprehensive list of attributes, you can view Promoter's API Docs.

Send Request

When you’re ready to test, you can click “Send Request”. Customer.io will show you the response from the Promoter API.

If you’re successful, you’ll see a 201 Created Response.


You can now ensure that data and actions are passing as expected between Customer.io and Promoter.io:

In the Promoter.io interface, click on Contact Lists in the top nav. On this page, you'll see the test list; click into it to see your contact added:

Your survey should they go out however you've configured it within Promoter, with whichever template and delay you've chosen!

We’re excited to hear how you end up using Promoter.io with Customer.io’s Webhook Action. If you have any trouble, let us know! We're happy to help.