TheVoĉoTheVoĉo

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:

  1. Contacts: Person records with phone match
  2. Accounts: Company records
  3. Leads: Potential customers
  4. Cases: Support tickets
  5. Opportunities: Open deals
  6. 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:

ObjectClick-to-Call Location
ContactsPhone fields (mobile, work, home, other)
LeadsPhone and mobile fields
AccountsMain phone and billing phone
OpportunitiesContact phone from related contact
CasesCase contact phone
Custom ObjectsAny phone field
List ViewsPhone column inline dialing
ReportsPhone 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:

  1. Click phone icon next to number in Salesforce
  2. Cloud-PBX desktop app activates (or softphone)
  3. Call initiates on selected device
  4. Call status shown in Salesforce utility bar
  5. During call: Add notes in real-time
  6. 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 Unlimited

Required 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 sufficient

Install Cloud-PBX Managed Package

Option 1: Install from AppExchange (Recommended):

  1. Go to Salesforce AppExchange
  2. Search for "Cloud-PBX" or "TheVoĉo"
  3. Click Get It Now
  4. Select installation environment:
    • Install in Production (for live org)
    • Install in Sandbox (for testing)
  5. Choose installation option:
    • Install for Admins Only (testing)
    • Install for All Users (recommended)
  6. Review package components and approve
  7. Click Install
  8. Wait for installation (2-5 minutes)

Option 2: Manual OAuth Setup: If managed package not available:

  1. Setup → Apps → App Manager → New Connected App
  2. 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:

  1. Open Cloud-PBX app in Salesforce:

    • Lightning: App Launcher → Cloud-PBX
    • Classic: Force.com Apps → Cloud-PBX
  2. Navigate to Cloud-PBX Settings tab

  3. Click Connect to Cloud-PBX

  4. 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
  5. Authorize connection:

    • Review permissions
    • Click Allow Access
  6. 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 mapped

Map 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:

  1. Cloud-PBX Settings → User Mapping tab
  2. For unmapped users, click Map User
  3. Select corresponding Cloud-PBX user from dropdown
  4. 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 → Confirm

Why 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__c

Create 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 Score

Test Integration

Test 1: Inbound Call + Screen Pop:

  1. Have colleague call your Salesforce extension from known contact number
  2. Verify screen pop appears in utility bar
  3. Correct contact record displayed
  4. Answer call with full context
  5. End call
  6. Verify: Task created and associated with contact

Test 2: Outbound Click-to-Call:

  1. Open any contact in Salesforce
  2. Click Cloud-PBX call button next to mobile number
  3. Call initiates on your device
  4. Complete short test call
  5. Verify: Task logged with correct details

Test 3: Call Recording:

  1. Make recorded call (outbound to contact)
  2. End call
  3. Navigate to Contact → Activity Timeline
  4. Open call task
  5. Verify: Recording URL field populated
  6. Click recording link → Should play

Test 4: Unknown Caller:

  1. Call from number not in Salesforce
  2. Answer call
  3. Verify: New lead created
  4. Check lead fields populated correctly

Deploy to Users

Roll Out:

  1. Pilot Group (1 week):

    • Assign Cloud-PBX User permission set to 5-10 users
    • Provide training and quick start guide
    • Collect feedback
  2. Department Rollout (2-3 weeks):

    • Deploy to sales team first
    • Then support/service team
    • Finally entire organization
  3. 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)

→ Assign

Communication 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 Support

Advanced 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:

  1. Re-authorize:

    Cloud-PBX Settings → Connection
    → Disconnect → Reconnect
    → Re-enter credentials → Allow Access
  2. Check Connected App:

    Setup → Apps → Connected Apps → Manage Connected Apps
    → Cloud-PBX → Verify Status = Approved
    → OAuth Policies: Permitted Users = All users (or selected)
  3. IP Restrictions: If IP relaxation required:

    Connected App → Edit Policies
    → IP Relaxation: Relax IP restrictions
  4. 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:

  1. Check Integration Status:

    Cloud-PBX Settings → Status
    Should show: Connected ✓
  2. Review Debug Logs:

    Setup → Debug Logs
    → Create trace flag for API user
    → Make test call
    → Review log for errors
  3. Verify User Mapping:

    Cloud-PBX Settings → User Mapping
    → Agent must be mapped
  4. Check Field Permissions:

    Setup → Object Manager → Task → Fields
    → Custom fields must be writable by API user
  5. 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

Next Steps