# POST messages/position

<mark style="color:green;">`POST`</mark> `/messages/position`

Publishes content from a given persona on a given channel to given *position*.

{% hint style="info" %}
position is CASE SENSITIVE - you must match the case to that used by the exercise designer
{% endhint %}

You will need to use GET personas and GET teams to have the required data.

**Headers**

| Name          | Value              |
| ------------- | ------------------ |
| Content-Type  | `application/json` |
| Authorization | `Bearer <token>`   |

**Body**

{% tabs %}
{% tab title="Email example" %}

```json
{
  "persona": "3-49786",
  "channel": "mail",
  "position": "CEO"
  "subject": "Attempt retry",
  "body": "message body to team",
  "sentiment": "positive",
  "team_id": "3437866",
  "type": "team",
  "isDraft": 0,
  "ts": 1738686056
}
```

{% endtab %}

{% tab title="Media Pop-up" %}

```
{
  "persona": "3-49786",
  "channel": "notifications",
  "position": "media_lead",
  "subject": "hello world",
  "body": "message body to team",
  "assets": [
    {
      "type": "video",
      "assetUrl": "https://conducttr-a.akamaihd.net/v/2305/p/51001/syrian-refugee-crisis-pl.m3u8",
      "alt": ""
    }
  ],
  "sentiment": "positive",
  "team_id": 3437866,
  "type": "team"
}
```

{% endtab %}
{% endtabs %}

| Name        | Type                  | Description                                                                        |
| ----------- | --------------------- | ---------------------------------------------------------------------------------- |
| `persona`   | string                | persona\_id of the sending persona                                                 |
| `channel`   | string                | which channel the message should be published on                                   |
| `position`  | string                | position created by designer to identify the single person assign to that position |
| `title`     | string                | required for website article                                                       |
| `subject`   | string                | message subject (if it has one)                                                    |
| `body`      | string                | the message body                                                                   |
| `to`        | string                | required if to a single person                                                     |
| `assets`    | list of asset objects | see asset object below                                                             |
| `sentiment` | string                | positive I negative I neutral  this is for social media                            |
| `type`      | string                | individual I team                                                                  |
| `isDraft`   | boolean               | 1 or 0                                                                             |
| `replies`   | integer               | number of comments or replies to post                                              |
| `likes`     | integer               | number of likes                                                                    |
| `reposts`   | integer               | number of reposts/shares                                                           |

**Asset object**

<table><thead><tr><th width="222">Name</th><th width="172">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>type</code></td><td>string</td><td>image I video I audio I document</td></tr><tr><td><code>assetUrl</code></td><td>string</td><td>must be URL to the hosted asset</td></tr><tr><td><code>alt</code></td><td>string</td><td>description of asset</td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="200" %}

```json
{
  "message_id": "7b5a92a4-04a0-4b32-848c-1201df844cd1"
}
```

{% endtab %}

{% tab title="400" %}

```json
{
  "error": "Invalid request"
}
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

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

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://helpdocs.conducttr.com/feature-documentation/api/endpoint-reference/messaging/post-messages-position.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
