> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getmateo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhook Events Reference

> Learn about the webhook events and HTTP responses sent by Hellomateo webhooks.

## Overview

Webhooks in hellomateo allow you to trigger an HTTP POST callback to a configured URL when specific events happen within your Hellomateo account. Webhooks can be used to build integrations, such as notifications or workflows.

### `contact.created`

A new contact has been created.

**Example:**

```json theme={null}
{
  "campaign_messages_this_month": 123,
  "created_at": "<string>",
  "description": "<string>",
  "display_name": "<string>",
  "email": "<string>",
  "facebook": "<string>",
  "full_name": "<string>",
  "google_business_messaging": "<string>",
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "instagram": "<string>",
  "latest_marketing_opt_in_request_sent_at": "<string>",
  "marketing_opt_in": true,
  "number_of_marketing_opt_in_requests": 123,
  "organisation_id": "00000000-0000-0000-0000-000000000000",
  "sms": "<string>",
  "transactional_opt_in": "legitimate_interest",
  "updated_at": "<string>",
  "whatsapp": "<string>"
}
```

### `contact_details.updated`

The contact details have been updated. This can be data on the contact itself, its custom field or its marketing subscriptions.

**Example:**

```json theme={null}
{
  "campaign_messages_this_month": 123,
  "created_at": "<string>",
  "description": "<string>",
  "display_name": "<string>",
  "email": "<string>",
  "facebook": "<string>",
  "full_name": "<string>",
  "google_business_messaging": "<string>",
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "instagram": "<string>",
  "latest_marketing_opt_in_request_sent_at": "<string>",
  "marketing_opt_in": true,
  "number_of_marketing_opt_in_requests": 123,
  "organisation_id": "00000000-0000-0000-0000-000000000000",
  "sms": "<string>",
  "transactional_opt_in": "legitimate_interest",
  "updated_at": "<string>",
  "whatsapp": "<string>",
  "my_channel": "accepted",
  "my_custom_field": "value"
}
```

### `contact.deleted`

A contact has been deleted.

**Example:**

```json theme={null}
{
  "campaign_messages_this_month": 123,
  "created_at": "<string>",
  "description": "<string>",
  "display_name": "<string>",
  "email": "<string>",
  "facebook": "<string>",
  "full_name": "<string>",
  "google_business_messaging": "<string>",
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "instagram": "<string>",
  "latest_marketing_opt_in_request_sent_at": "<string>",
  "marketing_opt_in": true,
  "number_of_marketing_opt_in_requests": 123,
  "organisation_id": "00000000-0000-0000-0000-000000000000",
  "sms": "<string>",
  "transactional_opt_in": "legitimate_interest",
  "updated_at": "<string>",
  "whatsapp": "<string>"
}
```

### `conversation.inbound`

An inbound message has been received.

**Example:**

```json theme={null}
{
  "id": "00000000-0000-0000-0000-000000000000",
  "type": "inbound",
  "source": {
    ... the channel that received the message ...
  },
  "target": {
    ... the message that was received, including the recipients ...
  },
  "inbox_id": "00000000-0000-0000-0000-000000000000",
  "metadata": null,
  "created_at": "2024-07-02T15:47:46+00:00",
  "updated_at": "2024-07-02T15:47:51.613711+00:00",
  "source_type": "channel",
  "target_type": "message",
  "conversation": {
    ... the conversation that the message belongs to ...
  },
  "conversation_id": "00000000-0000-0000-0000-000000000000",
}
```

### `conversation.outbound`

A message has been sent.

**Example:**

```json theme={null}
{
  "id": "00000000-0000-0000-0000-000000000000",
  "type": "inbound",
  "source": {
    ... the channel that sent the message ...
  },
  "target": {
    ... the message that was sent, including the recipients ...
  },
  "inbox_id": "00000000-0000-0000-0000-000000000000",
  "metadata": null,
  "created_at": "2024-07-02T15:47:46+00:00",
  "updated_at": "2024-07-02T15:47:51.613711+00:00",
  "source_type": "channel",
  "target_type": "message",
  "conversation": {
    ... the conversation that the message belongs to ...
  },
  "conversation_id": "00000000-0000-0000-0000-000000000000",
}
```

### `conversation.submission_error`

We are unable to submit the message to the API of the provider.

**Example:**

```json theme={null}
{
  "id": "00000000-0000-0000-0000-000000000000",
  "type": "submission_error",
  "source": {
    ... the channel that tried to submit the message ...
  },
  "target": {
    ... the message for which the submission failed, including the recipients ...
  },
  "inbox_id": "00000000-0000-0000-0000-000000000000",
  "metadata": null,
  "created_at": "2024-07-02T15:47:46+00:00",
  "updated_at": "2024-07-02T15:47:51.613711+00:00",
  "source_type": "channel",
  "target_type": "message",
  "conversation": {
    ... the conversation that the message belongs to ...
  },
  "conversation_id": "00000000-0000-0000-0000-000000000000",
  "metadata": {
    ... maybe information about the error ...
  }
}
```

### `conversation.sending_error`

The provider is unable to send the message to the recipient.

**Example:**

```json theme={null}
{
  "id": "00000000-0000-0000-0000-000000000000",
  "type": "sending_error",
  "source": {
    ... the channel that tried to send the message ...
  },
  "target": {
    ... the message for which sending failed, including the recipients ...
  },
  "inbox_id": "00000000-0000-0000-0000-000000000000",
  "metadata": null,
  "created_at": "2024-07-02T15:47:46+00:00",
  "updated_at": "2024-07-02T15:47:51.613711+00:00",
  "source_type": "channel",
  "target_type": "message",
  "conversation": {
    ... the conversation that the message belongs to ...
  },
  "conversation_id": "00000000-0000-0000-0000-000000000000",
  "metadata": {
    ... maybe information about the error ...
  }
}
```

