Salesforce Integration
Connect Cloud-PBX with Salesforce for enterprise-grade call logging, screen pop with complete customer context, and seamless integration with Sales Cloud, Service Cloud, and custom objects.
Overview
Salesforce is the world's leading enterprise CRM platform. The Cloud-PBX integration provides comprehensive telephony features within Salesforce, enabling sales and service teams to communicate effectively with complete customer context.
Key Features:
- Screen pop with account, contact, lead, opportunity, and case information
- Automatic call logging to activity timeline
- Click-to-call from any Salesforce record
- Native Salesforce interface integration
- Call recording embedded in activities
- Lightning and Classic UI support
- Integration with Salesforce Flows and Process Builder
- Support for custom objects
Benefits:
- 360° customer view with call history
- Increased productivity with automation
- Enterprise scalability and security
- Deep Salesforce ecosystem integration
- Advanced analytics and reporting
Features
Screen Pop
Incoming calls automatically display Salesforce records with complete context:
Search Priority:
- Contacts: Person records with phone match
- Accounts: Company records
- Leads: Potential customers
- Cases: Support tickets
- Opportunities: Open deals
- Custom Objects: Industry-specific records
Lightning Experience Screen Pop:
Incoming Call: +1-415-555-0100
↓
Salesforce Search: All objects by phone
↓
Match Found: Jennifer Garcia (Contact)
↓
Screen Pop Displays:
──────────────────────────────────────────
Contact: Jennifer Garcia
Title: VP of Operations
Account: Acme Corporation (Customer - Enterprise)
Phone: +1-415-555-0100 (Mobile)
Email: [email protected]
Owner: Tom Wilson
Activity Timeline:
- Email: Sent proposal (2 days ago)
- Meeting: Product demo (1 week ago)
- Call: Outbound (2 weeks ago, 12m 34s)
Open Opportunities:
- Enterprise Upgrade ($85,000) - Negotiation
- Add-on Services ($15,000) - Proposal
Open Cases:
- CASE-00125: API Integration Question (Priority: High)
Account Health: 85/100 (Healthy)
Last Purchase: $125,000 (6 months ago)
Contract: Renewal in 45 days
──────────────────────────────────────────
Utility Bar Integration (Lightning):
- Screen pop appears in Salesforce utility bar
- Doesn't navigate away from current page
- Agent can view context while continuing work
Automatic Call Logging
Every call creates a Task or Activity record in Salesforce:
Logged Fields:
- Subject: Call with [Contact/Lead Name]
- Type: Call (Activity Type)
- Direction: Inbound or Outbound
- Date & Time: Call timestamp
- Duration: Talk time in minutes
- Status: Completed
- Description: Call notes and outcome
- Related To: Account, Opportunity, Case
- Assigned To: Salesforce user who handled call
- Custom Fields: Call outcome, quality score, recording URL
Activity Timeline Entry:
Task: Call with Jennifer Garcia
Type: Call - Outbound
Date: Today at 2:45 PM
Duration: 12 minutes, 34 seconds
Status: Completed
Call Outcome: Demo Scheduled
Priority: High
Description:
Discussed Enterprise Upgrade proposal with Jennifer.
Key points:
- Interested in API capabilities and SSO
- Needs security documentation for compliance team
- Decision makers: Jennifer (Operations) + Michael Chen (CTO)
- Budget approved for Q4
- Demo scheduled: Next Tuesday 10 AM PT
Next Steps:
- Send security documentation (today)
- Prepare technical demo with API examples
- Include Michael Chen in demo invite
Recording: [Play Recording] (12m 34s)
Related To: Acme Corporation (Account)
Opportunity: Enterprise Upgrade ($85,000)
Click-to-Call
Call from Anywhere in Salesforce:
| Object | Click-to-Call Location |
|---|---|
| Contacts | Phone fields (mobile, work, home, other) |
| Leads | Phone and mobile fields |
| Accounts | Main phone and billing phone |
| Opportunities | Contact phone from related contact |
| Cases | Case contact phone |
| Custom Objects | Any phone field |
| List Views | Phone column inline dialing |
| Reports | Phone numbers in reports |
Lightning Component:
Cloud-PBX Lightning Component adds:
- Call button in page header
- Recent calls panel
- Quick-dial favorites
- Active call controls (hold, mute, transfer)
- Call queue status (for agents)
Call Flow:
- Click phone icon next to number in Salesforce
- Cloud-PBX desktop app activates (or softphone)
- Call initiates on selected device
- Call status shown in Salesforce utility bar
- During call: Add notes in real-time
- End call: Automatic task creation with notes
Salesforce Flow Integration
Trigger Flows from Call Events:
Example Flow 1: High-Value Opportunity Call Alert:
Trigger: Call Task Created
Criteria:
- Related Opportunity Amount > $100,000
- Call Direction = Inbound
Actions:
- Send Slack notification to Sales Director
- Create follow-up task (assigned to account owner)
- Update Opportunity: Last Activity = Today
- If call < 2 minutes: Flag as "Needs Attention"
Example Flow 2: Support Call Escalation:
Trigger: Call Task Created
Criteria:
- Related Case Priority = High or Critical
- Call Outcome = "Unresolved"
Actions:
- Escalate case to Tier 2 Support
- Update Case Status: "Escalated"
- Create Task: "Follow-up call within 1 hour"
- Send email notification to Case team lead
- Post to Chatter: "Escalation needed"
Example Flow 3: Lead Conversion Automation:
Trigger: Call Task Created
Criteria:
- Related To = Lead
- Call Duration > 5 minutes
- Call Outcome = "Qualified"
Actions:
- Convert Lead to Contact + Account + Opportunity
- Opportunity Amount: $0 (to be qualified)
- Opportunity Stage: "Qualification"
- Create Task: "Send proposal" (+2 days)
- Assign to: Same owner as original lead
Call Recording Integration
Recordings in Salesforce:
- Recording URL stored in custom field on Task
- Embedded audio player in activity detail
- Play recording without leaving Salesforce
- Download recording link
- Share recording URL via Chatter
Recording Permissions:
- Respect Salesforce sharing rules
- Only authorized users can access recordings
- Manager override for QA purposes
- Audit trail of recording access
Compliance Features:
- Recording consent management
- Retention policies enforced
- Auto-delete after retention period
- PCI pause recording (payment info)
- GDPR right-to-erasure support
Setup Guide
Prerequisites
Requirements:
- Salesforce Edition: Professional, Enterprise, or Unlimited
- System Administrator or Customize Application permission
- Cloud-PBX Enterprise plan
- Lightning Experience (recommended) or Classic
Check Salesforce Edition:
Setup → Company Information → Organization Edition
Should be: Professional, Enterprise, Performance, or UnlimitedRequired Salesforce Features:
- API Enabled (included in all paid editions)
- Activities (Tasks) enabled
- Custom fields permission
- Connected Apps support
Verify API Access:
Setup → System Overview → API Usage
Should show: API Enabled ✓
Available API Calls: Check daily limit sufficientInstall Cloud-PBX Managed Package
Option 1: Install from AppExchange (Recommended):
- Go to Salesforce AppExchange
- Search for "Cloud-PBX" or "TheVoĉo"
- Click Get It Now
- Select installation environment:
- Install in Production (for live org)
- Install in Sandbox (for testing)
- Choose installation option:
- Install for Admins Only (testing)
- Install for All Users (recommended)
- Review package components and approve
- Click Install
- Wait for installation (2-5 minutes)
Option 2: Manual OAuth Setup: If managed package not available:
- Setup → Apps → App Manager → New Connected App
- Configure OAuth settings (see detailed steps in Advanced Configuration)
Package Components:
- Custom objects: Call records (optional)
- Custom fields on Task: Call Duration, Outcome, Recording URL
- Lightning components: Call widget, screen pop
- Apex classes: API integration logic
- Visualforce pages: Classic UI integration
- Permission sets: Cloud-PBX User
Configure OAuth Connection
After Package Installation:
-
Open Cloud-PBX app in Salesforce:
- Lightning: App Launcher → Cloud-PBX
- Classic: Force.com Apps → Cloud-PBX
-
Navigate to Cloud-PBX Settings tab
-
Click Connect to Cloud-PBX
-
Enter Cloud-PBX credentials:
- Cloud-PBX Account URL:
https://admin.voco.us - Admin Username: Your Cloud-PBX admin email
- Admin Password: Your Cloud-PBX password
- Cloud-PBX Account URL:
-
Authorize connection:
- Review permissions
- Click Allow Access
-
Connection Successful:
- Status: Connected ✓
- Salesforce Org: [Your org ID]
- Cloud-PBX Account: [Your account name]
- Last Sync: Just now
Verify Connection:
Cloud-PBX Settings → Connection Status
✓ OAuth Token Valid
✓ API Access Confirmed
✓ Webhooks Configured
✓ User Mapping: 12 users mappedMap Users
Automatic User Mapping: Cloud-PBX attempts to map users by email:
Salesforce User Cloud-PBX User
────────────────────────────────────────
[email protected] → [email protected] ✓
[email protected] → [email protected] ✓
[email protected] → Not Mapped ✗Manual Mapping:
- Cloud-PBX Settings → User Mapping tab
- For unmapped users, click Map User
- Select corresponding Cloud-PBX user from dropdown
- Save mapping
Bulk Import:
User Mapping → Bulk Import
Upload CSV:
Salesforce Email, Cloud-PBX Extension
[email protected], 2001
[email protected], 2002
[email protected], 2003
→ Import → Validate → ConfirmWhy Mapping Matters:
- Calls logged to correct Salesforce user
- Task owner = agent who handled call
- Reports accurate per-user metrics
- Permissions and sharing rules enforced
Configure Screen Pop
Screen Pop Settings:
Cloud-PBX Settings → Screen Pop Configuration
Behavior:
☑ Enable Screen Pop
Display: Utility Bar (Lightning) / Pop-up (Classic)
Search Objects:
☑ Contacts (Priority: 1)
☑ Accounts (Priority: 2)
☑ Leads (Priority: 3)
☑ Cases (Priority: 4)
☐ Opportunities (search only, don't pop)
☑ Custom Objects: [Select if needed]
Matching:
Match By: Phone (all phone fields)
Fuzzy Matching: Yes (ignore formatting, country codes)
Multiple Matches: Show most recently modified
Fallback (No Match):
☑ Create New Lead
Lead Source: Phone Call - Inbound
Lead Status: New
Assign To: Round-robin (or specific user/queue)Lightning Utility Bar:
- Screen pop appears in utility bar at bottom
- Doesn't navigate away from current work
- Can be minimized/expanded
- Multiple records can be opened
Configure Call Logging
Call Task Settings:
Cloud-PBX Settings → Call Logging Configuration
Log Calls As: Task (Activity)
Task Settings:
Subject: "Call with [Contact Name]"
Type: Call
Status: Completed (after call ends)
Priority: Normal (or set based on rules)
Required Fields:
☑ Description (call notes)
☑ Call Outcome (disposition)
☐ Next Steps (optional)
Auto-Associate:
☑ Contact (if found)
☑ Account (from contact's account)
☑ Opportunity (if open opp exists)
☑ Case (if open case exists)
Custom Fields:
Call Duration → Task.Cloud_PBX_Duration__c
Call Direction → Task.Cloud_PBX_Direction__c
Recording URL → Task.Cloud_PBX_Recording__c
Call Outcome → Task.Cloud_PBX_Outcome__c
Call Quality → Task.Cloud_PBX_Quality_Score__cCreate Custom Fields (if not in package):
Setup → Object Manager → Task → Fields & Relationships
New Field:
- Field Label: Call Duration
- Field Name: Cloud_PBX_Duration__c
- Data Type: Number (Length: 5, Decimal: 0)
- Description: Call duration in seconds
Repeat for: Direction, Recording URL, Outcome, Quality ScoreTest Integration
Test 1: Inbound Call + Screen Pop:
- Have colleague call your Salesforce extension from known contact number
- Verify screen pop appears in utility bar
- Correct contact record displayed
- Answer call with full context
- End call
- Verify: Task created and associated with contact
Test 2: Outbound Click-to-Call:
- Open any contact in Salesforce
- Click Cloud-PBX call button next to mobile number
- Call initiates on your device
- Complete short test call
- Verify: Task logged with correct details
Test 3: Call Recording:
- Make recorded call (outbound to contact)
- End call
- Navigate to Contact → Activity Timeline
- Open call task
- Verify: Recording URL field populated
- Click recording link → Should play
Test 4: Unknown Caller:
- Call from number not in Salesforce
- Answer call
- Verify: New lead created
- Check lead fields populated correctly
Deploy to Users
Roll Out:
-
Pilot Group (1 week):
- Assign Cloud-PBX User permission set to 5-10 users
- Provide training and quick start guide
- Collect feedback
-
Department Rollout (2-3 weeks):
- Deploy to sales team first
- Then support/service team
- Finally entire organization
-
Training:
- Live demo of screen pop and click-to-call
- Show call logging and recording playback
- Explain call outcome dispositions
- Provide job aids and videos
Enable for Users:
Setup → Users → Permission Sets → Cloud-PBX User
Assign to Users:
☑ Tom Wilson
☑ Sarah Jones
☑ Mike Brown
... (select all users who will use phone)
→ AssignCommunication Template:
Subject: New Phone System Integration in Salesforce
We've integrated our Cloud-PBX phone system with Salesforce!
✅ Incoming calls pop customer info automatically
✅ Click any phone number to call instantly
✅ All calls automatically logged - no manual entry!
✅ Call recordings available in activity timeline
How to Use:
1. Click phone icon next to any number in Salesforce
2. Answer incoming calls - info pops up automatically
3. Add call notes during or after call
4. Done! Call is logged automatically.
Training: [Video link] | [Quick Start Guide]
Questions? Contact IT SupportAdvanced Configuration
Process Builder Integration
Automate Actions Based on Call Activity:
Example Process: Opportunity Stage Update:
Process: Update Opportunity After Call
Object: Task
Criteria:
- Type = Call
- Status = Completed
- What (Related To) = Opportunity
- Call Outcome = "Demo Completed"
Actions:
- Update Opportunity
- Stage: "Proposal/Price Quote"
- Next Step: "Send proposal within 24 hours"
- Expected Close Date: +30 days from today
- Create Task
- Subject: "Send proposal to [Opportunity Name]"
- Due Date: Tomorrow
- Priority: High
- Assigned To: Opportunity Owner
Custom Call Outcomes
Create Picklist for Call Dispositions:
Setup → Object Manager → Task → Fields
Edit Field: Cloud_PBX_Outcome__c (or create if not exists)
Picklist Values:
Connected - Conversation
Connected - Demo Scheduled
Connected - Quote Sent
Connected - Not Interested
Connected - Follow-up Needed
No Answer
Left Voicemail
Busy
Wrong Number
Do Not Call
Default Value: [None]
Restricted Picklist: Yes (force selection)
Make Required:
Cloud-PBX Settings → Call Logging
Require Call Outcome: Yes
Prompt: After every call (modal popup)
Cannot Complete Task Without Outcome: Yes
Service Cloud Integration
Case Association:
Cloud-PBX Settings → Service Cloud
Auto-Associate Calls with Cases: Yes
Rules:
- If contact has open case → Associate call with case
- Priority: High and Critical cases first
- Multiple open cases: Mostrecently modified
- No open case: Option to create new case
Case Update After Call:
- Update Case Status: "Customer Contacted"
- Add Case Comment: Call summary from notes
- Update Case Priority: Based on call urgency
Omni-Channel Integration:
Setup → Omni-Channel Settings
Cloud-PBX calls appear as Omni-Channel work items:
- Inbound call → Routed via Omni-Channel queues
- Agent status updated (Available → On Call → Wrap-up)
- Call capacity counted toward agent's max work
- After-call work (ACW) time enforced
Einstein Analytics Integration
Call Data in Einstein:
Create dataset from Call Tasks:
Einstein Analytics → Data Manager → Create Dataset
Source: Salesforce Object - Task
Filter: Type = "Call"
Fields:
- CreatedDate (call date)
- Cloud_PBX_Duration__c (duration)
- Cloud_PBX_Direction__c (inbound/outbound)
- Cloud_PBX_Outcome__c (outcome)
- OwnerId (agent)
- WhatId (related account/opp)
Dashboards:
- Sales Call Activity Dashboard
- Support Call Metrics Dashboard
- Call Conversion Funnel
- Agent Performance Scorecard
Troubleshooting
OAuth Connection Issues
Problem: "Invalid OAuth Token" or "Connection Failed"
Solutions:
-
Re-authorize:
Cloud-PBX Settings → Connection → Disconnect → Reconnect → Re-enter credentials → Allow Access -
Check Connected App:
Setup → Apps → Connected Apps → Manage Connected Apps → Cloud-PBX → Verify Status = Approved → OAuth Policies: Permitted Users = All users (or selected) -
IP Restrictions: If IP relaxation required:
Connected App → Edit Policies → IP Relaxation: Relax IP restrictions -
Session Security:
Setup → Session Settings → Verify: "Lock sessions to IP address" not blocking Cloud-PBX
Call Logging Issues
Problem: Calls not creating Tasks in Salesforce
Diagnostic Steps:
-
Check Integration Status:
Cloud-PBX Settings → Status Should show: Connected ✓ -
Review Debug Logs:
Setup → Debug Logs → Create trace flag for API user → Make test call → Review log for errors -
Verify User Mapping:
Cloud-PBX Settings → User Mapping → Agent must be mapped -
Check Field Permissions:
Setup → Object Manager → Task → Fields → Custom fields must be writable by API user -
API Limits:
Setup → System Overview → API Usage → Verify not exceeding daily limit Professional: 1,000 calls/day Enterprise: 5,000 calls/day (+ 1,000 per user)
Screen Pop Not Working
Problem: No screen pop on incoming calls
Checklist:
- ✅ Screen pop enabled in settings
- ✅ Phone number exists in Salesforce (Contact, Lead, or Account)
- ✅ Browser popup blocker disabled
- ✅ User has Cloud-PBX User permission set assigned
- ✅ Lightning Experience (Classic has different behavior)
Phone Matching:
Salesforce: +1 (415) 555-0100
Incoming: 4155550100
Enable: Normalize Phone Numbers
Cloud-PBX Settings → Screen Pop → Phone Matching
☑ Strip country codes (+1, 001, etc.)
☑ Ignore formatting (-, spaces, parentheses)
☑ Match last 10 digits
Multiple Matches:
If same phone in multiple records:
- Show: Most recently modified
- Or: Contact over Lead over Account
- Or: Display choice dialog
Best Practices
Salesforce Reports & Dashboards
Sales Activity Report:
Report Type: Activities with Accounts
Filters:
- Activity Type = Call
- Activity Date = This Quarter
- Task Owner = My Team
Group By: Task Owner
Summarize:
- Record Count (# of calls)
- Sum of Call Duration
- Calls with Opportunities (%)
Chart: Bar chart by sales rep
Call Conversion Report:
Report Type: Leads with Activities
Filters:
- Lead Status = Converted
- Activity Type = Call
Group By: Lead Source
Summarize:
- # of Calls before Conversion (AVG)
- Time to Conversion (AVG days)
- Conversion Rate by Source
Insight: Which lead sources require most calls to convert?
Data Quality
Phone Number Formatting: Enforce consistent format:
Validation Rule on Contact/Lead:
Rule Name: Phone_Format_Validation
Error Condition:
NOT(REGEX(Phone, "\\+?[0-9]{10,15}"))
Error Message:
"Phone must be 10-15 digits, optional + prefix"
Prevents: (555) 123-4567 or 555-123-4567
Requires: +15551234567 or 5551234567
Duplicate Management: Enable duplicate rules to prevent same phone in multiple records:
Setup → Duplicate Management → Duplicate Rules
Rule: Duplicate Contacts by Phone
Matching Rule: Contact.Phone = Contact.Phone
Action: Block (or Alert)
Security & Compliance
Field-Level Security:
Setup → Object Manager → Task → Fields
Cloud_PBX_Recording__c (Recording URL):
- Visible: Sales Team, Support Team, Managers
- Editable: System Administrators only
- Read-Only: Standard Users
Rationale: Protect sensitive call recordings
Sharing Rules:
Setup → Sharing Settings → Task
Sharing Rule: Call Recordings - Manager Access
Criteria: Type = "Call" AND Recording URL is not blank
Share with: Sales Managers, Support Managers
Access Level: Read/Write
Salesforce-Specific Features
Sales Cloud Features
High Velocity Sales Integration:
- Calls appear in work queue
- Click-to-call from cadences
- Automated call scheduling
- Multi-channel engagement tracking
Sales Dialer Integration:
- Cloud-PBX as backend dialer
- Native Salesforce dialer UI
- Local presence (caller ID)
- Power/predictive dialing
Service Cloud Features
Console Integration:
- Screen pop in Service Console utility bar
- Call controls in console footer
- Multi-tab case management
- Quick text during calls
CTI Toolbar:
- Answer/reject incoming calls
- Hold, mute, transfer controls
- Status: Available, Away, On Call
- Call queue visibility
Frequently Asked Questions
Q: What Salesforce editions are supported? A: Professional, Enterprise, Performance, and Unlimited. Developer and Group editions have limited API, not recommended.
Q: Does this work with Salesforce Classic and Lightning? A: Yes, both interfaces supported. Lightning Experience recommended for best user experience (utility bar, Lightning components).
Q: Can we customize what fields are logged? A: Yes! Use custom fields on Task object and configure mapping in Cloud-PBX settings.
Q: How are calls associated with Opportunities? A: Automatically if contact is related to open opportunity. Or manually via "Related To" field on Task.
Q: What about Sandboxes? A: Install package in Sandbox first for testing. Separate configuration from Production.
Q: Can we integrate with Salesforce CPQ? A: Yes, associate calls with Quotes. Custom integration available for complex CPQ workflows.
Q: Does this work with Experience Cloud (formerly Community Cloud)? A: Partner and customer portal users cannot make calls directly. Internal users only.
Q: How do recordings affect Salesforce storage? A: Recordings stored externally (Cloud-PBX). Only URL stored in Salesforce (minimal storage impact).
Getting Help
Salesforce Integration Support
Need help with Salesforce integration?
- Setup: Review OAuth and package installation
- Errors: Check debug logs and API limits
- Custom Requirements: Contact support for advanced configuration
- Salesforce Support: Open case in Salesforce Help portal
Resources:
- AppExchange Listing: Cloud-PBX for Salesforce
- Video Tutorial: Complete setup walkthrough (25 min)
- Salesforce Trailhead: CRM integration module