Integrations

CRM Sync

Bidirectional sync between Keva customer profiles and your CRM

Keva supports bidirectional sync with Salesforce and HubSpot, keeping your customer data in sync across systems automatically.

Overview

CRM sync connects your Keva customer profiles to your CRM contacts. When a customer submits a ticket, Keva can:

  1. Look up existing CRM records for context
  2. Create new contacts if they don't exist
  3. Update contact information bidirectionally
  4. Enrich AI responses with CRM data

Supported Platforms

PlatformObjects SyncedSync Direction
SalesforceContacts, AccountsBidirectional
HubSpotContacts, CompaniesBidirectional

How Sync Works

Outbound (Keva to CRM)

When a customer profile is created or updated in Keva:

  1. Keva checks if the customer has a linked CRM record
  2. If linked, updates the existing record
  3. If not linked, searches by email
  4. If found, links and updates; if not found, creates new contact

Inbound (CRM to Keva)

When a contact is updated in your CRM:

  1. CRM sends webhook notification to Keva
  2. Keva looks up the linked customer profile
  3. Updates Keva profile with new data
  4. Changes are logged in sync history

Field Mapping

Field mapping controls how data flows between Keva and your CRM.

Default Mappings

These fields sync automatically without configuration:

Keva FieldSalesforceHubSpot
EmailEmailemail
NameFirstName + LastNamefirstname + lastname
PhonePhonephone
CompanyCompanycompany
Job TitleTitlejobtitle

Custom Mappings

Map any Keva field to any CRM field:

  1. Go to Settings then CRM Sync
  2. Select the CRM object (Contact, Account, etc.)
  3. Click Add Mapping
  4. Choose Keva field and CRM field
  5. Set sync direction
  6. Optionally add transformation

Sync Direction Options

DirectionBehavior
BidirectionalChanges sync both ways (recommended)
To CRMKeva updates CRM, but not vice versa
From CRMCRM updates Keva, but not vice versa

Field Transformations

Apply transformations during sync:

TransformDescriptionExample
UppercaseConvert to uppercase"john" to "JOHN"
LowercaseConvert to lowercase"JOHN" to "john"
TrimRemove whitespace" john " to "john"
DefaultUse fallback valuenull to "Unknown"
Split NameExtract first/last"John Doe" to "John" or "Doe"
Date FormatConvert date formatISO to YYYY-MM-DD
Value MapMap discrete values"vip" to "Premium"

Sync Triggers

Automatic Triggers

  • Customer profile created (from new ticket)
  • Customer profile updated
  • Webhook received from CRM

Manual Triggers

  • Click Sync Now on customer profile
  • Run batch sync from settings
  • API trigger via /api/crm/sync

Conflict Resolution

When the same field is updated in both systems:

  1. Last write wins - Most recent update takes precedence
  2. Timestamp comparison - Keva compares lastCrmSyncAt with CRM modification time
  3. Logged for review - Conflicts appear in sync history

Sync History

All sync operations are logged:

  • Operation: create, update, delete, link
  • Direction: to_crm, from_crm
  • Status: pending, success, failed
  • Changes: What fields changed
  • Error: If failed, why

View sync history in Settings then CRM Sync then History.

Batch Sync

Sync all customers at once:

  1. Go to Settings then CRM Sync
  2. Click Batch Sync
  3. Confirm (this may take several minutes)
  4. Monitor progress in sync history

Batch sync processes up to 100 customers at a time and is rate-limited to avoid CRM API limits.

Security

Credentials

  • OAuth tokens stored encrypted (AES-256-GCM)
  • Tokens refreshed automatically
  • Never stored in plain text

Webhooks

  • Salesforce: HMAC signature validation
  • HubSpot: X-HubSpot-Signature-v3 verification
  • All webhook endpoints require authentication

Audit Trail

Every sync operation is logged with:

  • Tenant ID
  • Customer profile ID
  • CRM record ID
  • Request/response payloads
  • Timestamp

Getting Started

  1. Connect your CRM - Salesforce or HubSpot
  2. Configure field mappings - Map Keva fields to CRM fields
  3. Enable sync - Turn on automatic sync
  4. Test - Sync a single customer to verify
  5. Batch sync - Sync existing customers