@awell-health/awell-extensions 1.0.122 → 1.0.123
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/extensions/index.js +2 -0
- package/dist/extensions/index.js.map +1 -1
- package/dist/extensions/infobip/index.d.ts +2 -0
- package/dist/extensions/infobip/index.js +42 -0
- package/dist/extensions/infobip/index.js.map +1 -0
- package/dist/extensions/infobip/settings.d.ts +47 -0
- package/dist/extensions/infobip/settings.js +45 -0
- package/dist/extensions/infobip/settings.js.map +1 -0
- package/dist/extensions/infobip/v1/actions/index.d.ts +3 -0
- package/dist/extensions/infobip/v1/actions/index.js +10 -0
- package/dist/extensions/infobip/v1/actions/index.js.map +1 -0
- package/dist/extensions/infobip/v1/actions/sendEmail/config/fields.d.ts +48 -0
- package/dist/extensions/infobip/v1/actions/sendEmail/config/fields.js +42 -0
- package/dist/extensions/infobip/v1/actions/sendEmail/config/fields.js.map +1 -0
- package/dist/extensions/infobip/v1/actions/sendEmail/config/index.d.ts +1 -0
- package/dist/extensions/infobip/v1/actions/sendEmail/config/index.js +7 -0
- package/dist/extensions/infobip/v1/actions/sendEmail/config/index.js.map +1 -0
- package/dist/extensions/infobip/v1/actions/sendEmail/index.d.ts +1 -0
- package/dist/extensions/infobip/v1/actions/sendEmail/index.js +6 -0
- package/dist/extensions/infobip/v1/actions/sendEmail/index.js.map +1 -0
- package/dist/extensions/infobip/v1/actions/sendEmail/sendEmail.d.ts +4 -0
- package/dist/extensions/infobip/v1/actions/sendEmail/sendEmail.js +59 -0
- package/dist/extensions/infobip/v1/actions/sendEmail/sendEmail.js.map +1 -0
- package/dist/extensions/infobip/v1/actions/sendEmail/sendEmail.test.d.ts +1 -0
- package/dist/extensions/infobip/v1/actions/sendEmail/sendEmail.test.js +34 -0
- package/dist/extensions/infobip/v1/actions/sendEmail/sendEmail.test.js.map +1 -0
- package/dist/extensions/infobip/v1/actions/sendEmailWithTemplate/config/fields.d.ts +54 -0
- package/dist/extensions/infobip/v1/actions/sendEmailWithTemplate/config/fields.js +55 -0
- package/dist/extensions/infobip/v1/actions/sendEmailWithTemplate/config/fields.js.map +1 -0
- package/dist/extensions/infobip/v1/actions/sendEmailWithTemplate/config/index.d.ts +1 -0
- package/dist/extensions/infobip/v1/actions/sendEmailWithTemplate/config/index.js +7 -0
- package/dist/extensions/infobip/v1/actions/sendEmailWithTemplate/config/index.js.map +1 -0
- package/dist/extensions/infobip/v1/actions/sendEmailWithTemplate/index.d.ts +1 -0
- package/dist/extensions/infobip/v1/actions/sendEmailWithTemplate/index.js +6 -0
- package/dist/extensions/infobip/v1/actions/sendEmailWithTemplate/index.js.map +1 -0
- package/dist/extensions/infobip/v1/actions/sendEmailWithTemplate/sendEmailWithTemplate.d.ts +4 -0
- package/dist/extensions/infobip/v1/actions/sendEmailWithTemplate/sendEmailWithTemplate.js +47 -0
- package/dist/extensions/infobip/v1/actions/sendEmailWithTemplate/sendEmailWithTemplate.js.map +1 -0
- package/dist/extensions/infobip/v1/actions/sendEmailWithTemplate/sendEmailWithTemplate.test.d.ts +1 -0
- package/dist/extensions/infobip/v1/actions/sendEmailWithTemplate/sendEmailWithTemplate.test.js +34 -0
- package/dist/extensions/infobip/v1/actions/sendEmailWithTemplate/sendEmailWithTemplate.test.js.map +1 -0
- package/dist/extensions/infobip/v1/actions/sendSms/config/fields.d.ts +41 -0
- package/dist/extensions/infobip/v1/actions/sendSms/config/fields.js +37 -0
- package/dist/extensions/infobip/v1/actions/sendSms/config/fields.js.map +1 -0
- package/dist/extensions/infobip/v1/actions/sendSms/config/index.d.ts +1 -0
- package/dist/extensions/infobip/v1/actions/sendSms/config/index.js +7 -0
- package/dist/extensions/infobip/v1/actions/sendSms/config/index.js.map +1 -0
- package/dist/extensions/infobip/v1/actions/sendSms/index.d.ts +1 -0
- package/dist/extensions/infobip/v1/actions/sendSms/index.js +6 -0
- package/dist/extensions/infobip/v1/actions/sendSms/index.js.map +1 -0
- package/dist/extensions/infobip/v1/actions/sendSms/sendSms.d.ts +4 -0
- package/dist/extensions/infobip/v1/actions/sendSms/sendSms.js +63 -0
- package/dist/extensions/infobip/v1/actions/sendSms/sendSms.js.map +1 -0
- package/dist/extensions/infobip/v1/actions/sendSms/sendSms.test.d.ts +1 -0
- package/dist/extensions/infobip/v1/actions/sendSms/sendSms.test.js +33 -0
- package/dist/extensions/infobip/v1/actions/sendSms/sendSms.test.js.map +1 -0
- package/dist/extensions/infobip/v1/client/client.d.ts +27 -0
- package/dist/extensions/infobip/v1/client/client.js +91 -0
- package/dist/extensions/infobip/v1/client/client.js.map +1 -0
- package/dist/extensions/infobip/v1/client/error.d.ts +5 -0
- package/dist/extensions/infobip/v1/client/error.js +45 -0
- package/dist/extensions/infobip/v1/client/error.js.map +1 -0
- package/dist/extensions/infobip/v1/client/index.d.ts +2 -0
- package/dist/extensions/infobip/v1/client/index.js +19 -0
- package/dist/extensions/infobip/v1/client/index.js.map +1 -0
- package/dist/extensions/infobip/v1/types.d.ts +34 -0
- package/dist/extensions/infobip/v1/types.js +3 -0
- package/dist/extensions/infobip/v1/types.js.map +1 -0
- package/dist/extensions/markdown.json +4 -0
- package/package.json +1 -1
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"sendEmailWithTemplate.js","sourceRoot":"","sources":["../../../../../../extensions/infobip/v1/actions/sendEmailWithTemplate/sendEmailWithTemplate.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AACvB,mEAA+E;AAC/E,gDAA2E;AAC3E,qCAAyD;AACzD,8CAAgF;AAChF,yCAA4C;AAE/B,QAAA,qBAAqB,GAA2C;IAC3E,GAAG,EAAE,uBAAuB;IAC5B,KAAK,EAAE,0BAA0B;IACjC,WAAW,EAAE,2CAA2C;IACxD,QAAQ,EAAE,0BAAQ,CAAC,aAAa;IAChC,MAAM,EAAN,eAAM;IACN,WAAW,EAAE,KAAK;IAClB,iBAAiB,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE;QACxD,IAAI;YACF,MAAM,EACJ,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAC7B,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,GAClD,GAAG,IAAA,0BAAQ,EAAC;gBACX,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC;oBACf,QAAQ,EAAE,mCAAwB;oBAClC,MAAM,EAAE,+BAAsB;iBAC/B,CAAC;gBACF,OAAO;aACR,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,IAAI,sBAAa,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;YAE/D,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACzB,EAAE,EAAE,CAAC,EAAE,CAAC;gBACR,OAAO;gBACP,UAAU;gBACV,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;aAClD,CAAC,CAAA;YAEF,MAAM,UAAU,EAAE,CAAA;SACnB;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,IAAA,sBAAc,EAAC,GAAG,CAAC,EAAE;gBACvB,MAAM,MAAM,GAAG,IAAA,mCAA2B,EAAC,GAAG,CAAC,CAAA;gBAC/C,MAAM,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;aAC1B;iBAAM;gBACL,8CAA8C;gBAC9C,MAAM,GAAG,CAAA;aACV;SACF;IACH,CAAC;CACF,CAAA"}
|
package/dist/extensions/infobip/v1/actions/sendEmailWithTemplate/sendEmailWithTemplate.test.d.ts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
package/dist/extensions/infobip/v1/actions/sendEmailWithTemplate/sendEmailWithTemplate.test.js
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const __mocks__1 = require("../../client/__mocks__");
|
4
|
+
const __1 = require("..");
|
5
|
+
const tests_1 = require("../../../../../src/tests");
|
6
|
+
jest.mock('../../client');
|
7
|
+
describe('Send email', () => {
|
8
|
+
const onComplete = jest.fn();
|
9
|
+
const onError = jest.fn();
|
10
|
+
const basePayload = (0, tests_1.generateTestPayload)({
|
11
|
+
fields: {
|
12
|
+
to: __mocks__1.mockedEmailWithTemplateData.to[0],
|
13
|
+
templateId: __mocks__1.mockedEmailWithTemplateData.templateId,
|
14
|
+
subject: __mocks__1.mockedEmailWithTemplateData.subject,
|
15
|
+
placeholders: __mocks__1.mockedEmailWithTemplateData.defaultPlaceholders,
|
16
|
+
},
|
17
|
+
settings: {
|
18
|
+
baseUrl: 'https://example.api.com',
|
19
|
+
apiKey: 'apiKey',
|
20
|
+
fromPhoneNumber: '+19033428784',
|
21
|
+
fromEmail: 'john@doe.com',
|
22
|
+
},
|
23
|
+
});
|
24
|
+
beforeEach(() => {
|
25
|
+
jest.clearAllMocks();
|
26
|
+
});
|
27
|
+
test('Should call the onComplete callback', async () => {
|
28
|
+
await __1.sendEmailWithTemplate.onActivityCreated(basePayload, onComplete, onError);
|
29
|
+
expect(__mocks__1.InfobipClientMockImplementation.emailApi.send).toHaveBeenCalledWith(__mocks__1.mockedEmailWithTemplateData);
|
30
|
+
expect(onComplete).toHaveBeenCalledWith();
|
31
|
+
expect(onError).not.toHaveBeenCalled();
|
32
|
+
});
|
33
|
+
});
|
34
|
+
//# sourceMappingURL=sendEmailWithTemplate.test.js.map
|
package/dist/extensions/infobip/v1/actions/sendEmailWithTemplate/sendEmailWithTemplate.test.js.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"sendEmailWithTemplate.test.js","sourceRoot":"","sources":["../../../../../../extensions/infobip/v1/actions/sendEmailWithTemplate/sendEmailWithTemplate.test.ts"],"names":[],"mappings":";;AAAA,qDAG+B;AAC/B,0BAA0C;AAC1C,oDAA8D;AAE9D,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;AAEzB,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;IAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;IAEzB,MAAM,WAAW,GAAG,IAAA,2BAAmB,EAAC;QACtC,MAAM,EAAE;YACN,EAAE,EAAE,sCAA2B,CAAC,EAAE,CAAC,CAAC,CAAC;YACrC,UAAU,EAAE,sCAA2B,CAAC,UAAU;YAClD,OAAO,EAAE,sCAA2B,CAAC,OAAO;YAC5C,YAAY,EAAE,sCAA2B,CAAC,mBAAmB;SAC9D;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,yBAAyB;YAClC,MAAM,EAAE,QAAQ;YAChB,eAAe,EAAE,cAAc;YAC/B,SAAS,EAAE,cAAc;SAC1B;KACF,CAAC,CAAA;IAEF,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAA;IACtB,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,yBAAqB,CAAC,iBAAiB,CAC3C,WAAW,EACX,UAAU,EACV,OAAO,CACR,CAAA;QAED,MAAM,CAAC,0CAA+B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,oBAAoB,CACxE,sCAA2B,CAC5B,CAAA;QACD,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,EAAE,CAAA;QACzC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;IACxC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
@@ -0,0 +1,41 @@
|
|
1
|
+
import { z } from 'zod';
|
2
|
+
import { FieldType, StringType } from '@awell-health/extensions-core';
|
3
|
+
export declare const fields: {
|
4
|
+
from: {
|
5
|
+
label: string;
|
6
|
+
id: string;
|
7
|
+
type: FieldType.STRING;
|
8
|
+
stringType: StringType.PHONE;
|
9
|
+
required: false;
|
10
|
+
description: string;
|
11
|
+
};
|
12
|
+
to: {
|
13
|
+
label: string;
|
14
|
+
id: string;
|
15
|
+
type: FieldType.STRING;
|
16
|
+
stringType: StringType.PHONE;
|
17
|
+
required: true;
|
18
|
+
description: string;
|
19
|
+
};
|
20
|
+
text: {
|
21
|
+
id: string;
|
22
|
+
label: string;
|
23
|
+
type: FieldType.STRING;
|
24
|
+
stringType: StringType.TEXT;
|
25
|
+
required: true;
|
26
|
+
description: string;
|
27
|
+
};
|
28
|
+
};
|
29
|
+
export declare const FieldsValidationSchema: z.ZodObject<{
|
30
|
+
from: z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodEffects<z.ZodLiteral<"">, undefined, "">]>;
|
31
|
+
to: z.ZodString;
|
32
|
+
text: z.ZodString;
|
33
|
+
}, "strip", z.ZodTypeAny, {
|
34
|
+
text: string;
|
35
|
+
to: string;
|
36
|
+
from?: string | undefined;
|
37
|
+
}, {
|
38
|
+
text: string;
|
39
|
+
to: string;
|
40
|
+
from?: string | undefined;
|
41
|
+
}>;
|
@@ -0,0 +1,37 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.FieldsValidationSchema = exports.fields = void 0;
|
4
|
+
const zod_1 = require("zod");
|
5
|
+
const extensions_core_1 = require("@awell-health/extensions-core");
|
6
|
+
exports.fields = {
|
7
|
+
from: {
|
8
|
+
label: 'From',
|
9
|
+
id: 'from',
|
10
|
+
type: extensions_core_1.FieldType.STRING,
|
11
|
+
stringType: extensions_core_1.StringType.PHONE,
|
12
|
+
required: false,
|
13
|
+
description: 'The phone number you wish to use for sending the text message. Defaults to value provided in settings.',
|
14
|
+
},
|
15
|
+
to: {
|
16
|
+
label: 'To',
|
17
|
+
id: 'to',
|
18
|
+
type: extensions_core_1.FieldType.STRING,
|
19
|
+
stringType: extensions_core_1.StringType.PHONE,
|
20
|
+
required: true,
|
21
|
+
description: 'The phone number to which you intend to send the text message',
|
22
|
+
},
|
23
|
+
text: {
|
24
|
+
id: 'text',
|
25
|
+
label: 'Content',
|
26
|
+
type: extensions_core_1.FieldType.STRING,
|
27
|
+
stringType: extensions_core_1.StringType.TEXT,
|
28
|
+
required: true,
|
29
|
+
description: 'The content of the message being sent',
|
30
|
+
},
|
31
|
+
};
|
32
|
+
exports.FieldsValidationSchema = zod_1.z.object({
|
33
|
+
from: (0, extensions_core_1.makeStringOptional)(zod_1.z.string()),
|
34
|
+
to: zod_1.z.string(),
|
35
|
+
text: zod_1.z.string(),
|
36
|
+
});
|
37
|
+
//# sourceMappingURL=fields.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../../../../../extensions/infobip/v1/actions/sendSms/config/fields.ts"],"names":[],"mappings":";;;AAAA,6BAAwC;AACxC,mEAKsC;AAEzB,QAAA,MAAM,GAAG;IACpB,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM;QACb,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,2BAAS,CAAC,MAAM;QACtB,UAAU,EAAE,4BAAU,CAAC,KAAK;QAC5B,QAAQ,EAAE,KAAK;QACf,WAAW,EACT,wGAAwG;KAC3G;IACD,EAAE,EAAE;QACF,KAAK,EAAE,IAAI;QACX,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,2BAAS,CAAC,MAAM;QACtB,UAAU,EAAE,4BAAU,CAAC,KAAK;QAC5B,QAAQ,EAAE,IAAI;QACd,WAAW,EACT,+DAA+D;KAClE;IACD,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,2BAAS,CAAC,MAAM;QACtB,UAAU,EAAE,4BAAU,CAAC,IAAI;QAC3B,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,uCAAuC;KACrD;CAC8B,CAAA;AAEpB,QAAA,sBAAsB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,IAAA,oCAAkB,EAAC,OAAC,CAAC,MAAM,EAAE,CAAC;IACpC,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;CACiC,CAAC,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export { FieldsValidationSchema, fields } from './fields';
|
@@ -0,0 +1,7 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.fields = exports.FieldsValidationSchema = void 0;
|
4
|
+
var fields_1 = require("./fields");
|
5
|
+
Object.defineProperty(exports, "FieldsValidationSchema", { enumerable: true, get: function () { return fields_1.FieldsValidationSchema; } });
|
6
|
+
Object.defineProperty(exports, "fields", { enumerable: true, get: function () { return fields_1.fields; } });
|
7
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../extensions/infobip/v1/actions/sendSms/config/index.ts"],"names":[],"mappings":";;;AAAA,mCAAyD;AAAhD,gHAAA,sBAAsB,OAAA;AAAE,gGAAA,MAAM,OAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export { sendSms } from './sendSms';
|
@@ -0,0 +1,6 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.sendSms = void 0;
|
4
|
+
var sendSms_1 = require("./sendSms");
|
5
|
+
Object.defineProperty(exports, "sendSms", { enumerable: true, get: function () { return sendSms_1.sendSms; } });
|
6
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../extensions/infobip/v1/actions/sendSms/index.ts"],"names":[],"mappings":";;;AAAA,qCAAmC;AAA1B,kGAAA,OAAO,OAAA"}
|
@@ -0,0 +1,63 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.sendSms = void 0;
|
4
|
+
const zod_1 = require("zod");
|
5
|
+
const extensions_core_1 = require("@awell-health/extensions-core");
|
6
|
+
const settings_1 = require("../../../settings");
|
7
|
+
const config_1 = require("./config");
|
8
|
+
const lodash_1 = require("lodash");
|
9
|
+
const error_1 = require("../../client/error");
|
10
|
+
const client_1 = require("../../client");
|
11
|
+
exports.sendSms = {
|
12
|
+
key: 'sendSms',
|
13
|
+
title: 'Send SMS',
|
14
|
+
description: 'Sends SMS using Infobip',
|
15
|
+
category: extensions_core_1.Category.COMMUNICATION,
|
16
|
+
fields: config_1.fields,
|
17
|
+
previewable: false,
|
18
|
+
onActivityCreated: async (payload, onComplete, onError) => {
|
19
|
+
var _a;
|
20
|
+
try {
|
21
|
+
const { settings: { baseUrl, apiKey, fromPhoneNumber }, fields: { from, text, to }, } = (0, extensions_core_1.validate)({
|
22
|
+
schema: zod_1.z
|
23
|
+
.object({
|
24
|
+
settings: settings_1.SettingsValidationSchema,
|
25
|
+
fields: config_1.FieldsValidationSchema,
|
26
|
+
})
|
27
|
+
.superRefine((value, ctx) => {
|
28
|
+
if ((0, lodash_1.isEmpty)(value.fields.from) &&
|
29
|
+
(0, lodash_1.isEmpty)(value.settings.fromPhoneNumber)) {
|
30
|
+
ctx.addIssue({
|
31
|
+
code: zod_1.z.ZodIssueCode.custom,
|
32
|
+
fatal: true,
|
33
|
+
message: '"From" number is missing in both settings and in the action fields.',
|
34
|
+
});
|
35
|
+
}
|
36
|
+
}),
|
37
|
+
payload,
|
38
|
+
});
|
39
|
+
const client = new client_1.InfobipClient({ baseUrl, apiToken: apiKey });
|
40
|
+
await client.smsApi.send({
|
41
|
+
messages: [
|
42
|
+
{
|
43
|
+
destinations: [{ to }],
|
44
|
+
from: (_a = from !== null && from !== void 0 ? from : fromPhoneNumber) !== null && _a !== void 0 ? _a : '',
|
45
|
+
text,
|
46
|
+
},
|
47
|
+
],
|
48
|
+
});
|
49
|
+
await onComplete();
|
50
|
+
}
|
51
|
+
catch (err) {
|
52
|
+
if ((0, error_1.isInfobipError)(err)) {
|
53
|
+
const events = (0, error_1.infobipErrorToActivityEvent)(err);
|
54
|
+
await onError({ events });
|
55
|
+
}
|
56
|
+
else {
|
57
|
+
// re-throw to be handled in extensions server
|
58
|
+
throw err;
|
59
|
+
}
|
60
|
+
}
|
61
|
+
},
|
62
|
+
};
|
63
|
+
//# sourceMappingURL=sendSms.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"sendSms.js","sourceRoot":"","sources":["../../../../../../extensions/infobip/v1/actions/sendSms/sendSms.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AACvB,mEAA+E;AAC/E,gDAA2E;AAC3E,qCAAyD;AACzD,mCAAgC;AAChC,8CAAgF;AAChF,yCAA4C;AAE/B,QAAA,OAAO,GAA2C;IAC7D,GAAG,EAAE,SAAS;IACd,KAAK,EAAE,UAAU;IACjB,WAAW,EAAE,yBAAyB;IACtC,QAAQ,EAAE,0BAAQ,CAAC,aAAa;IAChC,MAAM,EAAN,eAAM;IACN,WAAW,EAAE,KAAK;IAClB,iBAAiB,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE;;QACxD,IAAI;YACF,MAAM,EACJ,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,EAC9C,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAC3B,GAAG,IAAA,0BAAQ,EAAC;gBACX,MAAM,EAAE,OAAC;qBACN,MAAM,CAAC;oBACN,QAAQ,EAAE,mCAAwB;oBAClC,MAAM,EAAE,+BAAsB;iBAC/B,CAAC;qBACD,WAAW,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;oBAC1B,IACE,IAAA,gBAAO,EAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;wBAC1B,IAAA,gBAAO,EAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,EACvC;wBACA,GAAG,CAAC,QAAQ,CAAC;4BACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;4BAC3B,KAAK,EAAE,IAAI;4BACX,OAAO,EACL,qEAAqE;yBACxE,CAAC,CAAA;qBACH;gBACH,CAAC,CAAC;gBACJ,OAAO;aACR,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,IAAI,sBAAa,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;YAE/D,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;gBACvB,QAAQ,EAAE;oBACR;wBACE,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;wBACtB,IAAI,EAAE,MAAA,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,eAAe,mCAAI,EAAE;wBACnC,IAAI;qBACL;iBACF;aACF,CAAC,CAAA;YAEF,MAAM,UAAU,EAAE,CAAA;SACnB;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,IAAA,sBAAc,EAAC,GAAG,CAAC,EAAE;gBACvB,MAAM,MAAM,GAAG,IAAA,mCAA2B,EAAC,GAAG,CAAC,CAAA;gBAC/C,MAAM,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;aAC1B;iBAAM;gBACL,8CAA8C;gBAC9C,MAAM,GAAG,CAAA;aACV;SACF;IACH,CAAC;CACF,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,33 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const __mocks__1 = require("../../client/__mocks__");
|
4
|
+
const __1 = require("..");
|
5
|
+
const tests_1 = require("../../../../../src/tests");
|
6
|
+
jest.mock('../../client');
|
7
|
+
describe('Send SMS', () => {
|
8
|
+
const onComplete = jest.fn();
|
9
|
+
const onError = jest.fn();
|
10
|
+
const basePayload = (0, tests_1.generateTestPayload)({
|
11
|
+
fields: {
|
12
|
+
from: __mocks__1.mockedPhoneNumber.from,
|
13
|
+
text: __mocks__1.mockedMessageData.messages[0].text,
|
14
|
+
to: __mocks__1.mockedPhoneNumber.to,
|
15
|
+
},
|
16
|
+
settings: {
|
17
|
+
baseUrl: 'https://example.api.com',
|
18
|
+
apiKey: 'apiKey',
|
19
|
+
fromPhoneNumber: '+19033428784',
|
20
|
+
fromEmail: 'john@doe.com',
|
21
|
+
},
|
22
|
+
});
|
23
|
+
beforeEach(() => {
|
24
|
+
jest.clearAllMocks();
|
25
|
+
});
|
26
|
+
test('Should call the onComplete callback', async () => {
|
27
|
+
await __1.sendSms.onActivityCreated(basePayload, onComplete, onError);
|
28
|
+
expect(__mocks__1.InfobipClientMockImplementation.smsApi.send).toHaveBeenCalledWith(__mocks__1.mockedMessageData);
|
29
|
+
expect(onComplete).toHaveBeenCalledWith();
|
30
|
+
expect(onError).not.toHaveBeenCalled();
|
31
|
+
});
|
32
|
+
});
|
33
|
+
//# sourceMappingURL=sendSms.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"sendSms.test.js","sourceRoot":"","sources":["../../../../../../extensions/infobip/v1/actions/sendSms/sendSms.test.ts"],"names":[],"mappings":";;AAAA,qDAI+B;AAC/B,0BAA4B;AAC5B,oDAA8D;AAE9D,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;AAEzB,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;IAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;IAEzB,MAAM,WAAW,GAAG,IAAA,2BAAmB,EAAC;QACtC,MAAM,EAAE;YACN,IAAI,EAAE,4BAAiB,CAAC,IAAI;YAC5B,IAAI,EAAE,4BAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;YACxC,EAAE,EAAE,4BAAiB,CAAC,EAAE;SACzB;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,yBAAyB;YAClC,MAAM,EAAE,QAAQ;YAChB,eAAe,EAAE,cAAc;YAC/B,SAAS,EAAE,cAAc;SAC1B;KACF,CAAC,CAAA;IAEF,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAA;IACtB,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,WAAO,CAAC,iBAAiB,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;QAEjE,MAAM,CAAC,0CAA+B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,oBAAoB,CACtE,4BAAiB,CAClB,CAAA;QACD,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,EAAE,CAAA;QACzC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;IACxC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
import { type AxiosResponse } from 'axios';
|
2
|
+
import { type EmailInput, type BaseResponse, type SmsInput } from '../types';
|
3
|
+
declare class InfobipSmsAPI {
|
4
|
+
private readonly _baseApi;
|
5
|
+
constructor({ baseUrl, apiToken }: {
|
6
|
+
baseUrl: string;
|
7
|
+
apiToken: string;
|
8
|
+
});
|
9
|
+
send: (message: SmsInput) => Promise<AxiosResponse<BaseResponse>>;
|
10
|
+
}
|
11
|
+
declare class InfobipEmailAPI {
|
12
|
+
private readonly _baseApi;
|
13
|
+
constructor({ baseUrl, apiToken }: {
|
14
|
+
baseUrl: string;
|
15
|
+
apiToken: string;
|
16
|
+
});
|
17
|
+
send: (message: EmailInput) => Promise<AxiosResponse<BaseResponse>>;
|
18
|
+
}
|
19
|
+
export declare class InfobipClient {
|
20
|
+
readonly smsApi: InfobipSmsAPI;
|
21
|
+
readonly emailApi: InfobipEmailAPI;
|
22
|
+
constructor({ baseUrl, apiToken }: {
|
23
|
+
baseUrl: string;
|
24
|
+
apiToken: string;
|
25
|
+
});
|
26
|
+
}
|
27
|
+
export {};
|
@@ -0,0 +1,91 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.InfobipClient = void 0;
|
7
|
+
const axios_1 = __importDefault(require("axios"));
|
8
|
+
const form_data_1 = __importDefault(require("form-data"));
|
9
|
+
class InfobipBaseAPI {
|
10
|
+
constructor({ baseUrl, apiToken, tokenHeaderKey, }) {
|
11
|
+
this.post = async (url, { body }, headers) => {
|
12
|
+
return await axios_1.default.post(`${this._baseUrl}/${url}`, body, {
|
13
|
+
headers: { ...this._headers, ...headers },
|
14
|
+
});
|
15
|
+
};
|
16
|
+
this.put = async (url, { body }) => {
|
17
|
+
return await axios_1.default.put(`${this._baseUrl}/${url}`, body, {
|
18
|
+
headers: this._headers,
|
19
|
+
});
|
20
|
+
};
|
21
|
+
this.patch = async (url, { body }) => {
|
22
|
+
return await axios_1.default.patch(`${this._baseUrl}/${url}`, body, {
|
23
|
+
headers: this._headers,
|
24
|
+
});
|
25
|
+
};
|
26
|
+
this.get = async (url) => {
|
27
|
+
return await axios_1.default.get(`${this._baseUrl}/${url}`, {
|
28
|
+
headers: this._headers,
|
29
|
+
});
|
30
|
+
};
|
31
|
+
this.delete = async (url) => {
|
32
|
+
return await axios_1.default.delete(`${this._baseUrl}/${url}`, {
|
33
|
+
headers: this._headers,
|
34
|
+
});
|
35
|
+
};
|
36
|
+
this._baseUrl = baseUrl;
|
37
|
+
this._token = apiToken;
|
38
|
+
this._headers = {
|
39
|
+
[tokenHeaderKey]: this._token,
|
40
|
+
};
|
41
|
+
}
|
42
|
+
}
|
43
|
+
class InfobipSmsAPI {
|
44
|
+
constructor({ baseUrl, apiToken }) {
|
45
|
+
this.send = async (message) => {
|
46
|
+
return await this._baseApi.post('sms/2/text/advanced', {
|
47
|
+
body: message,
|
48
|
+
}, {
|
49
|
+
'Content-Type': 'application/json; charset=utf8',
|
50
|
+
Accept: 'application/json',
|
51
|
+
});
|
52
|
+
};
|
53
|
+
this._baseApi = new InfobipBaseAPI({
|
54
|
+
baseUrl,
|
55
|
+
apiToken: `App ${apiToken}`,
|
56
|
+
tokenHeaderKey: 'Authorization',
|
57
|
+
});
|
58
|
+
}
|
59
|
+
}
|
60
|
+
class InfobipEmailAPI {
|
61
|
+
constructor({ baseUrl, apiToken }) {
|
62
|
+
this.send = async (message) => {
|
63
|
+
const formData = new form_data_1.default();
|
64
|
+
for (const key in message) {
|
65
|
+
if (Object.hasOwnProperty.call(message, key)) {
|
66
|
+
// @ts-expect-error this is okay
|
67
|
+
const value = message[key];
|
68
|
+
if (value !== undefined && value !== '') {
|
69
|
+
formData.append(key, value.toString());
|
70
|
+
}
|
71
|
+
}
|
72
|
+
}
|
73
|
+
return await this._baseApi.post('email/3/send', {
|
74
|
+
body: formData,
|
75
|
+
}, { 'Content-Type': 'multipart/form-data' });
|
76
|
+
};
|
77
|
+
this._baseApi = new InfobipBaseAPI({
|
78
|
+
baseUrl,
|
79
|
+
apiToken: `App ${apiToken}`,
|
80
|
+
tokenHeaderKey: 'Authorization',
|
81
|
+
});
|
82
|
+
}
|
83
|
+
}
|
84
|
+
class InfobipClient {
|
85
|
+
constructor({ baseUrl, apiToken }) {
|
86
|
+
this.smsApi = new InfobipSmsAPI({ baseUrl, apiToken });
|
87
|
+
this.emailApi = new InfobipEmailAPI({ baseUrl, apiToken });
|
88
|
+
}
|
89
|
+
}
|
90
|
+
exports.InfobipClient = InfobipClient;
|
91
|
+
//# sourceMappingURL=client.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../../extensions/infobip/v1/client/client.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,5 @@
|
|
1
|
+
import { type ActivityEvent } from '@awell-health/extensions-core';
|
2
|
+
import { type AxiosError } from 'axios';
|
3
|
+
import { type ResponseError } from '../types';
|
4
|
+
export declare const isInfobipError: (error: any) => error is AxiosError<ResponseError, any>;
|
5
|
+
export declare const infobipErrorToActivityEvent: (error: AxiosError<ResponseError>) => ActivityEvent[];
|
@@ -0,0 +1,45 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.infobipErrorToActivityEvent = exports.isInfobipError = void 0;
|
4
|
+
const axios_1 = require("axios");
|
5
|
+
const lodash_1 = require("lodash");
|
6
|
+
const zod_1 = require("zod");
|
7
|
+
const errorSchema = zod_1.z.object({
|
8
|
+
requestError: zod_1.z.object({
|
9
|
+
serviceException: zod_1.z.object({
|
10
|
+
messageId: zod_1.z.coerce.string(),
|
11
|
+
text: zod_1.z.string(),
|
12
|
+
}),
|
13
|
+
}),
|
14
|
+
});
|
15
|
+
const isInfobipError = (error) => {
|
16
|
+
var _a;
|
17
|
+
if ((0, axios_1.isAxiosError)(error)) {
|
18
|
+
const parseResult = errorSchema.safeParse((_a = error.response) === null || _a === void 0 ? void 0 : _a.data);
|
19
|
+
return parseResult.success;
|
20
|
+
}
|
21
|
+
return false;
|
22
|
+
};
|
23
|
+
exports.isInfobipError = isInfobipError;
|
24
|
+
const infobipErrorToActivityEvent = (error) => {
|
25
|
+
var _a, _b;
|
26
|
+
const messageId = (_a = error.response) === null || _a === void 0 ? void 0 : _a.data.requestError.serviceException.messageId;
|
27
|
+
const text = (_b = error.response) === null || _b === void 0 ? void 0 : _b.data.requestError.serviceException.text;
|
28
|
+
if ((0, lodash_1.isNil)(text)) {
|
29
|
+
return [];
|
30
|
+
}
|
31
|
+
return [
|
32
|
+
{
|
33
|
+
date: new Date().toISOString(),
|
34
|
+
text: {
|
35
|
+
en: messageId !== null && messageId !== void 0 ? messageId : text,
|
36
|
+
},
|
37
|
+
error: {
|
38
|
+
category: 'SERVER_ERROR',
|
39
|
+
message: text,
|
40
|
+
},
|
41
|
+
},
|
42
|
+
];
|
43
|
+
};
|
44
|
+
exports.infobipErrorToActivityEvent = infobipErrorToActivityEvent;
|
45
|
+
//# sourceMappingURL=error.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../../../extensions/infobip/v1/client/error.ts"],"names":[],"mappings":";;;AACA,iCAAqD;AACrD,mCAA8B;AAC9B,6BAAuB;AAGvB,MAAM,WAAW,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3B,YAAY,EAAE,OAAC,CAAC,MAAM,CAAC;QACrB,gBAAgB,EAAE,OAAC,CAAC,MAAM,CAAC;YACzB,SAAS,EAAE,OAAC,CAAC,MAAM,CAAC,MAAM,EAAE;YAC5B,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;SACjB,CAAC;KACH,CAAC;CACH,CAAC,CAAA;AAEK,MAAM,cAAc,GAAG,CAC5B,KAAU,EAC0B,EAAE;;IACtC,IAAI,IAAA,oBAAY,EAAC,KAAK,CAAC,EAAE;QACvB,MAAM,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,MAAA,KAAK,CAAC,QAAQ,0CAAE,IAAI,CAAC,CAAA;QAC/D,OAAO,WAAW,CAAC,OAAO,CAAA;KAC3B;IAED,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AATY,QAAA,cAAc,kBAS1B;AAEM,MAAM,2BAA2B,GAAG,CACzC,KAAgC,EACf,EAAE;;IACnB,MAAM,SAAS,GAAG,MAAA,KAAK,CAAC,QAAQ,0CAAE,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,SAAS,CAAA;IAC9E,MAAM,IAAI,GAAG,MAAA,KAAK,CAAC,QAAQ,0CAAE,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAA;IAEpE,IAAI,IAAA,cAAK,EAAC,IAAI,CAAC,EAAE;QACf,OAAO,EAAE,CAAA;KACV;IAED,OAAO;QACL;YACE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC9B,IAAI,EAAE;gBACJ,EAAE,EAAE,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,IAAI;aACtB;YACD,KAAK,EAAE;gBACL,QAAQ,EAAE,cAAc;gBACxB,OAAO,EAAE,IAAI;aACd;SACF;KACF,CAAA;AACH,CAAC,CAAA;AAtBY,QAAA,2BAA2B,+BAsBvC"}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
__exportStar(require("./client"), exports);
|
18
|
+
__exportStar(require("./error"), exports);
|
19
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../extensions/infobip/v1/client/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,0CAAuB"}
|
@@ -0,0 +1,34 @@
|
|
1
|
+
export interface EmailInput {
|
2
|
+
from?: string;
|
3
|
+
to: string[];
|
4
|
+
templateId?: number;
|
5
|
+
cc?: string;
|
6
|
+
subject?: string;
|
7
|
+
html?: string;
|
8
|
+
replyTo?: string;
|
9
|
+
defaultPlaceholders?: string;
|
10
|
+
}
|
11
|
+
export interface SmsInput {
|
12
|
+
messages: Array<{
|
13
|
+
destinations: Array<{
|
14
|
+
to: string;
|
15
|
+
}>;
|
16
|
+
from: string;
|
17
|
+
text: string;
|
18
|
+
}>;
|
19
|
+
}
|
20
|
+
export interface BaseResponse {
|
21
|
+
bulkId: string;
|
22
|
+
messages: Array<{
|
23
|
+
messageId: string;
|
24
|
+
to: string;
|
25
|
+
}>;
|
26
|
+
}
|
27
|
+
export interface ResponseError {
|
28
|
+
requestError: {
|
29
|
+
serviceException: {
|
30
|
+
messageId: string;
|
31
|
+
text: string;
|
32
|
+
};
|
33
|
+
};
|
34
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../extensions/infobip/v1/types.ts"],"names":[],"mappings":""}
|
@@ -47,6 +47,10 @@
|
|
47
47
|
"readme": "---\ntitle: Hello world\ndescription: This is an example extension.\n---\n# Hello world extension",
|
48
48
|
"changelog": "# Hello world changelog"
|
49
49
|
},
|
50
|
+
"infobip": {
|
51
|
+
"readme": "---\ntitle: Infobip\ndescription: Infobip is a global cloud communications platform that provides a wide range of communication and customer engagement solutions for businesses.\n---\n\n# Infobip\n\nInfobip is a global cloud communications platform that provides a wide range of communication and customer engagement solutions for businesses. The company offers a suite of services and tools designed to help organizations connect with their customers, clients, and partners through various communication channels, including SMS, email, voice, chat apps, and more.\n\n## Extension settings\n\nIn order to set up this extension, you will minimally need to provide:\n\n1. Your unique API [base URL](https://www.infobip.com/docs/essentials/base-url)\n2. An [API key](https://www.infobip.com/docs/essentials/api-authentication)\n\nWhen utilizing the Infobip extension for sending emails and text messages, you'll need a 'from email' address and a 'from phone number' respectively.\n\n## Actions\n\n### Send SMS\n\nSend a text message to a recipient.\n\n### Send email\n\nSends a simple email to a recipient.\n\n### Send email with template\n\nSend an email, using a template, to a recipient. You need to create a [Broadcast email template](https://www.infobip.com/docs/email/templates) as that is the only type of template supported by Infobip's API. Templates can be created and managed via the Infobip web portal.\n\nWhen using this action, the from/sender details and subject as specified in the template will be used. However, you can specify a subject if you would like to overwrite the subject specified in the template.\n\nWithin your template, you can harness placeholders using Infobip's `{{` syntax. This feature allows you to craft templates with both static and dynamic content. You can determine the dynamic content's value when configuring the action in Awell Studio. For instance, if your template includes two placeholders, `{{variable_1}}` and `{{variable_2}}`, you can provide the following data in the placeholders action field to set values for these placeholders:\n\n```json\n{\n \"variable_1\": \"Hello\",\n \"variable_2\": \"World\"\n}\n```\n",
|
52
|
+
"changelog": "# Infobip changelog\n"
|
53
|
+
},
|
50
54
|
"iterable": {
|
51
55
|
"readme": "---\ntitle: Iterable\ndescription: Iterable is an email marketing automation platform that allows creating, sending, and tracking personalized email campaigns.\n---\n\n# Iterable\n\nIterable is a marketing automation platform that provides tools and services for businesses to engage with their customers through email, SMS, in-app notifications, and other digital channels. It allows businesses to create and manage personalized marketing campaigns, track customer behavior, and analyze data to optimize their marketing strategies.\n\nIterable offers features such as email marketing, segmentation, A/B testing, workflow automation, and analytics to help businesses deliver the right message to the right audience at the right time.\n\n## Extension settings\n\nIn order to set up this extension, you will need an API key to authenticate with the Iterable API.\n\n## Custom Actions\n\n### Send email\n\nSend an email to a specific email address.\n\n**Important:** Provide a `recipientEmail` or a `recipientUserId` (but not both), depending on how your [project identifies users](https://support.iterable.com/hc/articles/204780579#identifying-users).\n\n### Track Event\n\nTrack an event in Iterable.\n\n**Important:** Provide an `email` or a `userId` (but not both), depending on how your [project identifies users](https://support.iterable.com/hc/articles/204780579#identifying-users).\n",
|
52
56
|
"changelog": "# Iterable changelog\n"
|