Incoming Webhooks

This is an article about using Webhooks to send data to Mixmax.

Updated over a week ago

Webhooks are available on the Mixmax Growth+ plan and above. Check out our pricing page for more information.

Incoming Webhooks are a simple way to send data to Mixmax in real time. They make use of normal HTTP requests with a JSON payload.

You can use Incoming Webhooks to:

  • Add someone to a Mixmax sequence from an external system

  • Stop a sequence for a user when something happens outside of Mixmax

  • Add someone to a contact list

Getting started

  1. Open the Rules section in Mixmax.

  2. Click New Rule.

  3. Enter a title for the rule at the top left.

  4. From Choose a trigger app, select Webhook from the Services section.

  5. Copy the webhook URL shown for use in your other application.

  6. Click the Add Action button.

  7. From the Choose an action app menu, select Contact, then Add to a contact list (we'll use this as an example, but you can select other options).

  8. Select a contact list, then click Activate & Close.

Setting up the Webhook trigger

Next, we'll use curl, a simple, ubiquitous tool for sending HTTP requests on the command line, to test sending events to Mixmax. Paste the following into your command line (or a curl utility tool of your choice), replacing the URL with the URL from above.

curl -X POST -H 'Content-type: application/json' --data '{"email":"[email protected]", "name": "John Doe"}' https://gateway.mixmax.com/YOUR_URL_HERE

Check the contact list that you selected under Then. It should now have "John Doe" in it.


Working with different input formats

In order for Mixmax to know the name and email of the person you're adding to the contact list or sequence, it expects the "email" and "name" fields on the JSON object you're posting. But what if you're posting this webhook from an external system where you don't have control over the webhook format? For example, let's say the format looks like this:

curl -X POST -H 'Content-type: application/json' --data '{"candidate": {"email":"[email protected]", "first_name": "John", "last_name": "Doe"}}' https://gateway.mixmax.com/YOUR_URL_HERE 

In order to let Mixmax know where to find "email" and "name," you'll need to transform the above format into a format Mixmax understands. To do that, click Transform and enter:

email = candidate.email

name = candidate.first_name + " " + candidate.last_name

Field names are case-sensitive; they should be in lowercase (e.g., "email").

Webhook transforming

To learn more about transforms, see Mixmax Webhook Transform Language.

Reach out to our support team if you're having trouble. Also, if you think you need something more advanced than what is offered here, consider using the Mixmax API.

Did this answer your question?