@segment/action-destinations 3.345.10-staging.0 → 3.345.12-staging.0

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 (55) hide show
  1. package/dist/destinations/amazon-amc/function.d.ts +14 -0
  2. package/dist/destinations/amazon-amc/function.js +155 -0
  3. package/dist/destinations/amazon-amc/function.js.map +1 -0
  4. package/dist/destinations/amazon-amc/syncAudiencesToDSP/index.d.ts +1 -1
  5. package/dist/destinations/amazon-amc/syncAudiencesToDSP/index.js +4 -88
  6. package/dist/destinations/amazon-amc/syncAudiencesToDSP/index.js.map +1 -1
  7. package/dist/destinations/amazon-amc/utils.d.ts +1 -0
  8. package/dist/destinations/amazon-amc/utils.js +2 -1
  9. package/dist/destinations/amazon-amc/utils.js.map +1 -1
  10. package/dist/destinations/braze/updateUserProfile/index.js +5 -1
  11. package/dist/destinations/braze/updateUserProfile/index.js.map +1 -1
  12. package/dist/destinations/index.js +2 -0
  13. package/dist/destinations/index.js.map +1 -1
  14. package/dist/destinations/klaviyo/removeProfile/index.js +1 -1
  15. package/dist/destinations/klaviyo/removeProfile/index.js.map +1 -1
  16. package/dist/destinations/responsys/sendAudienceAsPet/functions.js +1 -1
  17. package/dist/destinations/responsys/sendAudienceAsPet/functions.js.map +1 -1
  18. package/dist/destinations/responsys/utils.js +3 -3
  19. package/dist/destinations/responsys/utils.js.map +1 -1
  20. package/dist/destinations/salesforce-marketing-cloud/contactDataExtension/index.js +1 -1
  21. package/dist/destinations/salesforce-marketing-cloud/contactDataExtension/index.js.map +1 -1
  22. package/dist/destinations/salesforce-marketing-cloud/dataExtension/index.js +1 -1
  23. package/dist/destinations/salesforce-marketing-cloud/dataExtension/index.js.map +1 -1
  24. package/dist/destinations/salesforce-marketing-cloud/sfmc-operations.d.ts +2 -1
  25. package/dist/destinations/salesforce-marketing-cloud/sfmc-operations.js +36 -34
  26. package/dist/destinations/salesforce-marketing-cloud/sfmc-operations.js.map +1 -1
  27. package/dist/destinations/salesforce-marketing-cloud/types.d.ts +1 -0
  28. package/dist/destinations/segment/properties.js +5 -4
  29. package/dist/destinations/segment/properties.js.map +1 -1
  30. package/dist/destinations/sendgrid-audiences/constants.d.ts +2 -0
  31. package/dist/destinations/sendgrid-audiences/constants.js +3 -1
  32. package/dist/destinations/sendgrid-audiences/constants.js.map +1 -1
  33. package/dist/destinations/sendgrid-audiences/index.d.ts +3 -1
  34. package/dist/destinations/sendgrid-audiences/index.js +45 -12
  35. package/dist/destinations/sendgrid-audiences/index.js.map +1 -1
  36. package/dist/destinations/sendgrid-audiences/syncAudience/dynamic-fields.d.ts +2 -1
  37. package/dist/destinations/sendgrid-audiences/syncAudience/dynamic-fields.js +16 -14
  38. package/dist/destinations/sendgrid-audiences/syncAudience/dynamic-fields.js.map +1 -1
  39. package/dist/destinations/sendgrid-audiences/syncAudience/fields.js +76 -46
  40. package/dist/destinations/sendgrid-audiences/syncAudience/fields.js.map +1 -1
  41. package/dist/destinations/sendgrid-audiences/syncAudience/generated-types.d.ts +14 -5
  42. package/dist/destinations/sendgrid-audiences/syncAudience/index.js +14 -4
  43. package/dist/destinations/sendgrid-audiences/syncAudience/index.js.map +1 -1
  44. package/dist/destinations/sendgrid-audiences/syncAudience/utils.d.ts +4 -2
  45. package/dist/destinations/sendgrid-audiences/syncAudience/utils.js +206 -88
  46. package/dist/destinations/sendgrid-audiences/syncAudience/utils.js.map +1 -1
  47. package/dist/destinations/sendgrid-audiences/types.d.ts +24 -0
  48. package/dist/destinations/twilio-messaging/sendMessage/constants.js +3 -1
  49. package/dist/destinations/twilio-messaging/sendMessage/constants.js.map +1 -1
  50. package/dist/destinations/twilio-messaging/sendMessage/dynamic-fields.js +3 -4
  51. package/dist/destinations/twilio-messaging/sendMessage/dynamic-fields.js.map +1 -1
  52. package/dist/destinations/twilio-messaging/sendMessage/fields.js +1 -1
  53. package/dist/destinations/twilio-messaging/sendMessage/fields.js.map +1 -1
  54. package/dist/destinations/twilio-messaging/sendMessage/utils.js.map +1 -1
  55. package/package.json +1 -1
