Incoming Webhooks

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 (or click here).
  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 others)
  8. Select a contact list, then click Activate & Close

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":"", "name": "John Doe"}'

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 "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":"", "first_name": "John", "last_name": "Doe"}}'

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 the Transform and enter:

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

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

Learn more about transforms here.

Send us an email at 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? Thanks for the feedback There was a problem submitting your feedback. Please try again later.