CRM Field Extraction into HubSpot
Configure playbook fields that Steve extracts from sales calls and writes into HubSpot deal properties, company properties, and call logs
Overview
Steve can listen to a sales call, pull out the values your CRM cares about β budget, team size, contract expiry, decision criteria β and write them straight into HubSpot. You configure what to extract once, on a playbook, and it applies to every call run against that playbook.
Who it's for: π£ PMM / sales management configuring playbooks Β· π― Sales Rep benefiting from a CRM that fills itself in.
Where: the Field Extraction and CRM Mapping step when creating or editing a playbook β "Configure custom fields to extract from conversations and map to your CRM."
HubSpot has to be connected first. Without it the field editor shows "Please connect your HubSpot account first." Start at Connecting HubSpot.
The four destinations
Each extraction field has a destination that decides where its value lands in HubSpot.
| Destination | Where the value goes |
|---|---|
| Deal Property | A specific HubSpot deal property on the deal the call is annotated to. |
| Call Log | Combined with the other call-log fields into a single Call engagement on the deal timeline. |
| Company Property | A HubSpot company property on the company matched to the call's participants. |
| Company Call Log | A Call engagement on the company timeline. |
Deal destinations need the call annotated to a deal. Company destinations need Steve to resolve a company from the call's contacts β it looks up the participants' email addresses in HubSpot and follows them to a company.
Adding a field
The dialog is Add Extraction Field β Configure a field to extract from sales calls and map it to your CRM.
- CRM β pick HubSpot. The badge shows Connected or Not Connected.
- Entity Type β Deals or Companies. This decides whether Steve offers deal properties or company properties.
- Field Destination β Deal Property, Call Log, Company Property, or Company Call Log.
- HubSpot Field β a searchable list of every property in your portal. Select a CRM property to auto-fill field details.
- Name and Data Type auto-fill from the property you picked, marked Auto-filled from CRM property. You can still edit the name.
- Extract Instructions β required. Tell the model how to find this on a call, for example "The annual budget the buyer states for this project, in their own currency."
- Add Field.
Refresh Fields re-fetches the property list from HubSpot β use it after creating a property in HubSpot in another tab. A toast confirms "HubSpot fields refreshed successfully".
Property-first is deliberate. Choosing the HubSpot property before the name and type means the field can never be a type HubSpot will reject.
Data types
| Type | Use for |
|---|---|
| Short Answer | Names, titles, company names |
| Long Answer | Pain points, descriptions, detailed responses |
| Person Count | Employee count, team size |
| Person Name | A named individual |
| Person Role | A job function |
| Money | Revenue, budget amounts, deal values |
| Date | Contract expiration, decision deadlines |
| Boolean | Yes/no questions, feature needs |
| Enum | A fixed list of values β industry, company type, tech stack |
Enum properties and allowed values
When the HubSpot property you map to is a dropdown, Steve reads its options and shows them under Allowed Values: "These are the valid values accepted by your CRM. The AI will only extract values from this list."
Those options are stored with the mapping and passed to the model at extraction time, so it returns HubSpot's exact values β newbusiness, not New Business. This is what prevents the INVALID_OPTION errors you get when a value doesn't match the property's option list.
AI-assisted mapping
When a playbook's methodology already implies a set of fields, Steve can map them to your HubSpot properties for you β the editor shows "AI is mapping fields to your HubSpot propertiesβ¦" while it works. Review the results; you can change any mapping by hand.
When extraction runs
- A call is recorded and processed against a playbook.
- Steve extracts a value and a confidence score for every configured field.
- The call is annotated to a CRM deal β automatically from participant matching, or by you in Sales Calls.
- The extracted values are synced to HubSpot by destination: deal properties get patched, call-log fields are combined into a Call engagement on the deal, company fields are patched on the matched company, and company call-log fields become an engagement on the company.
Manual annotation runs the same sync. Annotating a call to a deal in the dialog pushes the extracted values immediately.
Switching or removing an annotation clears up after itself. Values Steve wrote to the old deal or company are reset to type-appropriate defaults before the new ones are applied, so an old deal isn't left carrying another call's data.
A sync failure never blocks the annotation itself β the association is saved either way, and the failure is reported separately.
Reviewing what was extracted
Open a call's post-call analysis and go to the CRM Data tab. Each field shows its Extracted Value, its Type, a confidence score, and whether it's Mapped to CRM. Fields the model couldn't find show Not extracted.
With nothing configured, the tab reads No CRM fields configured for this playbook.
Across calls, the CRM Data dashboard aggregates extraction rate and coverage per field, so you can see which instructions are working and which need rewriting.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| No HubSpot properties in the dropdown | HubSpot isn't connected, or the list is stale | Connect HubSpot, then click Refresh Fields. |
| Values extract but never reach HubSpot | The call isn't annotated to a deal | Annotate it in Sales Calls, or check participant matching. |
| Company fields stay empty | Steve couldn't match a company from the call's contacts | Confirm the participants exist as HubSpot contacts associated with a company. |
| HubSpot rejects an enum value | The mapping was created before options were stored | Delete and re-add the field so its allowed values are captured. |
| A field is always Not extracted | The extract instructions are too vague | Rewrite them to describe exactly what's said on the call. |
Next Steps
- Connected Calls and Deal Chat β how calls attach to deals.
- The Companies Tab β the company records fields are written to.
- Field Mapping β the separate, simpler mapping used by the deals table.