Interactions console
The Interactions console at/interactions puts every conversation and every call across your messaging and voice channels into one recency-ordered list. Open it when the question is “what happened with this customer recently, on any channel?” — the same unified record powers the Inbox and Customer 360, so a row you find here is the same thread an agent works in the queue.
This page is the reference companion to the task guides: it describes what the console shows and how each control behaves, and links out to the guides that walk through the workflows.
What the list unions
Two record types share one list:- Conversations — messaging threads on SMS, WhatsApp, email, RCS, Viber, Instagram, Messenger, Telegram, video, web chat, and the other connected channels.
- Calls — voice legs, inbound and outbound.
(last_activity_at, id): Load more resumes from the last row you saw, ties broken by row id, so a new message or call arriving while you read cannot shift or duplicate the rows above the cursor. Changing any filter returns you to the first page.
The filter strip
The strip carries four controls, and controls from different groups AND together — a row must match the search term, the type, the channel set, and the recency window all at once to appear. Free-text search matches the contact identifiers carried on the interaction: contact name, phone number, and email address. Leading and trailing whitespace is ignored, and an empty field applies no search at all. Type chips are single-select. Picking Calls or Conversations narrows the list to that record type; picking the active chip again, or pressing All types, clears back to both. Channel chips are multi-select. Each lit chip adds its channel to the set, and chips inside this group OR together — a row on any selected channel matches. All channels clears the set. Recency presets — All time, Last 24h, Last 7 days, Last 30 days — bound the list to interactions last active inside the window. Pressing the preset that is already active is a no-op, so a second click never flashes the list away. While a changed filter set loads, the rows you were looking at stay on screen until the refreshed list lands.Reading versus exporting
Every dashboard role — owner, admin, developer, and viewer — can open the console and read the list. Export CSV downloads the currently filtered list as CSV, with timestamps rendered in your own timezone. Export is gated one step tighter than read: it requires an owner, admin, or developer role together with thecontacts:read permission. A viewer who presses the button gets a friendly inline notice that export is not available to their role, never a raw error page. See Interactions export permissions for the full read-versus-export matrix.
Columns
Empty and loading states
- First load renders an eight-row skeleton while the first page fetches.
- No interactions yet appears when nothing is on record and no filter is set, with the hint that everything lands here once you start messaging or calling.
- No matches appears when filters are set and zero rows match, with a one-click Clear filters that resets search, chips, and range together.
- Load failure shows a retry card instead of an empty list, so a transient error never reads as “no interactions.”
Where to go next
- Interactions console — the end-to-end walkthrough of the surface.
- Find a conversation — locating one specific thread fast.
- Unified interactions model — the data model behind the merged list.