Skip to main content
Connect360 APIs let a trusted backend create conversations, send messages, upload attachments, and trigger AI replies. Use them for:
  • Website chat widgets.
  • Customer support portals.
  • Order support experiences.
  • External apps that need to create or update Connect360 conversations.

Conversations

Create or reuse customer conversations and organize support threads.

Messages

Send messages, list thread history, and work with conversation content.

Attachments

Upload files and use attachment assets in messages.

AI Stream

Trigger AI-assisted replies for supported chat experiences.

Guest Conversations

Let external website visitors start or continue a conversation safely.

Authentication

Send API keys from a trusted backend before calling Connect360.

API Styles

Connect360 uses both the typed SDK and REST endpoints. Use the SDK for conversations and messages:
plato.v1.connect.getOrCreateConversation.mutate(...)
plato.v1.connect.send.mutate(...)
plato.v1.connect.listMessages.query(...)
Use REST for browser-friendly attachment upload and streaming AI replies:
POST /api/v1/connect/attachments
GET  /api/v1/connect/assets/[...key]
POST /api/v1/connect/ai-stream

Required Permissions

ActionPermission
Read conversations and messagesconnect360:conversation:read
Create conversations, send messages, upload attachments, trigger AIconnect360:conversation:engage
Delete conversationsconnect360:conversation:delete
The API key must belong to a workspace member.

Conversation Model

Connect360 conversations can be organized in a hierarchy. Top-level conversations are the main thread with a customer or group. Sub-conversations are child threads under a top-level conversation. They are useful for project threads, order support threads, or topic-specific discussions. Messages are always sent to a conversationId, which can be either a top-level conversation or a sub-conversation.

Customer Identity

For website or external users, pass a customer object or an existing customerId. Do not create website visitors as workspace members.
customer: {
  externalId: "website_user_123",
  name: "Jane Customer",
  email: "[email protected]",
  phone: "+971500000000",
}
Plato can match customers by external id, email, or phone.

Website Channels

Website integrations can pass channelIdentifier.
channelIdentifier: "example.com"
Plato normalizes the identifier, creates or reuses a website channel, and attaches it to the conversation. Use the current website host, such as example.com or shop.example.com.