### `conversation.tag`

A conversation has been tagged.

**Example:**

```json theme={null}
{
  "id": "00000000-0000-0000-0000-000000000000",
  "type": "tag",
  "source": {
    ... the employee or api token that added the tag ...
  },
  "target": {
    ... the tag that was added ...
  },
  "inbox_id": "00000000-0000-0000-0000-000000000000",
  "metadata": null,
  "created_at": "2024-07-02T15:47:46+00:00",
  "updated_at": "2024-07-02T15:47:51.613711+00:00",
  "source_type": "employee",
  "target_type": "tag",
  "conversation": {
    ... the conversation ...
  },
  "conversation_id": "00000000-0000-0000-0000-000000000000",
}
```

### `conversation.untag`

A tag has been removed from a conversation.

**Example:**

```json theme={null}
{
  "id": "00000000-0000-0000-0000-000000000000",
  "type": "untag",
  "source": {
    ... the employee or api token that removed the tag ...
  },
  "target": {
    ... the tag that was removed ...
  },
  "inbox_id": "00000000-0000-0000-0000-000000000000",
  "metadata": null,
  "created_at": "2024-07-02T15:47:46+00:00",
  "updated_at": "2024-07-02T15:47:51.613711+00:00",
  "source_type": "employee",
  "target_type": "tag",
  "conversation": {
    ... the conversation ...
  },
  "conversation_id": "00000000-0000-0000-0000-000000000000",
}
```

### `conversation.assign`

A conversation has been assigned to a user.

**Example:**

```json theme={null}
{
  "id": "00000000-0000-0000-0000-000000000000",
  "type": "assign",
  "source": {
    ... the employee or api token that assigned the employee ...
  },
  "target": {
    ... the employee that was assigned ...
  },
  "inbox_id": "00000000-0000-0000-0000-000000000000",
  "metadata": null,
  "created_at": "2024-07-02T15:47:46+00:00",
  "updated_at": "2024-07-02T15:47:51.613711+00:00",
  "source_type": "employee",
  "target_type": "employee",
  "conversation": {
    ... the conversation ...
  },
  "conversation_id": "00000000-0000-0000-0000-000000000000",
}
```

### `conversation.unassign`

A conversation has been unassigned from a user.

**Example:**

```json theme={null}
{
  "id": "00000000-0000-0000-0000-000000000000",
  "type": "unassign",
  "source": {
    ... the employee or api token that unassigned the employee ...
  },
  "target": null,
  "inbox_id": "00000000-0000-0000-0000-000000000000",
  "metadata": null,
  "created_at": "2024-07-02T15:47:46+00:00",
  "updated_at": "2024-07-02T15:47:51.613711+00:00",
  "source_type": "employee",
  "target_type": null,
  "conversation": {
    ... the conversation ...
  },
  "conversation_id": "00000000-0000-0000-0000-000000000000",
}
```

### `conversation.reopen`

A conversation has been reopened.

**Example:**

```json theme={null}
{
  "id": "00000000-0000-0000-0000-000000000000",
  "type": "unassign",
  "source": {
    ... the employee or api token or rule that reopened the conversation ...
  },
  "target": null,
  "inbox_id": "00000000-0000-0000-0000-000000000000",
  "metadata": null,
  "created_at": "2024-07-02T15:47:46+00:00",
  "updated_at": "2024-07-02T15:47:51.613711+00:00",
  "source_type": "employee",
  "target_type": null,
  "conversation": {
    ... the conversation ...
  },
  "conversation_id": "00000000-0000-0000-0000-000000000000",
}
```

### `conversation.close`

A conversation has been closed.

**Example:**

```json theme={null}
{
  "id": "00000000-0000-0000-0000-000000000000",
  "type": "unassign",
  "source": {
    ... the employee or api token or rule that closed the conversation ...
  },
  "target": null,
  "inbox_id": "00000000-0000-0000-0000-000000000000",
  "metadata": null,
  "created_at": "2024-07-02T15:47:46+00:00",
  "updated_at": "2024-07-02T15:47:51.613711+00:00",
  "source_type": "employee",
  "target_type": null,
  "conversation": {
    ... the conversation ...
  },
  "conversation_id": "00000000-0000-0000-0000-000000000000",
}
```

### `form_submission.completed`

A form submission has been completed.

**Example:**

```json theme={null}
{
  "status": "completed",
  "form_id": "00000000-0000-0000-0000-000000000000",
  "contact_id": "00000000-0000-0000-0000-000000000000",
  "finalised_at": "2024-11-05T14:07:22.612994+00:00",
  "form_version_id": "00000000-0000-0000-0000-000000000000",
  "organisation_id": "00000000-0000-0000-0000-000000000000",
  "duration_seconds": 178,
  "in_conversation_id": "00000000-0000-0000-0000-000000000000",
  "contact_external_id": "external-id",
  "element_submissions": {
    "field_one": "answer",
    "field_two": "another answer"
  }
}
```

### `form_submission.aborted`

A form submission has been aborted.

**Example:**

```json theme={null}
{
  "status": "aborted",
  "form_id": "00000000-0000-0000-0000-000000000000",
  "contact_id": "00000000-0000-0000-0000-000000000000",
  "finalised_at": "2024-11-05T14:07:22.612994+00:00",
  "form_version_id": "00000000-0000-0000-0000-000000000000",
  "organisation_id": "00000000-0000-0000-0000-000000000000",
  "duration_seconds": 178,
  "in_conversation_id": "00000000-0000-0000-0000-000000000000",
  "contact_external_id": "external-id",
  "element_submissions": {
    "field_one": "answer",
    "field_two": null
  }
}
```