@@ -1,4 +1,5 @@
1
1
  import { RequestClient, MultiStatusResponse, ModifiedResponse } from '@segment/actions-core';
2
2
  import { Payload as payload_dataExtension } from './dataExtension/generated-types';
3
3
  import { Payload as payload_contactDataExtension } from './contactDataExtension/generated-types';
4
- export declare function upsertRows(request: RequestClient, subdomain: String, payloads: payload_dataExtension[] | payload_contactDataExtension[]): Promise<ModifiedResponse<unknown> | MultiStatusResponse | undefined>;
4
+ export declare function upsertRows(request: RequestClient, subdomain: String, payloads: payload_dataExtension[] | payload_contactDataExtension[]): Promise<ModifiedResponse<unknown>>;
5
+ export declare function executeUpsertWithMultiStatus(request: RequestClient, subdomain: String, payloads: payload_dataExtension[] | payload_contactDataExtension[]): Promise<MultiStatusResponse>;
@@ -1,24 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.upsertRows = void 0;
3
+ exports.executeUpsertWithMultiStatus = exports.upsertRows = void 0;
4
4
  const actions_core_1 = require("@segment/actions-core");
5
- async function upsertRows(request, subdomain, payloads) {
6
- const multiStatusResponse = new actions_core_1.MultiStatusResponse();
7
- let url;
8
- let response;
5
+ function upsertRows(request, subdomain, payloads) {
9
6
  const { key, id } = payloads[0];
10
7
  if (!key && !id) {
11
- if (payloads.length === 1) {
12
- throw new actions_core_1.IntegrationError(`In order to send an event to a data extension either Data Extension ID or Data Extension Key must be defined.`, 'Misconfigured required field', 400);
13
- }
14
- payloads.forEach((_, index) => {
15
- multiStatusResponse.setErrorResponseAtIndex(index, {
16
- status: 400,
17
- errortype: 'PAYLOAD_VALIDATION_FAILED',
18
- errormessage: `In order to send an event to a data extension either Data Extension ID or Data Extension Key must be defined.`
19
- });
20
- });
21
- return multiStatusResponse;
8
+ throw new actions_core_1.IntegrationError(`In order to send an event to a data extension either Data Extension ID or Data Extension Key must be defined.`, 'Misconfigured required field', 400);
22
9
  }
23
10
  const rows = [];
24
11
  payloads.forEach((payload) => {
@@ -28,46 +15,61 @@ async function upsertRows(request, subdomain, payloads) {
28
15
  });
29
16
  });
30
17
  if (key) {
31
- url = `https://${subdomain}.rest.marketingcloudapis.com/hub/v1/dataevents/key:${key}/rowset`;
18
+ return request(`https://${subdomain}.rest.marketingcloudapis.com/hub/v1/dataevents/key:${key}/rowset`, {
19
+ method: 'POST',
20
+ json: rows
21
+ });
32
22
  }
33
23
  else {
34
- url = `https://${subdomain}.rest.marketingcloudapis.com/hub/v1/dataevents/${id}/rowset`;
35
- }
36
- try {
37
- response = await request(url, {
24
+ return request(`https://${subdomain}.rest.marketingcloudapis.com/hub/v1/dataevents/${id}/rowset`, {
38
25
  method: 'POST',
39
26
  json: rows
40
27
  });
28
+ }
29
+ }
30
+ exports.upsertRows = upsertRows;
31
+ async function executeUpsertWithMultiStatus(request, subdomain, payloads) {
32
+ const multiStatusResponse = new actions_core_1.MultiStatusResponse();
33
+ let response;
34
+ try {
35
+ response = await upsertRows(request, subdomain, payloads);
41
36
  payloads.forEach((payload, index) => {
42
37
  multiStatusResponse.setSuccessResponseAtIndex(index, {
43
38
  status: 200,
44
39
  sent: payload,
45
- body: JSON.stringify(response?.data)
40
+ body: response?.data
46
41
  });
47
42
  });
48
43
  }
49
44
  catch (error) {
45
+ if (error instanceof actions_core_1.IntegrationError && error.code === 'Misconfigured required field') {
46
+ payloads.forEach((_, index) => {
47
+ multiStatusResponse.setErrorResponseAtIndex(index, {
48
+ status: 400,
49
+ errortype: 'PAYLOAD_VALIDATION_FAILED',
50
+ errormessage: `In order to send an event to a data extension either Data Extension ID or Data Extension Key must be defined.`
51
+ });
52
+ });
53
+ return multiStatusResponse;
54
+ }
50
55
  const err = error;
51
- if (err?.response?.data?.message === 'Not Authorized' || payloads.length === 1) {
56
+ if (err?.response?.status === 401) {
52
57
  throw error;
53
58
  }
59
+ const errData = err?.response?.data;
60
+ const additionalError = err?.response?.data?.additionalErrors &&
61
+ err.response.data.additionalErrors.length > 0 &&
62
+ err.response.data.additionalErrors;
54
63
  payloads.forEach((payload, index) => {
55
64
  multiStatusResponse.setErrorResponseAtIndex(index, {
56
65
  status: 400,
57
- errormessage: (err?.response?.data?.additionalErrors &&
58
- err.response.data.additionalErrors.length > 0 &&
59
- err.response.data.additionalErrors[0].message) ||
60
- err?.response?.data?.message ||
61
- '',
66
+ errormessage: additionalError ? additionalError[0].message : errData?.message || '',
62
67
  sent: payload,
63
- body: JSON.stringify(err)
68
+ body: additionalError ? additionalError : errData
64
69
  });
65
70
  });
66
71
  }
67
- if (payloads.length > 1) {
68
- return multiStatusResponse;
69
- }
70
- return response;
72
+ return multiStatusResponse;
71
73
  }
72
- exports.upsertRows = upsertRows;
74
+ exports.executeUpsertWithMultiStatus = executeUpsertWithMultiStatus;
73
75
  //# sourceMappingURL=sfmc-operations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sfmc-operations.js","sourceRoot":"","sources":["../../../src/destinations/salesforce-marketing-cloud/sfmc-operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sfmc-operations.js","sourceRoot":"","sources":["../../../src/destinations/salesforce-marketing-cloud/sfmc-operations.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ interface ErrorResponseData {
12
12
  errorcode: number;
13
13
  documentation: string;
14
14
  data: ErrorData;
15
+ status: number;
15
16
  }
16
17
  export interface ErrorResponse {
17
18
  response: ErrorResponseData;
@@ -1,16 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DEFAULT_SEGMENT_ENDPOINT = exports.SEGMENT_ENDPOINTS = void 0;
4
+ const isProd = process.env.NODE_ENV === 'production';
4
5
  exports.SEGMENT_ENDPOINTS = {
5
6
  'us-west-2': {
6
7
  label: 'North America',
7
- url: 'https://api.segment.io/v1',
8
- cdn: 'https://cdn.segment.com/v1'
8
+ url: `https://api.segment.${isProd ? 'io' : 'build'}/v1`,
9
+ cdn: `https://cdn.segment.${isProd ? 'com' : 'build'}/v1`
9
10
  },
10
11
  'eu-west-1': {
11
12
  label: 'Europe',
12
- url: 'https://events.eu1.segmentapis.com/v1',
13
- cdn: 'https://cdn.segment.com/v1'
13
+ url: `https://events.eu1.segmentapis.${isProd ? 'com' : 'build'}/v1`,
14
+ cdn: `https://cdn.segment.${isProd ? 'com' : 'build'}/v1`
14
15
  }
15
16
  };
16
17
  exports.DEFAULT_SEGMENT_ENDPOINT = 'us-west-2';
@@ -1 +1 @@
1
- {"version":3,"file":"properties.js","sourceRoot":"","sources":["../../../src/destinations/segment/properties.ts"],"names":[],"mappings":";;;AAMa,QAAA,iBAAiB,GAAuC;IACnE,WAAW,EAAE;QACX,KAAK,EAAE,eAAe;QACtB,GAAG,EAAE,2BAA2B;QAChC,GAAG,EAAE,4BAA4B;KAClC;IACD,WAAW,EAAE;QACX,KAAK,EAAE,QAAQ;QACf,GAAG,EAAE,uCAAuC;QAC5C,GAAG,EAAE,4BAA4B;KAClC;CACF,CAAA;AAEY,QAAA,wBAAwB,GAAG,WAAW,CAAA"}
1
+ {"version":3,"file":"properties.js","sourceRoot":"","sources":["../../../src/destinations/segment/properties.ts"],"names":[],"mappings":";;;AAAA,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAA;AAQvC,QAAA,iBAAiB,GAAuC;IACnE,WAAW,EAAE;QACX,KAAK,EAAE,eAAe;QACtB,GAAG,EAAE,uBAAuB,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,KAAK;QACxD,GAAG,EAAE,uBAAuB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK;KAC1D;IACD,WAAW,EAAE;QACX,KAAK,EAAE,QAAQ;QACf,GAAG,EAAE,kCAAkC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK;QACpE,GAAG,EAAE,uBAAuB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK;KAC1D;CACF,CAAA;AAEY,QAAA,wBAAwB,GAAG,WAAW,CAAA"}
@@ -1,4 +1,5 @@
1
1
  export declare const MAX_BATCH_SIZE = 100;
2
+ export declare const GET_LIST_URL = "https://api.sendgrid.com/v3/marketing/lists";
2
3
  export declare const CREATE_LIST_URL = "https://api.sendgrid.com/v3/marketing/lists";
3
4
  export declare const UPSERT_CONTACTS_URL = "https://api.sendgrid.com/v3/marketing/contacts";
4
5
  export declare const REMOVE_CONTACTS_FROM_LIST_URL = "https://api.sendgrid.com/v3/marketing/lists/{list_id}/contacts?contact_ids={contact_ids}";
@@ -7,3 +8,4 @@ export declare const GET_CONTACT_BY_EMAIL_URL = "https://api.sendgrid.com/v3/mar
7
8
  export declare const SEARCH_CONTACTS_URL = "https://api.sendgrid.com/v3/marketing/contacts/search";
8
9
  export declare const MAX_CHUNK_SIZE_SEARCH = 50;
9
10
  export declare const GET_CUSTOM_FIELDS_URL = "https://api.sendgrid.com/v3/marketing/field_definitions";
11
+ export declare const E164_REGEX: RegExp;
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GET_CUSTOM_FIELDS_URL = exports.MAX_CHUNK_SIZE_SEARCH = exports.SEARCH_CONTACTS_URL = exports.GET_CONTACT_BY_EMAIL_URL = exports.MAX_CHUNK_SIZE_REMOVE = exports.REMOVE_CONTACTS_FROM_LIST_URL = exports.UPSERT_CONTACTS_URL = exports.CREATE_LIST_URL = exports.MAX_BATCH_SIZE = void 0;
3
+ exports.E164_REGEX = exports.GET_CUSTOM_FIELDS_URL = exports.MAX_CHUNK_SIZE_SEARCH = exports.SEARCH_CONTACTS_URL = exports.GET_CONTACT_BY_EMAIL_URL = exports.MAX_CHUNK_SIZE_REMOVE = exports.REMOVE_CONTACTS_FROM_LIST_URL = exports.UPSERT_CONTACTS_URL = exports.CREATE_LIST_URL = exports.GET_LIST_URL = exports.MAX_BATCH_SIZE = void 0;
4
4
  exports.MAX_BATCH_SIZE = 100;
5
+ exports.GET_LIST_URL = 'https://api.sendgrid.com/v3/marketing/lists';
5
6
  exports.CREATE_LIST_URL = 'https://api.sendgrid.com/v3/marketing/lists';
6
7
  exports.UPSERT_CONTACTS_URL = 'https://api.sendgrid.com/v3/marketing/contacts';
7
8
  exports.REMOVE_CONTACTS_FROM_LIST_URL = 'https://api.sendgrid.com/v3/marketing/lists/{list_id}/contacts?contact_ids={contact_ids}';
@@ -10,4 +11,5 @@ exports.GET_CONTACT_BY_EMAIL_URL = 'https://api.sendgrid.com/v3/marketing/contac
10
11
  exports.SEARCH_CONTACTS_URL = 'https://api.sendgrid.com/v3/marketing/contacts/search';
11
12
  exports.MAX_CHUNK_SIZE_SEARCH = 50;
12
13
  exports.GET_CUSTOM_FIELDS_URL = 'https://api.sendgrid.com/v3/marketing/field_definitions';
14
+ exports.E164_REGEX = /^\+[1-9]\d{1,14}$/;
13
15
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/destinations/sendgrid-audiences/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG,GAAG,CAAA;AAEpB,QAAA,eAAe,GAAG,6CAA6C,CAAA;AAE/D,QAAA,mBAAmB,GAAG,gDAAgD,CAAA;AAEtE,QAAA,6BAA6B,GAAG,0FAA0F,CAAA;AAE1H,QAAA,qBAAqB,GAAG,GAAG,CAAA;AAE3B,QAAA,wBAAwB,GAAG,8DAA8D,CAAA;AAEzF,QAAA,mBAAmB,GAAG,uDAAuD,CAAA;AAE7E,QAAA,qBAAqB,GAAG,EAAE,CAAA;AAE1B,QAAA,qBAAqB,GAAG,yDAAyD,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/destinations/sendgrid-audiences/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG,GAAG,CAAA;AAEpB,QAAA,YAAY,GAAG,6CAA6C,CAAA;AAE5D,QAAA,eAAe,GAAG,6CAA6C,CAAA;AAE/D,QAAA,mBAAmB,GAAG,gDAAgD,CAAA;AAEtE,QAAA,6BAA6B,GACxC,0FAA0F,CAAA;AAE/E,QAAA,qBAAqB,GAAG,GAAG,CAAA;AAE3B,QAAA,wBAAwB,GAAG,8DAA8D,CAAA;AAEzF,QAAA,mBAAmB,GAAG,uDAAuD,CAAA;AAE7E,QAAA,qBAAqB,GAAG,EAAE,CAAA;AAE1B,QAAA,qBAAqB,GAAG,yDAAyD,CAAA;AAEjF,QAAA,UAAU,GAAG,mBAAmB,CAAA"}
@@ -1,4 +1,6 @@
1
- import type { AudienceDestinationDefinition } from '@segment/actions-core';
1
+ import { AudienceDestinationDefinition, RequestClient } from '@segment/actions-core';
2
2
  import type { Settings, AudienceSettings } from './generated-types';
3
3
  declare const destination: AudienceDestinationDefinition<Settings, AudienceSettings>;
4
+ export declare function getAudienceIdByName(request: RequestClient, name: string): Promise<string | undefined>;
5
+ export declare function getAudienceIdById(request: RequestClient, externalId: string): Promise<string | undefined>;
4
6
  export default destination;
@@ -3,6 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getAudienceIdById = exports.getAudienceIdByName = void 0;
7
+ const actions_core_1 = require("@segment/actions-core");
6
8
  const syncAudience_1 = __importDefault(require("./syncAudience"));
7
9
  const constants_1 = require("./constants");
8
10
  const destination = {
@@ -46,25 +48,56 @@ const destination = {
46
48
  full_audience_sync: false
47
49
  },
48
50
  async createAudience(request, createAudienceInput) {
49
- const response = await request(constants_1.CREATE_LIST_URL, {
50
- method: 'POST',
51
- throwHttpErrors: false,
52
- json: {
53
- name: createAudienceInput?.audienceSettings?.listName ?? createAudienceInput.audienceName
54
- }
55
- });
56
- const json = await response.json();
57
- return { externalId: json.id };
51
+ const name = createAudienceInput?.audienceSettings?.listName ?? createAudienceInput.audienceName;
52
+ const id = await getAudienceIdByName(request, name);
53
+ if (id) {
54
+ return { externalId: id };
55
+ }
56
+ else {
57
+ const response = await request(constants_1.CREATE_LIST_URL, {
58
+ method: 'POST',
59
+ throwHttpErrors: false,
60
+ json: {
61
+ name
62
+ }
63
+ });
64
+ const json = await response.json();
65
+ return { externalId: json.id };
66
+ }
58
67
  },
59
68
  async getAudience(_, getAudienceInput) {
60
- return {
61
- externalId: getAudienceInput.externalId
62
- };
69
+ const id = await getAudienceIdById(_, getAudienceInput.externalId);
70
+ if (id) {
71
+ return {
72
+ externalId: getAudienceInput.externalId
73
+ };
74
+ }
75
+ else {
76
+ throw new actions_core_1.IntegrationError(`Audience with externalId ${getAudienceInput.externalId} not found`, 'GET_AUDIENCE_ERROR', 404);
77
+ }
63
78
  }
64
79
  },
65
80
  actions: {
66
81
  syncAudience: syncAudience_1.default
67
82
  }
68
83
  };
84
+ async function getAudienceIdByName(request, name) {
85
+ const response = await request(constants_1.GET_LIST_URL, {
86
+ method: 'GET',
87
+ throwHttpErrors: false
88
+ });
89
+ const json = await response.json();
90
+ return json.result.find((list) => list.name === name)?.id ?? undefined;
91
+ }
92
+ exports.getAudienceIdByName = getAudienceIdByName;
93
+ async function getAudienceIdById(request, externalId) {
94
+ const response = await request(`${constants_1.GET_LIST_URL}/${externalId}`, {
95
+ method: 'GET',
96
+ throwHttpErrors: false
97
+ });
98
+ const json = await response.json();
99
+ return json.id === externalId ? externalId : undefined;
100
+ }
101
+ exports.getAudienceIdById = getAudienceIdById;
69
102
  exports.default = destination;
70
103
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/sendgrid-audiences/index.ts"],"names":[],"mappings":";;;;;AAEA,kEAAyC;AACzC,2CAA6C;AAG7C,MAAM,WAAW,GAA8D;IAC7E,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,iDAAiD;IAC9D,cAAc,EAAE;QACd,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE;YACN,cAAc,EAAE;gBACd,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,UAAU;gBAChB,WAAW,EAAE,wCAAwC;gBACrD,QAAQ,EAAE,IAAI;aACf;SACF;QACD,kBAAkB,EAAE,CAAC,OAAO,EAAE,EAAE;YAI9B,OAAO,OAAO,CAAC,0CAA0C,CAAC,CAAA;QAC5D,CAAC;KACF;IACD,aAAa,CAAC,EAAE,QAAQ,EAAE;QACxB,OAAO;YACL,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,QAAQ,CAAC,cAAc,EAAE;gBAClD,MAAM,EAAE,kBAAkB;aAC3B;SACF,CAAA;IACH,CAAC;IACD,cAAc,EAAE;QACd,QAAQ,EAAE;YACR,KAAK,EAAE,WAAW;YAClB,WAAW,EAAE,4FAA4F;YACzG,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,KAAK;SAChB;KACF;IACD,cAAc,EAAE;QACd,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,kBAAkB,EAAE,KAAK;SAC1B;QACD,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,mBAAmB;YAC/C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAqB,2BAAe,EAAE;gBAClE,MAAM,EAAE,MAAM;gBACd,eAAe,EAAE,KAAK;gBACtB,IAAI,EAAE;oBACJ,IAAI,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,QAAQ,IAAI,mBAAmB,CAAC,YAAY;iBACrE;aACvB,CAAC,CAAA;YACF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;YAClC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,CAAA;QAChC,CAAC;QACD,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,gBAAgB;YACnC,OAAO;gBACL,UAAU,EAAE,gBAAgB,CAAC,UAAU;aACxC,CAAA;QACH,CAAC;KACF;IACD,OAAO,EAAE;QACP,YAAY,EAAZ,sBAAY;KACb;CACF,CAAA;AAED,kBAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/sendgrid-audiences/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { RequestClient } from '@segment/actions-core';
2
2
  import { DynamicFieldResponse } from '@segment/actions-core';
3
3
  import { Payload } from './generated-types';
4
- export declare function dynamicCustomFields(request: RequestClient, payload: Payload): Promise<DynamicFieldResponse>;
4
+ import type { FieldType } from '../types';
5
+ export declare function dynamicCustomFields(request: RequestClient, payload: Payload, fieldType: FieldType): Promise<DynamicFieldResponse>;
@@ -2,31 +2,33 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.dynamicCustomFields = void 0;
4
4
  const constants_1 = require("../constants");
5
- async function dynamicCustomFields(request, payload) {
5
+ function createErrorResponse(message, code) {
6
+ return {
7
+ choices: [],
8
+ error: { message: message ?? 'Unknown error', code: code ?? '404' }
9
+ };
10
+ }
11
+ async function dynamicCustomFields(request, payload, fieldType) {
6
12
  try {
7
13
  const response = await request(constants_1.GET_CUSTOM_FIELDS_URL, {
8
14
  method: 'GET',
9
15
  skipResponseCloning: true
10
16
  });
11
- const allFields = response.data.custom_fields.map(field => field.name);
12
- const selectedFields = new Set(Object.keys(payload.custom_fields ?? {}));
13
- const availableFields = allFields.filter(field => !selectedFields.has(field));
17
+ const selected = new Set(Object.keys({ ...payload.custom_text_fields, ...payload.custom_number_fields, ...payload.custom_date_fields }));
18
+ const remainingFields = response.data.custom_fields.filter(field => field.field_type === fieldType).filter(field => !selected.has(field.name));
19
+ if (remainingFields.length === 0) {
20
+ return createErrorResponse(`No custom ${fieldType} fields available`);
21
+ }
14
22
  return {
15
- choices: availableFields.map(fieldName => ({
16
- label: fieldName,
17
- value: fieldName
23
+ choices: remainingFields.map(field => ({
24
+ label: field.name,
25
+ value: field.name
18
26
  }))
19
27
  };
20
28
  }
21
29
  catch (err) {
22
30
  const error = err;
23
- return {
24
- choices: [],
25
- error: {
26
- message: error.response.data.errors.map((e) => e.message).join(';') ?? 'Unknown error: dynamicCustomFields',
27
- code: String(error.response.status)
28
- }
29
- };
31
+ return createErrorResponse(error.response.data.errors.map((e) => e.message).join(';') ?? 'Unknown error: dynamicCustomFields', String(error.response.status));
30
32
  }
31
33
  }
32
34
  exports.dynamicCustomFields = dynamicCustomFields;
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-fields.js","sourceRoot":"","sources":["../../../../src/destinations/sendgrid-audiences/syncAudience/dynamic-fields.ts"],"names":[],"mappings":";;;AAGA,4CAAoD;AAG7C,KAAK,UAAU,mBAAmB,CAAC,OAAsB,EAAE,OAAgB;IAoB9E,IAAI;QACF,MAAM,QAAQ,GAAiB,MAAM,OAAO,CAAC,iCAAqB,EAAE;YAClE,MAAM,EAAE,KAAK;YACb,mBAAmB,EAAE,IAAI;SAC1B,CAAC,CAAA;QAEF,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACtE,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,CAAA;QACxE,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;QAE7E,OAAO;YACL,OAAO,EAAE,eAAe,CAAC,GAAG,CAC1B,SAAS,CAAC,EAAE,CAAC,CAAC;gBACZ,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,SAAS;aACjB,CAAC,CACH;SACF,CAAA;KAEF;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,KAAK,GAAG,GAAkB,CAAA;QAChC,OAAO;YACL,OAAO,EAAE,EAAE;YACX,KAAK,EAAE;gBACL,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAK,oCAAoC;gBAC5G,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;aACpC;SACF,CAAA;KACF;AACH,CAAC;AAjDH,kDAiDG"}
1
+ {"version":3,"file":"dynamic-fields.js","sourceRoot":"","sources":["../../../../src/destinations/sendgrid-audiences/syncAudience/dynamic-fields.ts"],"names":[],"mappings":";;;AAGA,4CAAoD;AAYpD,SAAS,mBAAmB,CAAC,OAAgB,EAAE,IAAa;IAC1D,OAAO;QACL,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE;KACpE,CAAA;AACH,CAAC;AAEM,KAAK,UAAU,mBAAmB,CAAC,OAAsB,EAAE,OAAgB,EAAE,SAAmB;IAoBnG,IAAI;QACF,MAAM,QAAQ,GAAiB,MAAM,OAAO,CAAC,iCAAqB,EAAE;YAClE,MAAM,EAAE,KAAK;YACb,mBAAmB,EAAE,IAAI;SAC1B,CAAC,CAAA;QAEF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAC,GAAG,OAAO,CAAC,kBAAkB,EAAE,GAAG,OAAO,CAAC,oBAAoB,EAAE,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAA;QACvI,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;QAE9I,IAAG,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/B,OAAO,mBAAmB,CAAC,aAAa,SAAS,mBAAmB,CAAC,CAAA;SACtE;QAED,OAAO;YACL,OAAO,EAAE,eAAe,CAAC,GAAG,CAC1B,KAAK,CAAC,EAAE,CAAC,CAAC;gBACR,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,KAAK,EAAE,KAAK,CAAC,IAAI;aAClB,CAAC,CACH;SACF,CAAA;KAEF;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,KAAK,GAAG,GAAkB,CAAA;QAChC,OAAO,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAK,oCAAoC,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;KAC/J;AACH,CAAC;AA9CH,kDA8CG"}
@@ -48,50 +48,47 @@ exports.fields = {
48
48
  }
49
49
  }
50
50
  },
51
- email: {
52
- label: 'Email Address',
53
- description: `The contact's email address.`,
54
- type: 'string',
55
- format: 'email',
56
- required: false,
57
- default: {
58
- '@if': {
59
- exists: { '@path': '$.traits.email' },
60
- then: { '@path': '$.traits.email' },
61
- else: { '@path': '$.properties.email' }
62
- }
63
- }
64
- },
65
- anonymous_id: {
66
- label: 'Anonymous ID',
67
- description: `The contact's anonymous ID.`,
68
- type: 'string',
69
- required: false,
70
- default: { '@path': '$.anonymousId' }
71
- },
72
- external_id: {
73
- label: 'External ID',
74
- description: `The contact's external ID.`,
75
- type: 'string',
76
- required: false,
77
- default: {
78
- '@if': {
79
- exists: { '@path': '$.traits.external_id' },
80
- then: { '@path': '$.traits.external_id' },
81
- else: { '@path': '$.properties.external_id' }
51
+ identifiers: {
52
+ label: 'Contact Identifiers',
53
+ description: `Identifiers for the Contact. At least one identifier must be provided.`,
54
+ type: 'object',
55
+ required: true,
56
+ defaultObjectUI: 'keyvalue:only',
57
+ additionalProperties: false,
58
+ properties: {
59
+ email: {
60
+ label: 'Email Address',
61
+ description: `The contact's email address.`,
62
+ type: 'string',
63
+ format: 'email',
64
+ required: false
65
+ },
66
+ anonymous_id: {
67
+ label: 'Anonymous ID',
68
+ description: `The contact's anonymous ID.`,
69
+ type: 'string',
70
+ required: false
71
+ },
72
+ external_id: {
73
+ label: 'External ID',
74
+ description: `The contact's external ID.`,
75
+ type: 'string',
76
+ required: false
77
+ },
78
+ phone_number_id: {
79
+ label: 'Phone Number ID',
80
+ description: `A Contact identifier in the form of a phone number in E.164 format.`,
81
+ type: 'string',
82
+ required: false
82
83
  }
83
- }
84
- },
85
- phone_number_id: {
86
- label: 'Phone Number ID',
87
- description: `The contact's primary phone number. Should include the country code e.g. +19876543213.`,
88
- type: 'string',
89
- required: false,
84
+ },
90
85
  default: {
91
- '@if': {
92
- exists: { '@path': '$.traits.phone' },
93
- then: { '@path': '$.traits.phone' },
94
- else: { '@path': '$.properties.phone' }
86
+ email: {
87
+ '@if': {
88
+ exists: { '@path': '$.traits.email' },
89
+ then: { '@path': '$.traits.email' },
90
+ else: { '@path': '$.properties.email' }
91
+ }
95
92
  }
96
93
  }
97
94
  },
@@ -113,6 +110,11 @@ exports.fields = {
113
110
  description: `The contact's last name.`,
114
111
  type: 'string'
115
112
  },
113
+ phone_number: {
114
+ label: 'Phone Number',
115
+ description: `The contact's phone number in E.164 format. This phone number is not treated as a Contact identifer (as the Phone Number ID is).`,
116
+ type: 'string'
117
+ },
116
118
  address_line_1: {
117
119
  label: 'Address Line 1',
118
120
  description: `The contact's address line 1.`,
@@ -159,6 +161,13 @@ exports.fields = {
159
161
  else: { '@path': '$.properties.last_name' }
160
162
  }
161
163
  },
164
+ phone_number: {
165
+ '@if': {
166
+ exists: { '@path': '$.traits.phone' },
167
+ then: { '@path': '$.traits.phone' },
168
+ else: { '@path': '$.properties.phone' }
169
+ }
170
+ },
162
171
  address_line_1: {
163
172
  '@if': {
164
173
  exists: { '@path': '$.traits.street' },
@@ -203,14 +212,35 @@ exports.fields = {
203
212
  }
204
213
  }
205
214
  },
206
- custom_fields: {
207
- label: 'Custom Fields',
208
- description: `Custom Field values to be added to the Contact. The Custom Fields must already be defined in Sendgrid. Custom Field values must be string, numbers or dates.`,
215
+ custom_text_fields: {
216
+ label: 'Custom Text Fields',
217
+ description: `Custom Text Field values to be added to the Contact. Values must be in in string format. The custom field must already exit in Sendgrid.`,
218
+ type: 'object',
219
+ required: false,
220
+ defaultObjectUI: 'keyvalue',
221
+ additionalProperties: true,
222
+ dynamic: true,
223
+ disabledInputMethods: ['literal', 'variable', 'function', 'freeform', 'enrichment']
224
+ },
225
+ custom_number_fields: {
226
+ label: 'Custom Number Fields',
227
+ description: `Custom Number Field values to be added to the Contact. Values must be inumeric. The custom field must already exit in Sendgrid.`,
228
+ type: 'object',
229
+ required: false,
230
+ defaultObjectUI: 'keyvalue',
231
+ additionalProperties: true,
232
+ dynamic: true,
233
+ disabledInputMethods: ['literal', 'variable', 'function', 'freeform', 'enrichment']
234
+ },
235
+ custom_date_fields: {
236
+ label: 'Custom Date Fields',
237
+ description: `Custom Date Field values to be added to the Contact. Values must be in ISO 8601 format. e.g. YYYY-MM-DD or YYYY-MM-DDTHH:mm:ss.sssZ. The custom field must already exit in Sendgrid.`,
209
238
  type: 'object',
210
239
  required: false,
211
240
  defaultObjectUI: 'keyvalue',
212
241
  additionalProperties: true,
213
- dynamic: true
242
+ dynamic: true,
243
+ disabledInputMethods: ['literal', 'variable', 'function', 'freeform', 'enrichment']
214
244
  },
215
245
  enable_batching: {
216
246
  type: 'boolean',
@@ -1 +1 @@
1
- {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../../src/destinations/sendgrid-audiences/syncAudience/fields.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../../src/destinations/sendgrid-audiences/syncAudience/fields.ts"],"names":[],"mappings":"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"}
@@ -5,13 +5,16 @@ export interface Payload {
5
5
  traits_or_props: {
6
6
  [k: string]: unknown;
7
7
  };
8
- email?: string;
9
- anonymous_id?: string;
10
- external_id?: string;
11
- phone_number_id?: string;
8
+ identifiers: {
9
+ email?: string;
10
+ anonymous_id?: string;
11
+ external_id?: string;
12
+ phone_number_id?: string;
13
+ };
12
14
  user_attributes?: {
13
15
  first_name?: string;
14
16
  last_name?: string;
17
+ phone_number?: string;
15
18
  address_line_1?: string;
16
19
  address_line_2?: string;
17
20
  city?: string;
@@ -19,7 +22,13 @@ export interface Payload {
19
22
  country?: string;
20
23
  postal_code?: string;
21
24
  };
22
- custom_fields?: {
25
+ custom_text_fields?: {
26
+ [k: string]: unknown;
27
+ };
28
+ custom_number_fields?: {
29
+ [k: string]: unknown;
30
+ };
31
+ custom_date_fields?: {
23
32
  [k: string]: unknown;
24
33
  };
25
34
  enable_batching: boolean;