Participant¶
Participant¶
{
"id": "<string>",
"customer_id": "<string>",
"owner_type": "<string>",
"owner_id": "<string>",
"chat_id": "<string>",
"tm_joined": "<string>"
}
id(UUID): The participant’s unique identifier. Returned when adding a participant viaPOST /service_agents/talk_chats/{id}/participants.customer_id(UUID): The customer’s unique identifier. Obtained fromGET /customers.owner_type(enum string): Type of the participant. Currently only"agent"is supported.owner_id(UUID): The agent’s unique identifier. Obtained fromGET /agents.chat_id(UUID): The talk’s unique identifier that this participant belongs to. Obtained fromGET /service_agents/talk_chats.tm_joined(string, ISO 8601): Timestamp when the participant joined the talk.
Note
AI Implementation Hint
When a participant is removed and later re-added, a new participant record is created with a new id and updated tm_joined timestamp. The previous participant record is hard-deleted from the database.
Example¶
{
"id": "f4d6e9b3-5c4a-4d5e-9f8a-2b3c4d5e6f7g",
"customer_id": "5e4a0680-804e-11ec-8477-2fea5968d85b",
"owner_type": "agent",
"owner_id": "eb1ac5c0-ff63-47e2-bcdb-5da9c336eb4b",
"chat_id": "e8b2e976-f043-44c8-bb89-e214e225e813",
"tm_joined": "2024-01-17 10:30:00.000000"
}
Participant Management¶
Participants can be added to or removed from talks dynamically. When a participant is removed and later re-added, their join timestamp is updated to reflect the most recent join time.
Participant Rules:
Each talk can have multiple participants.
The same agent cannot be added as a participant twice (enforced by unique constraint).
When a participant is removed, they are hard-deleted from the database.
Re-adding a participant creates a new record with a new join timestamp.
Only participants of a talk can view messages and send new messages.
Permissions:
Participants can view all messages in the talk.
Participants can send messages to the talk.
Participants can add reactions to any message in the talk.
Non-participants cannot access talk messages or send messages.