CRM integration

Tickiti can show a CRM context panel alongside an open ticket: who the customer is, which accounts they are attached to, the recent contracts or orders, and any notes you have made about them. The CRM integration is enabled by the has_crm plan flag and surfaced through the CRM access role on each user.

How matching works

When a staff user with CRM access opens a ticket, Tickiti looks up the originator’s email in the crm_contacts table. The match is on any of email, email_2, or email_3 — CRM records often carry several addresses for the same person. If at least one match is found, the CRM panel renders with that contact’s details and any accounts they are attached to.

Two boundaries to remember:

  1. The CRM panel is only shown for tickets where the originator is not a staff user. Staff-originated tickets (e.g. internal tasks) skip the lookup.
  2. A contact can appear in multiple accounts. Tickiti shows the first contact match and lists every distinct account underneath, so you do not lose multi-account customers.

Populating CRM data

Tickiti does not include a CRM authoring UI — it expects another system to be the source of truth. The integration patterns we see most often:

  1. Pull from your CRM via the API. A nightly job in your CRM (Salesforce, HubSpot, Pipedrive, your own system) writes contacts and accounts into Tickiti’s crm_contacts and crm_accounts tables via your platform’s database connector or a small Tickiti plugin.
  2. Push from your CRM at customer-create time. When the CRM creates a new contact, it calls Tickiti to upsert the matching crm_contacts row.
  3. One-shot import at go-live, then maintain over time as customers churn.

Either way, the schema is small — a contact has email(s), name, phone, and a foreign key to an account; an account has name, type, and arbitrary JSON metadata. Talk to your Tickiti contact for the exact column list and a sample importer for your CRM.

What staff see

With CRM matched, the open ticket gains a CRM panel showing the contact’s name, email, phone, the linked accounts, and (where you have populated it) recent activity such as orders or contract status. Click through to your CRM’s native UI for anything Tickiti does not surface.

If no CRM contact matches the email, the panel quietly does not render — staff just see the standard ticket view. There is no “unknown customer” warning; the absence of CRM data is the signal.

Embedding tickets in your CRM

The reverse direction is also supported: your CRM can embed Tickiti via the ?embedded=crm URL parameter. Tickiti renders without its own chrome (no left perspectives panel, no top bar) so your CRM can iframe a ticket browser scoped to a specific customer’s tickets. Combined with a perspective that has Show in CRM ticked, you get a customer-record-shaped view of all their tickets inside the CRM you already use.

Privacy and access

Only users with the CRM access role see the panel. Toggle the role per-user in User admin. The CRM contact data is not exposed via the public API by default.