@awell-health/awell-extensions 1.0.121 → 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.
Files changed (87) hide show
  1. package/dist/extensions/index.js +2 -0
  2. package/dist/extensions/index.js.map +1 -1
  3. package/dist/extensions/infobip/index.d.ts +2 -0
  4. package/dist/extensions/infobip/index.js +42 -0
  5. package/dist/extensions/infobip/index.js.map +1 -0
  6. package/dist/extensions/infobip/settings.d.ts +47 -0
  7. package/dist/extensions/infobip/settings.js +45 -0
  8. package/dist/extensions/infobip/settings.js.map +1 -0
  9. package/dist/extensions/infobip/v1/actions/index.d.ts +3 -0
  10. package/dist/extensions/infobip/v1/actions/index.js +10 -0
  11. package/dist/extensions/infobip/v1/actions/index.js.map +1 -0
  12. package/dist/extensions/infobip/v1/actions/sendEmail/config/fields.d.ts +48 -0
  13. package/dist/extensions/infobip/v1/actions/sendEmail/config/fields.js +42 -0
  14. package/dist/extensions/infobip/v1/actions/sendEmail/config/fields.js.map +1 -0
  15. package/dist/extensions/infobip/v1/actions/sendEmail/config/index.d.ts +1 -0
  16. package/dist/extensions/infobip/v1/actions/sendEmail/config/index.js +7 -0
  17. package/dist/extensions/infobip/v1/actions/sendEmail/config/index.js.map +1 -0
  18. package/dist/extensions/infobip/v1/actions/sendEmail/index.d.ts +1 -0
  19. package/dist/extensions/infobip/v1/actions/sendEmail/index.js +6 -0
  20. package/dist/extensions/infobip/v1/actions/sendEmail/index.js.map +1 -0
  21. package/dist/extensions/infobip/v1/actions/sendEmail/sendEmail.d.ts +4 -0
  22. package/dist/extensions/infobip/v1/actions/sendEmail/sendEmail.js +59 -0
  23. package/dist/extensions/infobip/v1/actions/sendEmail/sendEmail.js.map +1 -0
  24. package/dist/extensions/infobip/v1/actions/sendEmail/sendEmail.test.d.ts +1 -0
  25. package/dist/extensions/infobip/v1/actions/sendEmail/sendEmail.test.js +34 -0
  26. package/dist/extensions/infobip/v1/actions/sendEmail/sendEmail.test.js.map +1 -0
  27. package/dist/extensions/infobip/v1/actions/sendEmailWithTemplate/config/fields.d.ts +54 -0
  28. package/dist/extensions/infobip/v1/actions/sendEmailWithTemplate/config/fields.js +55 -0
  29. package/dist/extensions/infobip/v1/actions/sendEmailWithTemplate/config/fields.js.map +1 -0
  30. package/dist/extensions/infobip/v1/actions/sendEmailWithTemplate/config/index.d.ts +1 -0
  31. package/dist/extensions/infobip/v1/actions/sendEmailWithTemplate/config/index.js +7 -0
  32. package/dist/extensions/infobip/v1/actions/sendEmailWithTemplate/config/index.js.map +1 -0
  33. package/dist/extensions/infobip/v1/actions/sendEmailWithTemplate/index.d.ts +1 -0
  34. package/dist/extensions/infobip/v1/actions/sendEmailWithTemplate/index.js +6 -0
  35. package/dist/extensions/infobip/v1/actions/sendEmailWithTemplate/index.js.map +1 -0
  36. package/dist/extensions/infobip/v1/actions/sendEmailWithTemplate/sendEmailWithTemplate.d.ts +4 -0
  37. package/dist/extensions/infobip/v1/actions/sendEmailWithTemplate/sendEmailWithTemplate.js +47 -0
  38. package/dist/extensions/infobip/v1/actions/sendEmailWithTemplate/sendEmailWithTemplate.js.map +1 -0
  39. package/dist/extensions/infobip/v1/actions/sendEmailWithTemplate/sendEmailWithTemplate.test.d.ts +1 -0
  40. package/dist/extensions/infobip/v1/actions/sendEmailWithTemplate/sendEmailWithTemplate.test.js +34 -0
  41. package/dist/extensions/infobip/v1/actions/sendEmailWithTemplate/sendEmailWithTemplate.test.js.map +1 -0
  42. package/dist/extensions/infobip/v1/actions/sendSms/config/fields.d.ts +41 -0
  43. package/dist/extensions/infobip/v1/actions/sendSms/config/fields.js +37 -0
  44. package/dist/extensions/infobip/v1/actions/sendSms/config/fields.js.map +1 -0
  45. package/dist/extensions/infobip/v1/actions/sendSms/config/index.d.ts +1 -0
  46. package/dist/extensions/infobip/v1/actions/sendSms/config/index.js +7 -0
  47. package/dist/extensions/infobip/v1/actions/sendSms/config/index.js.map +1 -0
  48. package/dist/extensions/infobip/v1/actions/sendSms/index.d.ts +1 -0
  49. package/dist/extensions/infobip/v1/actions/sendSms/index.js +6 -0
  50. package/dist/extensions/infobip/v1/actions/sendSms/index.js.map +1 -0
  51. package/dist/extensions/infobip/v1/actions/sendSms/sendSms.d.ts +4 -0
  52. package/dist/extensions/infobip/v1/actions/sendSms/sendSms.js +63 -0
  53. package/dist/extensions/infobip/v1/actions/sendSms/sendSms.js.map +1 -0
  54. package/dist/extensions/infobip/v1/actions/sendSms/sendSms.test.d.ts +1 -0
  55. package/dist/extensions/infobip/v1/actions/sendSms/sendSms.test.js +33 -0
  56. package/dist/extensions/infobip/v1/actions/sendSms/sendSms.test.js.map +1 -0
  57. package/dist/extensions/infobip/v1/client/client.d.ts +27 -0
  58. package/dist/extensions/infobip/v1/client/client.js +91 -0
  59. package/dist/extensions/infobip/v1/client/client.js.map +1 -0
  60. package/dist/extensions/infobip/v1/client/error.d.ts +5 -0
  61. package/dist/extensions/infobip/v1/client/error.js +45 -0
  62. package/dist/extensions/infobip/v1/client/error.js.map +1 -0
  63. package/dist/extensions/infobip/v1/client/index.d.ts +2 -0
  64. package/dist/extensions/infobip/v1/client/index.js +19 -0
  65. package/dist/extensions/infobip/v1/client/index.js.map +1 -0
  66. package/dist/extensions/infobip/v1/types.d.ts +34 -0
  67. package/dist/extensions/infobip/v1/types.js +3 -0
  68. package/dist/extensions/infobip/v1/types.js.map +1 -0
  69. package/dist/extensions/markdown.json +5 -1
  70. package/dist/extensions/wellinks/actions/insertMemberListEvent/config/fields.d.ts +78 -0
  71. package/dist/extensions/wellinks/actions/insertMemberListEvent/config/fields.js +66 -0
  72. package/dist/extensions/wellinks/actions/insertMemberListEvent/config/fields.js.map +1 -0
  73. package/dist/extensions/wellinks/actions/insertMemberListEvent/config/index.d.ts +2 -0
  74. package/dist/extensions/wellinks/actions/insertMemberListEvent/config/index.js +9 -0
  75. package/dist/extensions/wellinks/actions/insertMemberListEvent/config/index.js.map +1 -0
  76. package/dist/extensions/wellinks/actions/insertMemberListEvent/config/settings.d.ts +35 -0
  77. package/dist/extensions/wellinks/actions/insertMemberListEvent/config/settings.js +11 -0
  78. package/dist/extensions/wellinks/actions/insertMemberListEvent/config/settings.js.map +1 -0
  79. package/dist/extensions/wellinks/actions/insertMemberListEvent/insertMemberListEvent.d.ts +2 -52
  80. package/dist/extensions/wellinks/actions/insertMemberListEvent/insertMemberListEvent.js +15 -103
  81. package/dist/extensions/wellinks/actions/insertMemberListEvent/insertMemberListEvent.js.map +1 -1
  82. package/dist/extensions/wellinks/actions/insertMemberListEvent/insertMemberListEvent.test.js +3 -12
  83. package/dist/extensions/wellinks/actions/insertMemberListEvent/insertMemberListEvent.test.js.map +1 -1
  84. package/dist/extensions/wellinks/config/settings.d.ts +35 -0
  85. package/dist/extensions/wellinks/config/settings.js +14 -1
  86. package/dist/extensions/wellinks/config/settings.js.map +1 -1
  87. 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"}
