Web Chat & Conversations
Who this is for: anyone on your team who turns on chat for an agent, shares the chat link or embeds it on your website, and follows up on the leads it collects.
Your CallOps-powered platform can do more than phone calls — an agent can also run text conversations on your website. This guide covers turning chat on, getting your website widget, what visitors experience, and where the resulting conversations and leads show up.
A note on naming: this guide calls the product "CallOps" throughout. Your provider may show their own brand name in the app instead — the features and screens described here work the same either way.
1. Turning chat on for an agent
Chat is a setting on each individual agent, not a separate product.
- Go to Agents and open the agent you want to enable chat on (or create a new one).
- Find the Channels field on the agent's edit screen.
- Choose one of:
- Voice (phone calls) — the agent only handles phone calls (default).
- Chat (web & SMS) — the agent only handles text conversations.
- Both voice and chat — the agent handles calls and chat.
- Save the agent.
Once an agent's channel is set to Chat or Both, a Web-chat widget card appears at the top of that agent's page with your shareable link and embed snippet.
Chat only responds while the agent's status is Active. If the agent is archived, its chat link stops answering.
The same brain that drives the agent's calls drives its chat — its name, its opening line, its knowledge base, and its post-call analysis fields all carry over to chat conversations.
2. Getting your link and embedding the widget
On the agent's page, the Web-chat widget card gives you two things:
| Item | What it's for |
|---|---|
Link (e.g. https://yourapp.example.com/chat/<agent-id>) |
A page you can open directly or send to someone (text, email, social bio link) |
| Embed snippet | An <iframe> you paste into your website's HTML to show the widget inline |
Click Copy next to the link to copy the URL, or Open to preview it in a new tab. Click Embed to copy the iframe snippet. It looks like this:
<iframe src="https://yourapp.example.com/chat/<agent-id>" style="width:100%;max-width:420px;height:640px;border:0"></iframe>
Paste that snippet anywhere in your site's HTML (a page footer, a dedicated "Chat with us" page, a modal — wherever your web platform lets you drop in raw HTML). The widget renders itself with its own header, message bubbles, input box, and your account's brand color, so it looks right even sitting inside a bare iframe with no surrounding styling.
3. What visitors experience
When someone opens the link or loads the embedded widget, they see:
- A header showing the agent's name and your company name, labeled "AI assistant."
- An opening message from the agent — either the custom opening line you configured for that agent, or a default "Hi, I'm [agent], an AI assistant with [company]. How can I help you today?"
- A message thread with a text box and send button.
- A small disclosure line under the input at all times: "Powered by AI · responses may be automated."
From there, the agent can:
- Answer questions from the knowledge base. If the agent has a knowledge base attached (Settings → your agent's Knowledge base field), it matches visitor questions against your uploaded text snippets and links and replies with the matching answer — for text sources it also asks "Does that help?"; for link sources it points the visitor to the URL.
- Move toward booking. If the visitor asks to book, schedule a demo, or set up a call, the agent offers a couple of time slots and asks for their email.
- Offer a human callback. If the visitor asks for a person, a representative, or a callback, the agent asks for the best number and time to reach them.
- Answer pricing questions. General pricing/cost questions get a reply offering either a tailored quote by email or a quick call.
- Honor "stop contacting me." Any phrasing like "stop calling," "unsubscribe," "remove me," "take me off your list," etc. is recognized as an opt-out. The agent confirms it and the visitor is excluded from future contact — see below.
- Capture leads by email. As soon as a visitor's email is known (they gave it while booking, or it was passed in when the chat started), the conversation is linked to a contact record automatically.
If anything goes wrong (the assistant is briefly unavailable), the visitor sees "Sorry — the assistant is unavailable right now." instead of a broken chat.
4. The Conversations inbox
Every chat — whether started from the shared link or the embedded widget — lands in Conversations in your left-hand navigation, in the same list regardless of which agent or page it came from.
The inbox list shows, per conversation:
- Visitor — their name or email if known, otherwise "Anonymous visitor"; a View contact link appears once it's linked to a contact record.
- Agent — which agent handled it.
- Channel — currently always web.
- Outcome — blank until the conversation reaches a result, then one of: booked, interested, callback, or opted_out, color-coded (booked in green, opted_out in red).
- Messages — total message count.
- Last activity — when the visitor or agent last sent something.
A closed badge appears next to the visitor's name once the conversation is resolved (a booking or an opt-out closes it automatically; other outcomes leave it open for follow-up).
Click into any row to see the conversation detail page:
- Transcript — the full back-and-forth, visitor messages on the right, agent messages on the left, same style as the widget itself.
- AI analysis — if the agent has post-call analysis fields configured, this section shows the values captured for that conversation (e.g. sentiment, summary), labeled the same way they're labeled in the agent's analysis configuration.
- Linked contact — if the conversation is tied to a contact, a link to that contact's full record.
5. How chat leads flow into contacts and lead scoring
Chat isn't a side channel — it feeds the exact same pipeline as your phone calls:
- The first time a conversation reaches an outcome (booked, interested, callback, or opted_out), CallOps records a summary and marks the sentiment (positive for booked/interested, negative for opted_out, neutral otherwise). Reaching the same outcome again in the same conversation doesn't double-count it.
- If the visitor's email is known at that point, CallOps finds their existing contact record (matched by email) or creates a new one, tagged web-chat, and links the conversation to it.
- That contact's lead score updates using the same scoring rules as calls: booked adds the most, interested and callback add a smaller amount, opted_out drops the score sharply. Their pipeline status (New / Working / Qualified / Unqualified / Customer) can advance the same way a strong phone call would move it — a hot chat lead shows up next to your hot call leads everywhere lead score is used (Contacts list, dashboard).
- Opting out via chat is honored everywhere, not just in that chat window: it flips the contact's consent status, adds them to your internal do-not-call list, and excludes them from future campaigns — the same "revoke everything" behavior as an opt-out on a phone call.
In short: a good chat conversation and a good phone call score, tag, and route the same lead the same way.
6. Channel notes
- Web chat is live — this is the fully working channel described above, available the moment you set an agent's channel to Chat or Both.
- SMS is listed as an available channel option in the Channels dropdown ("Chat (web & SMS)"), but the actual texting integration is not wired up yet — there is no way to send or receive real SMS messages through an agent today. Conversations always come in on the web channel. Treat SMS as coming soon rather than available.
Related
- Understanding your results — reading conversation outcomes, lead scores, and the Conversations inbox alongside your call data.
- Connecting your tools — alerting Slack/Teams when a chat books a meeting or a lead comes in.
- FAQ & troubleshooting — common chat questions, including why a chat link isn't loading.