Handoff is off by default, and that is not timidity. Two things about it are your call, and neither is obvious from the settings screen.
It needs somebody watching
Handoff to nobody is worse than no handoff at all. It makes a promise the site cannot keep, and the visitor waits out a timeout to discover that.
The schedule and the offline message exist to keep the promise honest — but they only describe your intentions. Set hours you will actually cover, not hours you would like to.
If you are not sure you can cover any, leaving handoff off is a legitimate answer. The assistant answering well is better than a person who never arrives.
It adds background requests
While handoff is on, every open chat window quietly checks for replies. This is the only sustained load Sohay generates. With handoff off, nothing polls and you pay nothing.
Roughly, for chat windows open at the same moment:
| Open windows | Assistant answering | Person in the conversation |
|---|---|---|
| 10 | ~0.2 requests/sec | ~1.3 requests/sec |
| 50 | ~1.1 requests/sec | ~6.3 requests/sec |
| 200 | ~4.4 requests/sec | ~25 requests/sec |
Each is a small database read — but it is a full WordPress page load. On shared hosting, the page loads are what to watch, not the query.
Four things already keep it bounded:
- Nothing polls while the chat window is closed.
- Nothing polls in a background browser tab.
- A conversation nobody has touched for ten minutes stops polling until the visitor comes back.
- The cadence is set by the server, not the browser, so a developer can widen
it with the
sohaychat_handoff_poll_intervalsfilter without shipping any new JavaScript.
The numbers in that right-hand column only apply to conversations a person is actually in, which on most sites is a small fraction at any moment.
Checking it works
Worth doing once after switching it on, because the two halves are easy to get right separately and wrong together. You need two browsers — or one normal window and one private window — so you are an operator in one and an anonymous visitor in the other.
- Visitor: open the chat, send a message. The assistant replies.
- Visitor: press Talk to a person. A “Finding someone to help…” strip appears.
- Operator: it appears under Waiting for a Person, the tab shows a count, an email arrives.
- Operator: open it, press Take over.
- Visitor: within a few seconds the strip changes to “You are chatting with …”. This is the step that proves the two halves are talking.
- Operator: reply. Visitor: it arrives with your name and picture, no AI marker.
- Visitor: send another. Operator: it lands in your thread — and the assistant does not answer over you.
- Operator: hand back. Visitor: the strip disappears.
- Visitor: send one more. The assistant answers, and can see what you said.
If step 5 does nothing, check handoff is actually switched on. The widget only watches for replies while it is.