Omnithread docs
v1.0.0
Get help
● Omnithread · Operate

Know when a channel stops.
Before your customers tell you.

Every channel has a health state with advice in plain words, administrators are alerted when a channel goes down, and each chat channel keeps a 14-day log of what its provider sent, with replay.

Webhook content kept 14 days by defaultReplay after a fix

01Health states

Setup > Channels, the dashboard and the inbox's channel list show the state of every channel and mailbox:

StateMeansWhat to do
WorkingThe last attempt succeeded.Nothing.
Waiting for the first messageNothing received, sent or synced yet.Check that the webhook address is saved at the provider (chat) or that the Perfex cron runs (mailbox), then send a test message.
Not checked recentlyA mailbox was not read for longer than Mailbox check warning (minutes) (Settings > Chat channels, default 60).Make sure the Perfex cron runs every few minutes.
Not workingThe last error is newer than the last success.Open the channel, run Test connection and read the error. For a refused sign-in or token: sign in again or paste a new token.
Switched offThe channel is off.Switch it on to receive and send.

When a channel goes down, every active Perfex administrator gets one Perfex notification (An Omnithread channel stopped working), and one more when it works again.

All channels with health, last success, team, on switch and Open button
Setup > Channels

02The webhook log

Open a WhatsApp, Messenger, Instagram, Telegram or SMS channel and choose the Webhook log tab. It lists every request the provider sent to this channel in the last 14 days, newest first:

  • Received: when it arrived.
  • Result: Stored, Already stored (a repeated delivery, stored only once), Refused (for example a wrong signature or verify token) or Not stored, sent again (an error on your side; the provider is told to deliver it again).
  • What it carried: the number of messages, of repeats and of delivery reports, or Address check by the provider.
  • Answer: the HTTP status your CRM answered.

Requests to an unknown address or with a wrong key get "not found" and are not logged, so strangers cannot fill the log. Requests larger than 1 MB are refused.

Webhook log tab of a WhatsApp channel, empty before the first request
The Webhook log tab before the first request arrives

03Webhook content: where, how long, how to switch it off

Stored by default

The setting Keep the content of incoming webhooks for 14 days is on after installation. The content of each accepted request (the message text, names, phone numbers and other data the provider sends) is then kept in your database so you can replay it.

  • Where: in your Perfex database, table ot_webhook_log with your table prefix (usually tblot_webhook_log), column payload. The rest of the row holds the time, channel, result, HTTP status, a short summary and any error.
  • What is kept: the request body, method, query string and only the headers a replay needs (Content-Type, User-Agent, X-Hub-Signature-256, X-Twilio-Signature). Telegram's secret header and cookies are never stored, and the address is kept without its key. Refused requests never keep their content.
  • How long: the daily clean-up on the Perfex cron deletes log rows, with their content, 14 days after they arrived. The 14 days are fixed.
  • Switch it off: Setup > Settings > Chat channels, turn off Keep the content of incoming webhooks for 14 days and save. From then on only the time and the result are kept, and replay is not possible. Content stored before stays until its 14 days are over; if it must go at once, a database administrator can empty the payload column of that table.
Settings, Chat channels tab with the switch Keep the content of incoming webhooks for 14 days
Settings > Chat channels

04Replay a request

When a message did not arrive because of a setting (for example a wrong app secret), fix the setting, open the Webhook log and press Replay on the request. Omnithread runs it again with the channel's current settings and checks the signature again; messages it already stored are not duplicated. A request whose content was not kept, or that was refused, cannot be replayed. Needs the permission Manage channels.

05Outgoing messages

  • Replies on chat channels go through an outgoing queue. When a provider answers that a later attempt may work, the message is retried after 1, 5, 15, 60 and 240 minutes.
  • A message that finally fails shows Not delivered with the reason, and Try again in the conversation.
  • Delivery, read and failed statuses come back from WhatsApp, Messenger, Instagram and Twilio to the same webhook address.

06Can providers reach your CRM?

Setup > System check > Public address of this CRM shows the address providers send to. Test from this server checks whether the server reaches its own public address. Behind some firewalls this test fails even though providers can reach you; send a test message to a channel to be sure.