@devotel/devhub
v0.0.3
Published
Node.js SDK for DevHub Communication API
Readme
DevHub Node.js SDK 📡
Official Node.js SDK for the DevHub Communication API.
📦 Installation
npm i @devotel/devhub🔧 Module Compatibility
This SDK supports both ESM (ES Modules) and CommonJS module systems:
ESM (ES Modules)
// Default import (recommended)
import DevHubSDK from "@devotel/devhub";
// Named import
import { DevHubSDK } from "@devotel/devhub";
const devhub = new DevHubSDK({
apiKey: "<your-api-key>",
});CommonJS
// Default import (recommended)
const DevHubSDK = require("@devotel/devhub").default;
// Named import
const { DevHubSDK } = require("@devotel/devhub");
const devhub = new DevHubSDK({
apiKey: "<your-api-key>",
});🚀 Quick Start
import DevHubSDK from "@devotel/devhub";
const devhub = new DevHubSDK({
apiKey: "your-api-key",
});
// Send SMS
await devhub.sms.send({
recipient: "+1234567890",
message: "Hello from DevHub!",
sender: "<sender>",
});
// Send Email
await devhub.email.send({
recipient: "[email protected]",
subject: "Hello",
body: "<h1>Hello from DevHub!</h1>",
sender: "[email protected]",
});
// Send WhatsApp message
await devhub.whatsapp.sendNormalMessage({
account_id: "your-account-id",
to: "+1234567890",
type: "text",
text: { body: "Hello from DevHub!" },
});📚 API Reference
SMS Service
// Send SMS
await devhub.sms.send({
recipient: "+1234567890",
message: "Your message",
sender: "optional-sender-id",
});
// Get available senders
await devhub.sms.getSenders();
// Buy a number
await devhub.sms.buyNumber({
country_code: "US",
area_code: "555",
});
// Get available numbers
await devhub.sms.getNumbers();Email Service
// Send email
await devhub.email.send({
recipient: "[email protected]",
subject: "Subject",
body: "<p>HTML content</p>",
sender: "[email protected]",
});WhatsApp Service
// Get WhatsApp accounts
await devhub.whatsapp.getAccounts();
// Send template message
await devhub.whatsapp.sendTemplateMessage("account-id", {
to: "+1234567890",
template: {
name: "template-name",
language: { code: "en" },
},
});
// Send normal message
await devhub.whatsapp.sendNormalMessage({
account_id: "your-account-id",
to: "+1234567890",
type: "text",
text: { body: "Hello!" },
});
// Get templates
await devhub.whatsapp.getTemplates();Contacts Service
// Get contacts
await devhub.contacts.getContacts();
// Create contact
await devhub.contacts.createContact({
firstName: "John",
lastName: "Doe",
phoneNumber: "+1234567890",
email: "[email protected]",
});
// Update contact
await devhub.contacts.updateContact("contact-id", {
firstName: "Jane",
});
// Create custom field
await devhub.contacts.createCustomField({
label: "Company",
component: "Input",
required: false,
});RCS Service
// Get RCS accounts
await devhub.rcs.getAccounts();
// Send RCS message
await devhub.rcs.send({
account_id: "your-account-id",
number: "+1234567890",
contentMessage: {
text: "Hello from RCS!",
},
});
// Create RCS template
await devhub.rcs.createTemplate({
name: "greeting",
content: "Hello {{name}}!",
});Contact Groups Service
// Get contact groups
await devhub.contactGroups.getContactGroups();
// Create contact group
await devhub.contactGroups.createContactGroup({
name: "VIP Customers",
description: "High value customers",
});
// Update contact group
await devhub.contactGroups.updateContactGroup("group-id", {
name: "Premium Customers",
});Unified Messages Service
// Send message via any channel
await devhub.messages.send({
channel: "SMS",
sms: {
sender: "DevHub",
recipient: "+1234567890",
message: "Hello!",
},
});⚠️ Error Handling
All methods return a response object with the following structure:
{
success: boolean,
data?: any,
error?: string
}Example:
const result = await devhub.sms.send({
recipient: "+1234567890",
message: "Hello!",
});
if (result.success) {
console.log("Message sent:", result.data);
} else {
console.error("Error:", result.error);
}🔷 TypeScript Support
The SDK is written in TypeScript and provides full type definitions. Available types:
Core Types
import { DevHubConfig, ApiResponse, ChannelType } from "@devotel/devhub";SMS Types
import { SmsMessage, BuyNumberRequest } from "@devotel/devhub";
// Usage
const smsData: SmsMessage = {
recipient: "+1234567890",
message: "Hello!",
sender: "DevHub",
};Email Types
import { EmailMessage } from "@devotel/devhub";
// Usage
const emailData: EmailMessage = {
recipient: "[email protected]",
subject: "Hello",
body: "<h1>Hello!</h1>",
sender: "[email protected]",
};WhatsApp Types
import { WhatsAppTemplate, WhatsAppNormalMessage } from "@devotel/devhub";
// Template message
const templateData: WhatsAppTemplate = {
to: "+1234567890",
template: {
name: "hello_world",
language: { code: "en" },
},
};
// Normal message
const normalData: WhatsAppNormalMessage = {
account_id: "your-account-id",
to: "+1234567890",
type: "text",
text: { body: "Hello!" },
};Contact Types
import { Contact, CustomField } from "@devotel/devhub";
// Contact
const contactData: Contact = {
firstName: "John",
lastName: "Doe",
email: "[email protected]",
phoneNumber: "+1234567890",
};
// Custom field
const fieldData: CustomField = {
label: "Company",
component: "Input",
required: false,
};RCS Types
import { RcsMessage } from "@devotel/devhub";
// Usage
const rcsData: RcsMessage = {
account_id: "your-account-id",
number: "+1234567890",
contentMessage: {
text: "Hello from RCS!",
},
};Unified Messages
import { UnifiedMessage } from "@devotel/devhub";
// Usage
const unifiedData: UnifiedMessage = {
channel: "SMS",
sms: {
sender: "DevHub",
recipient: "+1234567890",
message: "Hello!",
},
};📄 License
MIT
