Skip to main content

Outbound & contacts

Outbound dialer lists and leads, phonebook entries (with bulk CSV import/export), and outbound campaigns. Available as mgr.outbound, mgr.phonebook, and mgr.campaigns (same names in all three SDKs).

Outbound lists & leads

const lists = await mgr.outbound.lists();
const list = await mgr.outbound.createList({ /* CreateOutboundListRequest */ });
await mgr.outbound.addLead(list.item.id, { /* AddOutboundLeadRequest */ });
await mgr.outbound.updateLead(list.item.id, leadId, { /* ... */ });
await mgr.outbound.deleteLead(list.item.id, leadId);
await mgr.outbound.clearList(list.item.id); // remove all leads

Phonebook

CRUD plus bulk CSV download / upload.

for await (const e of mgr.phonebook.list()) console.log(e.id);
await mgr.phonebook.create({ /* RestCreatePhonebookEntryBody */ });
const csv = await mgr.phonebook.download();
await mgr.phonebook.upload(csvFile);

Campaigns

const campaigns = await mgr.campaigns.list();
const c = await mgr.campaigns.create({ /* CreateCampaignRequest */ });
await mgr.campaigns.update(c.item.id, { /* UpdateCampaignRequest */ });
await mgr.campaigns.delete(c.item.id);

Lists, leads, attempts & uploads

Beyond list/lead CRUD, the resource exposes outbound list management, lead/attempt browsing, agent-initiated outbound calls, bulk lead deletion, and CSV lead uploads.

const list = await mgr.outbound.getList(listId);
await mgr.outbound.updateList(listId, { /* CreateListRequest */ });
await mgr.outbound.deleteList(listId);

const leads = await mgr.outbound.leadsAll({ listId });
const attempts = await mgr.outbound.attemptsAll({ campaignId });
await mgr.outbound.createAgentCall(agentId, { /* AgentOutboundCallRequest */ });

await mgr.outbound.bulkDeleteLeads(listId, { /* LeadBulkDeleteRequest */ });
await mgr.outbound.uploadLeads(listId, { /* file + mapping */ });

Leads in a specific list & phonebook bulk delete

Fetch a single lead or the leads of a specific list (filterable by dial status), and bulk-delete phonebook entries by id.

const lead = await mgr.outbound.getLead(listId, leadId);
const inList = await mgr.outbound.listLeads(listId, { status: "pending" });
await mgr.phonebook.bulkDelete([entryId1, entryId2]);

Campaign monitoring, leads & lists

Each campaign exposes realtime status/statistics, its hopper and (processed) leads, lead-list assignment, and a logout-all-agents control.

const status = await mgr.campaigns.status(campaignId);
const stats = await mgr.campaigns.statistics(campaignId, { from, to });
const hopper = await mgr.campaigns.hopper(campaignId);
const leads = await mgr.campaigns.leads(campaignId);
const processed = await mgr.campaigns.processedLeads(campaignId);

await mgr.campaigns.setListById(campaignId, listId); // or setList(id, body) / unsetList(id)
await mgr.campaigns.logoutAllAgents(campaignId);

Reference