@@ -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
@@ -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,4 @@
1
+ import { type Action } from '@awell-health/extensions-core';
2
+ import { type settings } from '../../../settings';
3
+ import { fields } from './config';
4
+ export declare const sendSms: Action<typeof fields, typeof settings>;
@@ -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,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,2 @@
1
+ export * from './client';
2
+ export * from './error';
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -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"
@@ -89,7 +93,7 @@
89
93
  },
90
94
  "wellinks": {
91
95
  "readme": "---\ntitle: Wellinks\ndescription: The purpose of this extension is to keep application logic out of the Pathways and Tracks. Some actions require interactions with the Healthie API, hence the need for the API URL and Key in the settings.\n---\n# Wellinks Extension\n\nThe purpose of this extension is to keep application logic out of the Pathways and Tracks. Some actions require interactions with the Healthie API, hence the need for the API URL and Key in the settings.\n\n## Extension Settings\n\nYou will need to provide the API URL and Key for the Wellinks Healthie instance.\n\n# Custom Actions\n\n## Check for Override\n\nChecks to see if the patient in Healthie has an active Override form.\n\n## Check for Scheduled Appointments\n\nChecks to see if the patient in Healthie has an appointment of a specific type scheduled in the future.\n\n## Check for Chat\n\nChecks that a Chat message (either to or from a patient and coach) has happened at least 24 hours after an appointment\n\n## Insert Member List Event\n\nAdds an Insert Member List Event to the Platform Database.\n\n## Check for Flourish Customer\n\nQueries Flourish to see if there is a record that has a matching ThirdPartyIdentifier. Returns True/False.\n\n## Submit a PAM Survey\n\nSubmits a PAM 13 Survey (completed in the Careflow) to Flourish and returns the PAM Score and Levl.",
92
- "changelog": "# Wellinks Changelog\n\n## May 18th, 2023\n\nAdded the checkForOverride action.\n\n## May 19th, 2023\n\nAdded the checkForScheduledAppointment action.\n\n## May 25th, 2023\n\nAdded datapoints for actions\n\n\n## July 6th, 2023\n\nAdded new action to unenroll user from Sendgrid.\n\n## July 16th, 2023\n\nAdded a new action to insert a Member Event List to the Platform DB. This requires setting the platform API URL and API Key values for the extension.\n\n## September 12th, 2023\n\nAdds a new action to check Flourish for a customer with a matching ThirdPartyIdentifier.\n\n## September 18th, 2023\n\nAdds a new action to submit a PAM13 survey to Flourish, returning a PAM Score, level, and whether or not the submission was a success.\n\n## September 19th, 2023\n\nAdds a new action to create a customer in Flourish, returning true or false based on whether or not the creation was a success."
96
+ "changelog": "# Wellinks Changelog\n\n## May 18th, 2023\n\nAdded the checkForOverride action.\n\n## May 19th, 2023\n\nAdded the checkForScheduledAppointment action.\n\n## May 25th, 2023\n\nAdded datapoints for actions\n\n\n## July 6th, 2023\n\nAdded new action to unenroll user from Sendgrid.\n\n## July 16th, 2023\n\nAdded a new action to insert a Member Event List to the Platform DB. This requires setting the platform API URL and API Key values for the extension.\n\n## September 12th, 2023\n\nAdds a new action to check Flourish for a customer with a matching ThirdPartyIdentifier.\n\n## September 18th, 2023\n\nAdds a new action to submit a PAM13 survey to Flourish, returning a PAM Score, level, and whether or not the submission was a success.\n\n## September 19th, 2023\n\nAdds a new action to create a customer in Flourish, returning true or false based on whether or not the creation was a success.\n\n## October 12th, 2023\n\nUpdates InsertMemberListEvent action to have clearer error messages."
93
97
  },
94
98
  "zendesk": {
95
99
  "readme": "---\ntitle: Zendesk\ndescription: Zendesk is a customer service and support platform that provides a suite of tools and software for businesses to manage their customer interactions.\n---\n\n# Zendesk\n\nZendesk is a customer service and support platform that provides a suite of tools and software for businesses to manage their customer interactions. It offers a range of customer service solutions, including help desk ticketing systems, customer support and engagement, and self-service options. Zendesk is designed to help companies streamline their customer support processes, improve communication with their customers, and resolve issues more efficiently.\n\n## Extension settings\n\nIn order to set up this extension, you will to authenticate with the Sell API and need an API token. You can visit Zendesk Sales CRM dashboard and go to **Settings > Integration > OAuth** to enable and create an API token. Read more about how to get an access token for the Sell API [here](https://developer.zendesk.com/documentation/sales-crm/first-call/).\n\n## Custom Actions\n\n### Create task\n\nCreates a new task. You can create either a floating task or create a related task and associate it with one of the resource types: Leads, Contacts, Deals.\n\n### Complete task\n\nMarks a task as completed.\n",