Skip to content

Resource Reference

This page covers the CRM and messaging namespaces exposed by the SDK. Initialize the client first (see Installation or Quick Start). All snippets below assume client is the initialized instance.

For AI and workflow-related resources, see:

  • AI Agent — AI agents (chatAi), AI agent streaming, embeddings, parquet
  • Workflows — Workflow flows and channel automation
  • Data Boards — CRM pipeline boards and items

For an end-to-end walkthrough that uses these resources together, see Full Flow Guide.


Contacts — client.contacts

const { data: contacts } = await client.contacts.list({ limit: 50 });
const contact = await client.contacts.get("contact_id");
await client.contacts.update("contact_id", {
name: "Alice B.",
email: "alice@example.com",
phone: "+84901234567",
});
const comments = await client.contacts.getComments("contact_id");
const files = await client.contacts.getFiles("contact_id");
const activity = await client.contacts.getActivities("conversation_id");

Conversations — client.conversations

// Search
const { data: convs } = await client.conversations.search({
businessUnitId: "bu_xxx",
q: "support",
limit: 20,
});
// Outstanding (unresolved)
const { data: open } = await client.conversations.getOutstanding({
businessUnitId: "bu_xxx",
limit: 50,
});
// Assign
await client.conversations.assignTeamMember({
conversation_id: "conv_xxx",
user_id: "user_xxx",
});
// Update status
await client.conversations.updateStatus({
conversation_id: "conv_xxx",
status: "resolved",
});

Messaging — client.channel, client.messages

const channels = await client.channel.list();
await client.messages.send({
type: "text",
text: "Hello, how can I help you today?",
});
const msgs = await client.messages.list({ limit: 20 });

Campaigns & touchpoints — client.campaign

const { data: campaigns } = await client.campaign.list();
const campaign = await client.campaign.get("campaign_id");
const newCamp = await client.campaign.create({ name: "Q2 Outreach", channel_type: "email" });
await client.campaign.delete("campaign_id");
// Touchpoints
const { data: touchpoints } = await client.campaign.listTouchpoints();
const tp = await client.campaign.getTouchpoint("touchpoint_id");
await client.campaign.createTouchpoint({
campaign_id: "campaign_id",
type: "email",
delay_days: 3,
});
await client.campaign.updateTouchpoint("touchpoint_id", { delay_days: 5 });
await client.campaign.deleteTouchpoint("touchpoint_id");
// Validate touchpoint config before saving
const result = await client.campaign.validateTouchpoint({ type: "email", template_id: "tpl_xxx" });

Message suggestion — client.messageSuggestion / client.message_suggestion

Available for both TypeScript and Python.

const suggestions = await client.messageSuggestion.getSuggestions({
message: "Can you help me with my order?",
conversation_id: "conv_xxx",
limit: 3,
});

Predict — client.predict

Available for both TypeScript and Python.

const result = await client.predict.predict({
model: "lead_score_v1",
input: { company_size: 200, industry: "saas", mrr: 5000 },
});
console.log(result.score); // 0.87