API: Helpdesk Inbound Email
mobieusHelp can accept inbound email and turn each message into a ticket. This is a webhook endpoint your email provider (or a relay) posts to. It is secured by a shared secret, not by an API key, so it is separate from the bearer-token /api/v1 surface.
Setup
- In Admin → Help → Email Accounts, open your default email account and copy its inbound secret.
- Configure your provider to POST each inbound message to:
https://{tenant}.mobieus.io/api/helpdesk/inbound-email - Send the secret with every request in the
X-Mobieus-Inbound-Secretheader (or as a?secret=query parameter). A request with a missing or wrong secret is rejected with401.
Payload
POST a JSON body. Recognized fields:
fromis the sender address (aName <[email protected]>form is parsed;envelope.fromis used as a fallback)from_nameis the sender display name (optional)subjectis the message subjecttextis the plain-text bodyhtmlis the HTML bodymessage_idis the message'sMessage-ID(required)in_reply_to,referencesare threading headers, used to attach replies to an existing ticketheadersis an object of raw headers (used to detect auto-replies)
from and message_id are required. If either is missing the endpoint returns 422.
Ticket creation
A new message creates a ticket in the default queue, or appends to the matching ticket when the threading headers point to one. The sender receives a confirmation email with their ticket reference.
## API: Helpdesk Inbound Email
mobieusHelp can accept inbound email and turn each message into a ticket. This is a webhook endpoint your email provider (or a relay) posts to. It is secured by a shared secret, not by an API key, so it is separate from the bearer-token `/api/v1` surface.
### Setup
1. In **Admin → Help → Email Accounts**, open your default email account and copy its inbound **secret**.
2. Configure your provider to POST each inbound message to:
```
https://{tenant}.mobieus.io/api/helpdesk/inbound-email
```
3. Send the secret with every request in the `X-Mobieus-Inbound-Secret` header (or as a `?secret=` query parameter). A request with a missing or wrong secret is rejected with `401`.
### Payload
POST a JSON body. Recognized fields:
- `from` is the sender address (a `Name <[email protected]>` form is parsed; `envelope.from` is used as a fallback)
- `from_name` is the sender display name (optional)
- `subject` is the message subject
- `text` is the plain-text body
- `html` is the HTML body
- `message_id` is the message's `Message-ID` (**required**)
- `in_reply_to`, `references` are threading headers, used to attach replies to an existing ticket
- `headers` is an object of raw headers (used to detect auto-replies)
`from` and `message_id` are required. If either is missing the endpoint returns `422`.
### Ticket creation
A new message creates a ticket in the default queue, or appends to the matching ticket when the threading headers point to one. The sender receives a confirmation email with their ticket reference.