Documentation / Agent tools

Contacts and PBX integration (Yeastar)

Keep your contact book in the console and connect a Yeastar P-Series Cloud PBX: callers recognised, unknown callers added, every call journalled.

Last updated:

Contacts is your contact book: the people who call you, with their numbers, company and notes. It has its own tile in the app launcher (top right). A PBX connected to an agent looks callers up in it while the phone rings, can add the ones it does not find, and journals every finished call on the contact, with the link to the PBX recording.

The contact book#

  • Open Contacts from the app launcher. Search by name, company, email or number; click a row to see the contact and its calls.
  • New contact: a name, a company or a number is enough. Numbers are matched on their last ten digits, so +30 697 260 5774, 0030697… and 697… are the same person.
  • Call journal (left menu) lists every journalled call across agents, newest first.

HubSpot#

Under Contacts > Integrations you can connect a HubSpot account. What you need from HubSpot: a private app in your own HubSpot portal (Settings > Integrations > Private Apps > Create a private app) with the scopes crm.objects.contacts.read and crm.objects.contacts.write; copy its access token (it starts with pat-) and paste it in the console. The token is checked against HubSpot when you save, stored encrypted and never shown again; legacy API keys are not accepted. Then choose what syncs: send every new contact to HubSpot as it is added, a pull from HubSpot every N minutes with the conflict policy you want (merge what is empty, HubSpot wins, local wins, or always create a new contact), and a push to HubSpot every N minutes that adds only what is missing or forces every unlinked contact. Both schedules have a 10-minute minimum, and Pull now / Push now run once on demand. Matching is by HubSpot id, then email, then phone number; only changed contacts are written. The sync history at the bottom shows every run with what it read, created, updated, linked and skipped.

Custom fields#

Under Contacts > Custom fields you can add your own fields to every contact: text, number, date, a choice from a list, or yes/no. Each one can be marked Required and Show in list. Pick Send to PBX as to publish the value under one of the PBX's contact fields (home number, second mobile, address, postal code, remark and so on): it is then part of the template you download, and the phone shows it when that person calls. Each PBX field can be used by one custom field; Remark replaces the notes. After changing the fields, download and upload the template again so the PBX learns the new mapping.

Connect a Yeastar P-Series Cloud PBX#

  1. Open Integrations in the project's sidebar (under Deploy) and click Enable on the Yeastar card. One PBX serves every agent and the shared contact book, so it is set up once for the project. The console shows a Client ID and, once, a client secret: copy the secret now.
  2. Click Download (bearer token, recommended). The file is the PBX's custom CRM template, already filled with the right addresses.
  3. On the PBX, go to Integrations > CRM > Template Management > Upload and upload the file. A new CRM tile appears.
  4. Open the tile, paste the Client ID and the client secret, and save.
  5. Turn on Synchronize Contacts Automatically, Create New Contact (Automatically, Inbound and Outbound) and Call Journal.
  6. Make a test call. The caller appears in Contacts and the call in the list at the bottom of the Integrations page. Every journalled call also starts the project's enabled operations agents that have a Call ended trigger.

Why "Create New Contact" matters#

The PBX only journals a call it matched to a contact. With Let the PBX add unknown callers on (the default) and Create New Contact enabled on the PBX, an unknown caller becomes a contact on the first call and the call is journalled at once. Switch it off if you want only known contacts in the book; unknown calls are then not journalled.

Bearer token or OAuth2?#

The bearer token template authenticates with the Client ID and secret alone and needs no sign-in page. Use it. The OAuth2 template exists for a PBX that insists on an authorization page: paste the PBX's Authorized Redirect URI into the project's Integrations page first, then upload that template; the PBX will open the console's consent page, where you click Allow.

If the PBX stops working#

  • Rotate secret gives a new secret and invalidates the old one; paste it into the PBX.
  • Switching the integration off revokes every token at once.
  • Activity on the Integrations page shows the last time the PBX talked to us and how many lookups and calls it sent.

The console

These pages are read only. The test call, the API keys and the live API reference are in the console, where your account is signed in.

Open the console