Contact detail
Full page (static)

Page header, subtitle, and badges
The title uses the first available of: the contact’s full name, else their phone number, else the contact id you opened. The subtitle line shows (when present): phone (monospace), email, company. Below that, status and source appear as humanized badges (as returned for the contact).
Header actions (what appears and when)
If you are a platform user with no tenant selected, the Call action does not show, because there is no tenant context to place a manual call.

Not found and errors
- Not found: If the contact id does not resolve (no contact, no error payload), the page shows Not found and “Contact not found.” with a minimal header.
- Server error: A prominent Alert shows the error message at the top when the load fails.

Summary tiles (2×2)
Four tiles, each with label, primary value, and a helper line when data exists:- Last interaction — time of last activity or “No activity yet”. Helper: counts of calls and campaigns (from the summary on the contact when available).
- Last call — last outcome or status, humanized. Helper: direction (e.g. “outbound call”) and last call time when set.
- Talk time — total talk time with a short helper about connected sessions.
- Recent campaign — links to the campaign when one is linked; helper shows disposition/task state and last activity when present.

Call logs (embedded)
This block scrolls with the page. It is not “one hero image for the whole KB.”- Heading: “Call logs” and a View all link.
- Table: The same call-logs table used elsewhere, loaded for this contact only (newest sessions first, paginated, typically 30 per page unless you changed list parameters from a deep link).
- View all takes you to the full Call logs list with this contact’s filter still applied, and a return path labeled “Back to contact” so you can return here.
- Filters: On this page section the filter button is not shown; use the full Call Logs list when you need broader filters.
- Debug / superadmin columns, if you have access, match the global Call Logs list; Pro gating for some columns still applies when relevant.


Follow-ups and memory
Follow-ups and Memory & AI insights sit below a divider, still in the main column.
Sidebar: Profile
Profile lists (when applicable):- Do not call — “On DNC” with optional reason, or “Callable”
- Email, Company (if set)
- Timezone, Country
- Created by — link to that user’s profile when a creator is recorded, else plain text
- Created and Updated (formatted in your timezone)

Sidebar: Labels
Labels appears only when the contact has tags. Up to eight tags show as badges; if there are more, a badge shows +N more.
Sidebar: Additional fields
Additional fields lists the contact’s custom values, excluding internal fields used for last campaign signal (last campaign time, id, and outcome on the contact record). Where definitions exist, labels are friendly; values are formatted (including dates and status-like values). If there is nothing to show, the section is omitted (not an empty box).
Pro and platform notes
- Contacts in the app shell require the Pro product; if your tenant is not on Pro, Contacts may be absent from navigation — this article assumes a Pro tenant.
- Partner admin and superadmin flows can open contacts in cross-tenant contexts; some actions (e.g. Call) still require a tenant in session, as for manual calling above.