Skip to main content

HubSpot

The HubSpot integration logs Speechlytics calls on your HubSpot CRM timeline: each call becomes a HubSpot call activity with its recording and summary, associated with the matching contact.

HubSpot is an outbound integration: Speechlytics does not import calls from HubSpot. Calls come from any other source (API, upload, SFTP, Aircall, FrontSpin, 3CX, Teams) and are sent to HubSpot automatically.

Setting it up​

1. Create a private app in HubSpot​

In HubSpot, go to Settings → Integrations → Private Apps, create an app and grant it these scopes:

ScopeUsed to
crm.objects.contacts.readFind the contact for a call.
crm.objects.contacts.writeAssociate the call with the contact.
filesUpload recordings to the File Manager.

Copy the app's access token.

2. Configure Speechlytics​

Provide the access token to your Speechlytics representative. The integration has these settings:

SettingDefaultMeaning
Access Token—The private app token. Stored masked.
Recordings Folder/CallRecordingsHubSpot File Manager folder where recordings are uploaded.
Base Urlhttps://api.hubapi.comHubSpot API address.

Once saved, the integration is switched on.

What is written to HubSpot​

For each call, Speechlytics:

  1. uploads the recording to the Recordings Folder;
  2. looks up the contact (see below);
  3. creates a HubSpot call activity and associates it with the contact when one was found;
  4. stores the HubSpot call id on the Speechlytics call.
HubSpot fieldValue
Title"Call with customer name", or "Call number" when no name is known.
BodyThe call summary, or a short note with the duration and score when no summary exists.
DurationThe call duration.
DirectionInbound or outbound, from the call's metadata.
StatusCompleted.
DispositionConnected, or No answer for unanswered calls.
Recording URLThe uploaded recording.
SourceIntegrations platform.

Each call is sent once. A call that already has a HubSpot call id is not sent again, so later changes in Speechlytics (a resync, a polish, a re-summarize) are not reflected in HubSpot.

Contact matching​

Speechlytics searches HubSpot for a contact whose Phone number property equals the customer's number on the call. The first matching contact is used. If no contact matches, the call is still logged on the timeline, without a contact.

For reliable matching:

  • store contacts' numbers in HubSpot's Phone number property, in the same format your phone system reports them (for example +15551234567);
  • send customer numbers on API submissions in the metadata (remote for the customer side).

Things to know​

  • Recordings are uploaded to HubSpot's File Manager as MP3 files and are accessible to anyone with the recording URL. Apply your HubSpot file-access policies accordingly.
  • The activity's timestamp is the time Speechlytics logged it, which is shortly after the call was processed.
  • The call is logged as soon as Speechlytics first reports on it. When summaries are enabled, a call can be logged before its summary is ready, in which case the body contains the short duration-and-score note.

Troubleshooting​

SymptomWhat to check
No call appears in HubSpotThe integration is enabled and the access token is valid and has the scopes above.
The call is not on a contactNo contact's Phone number matched the customer's number exactly.
The body has no summaryThe call was logged before its summary was ready.
No recording on the activityThe recording could not be read or uploaded; check the files scope.