πCRM Pipeline Sync
Automatically move contacts to the right stage in your CRM pipeline after every conversation. Connect GoHighLevel or HubSpot, choose eligible stages, and let the agent handle the rest.
CRM Pipeline Sync lets your Text Agent move contacts through a GoHighLevel or HubSpot pipeline automatically β no manual updates needed. After each conversation closes and the post-conversation analysis runs, an AI judge reads the analysis and moves the matching contact to the appropriate stage.
Limited availability. CRM Pipeline Sync is currently in a limited rollout. Contact your Dapta account team to request access.
π What you'll learn in this document:
Step 1: Connect a CRM credential in Settings β OAuth.
Step 2: Enable and configure CRM Pipeline Sync for a specific Text Agent.
How it works: what happens at runtime when a conversation closes.
π Step 1: Connect a CRM credential
Before configuring your agent, add your CRM credential in Settings β OAuth. You can add multiple credentials per provider.
You will need a Private Integration Token and your Location ID.
In your GoHighLevel account, go to Settings β Integrations β Private Integrations and create a new integration.
Copy the generated Private Integration Token.
Find your Location ID in Settings β Business Info.
In Dapta, go to Settings β OAuth and click Add credential.
Select GoHighLevel, paste your token and Location ID, give the credential a name, and click Save.
You will need a Private App Token with the right CRM scopes.
In HubSpot, go to Settings β Integrations β Private Apps and create a new app.
On the Scopes tab, enable at minimum:
crm.objects.contacts.read/writecrm.objects.deals.read/writecrm.schemas.deals.read/write
Click Create app and copy the generated token.
In Dapta, go to Settings β OAuth and click Add credential.
Select HubSpot, paste your token, give it a name, and click Save.
βοΈ Step 2: Enable CRM Pipeline Sync for your Text Agent
Once a credential is connected, open the agent you want to configure.
Open your Text Agent and go to the Conversation Analysis tab.
Expand the CRM Pipeline Sync section.
Toggle Enable CRM pipeline sync for this agent to on.
π Select a credential and pipeline
Click the Credential selector. Each option shows the provider icon (HubSpot or GoHighLevel). If you haven't added a credential yet, select Add credential β this takes you to Settings β OAuth.
Once a credential is selected, choose a Pipeline from the dropdown. The list is pulled live from your CRM.
π― Choose stages and set move conditions
Click Choose stages to open the stage selector. Check every stage the agent is allowed to move contacts into.
Click Confirm. Each selected stage appears as a card with a move condition β a short description of when a contact belongs in that stage.
Move conditions are drafted automatically with AI based on the stage name. Review each one and edit it with the pencil icon if needed. A small red dot marks stages whose condition was AI-generated and has not yet been reviewed.
β "Add contact to pipeline if not already in it" toggle
This toggle controls what happens when an existing CRM contact has no deal/opportunity yet in the chosen pipeline:
ON
If the contact exists in the CRM but has no deal in this pipeline, a new deal/opportunity is created at the matched stage so they enter the pipeline.
OFF
Only contacts who already have a deal/opportunity in this pipeline are moved.
CRM Pipeline Sync never creates contacts. It only acts on people who already exist in your CRM. If a contact cannot be found by phone number or email, nothing happens β no error, no data is created.
Set the toggle based on your workflow, then click Save Agent (top right).
How it works at runtime
When a conversation session closes (either by the agent calling the Close Conversation action or after the inactivity timeout), the post-conversation analysis runs. As part of that analysis:
Dapta looks up the contact in your CRM by phone number or email captured during the conversation.
An LLM judge reads the analysis results and compares them against your move conditions.
The judge selects the best matching eligible stage and moves the contact's deal/opportunity to that stage.
The stage move is best-effort β it runs after the conversation closes and never blocks or delays the conversation itself. If the contact is not found in the CRM, the move is skipped silently.
Requirements and limitations
Agent version
V2 Text Agents (temporal/durable runtime) only.
Contact matching
The contact must already exist in the CRM. Matching is by phone number (E.164 format recommended) or email.
Phone format
Phone numbers should match the format stored in your CRM. Use E.164 (e.g. +15551234567) where possible.
HubSpot object
Moves Deals across pipeline stages.
GoHighLevel object
Moves Opportunities across pipeline stages.
Multiple credentials
You can add multiple credentials per provider in Settings β OAuth. Each agent uses one credential + one pipeline.
Conversation Analysis
Post-Conversation Analysis must be enabled on the agent for CRM sync to run.
Related pages
πPost-Conversation AnalysisπHubSpot Private App SetupLast updated