> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.crisp.chat/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# How to create Crisp conversations externally with the REST API

*Learn how to send website form submissions into Crisp as conversations.*

Instead of routing contact form messages to a private email inbox, you can centralize them in Crisp so your team can reply, assign, and track them from the shared inbox.

---

# ${color}[#0080dd](Before you start)

This integration is handled from your backend. Do not expose Crisp REST API credentials in frontend JavaScript or public form code.

__You will need:__
* A Crisp API token with the permissions required for conversation actions
* A backend able to receive and validate your website form submission
* Access to the Crisp **website_id** for the workspace receiving the conversation
* Basic knowledge of REST API requests

---

# ${color}[#0080dd](API routes to use)

To turn a form submission into a Crisp conversation, your backend usually needs to create the conversation, attach customer metadata, then send the submitted message.

| Action | REST API documentation |
| ---- |
| Create a conversation | [Create a new conversation](https://docs.crisp.chat/references/rest-api/v1/#create-a-new-conversation) |
| Update conversation metas | [Update conversation metas](https://docs.crisp.chat/references/rest-api/v1/#update-conversation-metas) |
| Send a message | [Send a message in conversation](https://docs.crisp.chat/references/rest-api/v1/#send-a-message-in-conversation) |

---

# ${color}[#0080dd](Recommended flow)

__A safe form-to-Crisp flow usually looks like this:__
* **Validate the form submission** → reject spam, malformed emails, and missing required fields before calling Crisp
* **Create the conversation** → use the REST API to create a new Crisp conversation for the workspace
* **Attach useful metadata** → add the visitor email, name, phone number, company, or custom data when available
* **Send the form message** → post the submitted content as a message in the new conversation
* **Handle failures** → log API errors and avoid silently losing customer messages

---

# ${color}[#0080dd](Example implementation)

A PHP example is available in the Crisp API repository:
[https://github.com/crisp-im/php-crisp-api/blob/master/examples/create_conversation.php](https://github.com/crisp-im/php-crisp-api/blob/master/examples/create_conversation.php)

| Before building automation from your backend, read the [REST API quickstart](https://docs.crisp.chat/guides/rest-api/quickstart/) and keep your API credentials stored server-side only.