---
title: "Create a message"
method: POST
path: "/messages"
tags: ["Messages"]
---

# Create a message

`POST /messages`

You can create a message that has been initiated by an admin. The conversation can be either an in-app message or an email.

> 🚧 Sending for visitors
>
> There can be a short delay between when a contact is created and when a contact becomes available to be messaged through the API. A 404 Not Found error will be returned in this case.

This will return the Message model that has been created.

> 🚧 Retrieving Associated Conversations
>
> As this is a message, there will be no conversation present until the contact responds. Once they do, you will have to search for a contact's conversations with the id of the message.

## Headers

- `Intercom-Version` '1.0' | '1.1' | '1.2' | '1.3' | '1.4' | '2.0' | '2.1' | '2.2' | '2.3' | '2.4' | '2.5' | '2.6' | '2.7' | '2.8' | '2.9' | '2.10' | '2.11' | '2.12' | '2.13' | '2.14' — Intercom API version.</br>By default, it's equal to the version set in the app package.

## Request body

- union — You can create a message
  - object
    - `message_type` 'in_app' | 'email', required — The kind of message being created. Values: `in_app` or `email`.
    - `subject` string, required — The title of the email.
    - `body` string, required — The content of the message. HTML and plaintext are supported.
    - `template` string, required — The style of the outgoing message. Possible values `plain` or `personal`.
    - `from` object, required — The sender of the message. If not provided, the default sender will be used.
      - `type` 'admin', required — Always `admin`.
      - `id` integer, required — The identifier for the admin which is given by Intercom.
    - `to` union, required
      - Recipient — A recipient of a message
        - `type` 'user' | 'lead', required — The role associated to the contact - `user` or `lead`.
        - `id` string, required — The identifier for the contact which is given by Intercom.
      - Recipient[] — The recipients of the message.
        - `type` 'user' | 'lead', required — The role associated to the contact - `user` or `lead`.
        - `id` string, required — The identifier for the contact which is given by Intercom.
    - `cc` union
      - Recipient — A recipient of a message
        - `type` 'user' | 'lead', required — The role associated to the contact - `user` or `lead`.
        - `id` string, required — The identifier for the contact which is given by Intercom.
      - Recipient[] — The CC recipients of the message.
        - `type` 'user' | 'lead', required — The role associated to the contact - `user` or `lead`.
        - `id` string, required — The identifier for the contact which is given by Intercom.
    - `bcc` union
      - Recipient — A recipient of a message
        - `type` 'user' | 'lead', required — The role associated to the contact - `user` or `lead`.
        - `id` string, required — The identifier for the contact which is given by Intercom.
      - Recipient[] — The BCC recipients of the message.
        - `type` 'user' | 'lead', required — The role associated to the contact - `user` or `lead`.
        - `id` string, required — The identifier for the contact which is given by Intercom.
    - `created_at` integer — The time the message was created. If not provided, the current time will be used.
    - `create_conversation_without_contact_reply` boolean — Whether a conversation should be opened in the inbox for the message without the contact replying. Defaults to false if not provided.
  - object
    - `message_type` 'in_app' | 'email', required — The kind of message being created. Values: `in_app` or `email`.
    - `subject` string — The title of the email.
    - `body` string, required — The content of the message. HTML and plaintext are supported.
    - `template` string — The style of the outgoing message. Possible values `plain` or `personal`.
    - `from` object, required — The sender of the message. If not provided, the default sender will be used.
      - `type` 'admin', required — Always `admin`.
      - `id` integer, required — The identifier for the admin which is given by Intercom.
    - `to` union, required
      - Recipient — A recipient of a message
        - `type` 'user' | 'lead', required — The role associated to the contact - `user` or `lead`.
        - `id` string, required — The identifier for the contact which is given by Intercom.
      - Recipient[] — The recipients of the message.
        - `type` 'user' | 'lead', required — The role associated to the contact - `user` or `lead`.
        - `id` string, required — The identifier for the contact which is given by Intercom.
    - `cc` union
      - Recipient — A recipient of a message
        - `type` 'user' | 'lead', required — The role associated to the contact - `user` or `lead`.
        - `id` string, required — The identifier for the contact which is given by Intercom.
      - Recipient[] — The CC recipients of the message.
        - `type` 'user' | 'lead', required — The role associated to the contact - `user` or `lead`.
        - `id` string, required — The identifier for the contact which is given by Intercom.
    - `bcc` union
      - Recipient — A recipient of a message
        - `type` 'user' | 'lead', required — The role associated to the contact - `user` or `lead`.
        - `id` string, required — The identifier for the contact which is given by Intercom.
      - Recipient[] — The BCC recipients of the message.
        - `type` 'user' | 'lead', required — The role associated to the contact - `user` or `lead`.
        - `id` string, required — The identifier for the contact which is given by Intercom.
    - `created_at` integer — The time the message was created. If not provided, the current time will be used.
    - `create_conversation_without_contact_reply` boolean — Whether a conversation should be opened in the inbox for the message without the contact replying. Defaults to false if not provided.

## Response `200`

admin message created

- Message — Message are how you reach out to contacts in Intercom. They are created when an admin sends an outbound message to a contact.
  - `type` string, required — The type of the message
  - `id` string, required — The id representing the message.
  - `created_at` integer, required — The time the conversation was created.
  - `subject` string — The subject of the message. Only present if message_type: email.
  - `body` string, required — The message body, which may contain HTML.
  - `message_type` 'email' | 'inapp' | 'facebook' | 'twitter', required — The type of message that was sent. Can be email, inapp, facebook or twitter.
  - `conversation_id` string — The associated conversation_id

## Other responses

- `400` — No body supplied for email message
- `401` — Unauthorized
- `403` — API plan restricted
- `422` — No subject supplied for email message

---

[API](https://skmtc.net/intercom/apis/intercom-api.md) · [All operations](https://skmtc.net/intercom/apis/intercom-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/intercom/intercom-api/versions/9517e80f2642/schema)
