Skip to content
Skip to page content

Trellus Dialer SDK

A JavaScript dialer SDK for product teams. Put manual, power and parallel calling inside your own interface. Version 0.1.0 is an integration preview.

View as Markdown

JavaScript · Framework-neutral · Version 0.1.0

A dialer you embed in your own product

The Trellus Dialer SDK is a JavaScript library for manual, power and parallel calling inside an interface you own. It has three parts. The headless SDK owns queue scheduling and call state. A transport owns credentials, audio and backend sessions. An optional UI package provides a ready-made interface.

Your code renders the state the SDK publishes and calls its methods when the user acts. The SDK does not depend on React, a browser extension, DOM selectors or any CRM’s task API.

Integration preview. Version 0.1.0 is public on npm. Anyone can install it and build against the mock transport. Live calling works only for companies Trellus has set up.

The two packages

Packages
PackageWhat it provides
@trellusrelease/dialer-sdkThe headless dialer: queue scheduling, call state and typed events, plus the Trellus transport and a mock transport.
@trellusrelease/dialer-uiAn optional interface built on the SDK: calling controls and a read-only session viewer. It has no transport or credentials of its own.
Entry points
ExportImport from
createDialer The headless dialer.@trellusrelease/dialer-sdk
createBrowserDialer Builds a live dialer for the browser.@trellusrelease/dialer-sdk/browser
createTrellusTransport The live Trellus transport.@trellusrelease/dialer-sdk/transport
createMockTransport A transport that places no calls, for local work and tests.@trellusrelease/dialer-sdk/testing
mountDialer Ready-made calling controls.@trellusrelease/dialer-ui
mountSessionViewer A read-only session viewer.@trellusrelease/dialer-ui/sessions
Install the SDK and the browser audio dependency
npm install @trellusrelease/dialer-sdk @twilio/voice-sdk
Install the optional interface
npm install @trellusrelease/dialer-ui

Both packages are ES modules with TypeScript declarations. @twilio/voice-sdk is needed only for live calling.

Who it is for

The SDK is for a product team that wants manual, power and parallel calling inside its own interface. You keep your components and your task list. The SDK supplies the dialing state and the methods.

  • Manual: one call per user action.
  • Power: one queued call at a time, in list order.
  • Parallel: several calls at once. The rep is connected to one of them.

If your team calls from a CRM that Trellus already supports, you do not need the SDK. See the supported integrations. If you want a ready-made calling workspace under your own brand, see white-label dialing. For a product-level summary of the SDK, see the embedded dialer page.

What works without an account

Everything up to a real phone call. The mock transport implements the same contract as the live transport without network or media. It places no calls, does not contact Trellus or Twilio, and needs no account.

  • Install both packages from npm.
  • Create a dialer, load tasks and start manual, power or parallel runs.
  • Simulate what happens to a call, then build every state of your interface against it.
  • Build your wrap-up flow and your save hook.
  • Mount the optional interface and the session viewer.

Start with the quickstart.

How to get live access

Live calling needs four things:

  • A Trellus account.
  • A rep API key. Your application supplies it through getApiKey.
  • The Twilio Voice SDK, @twilio/voice-sdk version >=2.18.0 <3, installed alongside the SDK.
  • Enablement by Trellus. A line setting in code does not grant entitlement.

Talk to Trellus about live access. Already have a Trellus account? Contact Trellus support. The same request form is on the embedded dialer page.

Setup details are in Live calling.

Status and scope

Version 0.1.0 is an integration preview. It is a standalone subset of the Trellus Chrome extension and does not claim full parity with it.

The packages provide dialing primitives and local queue state. They do not:

  • Provision reps or phone numbers.
  • Deploy a credential proxy.
  • Complete tasks in a CRM.
  • Guarantee durable call-data delivery.
  • Filter do-not-call numbers or calling hours. Your application applies those rules before it passes tasks to the SDK.
  • Run voicemail workflows.
  • Recover a run. The SDK does not persist queue runs across page reloads, and it has no cross-tab ownership lease.

Line limits

The headless core accepts maxLines from 1 to 10. The supplied Trellus transport and createBrowserDialer accept 1 to 4. The effective limit is the smaller of the two. Neither setting grants entitlement.

Who owns what

Ownership split
PartWhat it owns
Headless SDKcreateDialer owns ordered task intake, the manual, power and parallel scheduler, active call capacity, attempt identity, immutable public snapshots, the parallel winner, pause and wrap-up. It knows no credential format, HTTP path, Twilio class, browser DOM or CRM API.
TransportcreateTrellusTransport owns key retrieval, device registration, token refresh, event normalization, transcript corrections and call controls. createMockTransport implements the same contract without network or media.
Optional UImountDialer renders the public snapshots and calls SDK methods. It provides mode selection, manual calling, queue controls, audio routes, call controls, transcripts and wrap-up. Mounting performs no registration or dialing.
Your applicationRep authentication and account or workspace changes, task sources, contact eligibility and consent policy, effective dialing limits, saving call outcomes and completing your own workflow.

There is one scheduling loop. The supplied interface and a custom interface both use the same headless instance for every placement and continuation decision. Do not advance the queue from a second timer in your application.

Every call has a stable attemptId. A confirmed call also has a Trellus sessionId. Your taskId, the SDK attemptId and the Trellus sessionId have different lifetimes. Keep them separate.

Guides in this section

  • QuickstartInstall the packages, run the dialer against the mock transport, render snapshots, then start a power or parallel run. No account is needed and no calls are placed.
  • API referenceThe public surface of the headless SDK: createDialer, the task shape, every dialer method, the snapshot, and errors. The package’s TypeScript declarations are the authority.
  • Events and sessionsRead state with snapshots, react to six typed events, look up confirmed sessions, and treat live transcript text as provisional until the final snapshot arrives.
  • Call lifecycleHow manual, power and parallel modes place calls, how a call progresses, what wrap-up requires, and what to do when an outcome is uncertain.
  • Live callingConnect the SDK to Trellus telephony with the browser factory or an explicit transport. Live calling needs a Trellus account, a rep API key, the Twilio Voice SDK and enablement by Trellus.
  • Optional interfaceA small, framework-independent interface built on the SDK. Mount it for manual, power or parallel dialing, theme it with CSS variables, and add a read-only session viewer.