> For the complete documentation index, see [llms.txt](https://help.mimeeq.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.mimeeq.com/developer-guides/webhooks.md).

# Webhooks

Send real-time Mimeeq data straight to your own systems. Learn how to create and test webhooks, read the payload and connect Zapier or Power Automate.

Webhooks are a way for your application to get real-time data when an event occurs in our platform. They have a message (or payload) which is sent to a unique URL. In this article you will find a step-by-step guide to help you create and test your first webhooks in Mimeeq.

{% hint style="info" %}
For more detailed information on setting up webhooks in Mimeeq, including payload examples, please check out our [developer documentation](https://docs.mimeeq.com/webhooks).
{% endhint %}

***

## How to create a webhook

{% stepper %}
{% step %}

### Open the webhook settings

Log in to the Mimeeq app, go to **Settings** and look for the **Data** section. Select **Webhooks** to open the webhook settings page.

![Webhooks option in the Data section of Mimeeq Settings](https://621103948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsqWfi8ifBhTdkvf1vOlY%2Fuploads%2FLgTisZPE5kI1DMYwIwNn%2Fwebhooks-image-1_trxcso.png?alt=media)
{% endstep %}

{% step %}

### Create a new webhook

On the **Webhooks** page, click the option to create a new webhook and provide the following details:

<table><thead><tr><th width="60">#</th><th>Field</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td>1</td><td><strong>Webhook Name</strong></td><td>A unique name for the webhook.</td><td>Required</td></tr><tr><td>2</td><td><strong>Endpoint URL</strong></td><td>The HTTP endpoint where your preferred events are sent. We can send them only to a full, valid, publicly accessible URL.</td><td>Required</td></tr><tr><td>3</td><td><strong>HTTP Auth Header Name and Value</strong></td><td>Adds an extra security layer to your webhook, ensuring every request includes a custom authorisation header. This allows you to implement custom verification logic at your endpoint, filtering out unauthorised requests.</td><td>Optional</td></tr><tr><td>4</td><td><strong>Select Event Type</strong></td><td>Select the events for which you want to receive payloads.</td><td>Required</td></tr></tbody></table>

![Create a New Webhook form in Settings → Webhooks](https://621103948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsqWfi8ifBhTdkvf1vOlY%2Fuploads%2F02YXLoWhFsxVxdTJTDUq%2Fwebhooks-image-2_1f3kwm0.png?alt=media)
{% endstep %}
{% endstepper %}

***

## How to test your webhook

Once your webhook is created, it's important to test it to make sure it works as expected. You can simply trigger a real event, which will include your real data. However, if you want to make sure the endpoint is working, you can send a test payload.

{% stepper %}
{% step %}

### Open the webhook details

Find your webhook in the list and open the **Webhook Details** page.
{% endstep %}

{% step %}

### Choose an event type

Scroll down to the **Test Webhook** section and select the event type you want to test.
{% endstep %}

{% step %}

### Send the test

Click **Send Test**. A message at the top tells you whether your test request was successful.

![Test Webhook section with event type selector and Send Test button](https://621103948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsqWfi8ifBhTdkvf1vOlY%2Fuploads%2FBClNtDdxFqoYvQz5gWRg%2Fwebhooks-image-3_17fbkq2.png?alt=media)
{% endstep %}
{% endstepper %}

To review the result of the last attempt, go back to the webhook list.

{% hint style="warning" %}
Events generated by testing webhooks are not counted as a last attempt, so you will not see them in the data grid.
{% endhint %}

![Webhook list showing the status of the last attempt](https://621103948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsqWfi8ifBhTdkvf1vOlY%2Fuploads%2FvxykiUHw7wRvXcgFJdbV%2Fwebhooks-image-4_klxiv5.png?alt=media)

We retry failed webhooks. For details, refer to our [developer documentation](https://docs.mimeeq.com/webhooks).

***

## Webhook format

When a webhook is triggered, the data received is in the following format:

```json
{
  "meta": {
    "webhookId": "string",
    "eventId": "string",
    "eventType": "string",
    "eventTimestamp": "string", 
    "entityId": "string",
    "version": "string"
  },
  "data": {/*specific data for the event*/} 
}
```

In this example:

* **`webhookId`:** the unique identifier of the webhook definition.
* **`eventId`:** the unique identifier for the specific event.
* **`eventType`:** the type of event triggered, such as basket-submitted, contact-created, etc.
* **`eventTimestamp`:** the exact date and time when the event happened.
* **`entityId`:** the ID of the main item involved in the event. For example, for events related to contacts (like contact-created, contact-updated or contact-deleted), this would be the contactId.
* **`version`:** the version of the payload format being used.
* **`data`:** event-specific information, which varies depending on the eventType.

{% hint style="info" %}
See our [dev docs](https://docs.mimeeq.com/webhook-payloads-basket) for more details and payload examples for each event type.
{% endhint %}

***

## List of webhooks

Below is the current list of event types available in Mimeeq. These events can trigger notifications or updates within your system, ensuring seamless real-time communication and automated processes based on specific actions or changes.

### Basket

| Event Type       | Triggered when...           |
| ---------------- | --------------------------- |
| basket-submitted | ... someone submits basket. |

### Contact

| Event Type      | Triggered when...                            |
| --------------- | -------------------------------------------- |
| contact-created | ... a new contact is created.                |
| contact-updated | ... changes are made to an existing contact. |
| contact-deleted | ... a contact is removed.                    |

### Company

| Event Type           | Triggered when...                                      |
| -------------------- | ------------------------------------------------------ |
| company-created      | ... a new company is created.                          |
| company-updated      | ... changes are made to an existing company.           |
| company-deleted      | ... a company is removed.                              |
| company-note-created | ... a new note is attached to a company's records.     |
| company-note-updated | ... an existing note on a company's record is updated. |
| company-note-deleted | ... a note linked to a company is removed.             |

***

## Example use case

You want to create a new deal in your CRM for basket submissions. For the sake of this example, let's presume your CRM is Pipedrive and you will use Zapier to connect it. Here is how you would do that:

```mermaid
flowchart LR
    A[Basket submitted in Mimeeq] --> B[Zapier webhook trigger]
    B --> C[Contact and deal in Pipedrive]
    C --> D[Sales team notified in MS Teams]
```

1. Log in to Zapier and create a Zap.
2. The Zap would have a webhook as a trigger.
3. Copy the webhook address and create your webhook in Mimeeq for the basket payload.
4. Click test webhook to send the payload to Zapier.
5. In Zapier, set up your actions to create a contact and deal in Pipedrive.
6. To do that, pass the contact name and email from the webhook payload to Pipedrive; likewise, you can create a deal with the details from the payload.
7. You could finish with another action that notifies the sales team via MS Teams that there is a new basket submission that needs attention.

{% hint style="info" %}
There are many low-code automation tools, such as [Zapier](https://zapier.com/) — probably the most popular, with the most connections — and [Make](https://www.make.com/en) for more advanced scenarios. With Zapier you will not need a developer to set up your automations, as it's a low-code, user-friendly system.
{% endhint %}

***

## Using Power Automate with Mimeeq webhooks

Yes, you can use Power Automate with Mimeeq webhooks, but you need to use a middle tool like Hookdeck.

When sending webhooks from Mimeeq to Power Automate, you may find the data doesn't arrive correctly. This happens because AWS (which powers Mimeeq) sends webhook data in "chunks", but Power Automate expects to receive data all at once in a single package.

{% hint style="info" %}
This solution is specifically required for Mimeeq basket webhooks and other webhook types where the payload can exceed the 256KB size limit for a single chunk. The basket-submitted webhook often contains detailed product configurations and customer data that make the payload large enough to trigger chunking.
{% endhint %}

The steps below help you set up Hookdeck as a middleware solution that sits between Mimeeq and Power Automate. Hookdeck automatically receives the chunked data, reassembles it and sends it to Power Automate in the format it expects. This solves the data transmission issues without requiring any changes to your Mimeeq or Power Automate configurations beyond changing a single webhook URL.

```mermaid
flowchart LR
    A[Mimeeq webhook] -->|chunked data| B[Hookdeck]
    B -->|complete payload| C[Power Automate]
```

### Set up Hookdeck

{% stepper %}
{% step %}

### Create a Hookdeck account

* Go to [hookdeck.com](https://hookdeck.com/) and sign up for a free account.
* The free tier includes 10,000 events per month (each webhook counts as one event when received and another when forwarded).
* This gives you approximately 5,000 webhook processes per month at no cost.
  {% endstep %}

{% step %}

### Create a source (inbound webhook)

* In the Hookdeck dashboard, click **Create a Source**.
* Give it a descriptive name like "Mimeeq Webhooks".
* You'll get a unique URL that looks like: `https://hook.events/yourworkspace/yoursource`
* Copy this URL — you'll need it for the Mimeeq configuration.
  {% endstep %}

{% step %}

### Create a destination (outbound webhook)

* In Hookdeck, click **Create a Destination**.
* Enter your existing Power Automate webhook URL.
* Keep the default settings for request method (POST) and content type (application/json).
* Save the destination.
  {% endstep %}

{% step %}

### Connect the source to the destination

Create a **Connection** that links your source to your destination. This tells Hookdeck where to forward the webhooks after receiving them.
{% endstep %}

{% step %}

### Update your webhook in Mimeeq

* Navigate to **Settings → Webhooks**.
* In the **Webhook URL** field, replace your Power Automate URL with the Hookdeck source URL.
* Leave everything else the same (event types, authentication if any).
* Save changes.
  {% endstep %}
  {% endstepper %}

{% hint style="success" %}
That's it! Hookdeck will now receive chunked webhook data from Mimeeq, automatically reassemble it into complete payloads and forward the complete data to Power Automate. No additional configuration is needed — chunking is handled automatically by Hookdeck.
{% endhint %}

### Benefits

* **Reliability:** Hookdeck manages the chunking issue completely
* **Visibility:** You can see all webhook events in the Hookdeck dashboard
* **History:** View detailed logs of all sent and received webhooks
* **Troubleshooting:** Easily identify and resolve any webhook issues
* **Free tier:** 10,000 events per month at no cost

### Optional advanced features

* **Retry logic:** Configure automatic retries if the destination is temporarily unavailable
* **Filtering:** Set up rules to filter webhooks based on their content
* **Transformations:** Modify payload content before it reaches Power Automate (not needed for chunking)
* **Alerting:** Get notified about failed webhook deliveries

Hookdeck is used by many developers and businesses to solve exactly this kind of webhook reliability issue, and it works well with Mimeeq and Power Automate.

***

## Related articles

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>API Keys</strong></td><td>Create and manage Embed and Admin API keys, and monitor API requests.</td><td><a href="/developer-guides/api-keys.md">API Keys</a></td></tr><tr><td><strong>Events &#x26; Tracking</strong></td><td>Use configurator events to feed your own analytics.</td><td><a href="/developer-guides/events-and-tracking.md">Events &amp; Tracking</a></td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://help.mimeeq.com/developer-guides/webhooks.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
