Skip to main content

We are using Typeform to send out an NPS survey and I want to set a conversion goal for the same as only those people should be counted as converted who have filled the Typeform. How would I set this up? 

Measuring conversions for your campaign based on which profiles have completed and submitted a Typeform survey from your email is certainly possible to do, but it does require a bit of additional set up.

To give a high-level overview, the way that this works is that you would first need to add a hidden field in Typeform, which allows you to pass custom URL parameters into the survey link. In this case, we would want to add cio_id as a hidden field, which allows you to then pull in the cio_id value of the recipient in the link URL. The reason this is needed is so that when that person submits their survey in Typeform, that cio_id can be added to the webhook response that will need to be sent back to Customer.io. From there, you can capture that webhook with a data campaign and create an event from it. You can then use a data driven segment to capture those who have performed the event (which we'll call "typeform_submitted" for example), and have clicked through from the email you're sending. That segment can then be used as your conversion goal, so that anyone who enters that segment having been sent the email, we will know that they have submitted the survey and truly converted.

So, to start, the first place you'll need to go is into Typeform. If you go into your survey there, on the Create page you'll see a tab near the top-right called Logic, and in that menu you'll see Hidden Fields.

3f25b630ec6a4f90dd2efbf920e28b6b.png

If you click there, you'll then have the option to create a new Hidden Field. For simplicity, I called mine cio_id, but you're welcome to call it whatever you'd like. Once you've added the field, you'll then need to get the updated HTML embed code for your email from the Share tab as you've done before. This time, you'll set this static value for your hidden field: {{customer.cio_id}}

d303b2c00e98c04d58c5fa1095bb0905.png

*For quick context
, the cio_id is an identifier attribute that Customer.io automatically generates for every customer, so all of your customers have this. It's a unique identifier that we're going to use so that we can identify their survey submission back to their profile.

Once you copy the updated HTML over to your email and paste it in, you'll be able to click the Review Links button at the top of the composer and see that Customer.io is now pulling in the unique cio_id for the sample person. Here's an example from my own testing:

110e0c42e3086f2573fd83f90e14c84f.png

So now when a customer submits their survey, we need to Typeform to send us a webhook. This is where you'll now need to create a new Data Campaign. Once you go to Campaigns and create a new Data Campaign, you can copy its URL and navigate to the Connect tab in Typeform. There you'll see a Webhooks tab at the top, where you can then paste in your data campaign's URL. Once you save this, you can then navigate back to your data campaign in Customer.io.

From here, you can create an event based off of the webhook we receive from Typeform. That webhook's JSON response is going to contain the cio_id value, which we can use as the identifier for the event. You can use sample data on the left-hand side if any has appeared, but for illustration the identifier is going to be set using this value from Typeform: form_response.hidden.cio_id

4c9428a5000ad691bdbffa5aa62cccb0.png

The event name can be whatever you'd like, but following my example above we can call it typeform_submitted. From there, this is all you need to create an event, but if you'd like to pull in other data from the webhook as well, you're welcome to. Once you have the data campaign running, it will then begin creating events as people submit the survey.

Lastly, now that we're creating events of the Typeform webhooks that identify the person who submitted the survey, we can now create your conversion segment. For this, I recommend you use logic such as:
 

  • event > typeform_submitted > has been performed
  • AND
  • email > *name of your Typeform email* > has been clicked


ec348d709f550a8ad48d7182198c2344.png

By doing this, you can track conversions accurately by knowing the person has been sent the email, has clicked in it, and has performed an event that says they submitted it. You can then set this segment as your conversion goal and begin tracking those who submit the survey after receiving the email inviting them to take part.

I know that this is quite a many steps, but I hope it gives you a clear vision for tracking conversions from your Typeform survey! I personally tested this myself and can confirm that it works as expected. If you do have any further questions or need anything further, please don't hesitate to let us know. Cheers and I hope you have an excellent weekend.


Reply