@voltade/envoy-sdk 1.3.1 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client.d.ts +5 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +2 -1
- package/dist/client.js.map +1 -1
- package/dist/resources/base-resource.d.ts +9 -0
- package/dist/resources/base-resource.d.ts.map +1 -0
- package/dist/resources/base-resource.js +9 -0
- package/dist/resources/base-resource.js.map +1 -0
- package/dist/resources/campaigns/index.d.ts +123 -0
- package/dist/resources/campaigns/index.d.ts.map +1 -0
- package/dist/resources/campaigns/index.js +159 -0
- package/dist/resources/campaigns/index.js.map +1 -0
- package/dist/resources/campaigns/types.d.ts +757 -0
- package/dist/resources/campaigns/types.d.ts.map +1 -0
- package/dist/resources/campaigns/types.js +132 -0
- package/dist/resources/campaigns/types.js.map +1 -0
- package/dist/resources/companies/index.d.ts +1 -7
- package/dist/resources/companies/index.d.ts.map +1 -1
- package/dist/resources/companies/index.js +1 -8
- package/dist/resources/companies/index.js.map +1 -1
- package/dist/resources/companies/types.d.ts +14 -14
- package/dist/resources/company-members/index.d.ts +1 -8
- package/dist/resources/company-members/index.d.ts.map +1 -1
- package/dist/resources/company-members/index.js +1 -8
- package/dist/resources/company-members/index.js.map +1 -1
- package/dist/resources/contacts/index.d.ts +1 -8
- package/dist/resources/contacts/index.d.ts.map +1 -1
- package/dist/resources/contacts/index.js +1 -8
- package/dist/resources/contacts/index.js.map +1 -1
- package/dist/resources/conversations/index.d.ts +1 -8
- package/dist/resources/conversations/index.d.ts.map +1 -1
- package/dist/resources/conversations/index.js +1 -8
- package/dist/resources/conversations/index.js.map +1 -1
- package/dist/resources/conversations/types.d.ts +67 -67
- package/dist/resources/inboxes/index.d.ts +1 -8
- package/dist/resources/inboxes/index.d.ts.map +1 -1
- package/dist/resources/inboxes/index.js +1 -8
- package/dist/resources/inboxes/index.js.map +1 -1
- package/dist/resources/inboxes/types.d.ts +12 -12
- package/dist/resources/index.d.ts +1 -0
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +1 -0
- package/dist/resources/index.js.map +1 -1
- package/dist/resources/orders/index.d.ts +1 -8
- package/dist/resources/orders/index.d.ts.map +1 -1
- package/dist/resources/orders/index.js +1 -8
- package/dist/resources/orders/index.js.map +1 -1
- package/dist/resources/orders/types.d.ts +116 -116
- package/dist/resources/webhooks/types.d.ts +753 -753
- package/package.json +1 -1
package/dist/client.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { HttpClient } from "./http-client.js";
|
|
2
|
-
import { Companies, Contacts, Conversations, Inboxes, Orders } from "./resources/index.js";
|
|
2
|
+
import { Campaigns, Companies, Contacts, Conversations, Inboxes, Orders } from "./resources/index.js";
|
|
3
3
|
/**
|
|
4
4
|
* Configuration options for EnvoyClient
|
|
5
5
|
*/
|
|
@@ -39,6 +39,10 @@ export interface EnvoyClientConfig {
|
|
|
39
39
|
*/
|
|
40
40
|
export declare class EnvoyClient {
|
|
41
41
|
private readonly httpClient;
|
|
42
|
+
/**
|
|
43
|
+
* Campaigns resource for managing campaigns
|
|
44
|
+
*/
|
|
45
|
+
readonly campaigns: Campaigns;
|
|
42
46
|
/**
|
|
43
47
|
* Companies resource for managing companies
|
|
44
48
|
*/
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAyB,MAAM,kBAAkB,CAAC;AACrE,OAAO,EACL,SAAS,EACT,QAAQ,EACR,aAAa,EACb,OAAO,EACP,MAAM,EACP,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IAExC;;OAEG;IACH,SAAgB,SAAS,EAAE,SAAS,CAAC;IAErC;;OAEG;IACH,SAAgB,QAAQ,EAAE,QAAQ,CAAC;IAEnC;;OAEG;IACH,SAAgB,aAAa,EAAE,aAAa,CAAC;IAE7C;;OAEG;IACH,SAAgB,OAAO,EAAE,OAAO,CAAC;IAEjC;;OAEG;IACH,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEnB,MAAM,EAAE,iBAAiB;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAyB,MAAM,kBAAkB,CAAC;AACrE,OAAO,EACL,SAAS,EACT,SAAS,EACT,QAAQ,EACR,aAAa,EACb,OAAO,EACP,MAAM,EACP,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IAExC;;OAEG;IACH,SAAgB,SAAS,EAAE,SAAS,CAAC;IAErC;;OAEG;IACH,SAAgB,SAAS,EAAE,SAAS,CAAC;IAErC;;OAEG;IACH,SAAgB,QAAQ,EAAE,QAAQ,CAAC;IAEnC;;OAEG;IACH,SAAgB,aAAa,EAAE,aAAa,CAAC;IAE7C;;OAEG;IACH,SAAgB,OAAO,EAAE,OAAO,CAAC;IAEjC;;OAEG;IACH,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEnB,MAAM,EAAE,iBAAiB;IAgBrC;;;OAGG;IACH,aAAa,IAAI,UAAU;CAG5B"}
|
package/dist/client.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { HttpClient } from "./http-client.js";
|
|
2
|
-
import { Companies, Contacts, Conversations, Inboxes, Orders, } from "./resources/index.js";
|
|
2
|
+
import { Campaigns, Companies, Contacts, Conversations, Inboxes, Orders, } from "./resources/index.js";
|
|
3
3
|
/**
|
|
4
4
|
* Envoy API Client
|
|
5
5
|
* A comprehensive SDK for interacting with the Envoy API
|
|
@@ -35,6 +35,7 @@ export class EnvoyClient {
|
|
|
35
35
|
};
|
|
36
36
|
this.httpClient = new HttpClient(httpConfig);
|
|
37
37
|
// Initialize resources
|
|
38
|
+
this.campaigns = new Campaigns(this.httpClient);
|
|
38
39
|
this.companies = new Companies(this.httpClient);
|
|
39
40
|
this.contacts = new Contacts(this.httpClient);
|
|
40
41
|
this.conversations = new Conversations(this.httpClient);
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAyB,MAAM,kBAAkB,CAAC;AACrE,OAAO,EACL,SAAS,EACT,QAAQ,EACR,aAAa,EACb,OAAO,EACP,MAAM,GACP,MAAM,sBAAsB,CAAC;AAY9B;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,OAAO,WAAW;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAyB,MAAM,kBAAkB,CAAC;AACrE,OAAO,EACL,SAAS,EACT,SAAS,EACT,QAAQ,EACR,aAAa,EACb,OAAO,EACP,MAAM,GACP,MAAM,sBAAsB,CAAC;AAY9B;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,OAAO,WAAW;IAiCtB,YAAY,MAAyB;QACnC,MAAM,UAAU,GAAqB;YACnC,GAAG,MAAM;SACV,CAAC;QAEF,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;QAE7C,uBAAuB;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base resource class that all resource classes extend from
|
|
3
|
+
*/
|
|
4
|
+
import type { HttpClient } from "../http-client.js";
|
|
5
|
+
export declare abstract class BaseResource {
|
|
6
|
+
protected readonly client: HttpClient;
|
|
7
|
+
constructor(client: HttpClient);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=base-resource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-resource.d.ts","sourceRoot":"","sources":["../../resources/base-resource.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,8BAAsB,YAAY;IACpB,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU;gBAAlB,MAAM,EAAE,UAAU;CAClD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-resource.js","sourceRoot":"","sources":["../../resources/base-resource.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,OAAgB,YAAY;IAChC,YAA+B,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;IAAG,CAAC;CACtD"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Campaigns resource module
|
|
3
|
+
* Provides functionality for managing campaigns in Envoy
|
|
4
|
+
*/
|
|
5
|
+
import { BaseResource } from "../base-resource.js";
|
|
6
|
+
import type { CampaignResponse, CreateCampaignPayload, CreateWhatsAppCampaignParams } from "./types.js";
|
|
7
|
+
/**
|
|
8
|
+
* Campaigns resource class for managing campaign-related operations
|
|
9
|
+
*/
|
|
10
|
+
export declare class Campaigns extends BaseResource {
|
|
11
|
+
/**
|
|
12
|
+
* Create a campaign
|
|
13
|
+
* @param payload - Campaign creation parameters
|
|
14
|
+
* @returns The created campaign
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* const campaign = await client.campaigns.create({
|
|
19
|
+
* title: "Welcome Campaign",
|
|
20
|
+
* message: "Welcome to our service!",
|
|
21
|
+
* inbox_id: 12,
|
|
22
|
+
* campaign_status: "active"
|
|
23
|
+
* });
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* @example With audience
|
|
27
|
+
* ```typescript
|
|
28
|
+
* const campaign = await client.campaigns.create({
|
|
29
|
+
* title: "Promo Campaign",
|
|
30
|
+
* message: "Check out our new offers!",
|
|
31
|
+
* inbox_id: 12,
|
|
32
|
+
* campaign_status: "active",
|
|
33
|
+
* audience: [
|
|
34
|
+
* { type: "Contact", id: 123, name: "John Doe" },
|
|
35
|
+
* { type: "PhoneNumber", id: "+6591234567", name: "Jane Doe" }
|
|
36
|
+
* ]
|
|
37
|
+
* });
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* @example Scheduled campaign
|
|
41
|
+
* ```typescript
|
|
42
|
+
* const campaign = await client.campaigns.create({
|
|
43
|
+
* title: "Scheduled Campaign",
|
|
44
|
+
* message: "This is a scheduled message",
|
|
45
|
+
* inbox_id: 12,
|
|
46
|
+
* campaign_status: "scheduled",
|
|
47
|
+
* scheduled_at: Math.floor(Date.now() / 1000) + 3600 // 1 hour from now
|
|
48
|
+
* });
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
51
|
+
* @example WhatsApp template campaign
|
|
52
|
+
* ```typescript
|
|
53
|
+
* const campaign = await client.campaigns.create({
|
|
54
|
+
* title: "Balance Reminder",
|
|
55
|
+
* message: "Sending WhatsApp template: 1_bal_reminder_2025",
|
|
56
|
+
* inbox_id: 12,
|
|
57
|
+
* campaign_status: "active",
|
|
58
|
+
* audience: [
|
|
59
|
+
* {
|
|
60
|
+
* type: "PhoneNumber",
|
|
61
|
+
* id: "+6591234567",
|
|
62
|
+
* name: "John Doe",
|
|
63
|
+
* processed_params: { customers_name: "John", balance: "3" }
|
|
64
|
+
* }
|
|
65
|
+
* ],
|
|
66
|
+
* trigger_rules: {
|
|
67
|
+
* template_params: {
|
|
68
|
+
* category: "MARKETING",
|
|
69
|
+
* language: "en",
|
|
70
|
+
* name: "1_bal_reminder_2025",
|
|
71
|
+
* processed_params: { customers_name: "Customer", balance: "0" },
|
|
72
|
+
* media_id: null
|
|
73
|
+
* }
|
|
74
|
+
* }
|
|
75
|
+
* });
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
create(payload: CreateCampaignPayload): Promise<CampaignResponse>;
|
|
79
|
+
/**
|
|
80
|
+
* Create a WhatsApp template campaign with a simplified helper
|
|
81
|
+
* @param params - WhatsApp campaign parameters
|
|
82
|
+
* @returns The created campaign
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```typescript
|
|
86
|
+
* const campaign = await client.campaigns.createWhatsAppCampaign({
|
|
87
|
+
* title: "Lesson Balance Reminder",
|
|
88
|
+
* inboxId: 12,
|
|
89
|
+
* whatsappTemplate: {
|
|
90
|
+
* name: "1_bal_reminder_2025",
|
|
91
|
+
* category: "MARKETING",
|
|
92
|
+
* language: "en",
|
|
93
|
+
* defaultParams: {
|
|
94
|
+
* customers_name: "Customer",
|
|
95
|
+
* child_name: "Student"
|
|
96
|
+
* }
|
|
97
|
+
* },
|
|
98
|
+
* recipients: [
|
|
99
|
+
* {
|
|
100
|
+
* phoneNumber: "+6591234567",
|
|
101
|
+
* name: "John Doe",
|
|
102
|
+
* params: {
|
|
103
|
+
* customers_name: "John",
|
|
104
|
+
* child_name: "Alice"
|
|
105
|
+
* }
|
|
106
|
+
* },
|
|
107
|
+
* {
|
|
108
|
+
* phoneNumber: "+6598765432",
|
|
109
|
+
* name: "Jane Doe",
|
|
110
|
+
* params: {
|
|
111
|
+
* customers_name: "Jane",
|
|
112
|
+
* child_name: "Bob"
|
|
113
|
+
* }
|
|
114
|
+
* }
|
|
115
|
+
* ]
|
|
116
|
+
* });
|
|
117
|
+
* ```
|
|
118
|
+
*/
|
|
119
|
+
createWhatsAppCampaign(params: CreateWhatsAppCampaignParams): Promise<CampaignResponse>;
|
|
120
|
+
}
|
|
121
|
+
export type { AudienceEntry, AudienceType, CampaignInbox, CampaignResponse, CampaignSender, CampaignStatus, CreateCampaignError, CreateCampaignPayload, CreateWhatsAppCampaignParams, Recipient, SendTimingStrategy, TemplateCategory, TriggerRules, WhatsAppTemplateConfig, WhatsAppTemplateParams, } from "./types.js";
|
|
122
|
+
export { AudienceEntrySchema, AudienceTypeSchema, CampaignInboxSchema, CampaignResponseSchema, CampaignSenderSchema, CampaignStatusSchema, CreateCampaignErrorSchema, CreateCampaignPayloadSchema, CreateWhatsAppCampaignParamsSchema, RecipientSchema, SendTimingStrategySchema, TemplateCategorySchema, TriggerRulesSchema, WhatsAppTemplateConfigSchema, WhatsAppTemplateParamsSchema, } from "./types.js";
|
|
123
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../resources/campaigns/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAEV,gBAAgB,EAChB,qBAAqB,EACrB,4BAA4B,EAC7B,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,qBAAa,SAAU,SAAQ,YAAY;IACzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkEG;IACG,MAAM,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAkBvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuCG;IACG,sBAAsB,CAC1B,MAAM,EAAE,4BAA4B,GACnC,OAAO,CAAC,gBAAgB,CAAC;CAuC7B;AAGD,YAAY,EACV,aAAa,EACb,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,4BAA4B,EAC5B,SAAS,EACT,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,EACzB,2BAA2B,EAC3B,kCAAkC,EAClC,eAAe,EACf,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Campaigns resource module
|
|
3
|
+
* Provides functionality for managing campaigns in Envoy
|
|
4
|
+
*/
|
|
5
|
+
import { BaseResource } from "../base-resource.js";
|
|
6
|
+
/**
|
|
7
|
+
* Campaigns resource class for managing campaign-related operations
|
|
8
|
+
*/
|
|
9
|
+
export class Campaigns extends BaseResource {
|
|
10
|
+
/**
|
|
11
|
+
* Create a campaign
|
|
12
|
+
* @param payload - Campaign creation parameters
|
|
13
|
+
* @returns The created campaign
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const campaign = await client.campaigns.create({
|
|
18
|
+
* title: "Welcome Campaign",
|
|
19
|
+
* message: "Welcome to our service!",
|
|
20
|
+
* inbox_id: 12,
|
|
21
|
+
* campaign_status: "active"
|
|
22
|
+
* });
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @example With audience
|
|
26
|
+
* ```typescript
|
|
27
|
+
* const campaign = await client.campaigns.create({
|
|
28
|
+
* title: "Promo Campaign",
|
|
29
|
+
* message: "Check out our new offers!",
|
|
30
|
+
* inbox_id: 12,
|
|
31
|
+
* campaign_status: "active",
|
|
32
|
+
* audience: [
|
|
33
|
+
* { type: "Contact", id: 123, name: "John Doe" },
|
|
34
|
+
* { type: "PhoneNumber", id: "+6591234567", name: "Jane Doe" }
|
|
35
|
+
* ]
|
|
36
|
+
* });
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* @example Scheduled campaign
|
|
40
|
+
* ```typescript
|
|
41
|
+
* const campaign = await client.campaigns.create({
|
|
42
|
+
* title: "Scheduled Campaign",
|
|
43
|
+
* message: "This is a scheduled message",
|
|
44
|
+
* inbox_id: 12,
|
|
45
|
+
* campaign_status: "scheduled",
|
|
46
|
+
* scheduled_at: Math.floor(Date.now() / 1000) + 3600 // 1 hour from now
|
|
47
|
+
* });
|
|
48
|
+
* ```
|
|
49
|
+
*
|
|
50
|
+
* @example WhatsApp template campaign
|
|
51
|
+
* ```typescript
|
|
52
|
+
* const campaign = await client.campaigns.create({
|
|
53
|
+
* title: "Balance Reminder",
|
|
54
|
+
* message: "Sending WhatsApp template: 1_bal_reminder_2025",
|
|
55
|
+
* inbox_id: 12,
|
|
56
|
+
* campaign_status: "active",
|
|
57
|
+
* audience: [
|
|
58
|
+
* {
|
|
59
|
+
* type: "PhoneNumber",
|
|
60
|
+
* id: "+6591234567",
|
|
61
|
+
* name: "John Doe",
|
|
62
|
+
* processed_params: { customers_name: "John", balance: "3" }
|
|
63
|
+
* }
|
|
64
|
+
* ],
|
|
65
|
+
* trigger_rules: {
|
|
66
|
+
* template_params: {
|
|
67
|
+
* category: "MARKETING",
|
|
68
|
+
* language: "en",
|
|
69
|
+
* name: "1_bal_reminder_2025",
|
|
70
|
+
* processed_params: { customers_name: "Customer", balance: "0" },
|
|
71
|
+
* media_id: null
|
|
72
|
+
* }
|
|
73
|
+
* }
|
|
74
|
+
* });
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
async create(payload) {
|
|
78
|
+
// Validate required fields
|
|
79
|
+
if (!payload.title || !payload.message || !payload.inbox_id) {
|
|
80
|
+
throw new Error("Missing required fields: title, message, and inbox_id are required");
|
|
81
|
+
}
|
|
82
|
+
// Validate campaign_status and scheduled_at
|
|
83
|
+
if (payload.campaign_status === "scheduled" && !payload.scheduled_at) {
|
|
84
|
+
throw new Error('scheduled_at is required when campaign_status is "scheduled"');
|
|
85
|
+
}
|
|
86
|
+
return await this.client.post("/campaigns", payload);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Create a WhatsApp template campaign with a simplified helper
|
|
90
|
+
* @param params - WhatsApp campaign parameters
|
|
91
|
+
* @returns The created campaign
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```typescript
|
|
95
|
+
* const campaign = await client.campaigns.createWhatsAppCampaign({
|
|
96
|
+
* title: "Lesson Balance Reminder",
|
|
97
|
+
* inboxId: 12,
|
|
98
|
+
* whatsappTemplate: {
|
|
99
|
+
* name: "1_bal_reminder_2025",
|
|
100
|
+
* category: "MARKETING",
|
|
101
|
+
* language: "en",
|
|
102
|
+
* defaultParams: {
|
|
103
|
+
* customers_name: "Customer",
|
|
104
|
+
* child_name: "Student"
|
|
105
|
+
* }
|
|
106
|
+
* },
|
|
107
|
+
* recipients: [
|
|
108
|
+
* {
|
|
109
|
+
* phoneNumber: "+6591234567",
|
|
110
|
+
* name: "John Doe",
|
|
111
|
+
* params: {
|
|
112
|
+
* customers_name: "John",
|
|
113
|
+
* child_name: "Alice"
|
|
114
|
+
* }
|
|
115
|
+
* },
|
|
116
|
+
* {
|
|
117
|
+
* phoneNumber: "+6598765432",
|
|
118
|
+
* name: "Jane Doe",
|
|
119
|
+
* params: {
|
|
120
|
+
* customers_name: "Jane",
|
|
121
|
+
* child_name: "Bob"
|
|
122
|
+
* }
|
|
123
|
+
* }
|
|
124
|
+
* ]
|
|
125
|
+
* });
|
|
126
|
+
* ```
|
|
127
|
+
*/
|
|
128
|
+
async createWhatsAppCampaign(params) {
|
|
129
|
+
const { title, inboxId, whatsappTemplate, recipients, scheduledAt, campaignStatus = "active", description, } = params;
|
|
130
|
+
const audience = recipients.map((recipient) => ({
|
|
131
|
+
type: "PhoneNumber",
|
|
132
|
+
name: recipient.name,
|
|
133
|
+
id: recipient.phoneNumber,
|
|
134
|
+
processed_params: recipient.params,
|
|
135
|
+
}));
|
|
136
|
+
const payload = {
|
|
137
|
+
title,
|
|
138
|
+
message: `Sending WhatsApp template: ${whatsappTemplate.name}`,
|
|
139
|
+
inbox_id: inboxId,
|
|
140
|
+
campaign_status: campaignStatus,
|
|
141
|
+
scheduled_at: scheduledAt,
|
|
142
|
+
description,
|
|
143
|
+
audience,
|
|
144
|
+
trigger_rules: {
|
|
145
|
+
template_params: {
|
|
146
|
+
category: whatsappTemplate.category ?? "MARKETING",
|
|
147
|
+
language: whatsappTemplate.language ?? "en",
|
|
148
|
+
name: whatsappTemplate.name,
|
|
149
|
+
processed_params: whatsappTemplate.defaultParams,
|
|
150
|
+
media_id: whatsappTemplate.mediaId ?? null,
|
|
151
|
+
},
|
|
152
|
+
},
|
|
153
|
+
};
|
|
154
|
+
return this.create(payload);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
// Re-export Zod schemas
|
|
158
|
+
export { AudienceEntrySchema, AudienceTypeSchema, CampaignInboxSchema, CampaignResponseSchema, CampaignSenderSchema, CampaignStatusSchema, CreateCampaignErrorSchema, CreateCampaignPayloadSchema, CreateWhatsAppCampaignParamsSchema, RecipientSchema, SendTimingStrategySchema, TemplateCategorySchema, TriggerRulesSchema, WhatsAppTemplateConfigSchema, WhatsAppTemplateParamsSchema, } from "./types.js";
|
|
159
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../resources/campaigns/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAQnD;;GAEG;AACH,MAAM,OAAO,SAAU,SAAQ,YAAY;IACzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkEG;IACH,KAAK,CAAC,MAAM,CAAC,OAA8B;QACzC,2BAA2B;QAC3B,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC5D,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAC;QACJ,CAAC;QAED,4CAA4C;QAC5C,IAAI,OAAO,CAAC,eAAe,KAAK,WAAW,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YACrE,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAmB,YAAY,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuCG;IACH,KAAK,CAAC,sBAAsB,CAC1B,MAAoC;QAEpC,MAAM,EACJ,KAAK,EACL,OAAO,EACP,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,cAAc,GAAG,QAAQ,EACzB,WAAW,GACZ,GAAG,MAAM,CAAC;QAEX,MAAM,QAAQ,GAAoB,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC/D,IAAI,EAAE,aAAsB;YAC5B,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,EAAE,EAAE,SAAS,CAAC,WAAW;YACzB,gBAAgB,EAAE,SAAS,CAAC,MAAM;SACnC,CAAC,CAAC,CAAC;QAEJ,MAAM,OAAO,GAA0B;YACrC,KAAK;YACL,OAAO,EAAE,8BAA8B,gBAAgB,CAAC,IAAI,EAAE;YAC9D,QAAQ,EAAE,OAAO;YACjB,eAAe,EAAE,cAAc;YAC/B,YAAY,EAAE,WAAW;YACzB,WAAW;YACX,QAAQ;YACR,aAAa,EAAE;gBACb,eAAe,EAAE;oBACf,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,IAAI,WAAW;oBAClD,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,IAAI,IAAI;oBAC3C,IAAI,EAAE,gBAAgB,CAAC,IAAI;oBAC3B,gBAAgB,EAAE,gBAAgB,CAAC,aAAa;oBAChD,QAAQ,EAAE,gBAAgB,CAAC,OAAO,IAAI,IAAI;iBAC3C;aACF;SACF,CAAC;QAEF,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;CACF;AAqBD,wBAAwB;AACxB,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,EACzB,2BAA2B,EAC3B,kCAAkC,EAClC,eAAe,EACf,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,YAAY,CAAC"}
|