Introduction
What is CallCore TX?
CallCore TX-3 is a Salesforce managed package that connects your telephony system to Salesforce — surfacing call activity, transcripts, and recordings alongside the CRM records your team already works with.
External call systems push data in via a secured REST API. The package stores call segments, links them to CRM records by phone number, and surfaces that data through a unified timeline Lightning Web Component and a programmatic Apex service API.
The package ships with sensible defaults for everything. Extensibility strategies let you override the defaults — for example, to include custom object records in the timeline scope, or to restrict call visibility by team or department — without modifying the package or waiting for a new release.
Documentation Sections
| Section | What it covers |
|---|---|
| Services | The five Apex service classes that provide programmatic access to call and email data — already scoped to the relevant CRM records, normalised, and permission-gated. |
| Extensibility | The five strategy interfaces that let you customise how the package resolves scope, gathers phone numbers, matches call handlers, and restricts visibility — registered via custom metadata, no package code changes required. |
| Permissions Reference | Custom permissions, permission sets, and the permission hierarchy that controls what each user can see in the timeline — including own-call versus all-calls access, transcript visibility, and recording playback rights. |
| Recipes | End-to-end Apex code examples showing how to combine the services to solve common scenarios, including paged retrieval, transcript access, and email correlation. |
Key Concepts
Managed package — CallCore TX-3 is installed from the Salesforce AppExchange. All package code runs in the callcoreio namespace. When calling package Apex from subscriber code, prefix class names with callcoreio. (e.g. callcoreio.BuildScopeForRecord).
Extensibility strategies — the package uses a strategy pattern for every decision that orgs may need to customise. You implement an interface, deploy your class, and register it via a callcoreio__ExtensibilityStrategy__mdt custom metadata record. The package picks up your implementation at runtime — no package changes required. See Extensibility.
Programmatic access pipeline — five Apex service classes that let you retrieve call segments, transcripts, and email messages for any Salesforce record from your own Apex code. Each service is a thin, permission-aware wrapper around the package's data store. See Services.
Permissions — call visibility is governed by package custom permissions, not by Salesforce record sharing. Users see calls based on whether they are the call handler and which permission sets they hold. See Permissions Reference.
Sharing model — CRM data (Account, Contact, Opportunity) uses standard Salesforce with sharing. Call-domain data (call segments, transcripts) uses package-managed authorisation via CallCoreSecurity — adding with sharing to a class that queries call data does not make it more secure; it enforces the wrong rules.
Where to Start
| Goal | Where to go |
|---|---|
| Retrieve call history for a record in Apex | Services — start with BuildScopeForRecord |
| See a complete working example | Recipes |
| Add a custom object to the timeline scope | BuildCommunicationScopeForRecord |
| Extract phone numbers from a custom field | GatherPhoneNumbersFromRecords |
| Match call handlers to users by extension number | GetUserForCallHandler |
| Restrict which calls a team can see | RestrictCallHandlers or RestrictSources |
| Understand what each user can see and why | Permissions Reference |