@orchestree/channels
v1.0.0
Published
OmniChannel messaging — 16-channel messaging hub (WhatsApp, Telegram, Slack, Discord, etc.)
Maintainers
Readme
@orchestree/channels
OmniChannel messaging — 16-channel messaging hub (WhatsApp, Telegram, Slack, Discord, and more) for Orchestree.
Installation
npm install @orchestree/channelsQuick Start
import { ChannelsClient } from '@orchestree/channels';
const client = new ChannelsClient({
apiKey: 'your-api-key',
});
// Connect WhatsApp
const channel = await client.connectChannel({
channelType: 'whatsapp',
name: 'Support WhatsApp',
credentials: { apiKey: 'whatsapp-api-key', phoneNumber: '+1234567890' },
});
// Send a message
const message = await client.sendMessage({
channelId: channel.id,
contactId: 'contact-id',
content: 'Hello from Orchestree!',
contentType: 'text',
});
// List conversations
const conversations = await client.listConversations({ status: 'active' });
// Set up webhook for incoming messages
await client.setWebhook({
url: 'https://your-app.com/webhooks/channels',
events: ['message.received', 'message.delivered'],
active: true,
});API Reference
ChannelsClient
listChannels(params)
List all connected channels.
const channels = await client.listChannels({ status: 'connected' });getChannel(channelId)
Get channel details.
const channel = await client.getChannel('channel-id');connectChannel(connectionDef)
Connect a new messaging channel.
const channel = await client.connectChannel({
channelType: 'slack',
name: 'Team Slack',
credentials: { botToken: 'xoxb-...' },
});disconnectChannel(channelId)
Disconnect a channel.
await client.disconnectChannel('channel-id');sendMessage(messageDef)
Send a message through a connected channel.
const message = await client.sendMessage({
channelId: 'channel-id',
conversationId: 'conv-id',
content: 'Hello!',
contentType: 'text',
});listConversations(params) / getConversation(conversationId)
View conversations across channels.
const conversations = await client.listConversations({ channelId: 'channel-id' });
const conversation = await client.getConversation('conv-id');listMessages(conversationId, params)
List messages in a conversation.
const messages = await client.listMessages('conv-id', { limit: '50' });getMessageStatus(messageId)
Check message delivery status.
const status = await client.getMessageStatus('msg-id');
console.log(status.status); // 'delivered'setWebhook(webhookDef)
Configure a webhook for incoming messages.
await client.setWebhook({
url: 'https://your-app.com/hook',
events: ['message.received'],
active: true,
});Supported Channels
WhatsApp, Telegram, Slack, Discord, Email, SMS, Facebook Messenger, Instagram, Twitter/X, LinkedIn, WeChat, LINE, Viber, Microsoft Teams, Intercom, Web Chat
License
MIT
