A conversation is the core unit of work in PingBack. It represents a thread of messages between your team and a customer, tied to a specific channel (such as your web widget, WhatsApp, or email). Every inbound message from a customer either opens a new conversation or continues an existing one.
How conversations are created
Conversations start in one of two ways:
- Customer-initiated — A customer sends a message through a connected channel (your web widget, WhatsApp, Telegram, etc.). PingBack automatically creates the conversation and routes it to your inbox.
- Agent-initiated — An agent creates a conversation manually from the dashboard, selecting a customer and channel. You can include an optional opening message when creating it this way.
Conversation statuses
Every conversation has a status field that reflects where it sits in your support workflow.
| Status | Meaning |
|---|
open | The conversation is active and waiting for a response from your team. New conversations start here. |
pending | The conversation is paused — typically waiting on the customer or on an automated process. |
resolved | The issue has been addressed. A resolved_at timestamp is recorded. |
closed | The conversation is fully closed and moved out of the active inbox. |
You can reopen a resolved or closed conversation at any time by updating its status back to open.
Conversation fields
When you view a conversation in your inbox, you can see the following fields:
| Field | Description |
|---|
customer | The customer this conversation belongs to. |
channel_type | The channel the conversation came through (e.g., webchat, whatsapp, email). |
status | The current status: open, pending, or closed. |
assignee | The agent assigned to handle this conversation (may be unassigned). |
created_at | When the conversation was first opened. |
resolved_at | When the conversation was marked as resolved (if applicable). |
Message sender types
Each message in a conversation has a sender_type that identifies who sent it:
| Sender type | Who it represents |
|---|
customer | The customer on the other end of the conversation. |
agent | A member of your support team. |
system | An automated message generated by PingBack (e.g., AI replies, handoff notices). |
Filtering conversations
You can filter your inbox to focus on what matters. PingBack supports filtering by:
- Status — View only
open, pending, or closed conversations.
- Assignee — View conversations assigned to a specific agent.
Use these filters together to manage workload across your team. For example, view all open conversations assigned to a particular agent, or find all pending conversations that have no assignee.
Resolving and closing conversations
PingBack separates resolving from closing:
- Resolve — Marks the conversation as
resolved and records a resolved_at timestamp. Use this when you’ve addressed the customer’s issue.
- Close — Sets the conversation to
closed and records a closed_at timestamp. Closed conversations are moved out of the active inbox.
Build a habit of resolving conversations as soon as a customer’s issue is handled. This keeps your inbox clean and gives you accurate resolution-time metrics.
To resolve a conversation via the API:
PUT https://api.pingback.live/api/v1/conversations/{conversation_id}/resolve
To close a conversation via the API:
PUT https://api.pingback.live/api/v1/conversations/{conversation_id}/close
AI handoff
If you have AI auto-reply enabled, PingBack’s AI can handle conversations automatically. When the AI determines that a human agent needs to step in — for example, if the customer’s question is too complex — it sets the needs_human_handoff flag on the conversation.
Conversations with needs_human_handoff set to true appear in the Pending Handoffs list in your dashboard. You or an admin can then assign the conversation to a live agent.
Conversations flagged for handoff are still being handled by the AI until an agent takes over. Assign them promptly to avoid leaving customers waiting.