@epilot/sdk 2.19.5 → 2.19.6
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/definitions/targeting.json +65 -2
- package/dist/apis/access-token.cjs +6 -6
- package/dist/apis/access-token.js +1 -1
- package/dist/apis/address-suggestions.cjs +6 -6
- package/dist/apis/address-suggestions.js +1 -1
- package/dist/apis/address.cjs +6 -6
- package/dist/apis/address.js +1 -1
- package/dist/apis/ai-agents.cjs +6 -6
- package/dist/apis/ai-agents.js +1 -1
- package/dist/apis/app.cjs +6 -6
- package/dist/apis/app.js +1 -1
- package/dist/apis/audit-logs.cjs +6 -6
- package/dist/apis/audit-logs.js +1 -1
- package/dist/apis/automation.cjs +6 -6
- package/dist/apis/automation.js +1 -1
- package/dist/apis/billing.cjs +6 -6
- package/dist/apis/billing.js +1 -1
- package/dist/apis/blueprint-manifest.cjs +6 -6
- package/dist/apis/blueprint-manifest.js +1 -1
- package/dist/apis/calendar.cjs +6 -6
- package/dist/apis/calendar.js +1 -1
- package/dist/apis/configuration-hub.cjs +6 -6
- package/dist/apis/configuration-hub.js +1 -1
- package/dist/apis/consent.cjs +6 -6
- package/dist/apis/consent.js +1 -1
- package/dist/apis/customer-portal.cjs +6 -6
- package/dist/apis/customer-portal.js +1 -1
- package/dist/apis/dashboard.cjs +6 -6
- package/dist/apis/dashboard.js +1 -1
- package/dist/apis/data-governance.cjs +6 -6
- package/dist/apis/data-governance.js +1 -1
- package/dist/apis/deduplication.cjs +6 -6
- package/dist/apis/deduplication.js +1 -1
- package/dist/apis/design.cjs +6 -6
- package/dist/apis/design.js +1 -1
- package/dist/apis/document.cjs +6 -6
- package/dist/apis/document.js +1 -1
- package/dist/apis/email-settings.cjs +6 -6
- package/dist/apis/email-settings.js +1 -1
- package/dist/apis/email-template.cjs +6 -6
- package/dist/apis/email-template.js +1 -1
- package/dist/apis/entity-mapping.cjs +6 -6
- package/dist/apis/entity-mapping.js +1 -1
- package/dist/apis/entity.cjs +6 -6
- package/dist/apis/entity.js +1 -1
- package/dist/apis/environments.cjs +6 -6
- package/dist/apis/environments.js +1 -1
- package/dist/apis/event-catalog.cjs +6 -6
- package/dist/apis/event-catalog.js +1 -1
- package/dist/apis/file.cjs +6 -6
- package/dist/apis/file.js +1 -1
- package/dist/apis/iban.cjs +6 -6
- package/dist/apis/iban.js +1 -1
- package/dist/apis/integration-toolkit.cjs +6 -6
- package/dist/apis/integration-toolkit.js +1 -1
- package/dist/apis/journey.cjs +6 -6
- package/dist/apis/journey.js +1 -1
- package/dist/apis/kanban.cjs +6 -6
- package/dist/apis/kanban.js +1 -1
- package/dist/apis/message.cjs +6 -6
- package/dist/apis/message.js +1 -1
- package/dist/apis/metering.cjs +6 -6
- package/dist/apis/metering.js +1 -1
- package/dist/apis/notes.cjs +6 -6
- package/dist/apis/notes.js +1 -1
- package/dist/apis/notification.cjs +6 -6
- package/dist/apis/notification.js +1 -1
- package/dist/apis/organization.cjs +6 -6
- package/dist/apis/organization.js +1 -1
- package/dist/apis/partner-directory.cjs +6 -6
- package/dist/apis/partner-directory.js +1 -1
- package/dist/apis/permissions.cjs +6 -6
- package/dist/apis/permissions.js +1 -1
- package/dist/apis/pricing-tier.cjs +6 -6
- package/dist/apis/pricing-tier.js +1 -1
- package/dist/apis/pricing.cjs +6 -6
- package/dist/apis/pricing.js +1 -1
- package/dist/apis/purpose.cjs +6 -6
- package/dist/apis/purpose.js +1 -1
- package/dist/apis/query.cjs +6 -6
- package/dist/apis/query.js +1 -1
- package/dist/apis/sandbox.cjs +6 -6
- package/dist/apis/sandbox.js +1 -1
- package/dist/apis/sharing.cjs +6 -6
- package/dist/apis/sharing.js +1 -1
- package/dist/apis/snapshot.cjs +6 -6
- package/dist/apis/snapshot.js +1 -1
- package/dist/apis/submission.cjs +6 -6
- package/dist/apis/submission.js +1 -1
- package/dist/apis/target.cjs +6 -6
- package/dist/apis/target.js +1 -1
- package/dist/apis/targeting.cjs +6 -6
- package/dist/apis/targeting.d.cts +2 -2
- package/dist/apis/targeting.d.ts +2 -2
- package/dist/apis/targeting.js +1 -1
- package/dist/apis/template-variables.cjs +6 -6
- package/dist/apis/template-variables.js +1 -1
- package/dist/apis/user.cjs +6 -6
- package/dist/apis/user.js +1 -1
- package/dist/apis/validation-rules.cjs +6 -6
- package/dist/apis/validation-rules.js +1 -1
- package/dist/apis/webhooks.cjs +6 -6
- package/dist/apis/webhooks.js +1 -1
- package/dist/apis/workflow-definition.cjs +6 -6
- package/dist/apis/workflow-definition.js +1 -1
- package/dist/apis/workflow.cjs +6 -6
- package/dist/apis/workflow.js +1 -1
- package/dist/{chunk-HWPPR3IM.js → chunk-2NCWQL55.js} +1 -1
- package/dist/{chunk-VB6VABGZ.cjs → chunk-QVK7PWME.cjs} +1 -1
- package/dist/index.cjs +8 -8
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/targeting-2JCGF4IR.cjs +7 -0
- package/dist/targeting-2NHAG7B5.js +7 -0
- package/dist/{targeting.d-KcawmWBB.d.cts → targeting.d-BYVSahmV.d.cts} +44 -1
- package/dist/{targeting.d-KcawmWBB.d.ts → targeting.d-BYVSahmV.d.ts} +44 -1
- package/docs/targeting.md +80 -1
- package/package.json +1 -1
- package/dist/targeting-5U4XGOXY.cjs +0 -7
- package/dist/targeting-R3G32HI4.js +0 -7
package/dist/apis/webhooks.js
CHANGED
|
@@ -6,25 +6,25 @@ var _chunkADX7IYB3cjs = require('../chunk-ADX7IYB3.cjs');
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _chunkQVK7PWMEcjs = require('../chunk-QVK7PWME.cjs');
|
|
10
10
|
require('../chunk-NJK5F5TF.cjs');
|
|
11
11
|
|
|
12
12
|
// src/apis/workflow-definition.ts
|
|
13
13
|
var loadDefinition = () => {
|
|
14
14
|
const mod = _chunkADX7IYB3cjs.require_workflow_definition_runtime.call(void 0, );
|
|
15
|
-
return
|
|
15
|
+
return _chunkQVK7PWMEcjs.expand.call(void 0, _nullishCoalesce(mod.default, () => ( mod)));
|
|
16
16
|
};
|
|
17
17
|
var _instance = null;
|
|
18
18
|
var resolve = () => {
|
|
19
19
|
if (!_instance) {
|
|
20
20
|
const def = loadDefinition();
|
|
21
|
-
_instance =
|
|
21
|
+
_instance = _chunkQVK7PWMEcjs.createApiClient.call(void 0, { definition: def, apiName: "workflowDefinition" });
|
|
22
22
|
}
|
|
23
23
|
return _instance;
|
|
24
24
|
};
|
|
25
|
-
var _handle =
|
|
25
|
+
var _handle = _chunkQVK7PWMEcjs.createApiHandle.call(void 0, {
|
|
26
26
|
resolveClient: resolve,
|
|
27
|
-
createClient: () =>
|
|
27
|
+
createClient: () => _chunkQVK7PWMEcjs.createApiClient.call(void 0, { definition: loadDefinition(), apiName: "workflowDefinition" }),
|
|
28
28
|
apiName: "workflowDefinition"
|
|
29
29
|
});
|
|
30
30
|
var getClient = _handle.getClient;
|
|
@@ -35,4 +35,4 @@ var workflowDefinition = _handle;
|
|
|
35
35
|
|
|
36
36
|
|
|
37
37
|
|
|
38
|
-
exports.authorize =
|
|
38
|
+
exports.authorize = _chunkQVK7PWMEcjs.authorize; exports.createClient = createClient; exports.getClient = getClient; exports.workflowDefinition = workflowDefinition;
|
package/dist/apis/workflow.cjs
CHANGED
|
@@ -6,25 +6,25 @@ var _chunkPM25LLETcjs = require('../chunk-PM25LLET.cjs');
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _chunkQVK7PWMEcjs = require('../chunk-QVK7PWME.cjs');
|
|
10
10
|
require('../chunk-NJK5F5TF.cjs');
|
|
11
11
|
|
|
12
12
|
// src/apis/workflow.ts
|
|
13
13
|
var loadDefinition = () => {
|
|
14
14
|
const mod = _chunkPM25LLETcjs.require_workflow_runtime.call(void 0, );
|
|
15
|
-
return
|
|
15
|
+
return _chunkQVK7PWMEcjs.expand.call(void 0, _nullishCoalesce(mod.default, () => ( mod)));
|
|
16
16
|
};
|
|
17
17
|
var _instance = null;
|
|
18
18
|
var resolve = () => {
|
|
19
19
|
if (!_instance) {
|
|
20
20
|
const def = loadDefinition();
|
|
21
|
-
_instance =
|
|
21
|
+
_instance = _chunkQVK7PWMEcjs.createApiClient.call(void 0, { definition: def, apiName: "workflow" });
|
|
22
22
|
}
|
|
23
23
|
return _instance;
|
|
24
24
|
};
|
|
25
|
-
var _handle =
|
|
25
|
+
var _handle = _chunkQVK7PWMEcjs.createApiHandle.call(void 0, {
|
|
26
26
|
resolveClient: resolve,
|
|
27
|
-
createClient: () =>
|
|
27
|
+
createClient: () => _chunkQVK7PWMEcjs.createApiClient.call(void 0, { definition: loadDefinition(), apiName: "workflow" }),
|
|
28
28
|
apiName: "workflow"
|
|
29
29
|
});
|
|
30
30
|
var getClient = _handle.getClient;
|
|
@@ -35,4 +35,4 @@ var workflow = _handle;
|
|
|
35
35
|
|
|
36
36
|
|
|
37
37
|
|
|
38
|
-
exports.authorize =
|
|
38
|
+
exports.authorize = _chunkQVK7PWMEcjs.authorize; exports.createClient = createClient; exports.getClient = getClient; exports.workflow = workflow;
|
package/dist/apis/workflow.js
CHANGED
|
@@ -75,7 +75,7 @@ var globImport_docs = __glob({
|
|
|
75
75
|
"./docs/snapshot.json": () => import("./snapshot-5XHTEB2U.js"),
|
|
76
76
|
"./docs/submission.json": () => import("./submission-7BISSPO6.js"),
|
|
77
77
|
"./docs/target.json": () => import("./target-5MKRXCHX.js"),
|
|
78
|
-
"./docs/targeting.json": () => import("./targeting-
|
|
78
|
+
"./docs/targeting.json": () => import("./targeting-2NHAG7B5.js"),
|
|
79
79
|
"./docs/template-variables.json": () => import("./template-variables-6CLOG67C.js"),
|
|
80
80
|
"./docs/user.json": () => import("./user-7W5JUUKB.js"),
|
|
81
81
|
"./docs/validation-rules.json": () => import("./validation-rules-B2KQKMLO.js"),
|
|
@@ -75,7 +75,7 @@ var globImport_docs = _chunkNJK5F5TFcjs.__glob.call(void 0, {
|
|
|
75
75
|
"./docs/snapshot.json": () => Promise.resolve().then(() => _interopRequireWildcard(require("./snapshot-NKK6BNQB.cjs"))),
|
|
76
76
|
"./docs/submission.json": () => Promise.resolve().then(() => _interopRequireWildcard(require("./submission-Q24BU4GS.cjs"))),
|
|
77
77
|
"./docs/target.json": () => Promise.resolve().then(() => _interopRequireWildcard(require("./target-3RS5BN2B.cjs"))),
|
|
78
|
-
"./docs/targeting.json": () => Promise.resolve().then(() => _interopRequireWildcard(require("./targeting-
|
|
78
|
+
"./docs/targeting.json": () => Promise.resolve().then(() => _interopRequireWildcard(require("./targeting-2JCGF4IR.cjs"))),
|
|
79
79
|
"./docs/template-variables.json": () => Promise.resolve().then(() => _interopRequireWildcard(require("./template-variables-I72B5WS6.cjs"))),
|
|
80
80
|
"./docs/user.json": () => Promise.resolve().then(() => _interopRequireWildcard(require("./user-DR7IAWFI.cjs"))),
|
|
81
81
|
"./docs/validation-rules.json": () => Promise.resolve().then(() => _interopRequireWildcard(require("./validation-rules-GR2IVLGJ.cjs"))),
|
package/dist/index.cjs
CHANGED
|
@@ -158,7 +158,7 @@ var _chunkADSWGLIVcjs = require('./chunk-ADSWGLIV.cjs');
|
|
|
158
158
|
|
|
159
159
|
|
|
160
160
|
|
|
161
|
-
var
|
|
161
|
+
var _chunkQVK7PWMEcjs = require('./chunk-QVK7PWME.cjs');
|
|
162
162
|
|
|
163
163
|
|
|
164
164
|
var _chunkNJK5F5TFcjs = require('./chunk-NJK5F5TF.cjs');
|
|
@@ -225,7 +225,7 @@ var resolveClient = (params) => {
|
|
|
225
225
|
}
|
|
226
226
|
if (!entry.instance) {
|
|
227
227
|
const definition = entry.loader();
|
|
228
|
-
entry.instance =
|
|
228
|
+
entry.instance = _chunkQVK7PWMEcjs.createApiClient.call(void 0, {
|
|
229
229
|
definition,
|
|
230
230
|
token: state.token,
|
|
231
231
|
headers: state.globalHeaders,
|
|
@@ -258,7 +258,7 @@ var resetAllClients = (registry) => {
|
|
|
258
258
|
};
|
|
259
259
|
|
|
260
260
|
// src/apis/_registry.ts
|
|
261
|
-
var expandDef = (mod) =>
|
|
261
|
+
var expandDef = (mod) => _chunkQVK7PWMEcjs.expand.call(void 0, _nullishCoalesce(mod.default, () => ( mod)));
|
|
262
262
|
var registerBuiltinApis = (registry) => {
|
|
263
263
|
registerApi({
|
|
264
264
|
registry,
|
|
@@ -601,9 +601,9 @@ var createSDK = () => {
|
|
|
601
601
|
const available = [...registry.keys()].join(", ");
|
|
602
602
|
throw new Error(`Unknown API: "${name}". Available: ${available}`);
|
|
603
603
|
}
|
|
604
|
-
return
|
|
604
|
+
return _chunkQVK7PWMEcjs.createApiHandle.call(void 0, {
|
|
605
605
|
resolveClient: () => resolveClient({ registry, name, state }),
|
|
606
|
-
createClient: () =>
|
|
606
|
+
createClient: () => _chunkQVK7PWMEcjs.createApiClient.call(void 0, { definition: entry.loader(), apiName: name }),
|
|
607
607
|
apiName: name
|
|
608
608
|
});
|
|
609
609
|
};
|
|
@@ -651,9 +651,9 @@ var createSDK = () => {
|
|
|
651
651
|
return interceptorUse;
|
|
652
652
|
}
|
|
653
653
|
case "help":
|
|
654
|
-
return (apiName) =>
|
|
654
|
+
return (apiName) => _chunkQVK7PWMEcjs.help.call(void 0, apiName);
|
|
655
655
|
case "openapi":
|
|
656
|
-
return (apiName) =>
|
|
656
|
+
return (apiName) => _chunkQVK7PWMEcjs.openapi.call(void 0, apiName);
|
|
657
657
|
case "then":
|
|
658
658
|
case "catch":
|
|
659
659
|
case "finally":
|
|
@@ -683,4 +683,4 @@ var epilot = createSDK();
|
|
|
683
683
|
|
|
684
684
|
|
|
685
685
|
|
|
686
|
-
exports.applyLargeResponseInterceptor = applyLargeResponseInterceptor; exports.applyRetryInterceptor = applyRetryInterceptor; exports.authorize =
|
|
686
|
+
exports.applyLargeResponseInterceptor = applyLargeResponseInterceptor; exports.applyRetryInterceptor = applyRetryInterceptor; exports.authorize = _chunkQVK7PWMEcjs.authorize; exports.createSDK = createSDK; exports.epilot = epilot; exports.help = _chunkQVK7PWMEcjs.help; exports.openapi = _chunkQVK7PWMEcjs.openapi;
|
package/dist/index.d.cts
CHANGED
|
@@ -47,7 +47,7 @@ import { C as Client$E } from './sandbox.d-BdbOFzDu.cjs';
|
|
|
47
47
|
import { C as Client$F } from './sharing.d-sOXq-gtz.cjs';
|
|
48
48
|
import { C as Client$G } from './snapshot.d-DT0zg2CS.cjs';
|
|
49
49
|
import { C as Client$H } from './submission.d-BamwfhXw.cjs';
|
|
50
|
-
import { C as Client$I } from './targeting.d-
|
|
50
|
+
import { C as Client$I } from './targeting.d-BYVSahmV.cjs';
|
|
51
51
|
import { C as Client$J } from './template-variables.d-Ble9TSBa.cjs';
|
|
52
52
|
import { C as Client$K } from './user.d-rqYtwsCz.cjs';
|
|
53
53
|
import { C as Client$L } from './validation-rules.d-CvGvBnMX.cjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -47,7 +47,7 @@ import { C as Client$E } from './sandbox.d-BdbOFzDu.js';
|
|
|
47
47
|
import { C as Client$F } from './sharing.d-sOXq-gtz.js';
|
|
48
48
|
import { C as Client$G } from './snapshot.d-DT0zg2CS.js';
|
|
49
49
|
import { C as Client$H } from './submission.d-BamwfhXw.js';
|
|
50
|
-
import { C as Client$I } from './targeting.d-
|
|
50
|
+
import { C as Client$I } from './targeting.d-BYVSahmV.js';
|
|
51
51
|
import { C as Client$J } from './template-variables.d-Ble9TSBa.js';
|
|
52
52
|
import { C as Client$K } from './user.d-rqYtwsCz.js';
|
|
53
53
|
import { C as Client$L } from './validation-rules.d-CvGvBnMX.js';
|
package/dist/index.js
CHANGED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-NJK5F5TF.cjs');
|
|
2
|
+
|
|
3
|
+
// src/docs/targeting.json
|
|
4
|
+
var targeting_default = '# Targeting API\n\n- **Base URL:** `https://targeting.sls.epilot.io`\n- **Full API Docs:** [https://docs.epilot.io/api/targeting](https://docs.epilot.io/api/targeting)\n\n## Usage\n\n```ts\nimport { epilot } from \'@epilot/sdk\'\n\nepilot.authorize(() => \'<token>\')\nconst { data } = await epilot.targeting.changeCampaignStatus(...)\n```\n\n### Tree-shakeable import\n\n```ts\nimport { getClient, authorize } from \'@epilot/sdk/targeting\'\n\nconst targetingClient = getClient()\nauthorize(targetingClient, () => \'<token>\')\nconst { data } = await targetingClient.changeCampaignStatus(...)\n```\n\n## Operations\n\n**Campaign**\n- [`changeCampaignStatus`](#changecampaignstatus)\n- [`getCampaignJobStatus`](#getcampaignjobstatus)\n- [`getCampaignPortals`](#getcampaignportals)\n- [`setupCampaign`](#setupcampaign)\n- [`matchCampaigns`](#matchcampaigns)\n- [`discoverCampaigns`](#discovercampaigns)\n\n**Campaign Delivery**\n- [`retriggerCampaignAutomations`](#retriggercampaignautomations)\n\n**Target**\n- [`matchTargets`](#matchtargets)\n- [`getTargetQueries`](#gettargetqueries)\n\n**Campaign Recipient**\n- [`createRecipient`](#createrecipient)\n- [`updateRecipient`](#updaterecipient)\n- [`updateRecipientPortalStatus`](#updaterecipientportalstatus)\n- [`updateRecipientEntityUiStatus`](#updaterecipiententityuistatus)\n- [`restoreRecipientEntityUiStatus`](#restorerecipiententityuistatus)\n- [`getRecipients`](#getrecipients)\n- [`getEmailStats`](#getemailstats)\n\n**Schemas**\n- [`BaseError`](#baseerror)\n- [`ServerError`](#servererror)\n- [`ClientError`](#clienterror)\n- [`BaseUUID`](#baseuuid)\n- [`BaseNanoID`](#basenanoid)\n- [`BaseTags`](#basetags)\n- [`BaseRelation`](#baserelation)\n- [`BaseSystemId`](#basesystemid)\n- [`BaseEntityOwner`](#baseentityowner)\n- [`BaseEntityAcl`](#baseentityacl)\n- [`BaseSystemFields`](#basesystemfields)\n- [`BaseSystemFieldsRequired`](#basesystemfieldsrequired)\n- [`CampaignStatus`](#campaignstatus)\n- [`ExecutionSummaryItem`](#executionsummaryitem)\n- [`JobStatus`](#jobstatus)\n- [`Campaign`](#campaign)\n- [`Target`](#target)\n- [`MatchCampaignParams`](#matchcampaignparams)\n- [`NextBestAction`](#nextbestaction)\n- [`DiscoverCampaignsParams`](#discovercampaignsparams)\n- [`DiscoverResult`](#discoverresult)\n- [`MatchTargetParams`](#matchtargetparams)\n- [`GetTargetQueriesParams`](#gettargetqueriesparams)\n- [`TargetQueryResult`](#targetqueryresult)\n- [`AutomationStatus`](#automationstatus)\n- [`PortalStatus`](#portalstatus)\n- [`EntityUiStatus`](#entityuistatus)\n- [`EmailStatus`](#emailstatus)\n- [`EmailBounceType`](#emailbouncetype)\n- [`Recipient`](#recipient)\n- [`BaseRecipientPayload`](#baserecipientpayload)\n- [`AutomationRecipientPayload`](#automationrecipientpayload)\n- [`PortalRecipientPayload`](#portalrecipientpayload)\n- [`CreateRecipientPayload`](#createrecipientpayload)\n- [`UpdateRecipientPayload`](#updaterecipientpayload)\n- [`RetriggerAutomationsRequest`](#retriggerautomationsrequest)\n- [`RetriggerAutomationsResult`](#retriggerautomationsresult)\n- [`UpdatePortalStatusRequest`](#updateportalstatusrequest)\n- [`UpdateEntityUiStatusRequest`](#updateentityuistatusrequest)\n- [`SetupCampaignRequest`](#setupcampaignrequest)\n- [`SetupTariffChangeCampaignRequest`](#setuptariffchangecampaignrequest)\n- [`SetupTariffChangeCampaignResponse`](#setuptariffchangecampaignresponse)\n\n### `changeCampaignStatus`\n\nChange the status of a campaign to a desired status.\n\n`POST /v1/campaign/{campaign_id}/status`\n\n```ts\nconst { data } = await client.changeCampaignStatus({\n campaign_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "campaign": {\n "_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84",\n "_org": "string",\n "_owners": [\n {\n "org_id": "123",\n "user_id": "123"\n }\n ],\n "_schema": "string",\n "_title": "string",\n "_tags": ["string"],\n "_created_at": "1970-01-01T00:00:00.000Z",\n "_updated_at": "1970-01-01T00:00:00.000Z",\n "_acl": {\n "view": ["org:456"],\n "edit": ["org:456"],\n "delete": ["org:456"]\n },\n "name": "string",\n "goal": "string",\n "status": "draft",\n "start_date": "1970-01-01",\n "end_date": "1970-01-01",\n "flow_id": "string",\n "job_id": "string",\n "target": {\n "$relation": [\n {\n "entity_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84",\n "_tags": ["string"]\n }\n ]\n }\n }\n}\n```\n\n</details>\n\n---\n\n### `getCampaignJobStatus`\n\nGet the status of a campaign\'s automation job\n\n`GET /v1/campaign/{campaign_id}/job`\n\n```ts\nconst { data } = await client.getCampaignJobStatus({\n campaign_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "status": "queued",\n "execution_summary": [\n {\n "execution_id": "string",\n "execution_status": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getCampaignPortals`\n\nGet the list of portals and its widgets where the campaign is used.\n\n`GET /v1/campaign/{campaign_id}/portals`\n\n```ts\nconst { data } = await client.getCampaignPortals({\n campaign_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n[\n {\n "portal": {\n "origin": "string",\n "domain": "string",\n "name": "string"\n },\n "widgets": [\n {\n "id": "string",\n "headline": {\n "en": "string",\n "de": "string"\n }\n }\n ]\n }\n]\n```\n\n</details>\n\n---\n\n### `retriggerCampaignAutomations`\n\nRetrigger automation executions for specific campaign recipients that have failed.\n\n`POST /v1/campaign/{campaign_id}/automations:retrigger`\n\n```ts\nconst { data } = await client.retriggerCampaignAutomations(\n {\n campaign_id: \'example\',\n },\n {\n recipient_ids: [\'3fa85f64-5717-4562-b3fc-2c963f66afa6\']\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "message": "string",\n "results": [\n {\n "recipient_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "result": "success",\n "execution_id": "string",\n "error": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `setupCampaign`\n\nCreates a `campaign` entity together with its related entities and configurations in a single call.\nUsed by the campaign wizard UI, but not restricted to it.\n\n`POST /v1/campaign:setup`\n\n```ts\nconst { data } = await client.setupCampaign(\n null,\n {\n type: \'tariff_change\',\n product_recommendation: {\n name: \'string\',\n source_product_id: \'b8c01433-5556-4e2b-aad4-6f5348d1df84\',\n source_price_id: \'b8c01433-5556-4e2b-aad4-6f5348d1df84\',\n offers: [\n {\n target_id: \'b8c01433-5556-4e2b-aad4-6f5348d1df84\',\n items: [\n {\n product_id: \'b8c01433-5556-4e2b-aad4-6f5348d1df84\',\n price_id: \'b8c01433-5556-4e2b-aad4-6f5348d1df84\',\n highlight_config: {}\n }\n ]\n }\n ]\n },\n campaign: {\n name: \'string\',\n goal: \'string\',\n target_ids: [\'b8c01433-5556-4e2b-aad4-6f5348d1df84\']\n },\n journey: {\n journey_id: \'b8c01433-5556-4e2b-aad4-6f5348d1df84\'\n },\n channels: {\n portal_widget: {\n portal_id: \'b8c01433-5556-4e2b-aad4-6f5348d1df84\',\n block_id: \'b8c01433-5556-4e2b-aad4-6f5348d1df84\'\n },\n email: {\n automation_id: \'b8c01433-5556-4e2b-aad4-6f5348d1df84\',\n template_id: \'b8c01433-5556-4e2b-aad4-6f5348d1df84\'\n }\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "type": "tariff_change",\n "product_recommendation_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84",\n "campaign_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84",\n "journey_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84",\n "portal_widget_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84"\n}\n```\n\n</details>\n\n---\n\n### `matchCampaigns`\n\nMatch campaigns based on target entities.\n\n`POST /v1/campaign:match`\n\n```ts\nconst { data } = await client.matchCampaigns(\n null,\n {\n entity_refs: [\n {\n entity_id: \'b8c01433-5556-4e2b-aad4-6f5348d1df84\',\n entity_schema: \'string\'\n }\n ],\n campaign_ids: [\'b8c01433-5556-4e2b-aad4-6f5348d1df84\']\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "hits": 0,\n "results": [\n {\n "campaign": {\n "_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84",\n "_org": "string",\n "_owners": [\n {\n "org_id": "123",\n "user_id": "123"\n }\n ],\n "_schema": "string",\n "_title": "string",\n "_tags": ["string"],\n "_created_at": "1970-01-01T00:00:00.000Z",\n "_updated_at": "1970-01-01T00:00:00.000Z",\n "_acl": {\n "view": ["org:456"],\n "edit": ["org:456"],\n "delete": ["org:456"]\n },\n "name": "string",\n "goal": "string",\n "status": "draft",\n "start_date": "1970-01-01",\n "end_date": "1970-01-01",\n "flow_id": "string",\n "job_id": "string",\n "target": {\n "$relation": [\n {\n "entity_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84",\n "_tags": ["string"]\n }\n ]\n }\n }\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `discoverCampaigns`\n\nGiven an entity, returns the Next Best Actions it should see on the Entity-UI channel.\n\n`POST /v1/campaign:discover`\n\n```ts\nconst { data } = await client.discoverCampaigns(\n null,\n {\n entity_id: \'b8c01433-5556-4e2b-aad4-6f5348d1df84\',\n entity_schema: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "hits": 0,\n "results": [\n {\n "campaign_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84",\n "nba": {\n "category": "string",\n "icon": {\n "name": "string",\n "color": "string"\n },\n "title": "string",\n "body": "string",\n "priority": "medium",\n "is_dismissable": true,\n "cta": {\n "type": "journey",\n "target": "string",\n "context_params": [\n {\n "key": "string",\n "value": "string"\n }\n ]\n }\n },\n "status": "seen",\n "status_updated_at": "1970-01-01T00:00:00.000Z"\n }\n ],\n "dismissed": [\n {\n "campaign_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84",\n "nba": {\n "category": "string",\n "icon": {\n "name": "string",\n "color": "string"\n },\n "title": "string",\n "body": "string",\n "priority": "medium",\n "is_dismissable": true,\n "cta": {\n "type": "journey",\n "target": "string",\n "context_params": [\n {\n "key": "string",\n "value": "string"\n }\n ]\n }\n },\n "status": "seen",\n "status_updated_at": "1970-01-01T00:00:00.000Z"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `matchTargets`\n\nFind targets from the provided list that include the provide entities.\n\n`POST /v1/target:match`\n\n```ts\nconst { data } = await client.matchTargets(\n null,\n {\n entity_refs: [\n {\n entity_id: \'b8c01433-5556-4e2b-aad4-6f5348d1df84\',\n entity_schema: \'string\'\n }\n ],\n target_ids: [\'b8c01433-5556-4e2b-aad4-6f5348d1df84\']\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "hits": 0,\n "results": [\n {\n "target": {\n "_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84",\n "_org": "string",\n "_owners": [\n {\n "org_id": "123",\n "user_id": "123"\n }\n ],\n "_schema": "string",\n "_title": "string",\n "_tags": ["string"],\n "_created_at": "1970-01-01T00:00:00.000Z",\n "_updated_at": "1970-01-01T00:00:00.000Z",\n "_acl": {\n "view": ["org:456"],\n "edit": ["org:456"],\n "delete": ["org:456"]\n },\n "name": "string",\n "description": "string",\n "entity_schema": "string",\n "entity_filters": {}\n }\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getTargetQueries`\n\nTransform target filters into Lucene queries for the provided target IDs.\nReturns the transformed query string for each target along with any errors encountered.\n\n`POST /v1/target/queries`\n\n```ts\nconst { data } = await client.getTargetQueries(\n null,\n {\n target_ids: [\'b8c01433-5556-4e2b-aad4-6f5348d1df84\']\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "results": [\n {\n "target_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84",\n "query": "string",\n "error": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `createRecipient`\n\nCreates a new recipient associated with a campaign.\n\n`POST /v1/campaign/{campaign_id}/recipient`\n\n```ts\nconst { data } = await client.createRecipient(\n {\n campaign_id: \'example\',\n },\n {\n entity_id: \'b8c01433-5556-4e2b-aad4-6f5348d1df84\',\n entity_schema: \'string\',\n automation_status: \'pending\',\n automation_execution_id: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "entity_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84",\n "entity_schema": "string",\n "title": "string",\n "automation_status": "pending",\n "automation_execution_id": "string",\n "portal_status": "sent",\n "portal_status_updated_at": "1970-01-01T00:00:00.000Z",\n "portal_state": {},\n "entity_ui_status": "seen",\n "entity_ui_status_updated_at": "1970-01-01T00:00:00.000Z",\n "entity_ui_status_before_dismiss": "seen",\n "message_entity_id": "string",\n "email_status": "sent",\n "email_status_updated_at": "1970-01-01T00:00:00.000Z",\n "email_bounce_type": "permanent",\n "email_bounce_subtype": "string",\n "email_complaint_type": "string",\n "email_bounce_reason": "string",\n "email_send_error": {},\n "email_unsubscribed_at": "1970-01-01T00:00:00.000Z",\n "email_open_count": 0,\n "email_first_opened_at": "1970-01-01T00:00:00.000Z",\n "email_last_opened_at": "1970-01-01T00:00:00.000Z",\n "email_click_count": 0,\n "email_first_clicked_at": "1970-01-01T00:00:00.000Z",\n "email_clicked_links": [\n {\n "url": "string",\n "clicked_at": "1970-01-01T00:00:00.000Z"\n }\n ],\n "updated_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `updateRecipient`\n\nUpdates a recipient\'s attributes.\n\n`PATCH /v1/campaign/{campaign_id}/recipient/{recipient_id}`\n\n```ts\nconst { data } = await client.updateRecipient(\n {\n campaign_id: \'example\',\n recipient_id: \'example\',\n },\n {\n automation_status: \'pending\',\n automation_execution_id: \'string\',\n portal_status: \'sent\',\n portal_state: {}\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "entity_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84",\n "entity_schema": "string",\n "title": "string",\n "automation_status": "pending",\n "automation_execution_id": "string",\n "portal_status": "sent",\n "portal_status_updated_at": "1970-01-01T00:00:00.000Z",\n "portal_state": {},\n "entity_ui_status": "seen",\n "entity_ui_status_updated_at": "1970-01-01T00:00:00.000Z",\n "entity_ui_status_before_dismiss": "seen",\n "message_entity_id": "string",\n "email_status": "sent",\n "email_status_updated_at": "1970-01-01T00:00:00.000Z",\n "email_bounce_type": "permanent",\n "email_bounce_subtype": "string",\n "email_complaint_type": "string",\n "email_bounce_reason": "string",\n "email_send_error": {},\n "email_unsubscribed_at": "1970-01-01T00:00:00.000Z",\n "email_open_count": 0,\n "email_first_opened_at": "1970-01-01T00:00:00.000Z",\n "email_last_opened_at": "1970-01-01T00:00:00.000Z",\n "email_click_count": 0,\n "email_first_clicked_at": "1970-01-01T00:00:00.000Z",\n "email_clicked_links": [\n {\n "url": "string",\n "clicked_at": "1970-01-01T00:00:00.000Z"\n }\n ],\n "updated_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `updateRecipientPortalStatus`\n\nUpdates the portal status for a specific campaign recipient.\nThe portal_status_updated_at timestamp is automatically set when the status changes.\n\n`PATCH /v1/campaign/{campaign_id}/recipient/{recipient_id}/portal:status`\n\n```ts\nconst { data } = await client.updateRecipientPortalStatus(\n {\n campaign_id: \'example\',\n recipient_id: \'example\',\n },\n {\n status: \'sent\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "entity_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84",\n "entity_schema": "string",\n "title": "string",\n "automation_status": "pending",\n "automation_execution_id": "string",\n "portal_status": "sent",\n "portal_status_updated_at": "1970-01-01T00:00:00.000Z",\n "portal_state": {},\n "entity_ui_status": "seen",\n "entity_ui_status_updated_at": "1970-01-01T00:00:00.000Z",\n "entity_ui_status_before_dismiss": "seen",\n "message_entity_id": "string",\n "email_status": "sent",\n "email_status_updated_at": "1970-01-01T00:00:00.000Z",\n "email_bounce_type": "permanent",\n "email_bounce_subtype": "string",\n "email_complaint_type": "string",\n "email_bounce_reason": "string",\n "email_send_error": {},\n "email_unsubscribed_at": "1970-01-01T00:00:00.000Z",\n "email_open_count": 0,\n "email_first_opened_at": "1970-01-01T00:00:00.000Z",\n "email_last_opened_at": "1970-01-01T00:00:00.000Z",\n "email_click_count": 0,\n "email_first_clicked_at": "1970-01-01T00:00:00.000Z",\n "email_clicked_links": [\n {\n "url": "string",\n "clicked_at": "1970-01-01T00:00:00.000Z"\n }\n ],\n "updated_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `updateRecipientEntityUiStatus`\n\nRecords a Next Best Action interaction for a recipient on the Entity-UI channel.\n\n`PATCH /v1/campaign/{campaign_id}/recipient/{recipient_id}/entity_ui:status`\n\n```ts\nconst { data } = await client.updateRecipientEntityUiStatus(\n {\n campaign_id: \'example\',\n recipient_id: \'example\',\n },\n {\n status: \'seen\',\n entity_schema: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "entity_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84",\n "entity_schema": "string",\n "title": "string",\n "automation_status": "pending",\n "automation_execution_id": "string",\n "portal_status": "sent",\n "portal_status_updated_at": "1970-01-01T00:00:00.000Z",\n "portal_state": {},\n "entity_ui_status": "seen",\n "entity_ui_status_updated_at": "1970-01-01T00:00:00.000Z",\n "entity_ui_status_before_dismiss": "seen",\n "message_entity_id": "string",\n "email_status": "sent",\n "email_status_updated_at": "1970-01-01T00:00:00.000Z",\n "email_bounce_type": "permanent",\n "email_bounce_subtype": "string",\n "email_complaint_type": "string",\n "email_bounce_reason": "string",\n "email_send_error": {},\n "email_unsubscribed_at": "1970-01-01T00:00:00.000Z",\n "email_open_count": 0,\n "email_first_opened_at": "1970-01-01T00:00:00.000Z",\n "email_last_opened_at": "1970-01-01T00:00:00.000Z",\n "email_click_count": 0,\n "email_first_clicked_at": "1970-01-01T00:00:00.000Z",\n "email_clicked_links": [\n {\n "url": "string",\n "clicked_at": "1970-01-01T00:00:00.000Z"\n }\n ],\n "updated_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `restoreRecipientEntityUiStatus`\n\nUndo a dismissal on the Entity-UI (Next Best Action) channel\n\n`POST /v1/campaign/{campaign_id}/recipient/{recipient_id}/entity_ui:restore`\n\n```ts\nconst { data } = await client.restoreRecipientEntityUiStatus({\n campaign_id: \'example\',\n recipient_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "entity_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84",\n "entity_schema": "string",\n "title": "string",\n "automation_status": "pending",\n "automation_execution_id": "string",\n "portal_status": "sent",\n "portal_status_updated_at": "1970-01-01T00:00:00.000Z",\n "portal_state": {},\n "entity_ui_status": "seen",\n "entity_ui_status_updated_at": "1970-01-01T00:00:00.000Z",\n "entity_ui_status_before_dismiss": "seen",\n "message_entity_id": "string",\n "email_status": "sent",\n "email_status_updated_at": "1970-01-01T00:00:00.000Z",\n "email_bounce_type": "permanent",\n "email_bounce_subtype": "string",\n "email_complaint_type": "string",\n "email_bounce_reason": "string",\n "email_send_error": {},\n "email_unsubscribed_at": "1970-01-01T00:00:00.000Z",\n "email_open_count": 0,\n "email_first_opened_at": "1970-01-01T00:00:00.000Z",\n "email_last_opened_at": "1970-01-01T00:00:00.000Z",\n "email_click_count": 0,\n "email_first_clicked_at": "1970-01-01T00:00:00.000Z",\n "email_clicked_links": [\n {\n "url": "string",\n "clicked_at": "1970-01-01T00:00:00.000Z"\n }\n ],\n "updated_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `getRecipients`\n\nGet a paginated list of recipients for a campaign.\n\n`GET /v1/campaign/{campaign_id}/recipients`\n\n```ts\nconst { data } = await client.getRecipients({\n campaign_id: \'example\',\n limit: 1,\n next: \'example\',\n q: \'example\',\n automation_status: [\'...\'],\n portal_status: \'example\',\n email_status: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "results": [\n {\n "entity_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84",\n "entity_schema": "string",\n "title": "string",\n "automation_status": "pending",\n "automation_execution_id": "string",\n "portal_status": "sent",\n "portal_status_updated_at": "1970-01-01T00:00:00.000Z",\n "portal_state": {},\n "entity_ui_status": "seen",\n "entity_ui_status_updated_at": "1970-01-01T00:00:00.000Z",\n "entity_ui_status_before_dismiss": "seen",\n "message_entity_id": "string",\n "email_status": "sent",\n "email_status_updated_at": "1970-01-01T00:00:00.000Z",\n "email_bounce_type": "permanent",\n "email_bounce_subtype": "string",\n "email_complaint_type": "string",\n "email_bounce_reason": "string",\n "email_send_error": {},\n "email_unsubscribed_at": "1970-01-01T00:00:00.000Z",\n "email_open_count": 0,\n "email_first_opened_at": "1970-01-01T00:00:00.000Z",\n "email_last_opened_at": "1970-01-01T00:00:00.000Z",\n "email_click_count": 0,\n "email_first_clicked_at": "1970-01-01T00:00:00.000Z",\n "email_clicked_links": [\n {\n "url": "string",\n "clicked_at": "1970-01-01T00:00:00.000Z"\n }\n ],\n "updated_at": "1970-01-01T00:00:00.000Z"\n }\n ],\n "next": "string",\n "total": 0\n}\n```\n\n</details>\n\n---\n\n### `getEmailStats`\n\nAggregate email delivery counts for a campaign, for the KPI summary on the campaign UI.\nCounts cover the email (automation) channel only; `total_emailed` is the number of\nrecipients with a recorded em\n\n`GET /v1/campaign/{campaign_id}/email-stats`\n\n```ts\nconst { data } = await client.getEmailStats({\n campaign_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "total_emailed": 0,\n "sent": 0,\n "delivered": 0,\n "bounced": 0,\n "bounced_hard": 0,\n "bounced_soft": 0,\n "complained": 0,\n "failed": 0,\n "unsubscribed": 0,\n "opened": 0,\n "clicked": 0,\n "total_opens": 0,\n "total_clicks": 0\n}\n```\n\n</details>\n\n---\n\n## Schemas\n\n### `BaseError`\n\n```ts\ntype BaseError = {\n status: number\n message: string\n}\n```\n\n### `ServerError`\n\n```ts\ntype ServerError = {\n status: number\n message: string\n}\n```\n\n### `ClientError`\n\nDescribes the structure of a client error response, which can be one of several types:\n1. `MessageError`: Contains a \'message\' field for general descriptive errors.\n2. `CodeError`: Contains a \'code\' field for specific, machine-readable error codes.\n3. `StatusedError`: Contains \'error\' and \'status\' f\n\n```ts\ntype ClientError = {\n message: string\n} | {\n code: "CAMPAIGN_NOT_FOUND" | "CAMPAIGN_HAS_NO_TARGET" | "CAMPAIGN_HAS_NO_DELIVERY_METHOD" | "INVALID_NEXT_BEST_ACTION" | "CAMPAIGN_HAS_JOB_IN_PROGRESS" | "CAMPAIGN_HAS_UNEXPECTED_STATUS" | "JOB_TOKEN_MISSING" | "TARGET_WITHOUT_FILTERS"\n} | {\n error: string\n status: number\n}\n```\n\n### `BaseUUID`\n\n```ts\ntype BaseUUID = string // uuid\n```\n\n### `BaseNanoID`\n\n```ts\ntype BaseNanoID = string\n```\n\n### `BaseTags`\n\n```ts\ntype BaseTags = string[]\n```\n\n### `BaseRelation`\n\n```ts\ntype BaseRelation = {\n $relation?: Array<{\n entity_id?: string // uuid\n _tags?: string[]\n }>\n}\n```\n\n### `BaseSystemId`\n\n```ts\ntype BaseSystemId = {\n _id: string // uuid\n}\n```\n\n### `BaseEntityOwner`\n\nThe user / organization owning this entity.\n\nNote: Owner implicitly has access to the entity regardless of ACLs.\n\n\n```ts\ntype BaseEntityOwner = {\n org_id: string\n user_id?: string\n}\n```\n\n### `BaseEntityAcl`\n\nAccess control list (ACL) for an entity. Defines sharing access to external orgs or users.\n\n```ts\ntype BaseEntityAcl = {\n view?: string[]\n edit?: string[]\n delete?: string[]\n}\n```\n\n### `BaseSystemFields`\n\n```ts\ntype BaseSystemFields = {\n _id?: string // uuid\n _org?: string\n _owners?: Array<{\n org_id: string\n user_id?: string\n }>\n _schema?: string\n _title?: string\n _tags?: string[]\n _created_at?: string // date-time\n _updated_at?: string // date-time\n _acl?: {\n view?: string[]\n edit?: string[]\n delete?: string[]\n }\n}\n```\n\n### `BaseSystemFieldsRequired`\n\n```ts\ntype BaseSystemFieldsRequired = object\n```\n\n### `CampaignStatus`\n\n```ts\ntype CampaignStatus = "draft" | "activating" | "active" | "inactive"\n```\n\n### `ExecutionSummaryItem`\n\n```ts\ntype ExecutionSummaryItem = {\n execution_id?: string\n execution_status?: string\n}\n```\n\n### `JobStatus`\n\n```ts\ntype JobStatus = {\n status?: "queued" | "processing" | "finished" | "failed" | "cancelled" | "send_report"\n execution_summary?: Array<{\n execution_id?: string\n execution_status?: string\n }>\n}\n```\n\n### `Campaign`\n\n```ts\ntype Campaign = {\n _id?: string // uuid\n _org?: string\n _owners?: Array<{\n org_id: string\n user_id?: string\n }>\n _schema?: string\n _title?: string\n _tags?: string[]\n _created_at?: string // date-time\n _updated_at?: string // date-time\n _acl?: {\n view?: string[]\n edit?: string[]\n delete?: string[]\n }\n name?: string\n goal?: string\n status?: "draft" | "activating" | "active" | "inactive"\n start_date?: string // date\n end_date?: string // date\n flow_id?: string\n job_id?: string\n target?: {\n $relation?: Array<{\n entity_id?: { ... }\n _tags?: { ... }\n }>\n }\n}\n```\n\n### `Target`\n\n```ts\ntype Target = {\n _id?: string // uuid\n _org?: string\n _owners?: Array<{\n org_id: string\n user_id?: string\n }>\n _schema?: string\n _title?: string\n _tags?: string[]\n _created_at?: string // date-time\n _updated_at?: string // date-time\n _acl?: {\n view?: string[]\n edit?: string[]\n delete?: string[]\n }\n name?: string\n description?: string\n entity_schema?: string\n entity_filters?: Record<string, unknown>\n}\n```\n\n### `MatchCampaignParams`\n\n```ts\ntype MatchCampaignParams = {\n entity_refs: Array<{\n entity_id: string // uuid\n entity_schema: string\n }>\n campaign_ids: string // uuid[]\n}\n```\n\n### `NextBestAction`\n\nA Next Best Action configured on a campaign\'s Entity-UI channel.\nThis is the canonical NBA contract shared by discovery (this API), authoring, and rendering.\nNBA content is single-language in v1; text fields may contain `{{placeholders}}` resolved at render time.\n\n\n```ts\ntype NextBestAction = {\n category?: string\n icon?: {\n name: string\n color?: string\n }\n title: string\n body?: string\n priority?: "low" | "medium" | "high"\n is_dismissable?: boolean\n cta: {\n type: "journey" | "workflow" | "flow"\n target: string\n context_params?: Array<{\n key: { ... }\n value: { ... }\n }>\n }\n}\n```\n\n### `DiscoverCampaignsParams`\n\n```ts\ntype DiscoverCampaignsParams = {\n entity_id: string // uuid\n entity_schema: string\n}\n```\n\n### `DiscoverResult`\n\nOne discovered Next Best Action, plus this entity\'s interaction state for it.\n\n```ts\ntype DiscoverResult = {\n campaign_id: string // uuid\n nba: {\n category?: string\n icon?: {\n name: { ... }\n color?: { ... }\n }\n title: string\n body?: string\n priority?: "low" | "medium" | "high"\n is_dismissable?: boolean\n cta: {\n type: { ... }\n target: { ... }\n context_params?: { ... }\n }\n }\n status?: "seen" | "dismissed" | "clicked"\n status_updated_at?: string // date-time\n}\n```\n\n### `MatchTargetParams`\n\n```ts\ntype MatchTargetParams = {\n entity_refs: Array<{\n entity_id: string // uuid\n entity_schema: string\n }>\n target_ids: string // uuid[]\n}\n```\n\n### `GetTargetQueriesParams`\n\n```ts\ntype GetTargetQueriesParams = {\n target_ids: string // uuid[]\n}\n```\n\n### `TargetQueryResult`\n\n```ts\ntype TargetQueryResult = {\n target_id: string // uuid\n query: string\n error?: string\n}\n```\n\n### `AutomationStatus`\n\n```ts\ntype AutomationStatus = "pending" | "in_progress" | "success" | "failed" | "cancelled"\n```\n\n### `PortalStatus`\n\n```ts\ntype PortalStatus = "sent" | "seen" | "dismissed" | "clicked"\n```\n\n### `EntityUiStatus`\n\nLifecycle status of a Next Best Action on the Entity-UI channel. Unlike the portal\nchannel there is no `sent` state: an NBA recipient is born at `seen`, the moment the\naction is first rendered to an agent.\n\n\n```ts\ntype EntityUiStatus = "seen" | "dismissed" | "clicked"\n```\n\n### `EmailStatus`\n\nDelivery status of the email a campaign\'s automation sends to a recipient. Set to `sent`\nonce the automation hands the email off, then updated asynchronously as SES notifications\narrive (`bounced` / `complained`; an SES Reject maps to `bounced`). `failed` is a send-time\nfailure (the automation execu\n\n```ts\ntype EmailStatus = "sent" | "delivered" | "bounced" | "complained" | "failed"\n```\n\n### `EmailBounceType`\n\nSES bounce classification: `permanent` (hard) or `transient` (soft).\n\n```ts\ntype EmailBounceType = "permanent" | "transient"\n```\n\n### `Recipient`\n\n```ts\ntype Recipient = {\n entity_id?: string // uuid\n entity_schema?: string\n title?: string\n automation_status?: "pending" | "in_progress" | "success" | "failed" | "cancelled"\n automation_execution_id?: string\n portal_status?: "sent" | "seen" | "dismissed" | "clicked"\n portal_status_updated_at?: string // date-time\n portal_state?: Record<string, unknown>\n entity_ui_status?: "seen" | "dismissed" | "clicked"\n entity_ui_status_updated_at?: string // date-time\n entity_ui_status_before_dismiss?: "seen" | "dismissed" | "clicked"\n message_entity_id?: string\n email_status?: "sent" | "delivered" | "bounced" | "complained" | "failed"\n email_status_updated_at?: string // date-time\n email_bounce_type?: "permanent" | "transient"\n email_bounce_subtype?: string\n email_complaint_type?: string\n email_bounce_reason?: string\n email_send_error?: Record<string, unknown>\n email_unsubscribed_at?: string // date-time\n email_open_count?: number\n email_first_opened_at?: string // date-time\n email_last_opened_at?: string // date-time\n email_click_count?: number\n email_first_clicked_at?: string // date-time\n email_clicked_links?: Array<{\n url: string\n clicked_at: string // date-time\n }>\n updated_at?: string // date-time\n}\n```\n\n### `BaseRecipientPayload`\n\n```ts\ntype BaseRecipientPayload = {\n entity_id: string // uuid\n entity_schema: string\n}\n```\n\n### `AutomationRecipientPayload`\n\n```ts\ntype AutomationRecipientPayload = {\n automation_status: "pending" | "in_progress" | "success" | "failed" | "cancelled"\n automation_execution_id: string\n}\n```\n\n### `PortalRecipientPayload`\n\n```ts\ntype PortalRecipientPayload = {\n portal_status: "sent" | "seen" | "dismissed" | "clicked"\n portal_state?: Record<string, unknown>\n}\n```\n\n### `CreateRecipientPayload`\n\n```ts\ntype CreateRecipientPayload = {\n entity_id: string // uuid\n entity_schema: string\n automation_status: "pending" | "in_progress" | "success" | "failed" | "cancelled"\n automation_execution_id: string\n} | {\n entity_id: string // uuid\n entity_schema: string\n portal_status: "sent" | "seen" | "dismissed" | "clicked"\n portal_state?: Record<string, unknown>\n} | {\n entity_id: string // uuid\n entity_schema: string\n automation_status: "pending" | "in_progress" | "success" | "failed" | "cancelled"\n automation_execution_id: string\n portal_status: "sent" | "seen" | "dismissed" | "clicked"\n portal_state?: Record<string, unknown>\n}\n```\n\n### `UpdateRecipientPayload`\n\n```ts\ntype UpdateRecipientPayload = {\n automation_status?: "pending" | "in_progress" | "success" | "failed" | "cancelled"\n automation_execution_id?: string\n portal_status?: "sent" | "seen" | "dismissed" | "clicked"\n portal_state?: Record<string, unknown>\n}\n```\n\n### `RetriggerAutomationsRequest`\n\n```ts\ntype RetriggerAutomationsRequest = {\n recipient_ids: string // uuid[]\n}\n```\n\n### `RetriggerAutomationsResult`\n\n```ts\ntype RetriggerAutomationsResult = {\n recipient_id: string // uuid\n result: "success" | "failure" | "not_found" | "invalid_status"\n execution_id?: string\n error?: string\n}\n```\n\n### `UpdatePortalStatusRequest`\n\n```ts\ntype UpdatePortalStatusRequest = {\n status: "sent" | "seen" | "dismissed" | "clicked"\n}\n```\n\n### `UpdateEntityUiStatusRequest`\n\n```ts\ntype UpdateEntityUiStatusRequest = {\n status: "seen" | "dismissed" | "clicked"\n entity_schema?: string\n}\n```\n\n### `SetupCampaignRequest`\n\nDiscriminated by `type`. Each campaign variant has its own request shape;\nnew variants are added by introducing a new schema and extending the `oneOf` list.\n\n\n```ts\ntype SetupCampaignRequest = {\n type: "tariff_change"\n product_recommendation: {\n name?: string\n source_product_id?: string // uuid\n source_price_id?: string // uuid\n offers?: Array<{\n target_id?: { ... }\n items: { ... }\n }>\n }\n campaign: {\n name: string\n goal?: string\n target_ids: string // uuid[]\n }\n journey?: {\n journey_id: string // uuid\n }\n channels?: {\n portal_widget?: {\n portal_id: { ... }\n block_id: { ... }\n }\n email?: {\n automation_id?: { ... }\n template_id?: { ... }\n }\n }\n}\n```\n\n### `SetupTariffChangeCampaignRequest`\n\n```ts\ntype SetupTariffChangeCampaignRequest = {\n type: "tariff_change"\n product_recommendation: {\n name?: string\n source_product_id?: string // uuid\n source_price_id?: string // uuid\n offers?: Array<{\n target_id?: { ... }\n items: { ... }\n }>\n }\n campaign: {\n name: string\n goal?: string\n target_ids: string // uuid[]\n }\n journey?: {\n journey_id: string // uuid\n }\n channels?: {\n portal_widget?: {\n portal_id: { ... }\n block_id: { ... }\n }\n email?: {\n automation_id?: { ... }\n template_id?: { ... }\n }\n }\n}\n```\n\n### `SetupTariffChangeCampaignResponse`\n\n```ts\ntype SetupTariffChangeCampaignResponse = {\n type: "tariff_change"\n product_recommendation_id: string // uuid\n campaign_id: string // uuid\n journey_id?: string // uuid\n portal_widget_id?: string // uuid\n}\n```\n';
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
exports.default = targeting_default;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import "./chunk-YPSWSI3M.js";
|
|
2
|
+
|
|
3
|
+
// src/docs/targeting.json
|
|
4
|
+
var targeting_default = '# Targeting API\n\n- **Base URL:** `https://targeting.sls.epilot.io`\n- **Full API Docs:** [https://docs.epilot.io/api/targeting](https://docs.epilot.io/api/targeting)\n\n## Usage\n\n```ts\nimport { epilot } from \'@epilot/sdk\'\n\nepilot.authorize(() => \'<token>\')\nconst { data } = await epilot.targeting.changeCampaignStatus(...)\n```\n\n### Tree-shakeable import\n\n```ts\nimport { getClient, authorize } from \'@epilot/sdk/targeting\'\n\nconst targetingClient = getClient()\nauthorize(targetingClient, () => \'<token>\')\nconst { data } = await targetingClient.changeCampaignStatus(...)\n```\n\n## Operations\n\n**Campaign**\n- [`changeCampaignStatus`](#changecampaignstatus)\n- [`getCampaignJobStatus`](#getcampaignjobstatus)\n- [`getCampaignPortals`](#getcampaignportals)\n- [`setupCampaign`](#setupcampaign)\n- [`matchCampaigns`](#matchcampaigns)\n- [`discoverCampaigns`](#discovercampaigns)\n\n**Campaign Delivery**\n- [`retriggerCampaignAutomations`](#retriggercampaignautomations)\n\n**Target**\n- [`matchTargets`](#matchtargets)\n- [`getTargetQueries`](#gettargetqueries)\n\n**Campaign Recipient**\n- [`createRecipient`](#createrecipient)\n- [`updateRecipient`](#updaterecipient)\n- [`updateRecipientPortalStatus`](#updaterecipientportalstatus)\n- [`updateRecipientEntityUiStatus`](#updaterecipiententityuistatus)\n- [`restoreRecipientEntityUiStatus`](#restorerecipiententityuistatus)\n- [`getRecipients`](#getrecipients)\n- [`getEmailStats`](#getemailstats)\n\n**Schemas**\n- [`BaseError`](#baseerror)\n- [`ServerError`](#servererror)\n- [`ClientError`](#clienterror)\n- [`BaseUUID`](#baseuuid)\n- [`BaseNanoID`](#basenanoid)\n- [`BaseTags`](#basetags)\n- [`BaseRelation`](#baserelation)\n- [`BaseSystemId`](#basesystemid)\n- [`BaseEntityOwner`](#baseentityowner)\n- [`BaseEntityAcl`](#baseentityacl)\n- [`BaseSystemFields`](#basesystemfields)\n- [`BaseSystemFieldsRequired`](#basesystemfieldsrequired)\n- [`CampaignStatus`](#campaignstatus)\n- [`ExecutionSummaryItem`](#executionsummaryitem)\n- [`JobStatus`](#jobstatus)\n- [`Campaign`](#campaign)\n- [`Target`](#target)\n- [`MatchCampaignParams`](#matchcampaignparams)\n- [`NextBestAction`](#nextbestaction)\n- [`DiscoverCampaignsParams`](#discovercampaignsparams)\n- [`DiscoverResult`](#discoverresult)\n- [`MatchTargetParams`](#matchtargetparams)\n- [`GetTargetQueriesParams`](#gettargetqueriesparams)\n- [`TargetQueryResult`](#targetqueryresult)\n- [`AutomationStatus`](#automationstatus)\n- [`PortalStatus`](#portalstatus)\n- [`EntityUiStatus`](#entityuistatus)\n- [`EmailStatus`](#emailstatus)\n- [`EmailBounceType`](#emailbouncetype)\n- [`Recipient`](#recipient)\n- [`BaseRecipientPayload`](#baserecipientpayload)\n- [`AutomationRecipientPayload`](#automationrecipientpayload)\n- [`PortalRecipientPayload`](#portalrecipientpayload)\n- [`CreateRecipientPayload`](#createrecipientpayload)\n- [`UpdateRecipientPayload`](#updaterecipientpayload)\n- [`RetriggerAutomationsRequest`](#retriggerautomationsrequest)\n- [`RetriggerAutomationsResult`](#retriggerautomationsresult)\n- [`UpdatePortalStatusRequest`](#updateportalstatusrequest)\n- [`UpdateEntityUiStatusRequest`](#updateentityuistatusrequest)\n- [`SetupCampaignRequest`](#setupcampaignrequest)\n- [`SetupTariffChangeCampaignRequest`](#setuptariffchangecampaignrequest)\n- [`SetupTariffChangeCampaignResponse`](#setuptariffchangecampaignresponse)\n\n### `changeCampaignStatus`\n\nChange the status of a campaign to a desired status.\n\n`POST /v1/campaign/{campaign_id}/status`\n\n```ts\nconst { data } = await client.changeCampaignStatus({\n campaign_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "campaign": {\n "_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84",\n "_org": "string",\n "_owners": [\n {\n "org_id": "123",\n "user_id": "123"\n }\n ],\n "_schema": "string",\n "_title": "string",\n "_tags": ["string"],\n "_created_at": "1970-01-01T00:00:00.000Z",\n "_updated_at": "1970-01-01T00:00:00.000Z",\n "_acl": {\n "view": ["org:456"],\n "edit": ["org:456"],\n "delete": ["org:456"]\n },\n "name": "string",\n "goal": "string",\n "status": "draft",\n "start_date": "1970-01-01",\n "end_date": "1970-01-01",\n "flow_id": "string",\n "job_id": "string",\n "target": {\n "$relation": [\n {\n "entity_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84",\n "_tags": ["string"]\n }\n ]\n }\n }\n}\n```\n\n</details>\n\n---\n\n### `getCampaignJobStatus`\n\nGet the status of a campaign\'s automation job\n\n`GET /v1/campaign/{campaign_id}/job`\n\n```ts\nconst { data } = await client.getCampaignJobStatus({\n campaign_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "status": "queued",\n "execution_summary": [\n {\n "execution_id": "string",\n "execution_status": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getCampaignPortals`\n\nGet the list of portals and its widgets where the campaign is used.\n\n`GET /v1/campaign/{campaign_id}/portals`\n\n```ts\nconst { data } = await client.getCampaignPortals({\n campaign_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n[\n {\n "portal": {\n "origin": "string",\n "domain": "string",\n "name": "string"\n },\n "widgets": [\n {\n "id": "string",\n "headline": {\n "en": "string",\n "de": "string"\n }\n }\n ]\n }\n]\n```\n\n</details>\n\n---\n\n### `retriggerCampaignAutomations`\n\nRetrigger automation executions for specific campaign recipients that have failed.\n\n`POST /v1/campaign/{campaign_id}/automations:retrigger`\n\n```ts\nconst { data } = await client.retriggerCampaignAutomations(\n {\n campaign_id: \'example\',\n },\n {\n recipient_ids: [\'3fa85f64-5717-4562-b3fc-2c963f66afa6\']\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "message": "string",\n "results": [\n {\n "recipient_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "result": "success",\n "execution_id": "string",\n "error": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `setupCampaign`\n\nCreates a `campaign` entity together with its related entities and configurations in a single call.\nUsed by the campaign wizard UI, but not restricted to it.\n\n`POST /v1/campaign:setup`\n\n```ts\nconst { data } = await client.setupCampaign(\n null,\n {\n type: \'tariff_change\',\n product_recommendation: {\n name: \'string\',\n source_product_id: \'b8c01433-5556-4e2b-aad4-6f5348d1df84\',\n source_price_id: \'b8c01433-5556-4e2b-aad4-6f5348d1df84\',\n offers: [\n {\n target_id: \'b8c01433-5556-4e2b-aad4-6f5348d1df84\',\n items: [\n {\n product_id: \'b8c01433-5556-4e2b-aad4-6f5348d1df84\',\n price_id: \'b8c01433-5556-4e2b-aad4-6f5348d1df84\',\n highlight_config: {}\n }\n ]\n }\n ]\n },\n campaign: {\n name: \'string\',\n goal: \'string\',\n target_ids: [\'b8c01433-5556-4e2b-aad4-6f5348d1df84\']\n },\n journey: {\n journey_id: \'b8c01433-5556-4e2b-aad4-6f5348d1df84\'\n },\n channels: {\n portal_widget: {\n portal_id: \'b8c01433-5556-4e2b-aad4-6f5348d1df84\',\n block_id: \'b8c01433-5556-4e2b-aad4-6f5348d1df84\'\n },\n email: {\n automation_id: \'b8c01433-5556-4e2b-aad4-6f5348d1df84\',\n template_id: \'b8c01433-5556-4e2b-aad4-6f5348d1df84\'\n }\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "type": "tariff_change",\n "product_recommendation_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84",\n "campaign_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84",\n "journey_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84",\n "portal_widget_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84"\n}\n```\n\n</details>\n\n---\n\n### `matchCampaigns`\n\nMatch campaigns based on target entities.\n\n`POST /v1/campaign:match`\n\n```ts\nconst { data } = await client.matchCampaigns(\n null,\n {\n entity_refs: [\n {\n entity_id: \'b8c01433-5556-4e2b-aad4-6f5348d1df84\',\n entity_schema: \'string\'\n }\n ],\n campaign_ids: [\'b8c01433-5556-4e2b-aad4-6f5348d1df84\']\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "hits": 0,\n "results": [\n {\n "campaign": {\n "_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84",\n "_org": "string",\n "_owners": [\n {\n "org_id": "123",\n "user_id": "123"\n }\n ],\n "_schema": "string",\n "_title": "string",\n "_tags": ["string"],\n "_created_at": "1970-01-01T00:00:00.000Z",\n "_updated_at": "1970-01-01T00:00:00.000Z",\n "_acl": {\n "view": ["org:456"],\n "edit": ["org:456"],\n "delete": ["org:456"]\n },\n "name": "string",\n "goal": "string",\n "status": "draft",\n "start_date": "1970-01-01",\n "end_date": "1970-01-01",\n "flow_id": "string",\n "job_id": "string",\n "target": {\n "$relation": [\n {\n "entity_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84",\n "_tags": ["string"]\n }\n ]\n }\n }\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `discoverCampaigns`\n\nGiven an entity, returns the Next Best Actions it should see on the Entity-UI channel.\n\n`POST /v1/campaign:discover`\n\n```ts\nconst { data } = await client.discoverCampaigns(\n null,\n {\n entity_id: \'b8c01433-5556-4e2b-aad4-6f5348d1df84\',\n entity_schema: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "hits": 0,\n "results": [\n {\n "campaign_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84",\n "nba": {\n "category": "string",\n "icon": {\n "name": "string",\n "color": "string"\n },\n "title": "string",\n "body": "string",\n "priority": "medium",\n "is_dismissable": true,\n "cta": {\n "type": "journey",\n "target": "string",\n "context_params": [\n {\n "key": "string",\n "value": "string"\n }\n ]\n }\n },\n "status": "seen",\n "status_updated_at": "1970-01-01T00:00:00.000Z"\n }\n ],\n "dismissed": [\n {\n "campaign_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84",\n "nba": {\n "category": "string",\n "icon": {\n "name": "string",\n "color": "string"\n },\n "title": "string",\n "body": "string",\n "priority": "medium",\n "is_dismissable": true,\n "cta": {\n "type": "journey",\n "target": "string",\n "context_params": [\n {\n "key": "string",\n "value": "string"\n }\n ]\n }\n },\n "status": "seen",\n "status_updated_at": "1970-01-01T00:00:00.000Z"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `matchTargets`\n\nFind targets from the provided list that include the provide entities.\n\n`POST /v1/target:match`\n\n```ts\nconst { data } = await client.matchTargets(\n null,\n {\n entity_refs: [\n {\n entity_id: \'b8c01433-5556-4e2b-aad4-6f5348d1df84\',\n entity_schema: \'string\'\n }\n ],\n target_ids: [\'b8c01433-5556-4e2b-aad4-6f5348d1df84\']\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "hits": 0,\n "results": [\n {\n "target": {\n "_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84",\n "_org": "string",\n "_owners": [\n {\n "org_id": "123",\n "user_id": "123"\n }\n ],\n "_schema": "string",\n "_title": "string",\n "_tags": ["string"],\n "_created_at": "1970-01-01T00:00:00.000Z",\n "_updated_at": "1970-01-01T00:00:00.000Z",\n "_acl": {\n "view": ["org:456"],\n "edit": ["org:456"],\n "delete": ["org:456"]\n },\n "name": "string",\n "description": "string",\n "entity_schema": "string",\n "entity_filters": {}\n }\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getTargetQueries`\n\nTransform target filters into Lucene queries for the provided target IDs.\nReturns the transformed query string for each target along with any errors encountered.\n\n`POST /v1/target/queries`\n\n```ts\nconst { data } = await client.getTargetQueries(\n null,\n {\n target_ids: [\'b8c01433-5556-4e2b-aad4-6f5348d1df84\']\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "results": [\n {\n "target_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84",\n "query": "string",\n "error": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `createRecipient`\n\nCreates a new recipient associated with a campaign.\n\n`POST /v1/campaign/{campaign_id}/recipient`\n\n```ts\nconst { data } = await client.createRecipient(\n {\n campaign_id: \'example\',\n },\n {\n entity_id: \'b8c01433-5556-4e2b-aad4-6f5348d1df84\',\n entity_schema: \'string\',\n automation_status: \'pending\',\n automation_execution_id: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "entity_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84",\n "entity_schema": "string",\n "title": "string",\n "automation_status": "pending",\n "automation_execution_id": "string",\n "portal_status": "sent",\n "portal_status_updated_at": "1970-01-01T00:00:00.000Z",\n "portal_state": {},\n "entity_ui_status": "seen",\n "entity_ui_status_updated_at": "1970-01-01T00:00:00.000Z",\n "entity_ui_status_before_dismiss": "seen",\n "message_entity_id": "string",\n "email_status": "sent",\n "email_status_updated_at": "1970-01-01T00:00:00.000Z",\n "email_bounce_type": "permanent",\n "email_bounce_subtype": "string",\n "email_complaint_type": "string",\n "email_bounce_reason": "string",\n "email_send_error": {},\n "email_unsubscribed_at": "1970-01-01T00:00:00.000Z",\n "email_open_count": 0,\n "email_first_opened_at": "1970-01-01T00:00:00.000Z",\n "email_last_opened_at": "1970-01-01T00:00:00.000Z",\n "email_click_count": 0,\n "email_first_clicked_at": "1970-01-01T00:00:00.000Z",\n "email_clicked_links": [\n {\n "url": "string",\n "clicked_at": "1970-01-01T00:00:00.000Z"\n }\n ],\n "updated_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `updateRecipient`\n\nUpdates a recipient\'s attributes.\n\n`PATCH /v1/campaign/{campaign_id}/recipient/{recipient_id}`\n\n```ts\nconst { data } = await client.updateRecipient(\n {\n campaign_id: \'example\',\n recipient_id: \'example\',\n },\n {\n automation_status: \'pending\',\n automation_execution_id: \'string\',\n portal_status: \'sent\',\n portal_state: {}\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "entity_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84",\n "entity_schema": "string",\n "title": "string",\n "automation_status": "pending",\n "automation_execution_id": "string",\n "portal_status": "sent",\n "portal_status_updated_at": "1970-01-01T00:00:00.000Z",\n "portal_state": {},\n "entity_ui_status": "seen",\n "entity_ui_status_updated_at": "1970-01-01T00:00:00.000Z",\n "entity_ui_status_before_dismiss": "seen",\n "message_entity_id": "string",\n "email_status": "sent",\n "email_status_updated_at": "1970-01-01T00:00:00.000Z",\n "email_bounce_type": "permanent",\n "email_bounce_subtype": "string",\n "email_complaint_type": "string",\n "email_bounce_reason": "string",\n "email_send_error": {},\n "email_unsubscribed_at": "1970-01-01T00:00:00.000Z",\n "email_open_count": 0,\n "email_first_opened_at": "1970-01-01T00:00:00.000Z",\n "email_last_opened_at": "1970-01-01T00:00:00.000Z",\n "email_click_count": 0,\n "email_first_clicked_at": "1970-01-01T00:00:00.000Z",\n "email_clicked_links": [\n {\n "url": "string",\n "clicked_at": "1970-01-01T00:00:00.000Z"\n }\n ],\n "updated_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `updateRecipientPortalStatus`\n\nUpdates the portal status for a specific campaign recipient.\nThe portal_status_updated_at timestamp is automatically set when the status changes.\n\n`PATCH /v1/campaign/{campaign_id}/recipient/{recipient_id}/portal:status`\n\n```ts\nconst { data } = await client.updateRecipientPortalStatus(\n {\n campaign_id: \'example\',\n recipient_id: \'example\',\n },\n {\n status: \'sent\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "entity_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84",\n "entity_schema": "string",\n "title": "string",\n "automation_status": "pending",\n "automation_execution_id": "string",\n "portal_status": "sent",\n "portal_status_updated_at": "1970-01-01T00:00:00.000Z",\n "portal_state": {},\n "entity_ui_status": "seen",\n "entity_ui_status_updated_at": "1970-01-01T00:00:00.000Z",\n "entity_ui_status_before_dismiss": "seen",\n "message_entity_id": "string",\n "email_status": "sent",\n "email_status_updated_at": "1970-01-01T00:00:00.000Z",\n "email_bounce_type": "permanent",\n "email_bounce_subtype": "string",\n "email_complaint_type": "string",\n "email_bounce_reason": "string",\n "email_send_error": {},\n "email_unsubscribed_at": "1970-01-01T00:00:00.000Z",\n "email_open_count": 0,\n "email_first_opened_at": "1970-01-01T00:00:00.000Z",\n "email_last_opened_at": "1970-01-01T00:00:00.000Z",\n "email_click_count": 0,\n "email_first_clicked_at": "1970-01-01T00:00:00.000Z",\n "email_clicked_links": [\n {\n "url": "string",\n "clicked_at": "1970-01-01T00:00:00.000Z"\n }\n ],\n "updated_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `updateRecipientEntityUiStatus`\n\nRecords a Next Best Action interaction for a recipient on the Entity-UI channel.\n\n`PATCH /v1/campaign/{campaign_id}/recipient/{recipient_id}/entity_ui:status`\n\n```ts\nconst { data } = await client.updateRecipientEntityUiStatus(\n {\n campaign_id: \'example\',\n recipient_id: \'example\',\n },\n {\n status: \'seen\',\n entity_schema: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "entity_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84",\n "entity_schema": "string",\n "title": "string",\n "automation_status": "pending",\n "automation_execution_id": "string",\n "portal_status": "sent",\n "portal_status_updated_at": "1970-01-01T00:00:00.000Z",\n "portal_state": {},\n "entity_ui_status": "seen",\n "entity_ui_status_updated_at": "1970-01-01T00:00:00.000Z",\n "entity_ui_status_before_dismiss": "seen",\n "message_entity_id": "string",\n "email_status": "sent",\n "email_status_updated_at": "1970-01-01T00:00:00.000Z",\n "email_bounce_type": "permanent",\n "email_bounce_subtype": "string",\n "email_complaint_type": "string",\n "email_bounce_reason": "string",\n "email_send_error": {},\n "email_unsubscribed_at": "1970-01-01T00:00:00.000Z",\n "email_open_count": 0,\n "email_first_opened_at": "1970-01-01T00:00:00.000Z",\n "email_last_opened_at": "1970-01-01T00:00:00.000Z",\n "email_click_count": 0,\n "email_first_clicked_at": "1970-01-01T00:00:00.000Z",\n "email_clicked_links": [\n {\n "url": "string",\n "clicked_at": "1970-01-01T00:00:00.000Z"\n }\n ],\n "updated_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `restoreRecipientEntityUiStatus`\n\nUndo a dismissal on the Entity-UI (Next Best Action) channel\n\n`POST /v1/campaign/{campaign_id}/recipient/{recipient_id}/entity_ui:restore`\n\n```ts\nconst { data } = await client.restoreRecipientEntityUiStatus({\n campaign_id: \'example\',\n recipient_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "entity_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84",\n "entity_schema": "string",\n "title": "string",\n "automation_status": "pending",\n "automation_execution_id": "string",\n "portal_status": "sent",\n "portal_status_updated_at": "1970-01-01T00:00:00.000Z",\n "portal_state": {},\n "entity_ui_status": "seen",\n "entity_ui_status_updated_at": "1970-01-01T00:00:00.000Z",\n "entity_ui_status_before_dismiss": "seen",\n "message_entity_id": "string",\n "email_status": "sent",\n "email_status_updated_at": "1970-01-01T00:00:00.000Z",\n "email_bounce_type": "permanent",\n "email_bounce_subtype": "string",\n "email_complaint_type": "string",\n "email_bounce_reason": "string",\n "email_send_error": {},\n "email_unsubscribed_at": "1970-01-01T00:00:00.000Z",\n "email_open_count": 0,\n "email_first_opened_at": "1970-01-01T00:00:00.000Z",\n "email_last_opened_at": "1970-01-01T00:00:00.000Z",\n "email_click_count": 0,\n "email_first_clicked_at": "1970-01-01T00:00:00.000Z",\n "email_clicked_links": [\n {\n "url": "string",\n "clicked_at": "1970-01-01T00:00:00.000Z"\n }\n ],\n "updated_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `getRecipients`\n\nGet a paginated list of recipients for a campaign.\n\n`GET /v1/campaign/{campaign_id}/recipients`\n\n```ts\nconst { data } = await client.getRecipients({\n campaign_id: \'example\',\n limit: 1,\n next: \'example\',\n q: \'example\',\n automation_status: [\'...\'],\n portal_status: \'example\',\n email_status: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "results": [\n {\n "entity_id": "b8c01433-5556-4e2b-aad4-6f5348d1df84",\n "entity_schema": "string",\n "title": "string",\n "automation_status": "pending",\n "automation_execution_id": "string",\n "portal_status": "sent",\n "portal_status_updated_at": "1970-01-01T00:00:00.000Z",\n "portal_state": {},\n "entity_ui_status": "seen",\n "entity_ui_status_updated_at": "1970-01-01T00:00:00.000Z",\n "entity_ui_status_before_dismiss": "seen",\n "message_entity_id": "string",\n "email_status": "sent",\n "email_status_updated_at": "1970-01-01T00:00:00.000Z",\n "email_bounce_type": "permanent",\n "email_bounce_subtype": "string",\n "email_complaint_type": "string",\n "email_bounce_reason": "string",\n "email_send_error": {},\n "email_unsubscribed_at": "1970-01-01T00:00:00.000Z",\n "email_open_count": 0,\n "email_first_opened_at": "1970-01-01T00:00:00.000Z",\n "email_last_opened_at": "1970-01-01T00:00:00.000Z",\n "email_click_count": 0,\n "email_first_clicked_at": "1970-01-01T00:00:00.000Z",\n "email_clicked_links": [\n {\n "url": "string",\n "clicked_at": "1970-01-01T00:00:00.000Z"\n }\n ],\n "updated_at": "1970-01-01T00:00:00.000Z"\n }\n ],\n "next": "string",\n "total": 0\n}\n```\n\n</details>\n\n---\n\n### `getEmailStats`\n\nAggregate email delivery counts for a campaign, for the KPI summary on the campaign UI.\nCounts cover the email (automation) channel only; `total_emailed` is the number of\nrecipients with a recorded em\n\n`GET /v1/campaign/{campaign_id}/email-stats`\n\n```ts\nconst { data } = await client.getEmailStats({\n campaign_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "total_emailed": 0,\n "sent": 0,\n "delivered": 0,\n "bounced": 0,\n "bounced_hard": 0,\n "bounced_soft": 0,\n "complained": 0,\n "failed": 0,\n "unsubscribed": 0,\n "opened": 0,\n "clicked": 0,\n "total_opens": 0,\n "total_clicks": 0\n}\n```\n\n</details>\n\n---\n\n## Schemas\n\n### `BaseError`\n\n```ts\ntype BaseError = {\n status: number\n message: string\n}\n```\n\n### `ServerError`\n\n```ts\ntype ServerError = {\n status: number\n message: string\n}\n```\n\n### `ClientError`\n\nDescribes the structure of a client error response, which can be one of several types:\n1. `MessageError`: Contains a \'message\' field for general descriptive errors.\n2. `CodeError`: Contains a \'code\' field for specific, machine-readable error codes.\n3. `StatusedError`: Contains \'error\' and \'status\' f\n\n```ts\ntype ClientError = {\n message: string\n} | {\n code: "CAMPAIGN_NOT_FOUND" | "CAMPAIGN_HAS_NO_TARGET" | "CAMPAIGN_HAS_NO_DELIVERY_METHOD" | "INVALID_NEXT_BEST_ACTION" | "CAMPAIGN_HAS_JOB_IN_PROGRESS" | "CAMPAIGN_HAS_UNEXPECTED_STATUS" | "JOB_TOKEN_MISSING" | "TARGET_WITHOUT_FILTERS"\n} | {\n error: string\n status: number\n}\n```\n\n### `BaseUUID`\n\n```ts\ntype BaseUUID = string // uuid\n```\n\n### `BaseNanoID`\n\n```ts\ntype BaseNanoID = string\n```\n\n### `BaseTags`\n\n```ts\ntype BaseTags = string[]\n```\n\n### `BaseRelation`\n\n```ts\ntype BaseRelation = {\n $relation?: Array<{\n entity_id?: string // uuid\n _tags?: string[]\n }>\n}\n```\n\n### `BaseSystemId`\n\n```ts\ntype BaseSystemId = {\n _id: string // uuid\n}\n```\n\n### `BaseEntityOwner`\n\nThe user / organization owning this entity.\n\nNote: Owner implicitly has access to the entity regardless of ACLs.\n\n\n```ts\ntype BaseEntityOwner = {\n org_id: string\n user_id?: string\n}\n```\n\n### `BaseEntityAcl`\n\nAccess control list (ACL) for an entity. Defines sharing access to external orgs or users.\n\n```ts\ntype BaseEntityAcl = {\n view?: string[]\n edit?: string[]\n delete?: string[]\n}\n```\n\n### `BaseSystemFields`\n\n```ts\ntype BaseSystemFields = {\n _id?: string // uuid\n _org?: string\n _owners?: Array<{\n org_id: string\n user_id?: string\n }>\n _schema?: string\n _title?: string\n _tags?: string[]\n _created_at?: string // date-time\n _updated_at?: string // date-time\n _acl?: {\n view?: string[]\n edit?: string[]\n delete?: string[]\n }\n}\n```\n\n### `BaseSystemFieldsRequired`\n\n```ts\ntype BaseSystemFieldsRequired = object\n```\n\n### `CampaignStatus`\n\n```ts\ntype CampaignStatus = "draft" | "activating" | "active" | "inactive"\n```\n\n### `ExecutionSummaryItem`\n\n```ts\ntype ExecutionSummaryItem = {\n execution_id?: string\n execution_status?: string\n}\n```\n\n### `JobStatus`\n\n```ts\ntype JobStatus = {\n status?: "queued" | "processing" | "finished" | "failed" | "cancelled" | "send_report"\n execution_summary?: Array<{\n execution_id?: string\n execution_status?: string\n }>\n}\n```\n\n### `Campaign`\n\n```ts\ntype Campaign = {\n _id?: string // uuid\n _org?: string\n _owners?: Array<{\n org_id: string\n user_id?: string\n }>\n _schema?: string\n _title?: string\n _tags?: string[]\n _created_at?: string // date-time\n _updated_at?: string // date-time\n _acl?: {\n view?: string[]\n edit?: string[]\n delete?: string[]\n }\n name?: string\n goal?: string\n status?: "draft" | "activating" | "active" | "inactive"\n start_date?: string // date\n end_date?: string // date\n flow_id?: string\n job_id?: string\n target?: {\n $relation?: Array<{\n entity_id?: { ... }\n _tags?: { ... }\n }>\n }\n}\n```\n\n### `Target`\n\n```ts\ntype Target = {\n _id?: string // uuid\n _org?: string\n _owners?: Array<{\n org_id: string\n user_id?: string\n }>\n _schema?: string\n _title?: string\n _tags?: string[]\n _created_at?: string // date-time\n _updated_at?: string // date-time\n _acl?: {\n view?: string[]\n edit?: string[]\n delete?: string[]\n }\n name?: string\n description?: string\n entity_schema?: string\n entity_filters?: Record<string, unknown>\n}\n```\n\n### `MatchCampaignParams`\n\n```ts\ntype MatchCampaignParams = {\n entity_refs: Array<{\n entity_id: string // uuid\n entity_schema: string\n }>\n campaign_ids: string // uuid[]\n}\n```\n\n### `NextBestAction`\n\nA Next Best Action configured on a campaign\'s Entity-UI channel.\nThis is the canonical NBA contract shared by discovery (this API), authoring, and rendering.\nNBA content is single-language in v1; text fields may contain `{{placeholders}}` resolved at render time.\n\n\n```ts\ntype NextBestAction = {\n category?: string\n icon?: {\n name: string\n color?: string\n }\n title: string\n body?: string\n priority?: "low" | "medium" | "high"\n is_dismissable?: boolean\n cta: {\n type: "journey" | "workflow" | "flow"\n target: string\n context_params?: Array<{\n key: { ... }\n value: { ... }\n }>\n }\n}\n```\n\n### `DiscoverCampaignsParams`\n\n```ts\ntype DiscoverCampaignsParams = {\n entity_id: string // uuid\n entity_schema: string\n}\n```\n\n### `DiscoverResult`\n\nOne discovered Next Best Action, plus this entity\'s interaction state for it.\n\n```ts\ntype DiscoverResult = {\n campaign_id: string // uuid\n nba: {\n category?: string\n icon?: {\n name: { ... }\n color?: { ... }\n }\n title: string\n body?: string\n priority?: "low" | "medium" | "high"\n is_dismissable?: boolean\n cta: {\n type: { ... }\n target: { ... }\n context_params?: { ... }\n }\n }\n status?: "seen" | "dismissed" | "clicked"\n status_updated_at?: string // date-time\n}\n```\n\n### `MatchTargetParams`\n\n```ts\ntype MatchTargetParams = {\n entity_refs: Array<{\n entity_id: string // uuid\n entity_schema: string\n }>\n target_ids: string // uuid[]\n}\n```\n\n### `GetTargetQueriesParams`\n\n```ts\ntype GetTargetQueriesParams = {\n target_ids: string // uuid[]\n}\n```\n\n### `TargetQueryResult`\n\n```ts\ntype TargetQueryResult = {\n target_id: string // uuid\n query: string\n error?: string\n}\n```\n\n### `AutomationStatus`\n\n```ts\ntype AutomationStatus = "pending" | "in_progress" | "success" | "failed" | "cancelled"\n```\n\n### `PortalStatus`\n\n```ts\ntype PortalStatus = "sent" | "seen" | "dismissed" | "clicked"\n```\n\n### `EntityUiStatus`\n\nLifecycle status of a Next Best Action on the Entity-UI channel. Unlike the portal\nchannel there is no `sent` state: an NBA recipient is born at `seen`, the moment the\naction is first rendered to an agent.\n\n\n```ts\ntype EntityUiStatus = "seen" | "dismissed" | "clicked"\n```\n\n### `EmailStatus`\n\nDelivery status of the email a campaign\'s automation sends to a recipient. Set to `sent`\nonce the automation hands the email off, then updated asynchronously as SES notifications\narrive (`bounced` / `complained`; an SES Reject maps to `bounced`). `failed` is a send-time\nfailure (the automation execu\n\n```ts\ntype EmailStatus = "sent" | "delivered" | "bounced" | "complained" | "failed"\n```\n\n### `EmailBounceType`\n\nSES bounce classification: `permanent` (hard) or `transient` (soft).\n\n```ts\ntype EmailBounceType = "permanent" | "transient"\n```\n\n### `Recipient`\n\n```ts\ntype Recipient = {\n entity_id?: string // uuid\n entity_schema?: string\n title?: string\n automation_status?: "pending" | "in_progress" | "success" | "failed" | "cancelled"\n automation_execution_id?: string\n portal_status?: "sent" | "seen" | "dismissed" | "clicked"\n portal_status_updated_at?: string // date-time\n portal_state?: Record<string, unknown>\n entity_ui_status?: "seen" | "dismissed" | "clicked"\n entity_ui_status_updated_at?: string // date-time\n entity_ui_status_before_dismiss?: "seen" | "dismissed" | "clicked"\n message_entity_id?: string\n email_status?: "sent" | "delivered" | "bounced" | "complained" | "failed"\n email_status_updated_at?: string // date-time\n email_bounce_type?: "permanent" | "transient"\n email_bounce_subtype?: string\n email_complaint_type?: string\n email_bounce_reason?: string\n email_send_error?: Record<string, unknown>\n email_unsubscribed_at?: string // date-time\n email_open_count?: number\n email_first_opened_at?: string // date-time\n email_last_opened_at?: string // date-time\n email_click_count?: number\n email_first_clicked_at?: string // date-time\n email_clicked_links?: Array<{\n url: string\n clicked_at: string // date-time\n }>\n updated_at?: string // date-time\n}\n```\n\n### `BaseRecipientPayload`\n\n```ts\ntype BaseRecipientPayload = {\n entity_id: string // uuid\n entity_schema: string\n}\n```\n\n### `AutomationRecipientPayload`\n\n```ts\ntype AutomationRecipientPayload = {\n automation_status: "pending" | "in_progress" | "success" | "failed" | "cancelled"\n automation_execution_id: string\n}\n```\n\n### `PortalRecipientPayload`\n\n```ts\ntype PortalRecipientPayload = {\n portal_status: "sent" | "seen" | "dismissed" | "clicked"\n portal_state?: Record<string, unknown>\n}\n```\n\n### `CreateRecipientPayload`\n\n```ts\ntype CreateRecipientPayload = {\n entity_id: string // uuid\n entity_schema: string\n automation_status: "pending" | "in_progress" | "success" | "failed" | "cancelled"\n automation_execution_id: string\n} | {\n entity_id: string // uuid\n entity_schema: string\n portal_status: "sent" | "seen" | "dismissed" | "clicked"\n portal_state?: Record<string, unknown>\n} | {\n entity_id: string // uuid\n entity_schema: string\n automation_status: "pending" | "in_progress" | "success" | "failed" | "cancelled"\n automation_execution_id: string\n portal_status: "sent" | "seen" | "dismissed" | "clicked"\n portal_state?: Record<string, unknown>\n}\n```\n\n### `UpdateRecipientPayload`\n\n```ts\ntype UpdateRecipientPayload = {\n automation_status?: "pending" | "in_progress" | "success" | "failed" | "cancelled"\n automation_execution_id?: string\n portal_status?: "sent" | "seen" | "dismissed" | "clicked"\n portal_state?: Record<string, unknown>\n}\n```\n\n### `RetriggerAutomationsRequest`\n\n```ts\ntype RetriggerAutomationsRequest = {\n recipient_ids: string // uuid[]\n}\n```\n\n### `RetriggerAutomationsResult`\n\n```ts\ntype RetriggerAutomationsResult = {\n recipient_id: string // uuid\n result: "success" | "failure" | "not_found" | "invalid_status"\n execution_id?: string\n error?: string\n}\n```\n\n### `UpdatePortalStatusRequest`\n\n```ts\ntype UpdatePortalStatusRequest = {\n status: "sent" | "seen" | "dismissed" | "clicked"\n}\n```\n\n### `UpdateEntityUiStatusRequest`\n\n```ts\ntype UpdateEntityUiStatusRequest = {\n status: "seen" | "dismissed" | "clicked"\n entity_schema?: string\n}\n```\n\n### `SetupCampaignRequest`\n\nDiscriminated by `type`. Each campaign variant has its own request shape;\nnew variants are added by introducing a new schema and extending the `oneOf` list.\n\n\n```ts\ntype SetupCampaignRequest = {\n type: "tariff_change"\n product_recommendation: {\n name?: string\n source_product_id?: string // uuid\n source_price_id?: string // uuid\n offers?: Array<{\n target_id?: { ... }\n items: { ... }\n }>\n }\n campaign: {\n name: string\n goal?: string\n target_ids: string // uuid[]\n }\n journey?: {\n journey_id: string // uuid\n }\n channels?: {\n portal_widget?: {\n portal_id: { ... }\n block_id: { ... }\n }\n email?: {\n automation_id?: { ... }\n template_id?: { ... }\n }\n }\n}\n```\n\n### `SetupTariffChangeCampaignRequest`\n\n```ts\ntype SetupTariffChangeCampaignRequest = {\n type: "tariff_change"\n product_recommendation: {\n name?: string\n source_product_id?: string // uuid\n source_price_id?: string // uuid\n offers?: Array<{\n target_id?: { ... }\n items: { ... }\n }>\n }\n campaign: {\n name: string\n goal?: string\n target_ids: string // uuid[]\n }\n journey?: {\n journey_id: string // uuid\n }\n channels?: {\n portal_widget?: {\n portal_id: { ... }\n block_id: { ... }\n }\n email?: {\n automation_id?: { ... }\n template_id?: { ... }\n }\n }\n}\n```\n\n### `SetupTariffChangeCampaignResponse`\n\n```ts\ntype SetupTariffChangeCampaignResponse = {\n type: "tariff_change"\n product_recommendation_id: string // uuid\n campaign_id: string // uuid\n journey_id?: string // uuid\n portal_widget_id?: string // uuid\n}\n```\n';
|
|
5
|
+
export {
|
|
6
|
+
targeting_default as default
|
|
7
|
+
};
|
|
@@ -94,7 +94,7 @@ declare namespace Components {
|
|
|
94
94
|
total_emailed: number;
|
|
95
95
|
sent: number;
|
|
96
96
|
/**
|
|
97
|
-
*
|
|
97
|
+
* Recipients whose SES Delivery event was recorded (needs Delivery publishing enabled).
|
|
98
98
|
*/
|
|
99
99
|
delivered: number;
|
|
100
100
|
bounced: number;
|
|
@@ -112,6 +112,22 @@ declare namespace Components {
|
|
|
112
112
|
* Recipients who opted out of email marketing.
|
|
113
113
|
*/
|
|
114
114
|
unsubscribed: number;
|
|
115
|
+
/**
|
|
116
|
+
* Unique recipients with at least one open (only where open tracking is on).
|
|
117
|
+
*/
|
|
118
|
+
opened: number;
|
|
119
|
+
/**
|
|
120
|
+
* Unique recipients with at least one link click (only where click tracking is on).
|
|
121
|
+
*/
|
|
122
|
+
clicked: number;
|
|
123
|
+
/**
|
|
124
|
+
* Total opens across all recipients.
|
|
125
|
+
*/
|
|
126
|
+
total_opens: number;
|
|
127
|
+
/**
|
|
128
|
+
* Total link clicks across all recipients.
|
|
129
|
+
*/
|
|
130
|
+
total_clicks: number;
|
|
115
131
|
}
|
|
116
132
|
export interface GetTargetQueriesResponse {
|
|
117
133
|
/**
|
|
@@ -1671,6 +1687,33 @@ declare namespace Components {
|
|
|
1671
1687
|
* When the contact unsubscribed from email marketing (opted out). Server-managed.
|
|
1672
1688
|
*/
|
|
1673
1689
|
email_unsubscribed_at?: string; // date-time
|
|
1690
|
+
/**
|
|
1691
|
+
* Number of SES opens recorded for this recipient (only where open tracking is on).
|
|
1692
|
+
*/
|
|
1693
|
+
email_open_count?: number;
|
|
1694
|
+
/**
|
|
1695
|
+
* When the recipient first opened the email.
|
|
1696
|
+
*/
|
|
1697
|
+
email_first_opened_at?: string; // date-time
|
|
1698
|
+
/**
|
|
1699
|
+
* When the recipient most recently opened the email.
|
|
1700
|
+
*/
|
|
1701
|
+
email_last_opened_at?: string; // date-time
|
|
1702
|
+
/**
|
|
1703
|
+
* Number of SES link clicks recorded for this recipient (only where click tracking is on).
|
|
1704
|
+
*/
|
|
1705
|
+
email_click_count?: number;
|
|
1706
|
+
/**
|
|
1707
|
+
* When the recipient first clicked a link.
|
|
1708
|
+
*/
|
|
1709
|
+
email_first_clicked_at?: string; // date-time
|
|
1710
|
+
/**
|
|
1711
|
+
* Raw click events (URL + timestamp); aggregate per-URL on the client.
|
|
1712
|
+
*/
|
|
1713
|
+
email_clicked_links?: {
|
|
1714
|
+
url: string;
|
|
1715
|
+
clicked_at: string; // date-time
|
|
1716
|
+
}[];
|
|
1674
1717
|
updated_at?: string; // date-time
|
|
1675
1718
|
}
|
|
1676
1719
|
export interface RetriggerAutomationsRequest {
|
|
@@ -94,7 +94,7 @@ declare namespace Components {
|
|
|
94
94
|
total_emailed: number;
|
|
95
95
|
sent: number;
|
|
96
96
|
/**
|
|
97
|
-
*
|
|
97
|
+
* Recipients whose SES Delivery event was recorded (needs Delivery publishing enabled).
|
|
98
98
|
*/
|
|
99
99
|
delivered: number;
|
|
100
100
|
bounced: number;
|
|
@@ -112,6 +112,22 @@ declare namespace Components {
|
|
|
112
112
|
* Recipients who opted out of email marketing.
|
|
113
113
|
*/
|
|
114
114
|
unsubscribed: number;
|
|
115
|
+
/**
|
|
116
|
+
* Unique recipients with at least one open (only where open tracking is on).
|
|
117
|
+
*/
|
|
118
|
+
opened: number;
|
|
119
|
+
/**
|
|
120
|
+
* Unique recipients with at least one link click (only where click tracking is on).
|
|
121
|
+
*/
|
|
122
|
+
clicked: number;
|
|
123
|
+
/**
|
|
124
|
+
* Total opens across all recipients.
|
|
125
|
+
*/
|
|
126
|
+
total_opens: number;
|
|
127
|
+
/**
|
|
128
|
+
* Total link clicks across all recipients.
|
|
129
|
+
*/
|
|
130
|
+
total_clicks: number;
|
|
115
131
|
}
|
|
116
132
|
export interface GetTargetQueriesResponse {
|
|
117
133
|
/**
|
|
@@ -1671,6 +1687,33 @@ declare namespace Components {
|
|
|
1671
1687
|
* When the contact unsubscribed from email marketing (opted out). Server-managed.
|
|
1672
1688
|
*/
|
|
1673
1689
|
email_unsubscribed_at?: string; // date-time
|
|
1690
|
+
/**
|
|
1691
|
+
* Number of SES opens recorded for this recipient (only where open tracking is on).
|
|
1692
|
+
*/
|
|
1693
|
+
email_open_count?: number;
|
|
1694
|
+
/**
|
|
1695
|
+
* When the recipient first opened the email.
|
|
1696
|
+
*/
|
|
1697
|
+
email_first_opened_at?: string; // date-time
|
|
1698
|
+
/**
|
|
1699
|
+
* When the recipient most recently opened the email.
|
|
1700
|
+
*/
|
|
1701
|
+
email_last_opened_at?: string; // date-time
|
|
1702
|
+
/**
|
|
1703
|
+
* Number of SES link clicks recorded for this recipient (only where click tracking is on).
|
|
1704
|
+
*/
|
|
1705
|
+
email_click_count?: number;
|
|
1706
|
+
/**
|
|
1707
|
+
* When the recipient first clicked a link.
|
|
1708
|
+
*/
|
|
1709
|
+
email_first_clicked_at?: string; // date-time
|
|
1710
|
+
/**
|
|
1711
|
+
* Raw click events (URL + timestamp); aggregate per-URL on the client.
|
|
1712
|
+
*/
|
|
1713
|
+
email_clicked_links?: {
|
|
1714
|
+
url: string;
|
|
1715
|
+
clicked_at: string; // date-time
|
|
1716
|
+
}[];
|
|
1674
1717
|
updated_at?: string; // date-time
|
|
1675
1718
|
}
|
|
1676
1719
|
export interface RetriggerAutomationsRequest {
|