From 7dab21047b889cdb0ce582e9477f99a1a3e6f782 Mon Sep 17 00:00:00 2001 From: Tony Xiao Date: Thu, 16 Nov 2023 12:16:15 -0800 Subject: [PATCH 01/22] feat: Download and generate openapi from outreach And add a new openapi-fetch powered client --- .eslintrc.json | 2 +- packages/core/package.json | 12 +- .../remotes/impl/outreach/outreach.api.ts | 27 + .../impl/outreach/outreach.openapi.gen.d.ts | 16456 +++++++++++++ .../impl/outreach/outreach.openapi.yaml | 20219 ++++++++++++++++ 5 files changed, 36713 insertions(+), 3 deletions(-) create mode 100644 packages/core/remotes/impl/outreach/outreach.api.ts create mode 100644 packages/core/remotes/impl/outreach/outreach.openapi.gen.d.ts create mode 100644 packages/core/remotes/impl/outreach/outreach.openapi.yaml diff --git a/.eslintrc.json b/.eslintrc.json index 3cae32e4f..370ffac7a 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -30,5 +30,5 @@ "@typescript-eslint/no-misused-promises": ["warn", { "checksVoidReturn": false }], "@typescript-eslint/consistent-type-imports": "error" }, - "ignorePatterns": ["node_modules/", "dist/", "coverage/", "/packages/schemas/gen/", "/packages/core/jest.config.js"] + "ignorePatterns": ["node_modules/", "dist/", "coverage/", "/packages/schemas/gen/", "/packages/core/jest.config.js", "*.openapi.gen.d.ts"] } diff --git a/packages/core/package.json b/packages/core/package.json index 4bc740644..d0eebbb09 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -23,6 +23,7 @@ "csv-stringify": "^6.3.0", "jsforce": "^2.0.0-beta.20", "odata": "^1.3.2", + "openapi-fetch": "^0.8.1", "pg": "^8.10.2", "pg-connection-string": "^2.6.2", "pg-copy-streams": "^6.0.6", @@ -46,7 +47,9 @@ "@types/pluralize": "^0.0.29", "@types/qs": "^6", "@types/uuid": "^9.0.1", - "openapi3-ts": "^4.1.2", + "concurrently": "^8.2.2", + "json2yaml": "^1.1.0", + "openapi-typescript": "^6.7.1", "ts-toolbelt": "9.6.0", "typescript": "^4.9.5" }, @@ -59,7 +62,12 @@ "lint-staged": "run -T lint-staged --no-stash --quiet", "lint": "run -T eslint", "test": "SUPAGLUE_LOG_LEVEL=debug jest --selectProjects @supaglue/core --group=unit", - "tsc:watch": "tsc --noEmit --watch" + "tsc:watch": "tsc --noEmit --watch", + "codegen": "yarn download && yarn generate", + "download": "concurrently 'npm:download:*'", + "generate": "concurrently 'npm:generate:*'", + "download:outreach": "curl --compressed https://developers.outreach.io/page-data/api/reference/overview/page-data.json | jq -r .result.data.contentItem.data.redocStoreStr | jq .definition.data | yarn json2yaml > ./remotes/impl/outreach/outreach.openapi.yaml", + "generate:outreach": "openapi-typescript ./remotes/impl/outreach/outreach.openapi.yaml --output ./remotes/impl/outreach/outreach.openapi.gen.d.ts" }, "files": [ "dist" diff --git a/packages/core/remotes/impl/outreach/outreach.api.ts b/packages/core/remotes/impl/outreach/outreach.api.ts new file mode 100644 index 000000000..3c4611db8 --- /dev/null +++ b/packages/core/remotes/impl/outreach/outreach.api.ts @@ -0,0 +1,27 @@ +import createClient from 'openapi-fetch'; + +import type { paths } from './outreach.openapi.gen'; + +interface OutreachCredentials { + accessToken: string; + + // Comment back in when we are refreshing tokens in the client itself instead + // refreshToken: string; + // expiresAt: string | null; // ISO string + // clientId: string; + // clientSecret: string; +} + +export type OutreachApi = ReturnType; +export function createOutreachApi(creds: OutreachCredentials) { + return createClient({ + // TODO: Get this from the openapi spec if possible + baseUrl: 'https://api.outreach.io/api/v2', + headers: { + // We use a getter here here to interoperate with maybeRefreshAccessToken + get Authorization() { + return `Bearer ${creds.accessToken}`; + }, + }, + }); +} diff --git a/packages/core/remotes/impl/outreach/outreach.openapi.gen.d.ts b/packages/core/remotes/impl/outreach/outreach.openapi.gen.d.ts new file mode 100644 index 000000000..283bec755 --- /dev/null +++ b/packages/core/remotes/impl/outreach/outreach.openapi.gen.d.ts @@ -0,0 +1,16456 @@ +/** + * This file was auto-generated by openapi-typescript. + * Do not make direct changes to the file. + */ + + +/** OneOf type helpers */ +type Without = { [P in Exclude]?: never }; +type XOR = (T | U) extends object ? (Without & U) | (Without & T) : T | U; +type OneOf = T extends [infer Only] ? Only : T extends [infer A, infer B, ...infer Rest] ? OneOf<[XOR, ...Rest]> : never; + +export interface paths { + "/accounts": { + /** Get a Collection of Accounts */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["accountResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Create a New Account */ + post: { + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["account"]; + relationships?: components["schemas"]["accountRelationships"]; + type?: string; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["accountResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/accounts/{id}": { + /** Get an Account by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["accountResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Delete an Existing Account by ID */ + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Deleted */ + 204: { + content: { + "application/vnd.api+json": unknown; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Update an Account */ + patch: { + parameters: { + path: { + id: number; + }; + }; + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["account"]; + id: number; + relationships?: components["schemas"]["accountRelationships"]; + type: string; + }; + }; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["account"]; + id: number; + relationships?: components["schemas"]["accountRelationships"]; + type: string; + }; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/audits": { + /** Get a Collection of Audits */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["auditResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/callDispositions": { + /** Get a Collection of Call Dispositions */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["callDispositionResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Create a New Call Disposition */ + post: { + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["callDisposition"]; + relationships?: components["schemas"]["callDispositionRelationships"]; + type?: string; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["callDispositionResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/callDispositions/{id}": { + /** Get a Call Disposition by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["callDispositionResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Delete an Existing Call Disposition by ID */ + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Deleted */ + 204: { + content: { + "application/vnd.api+json": unknown; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Update a Call Disposition */ + patch: { + parameters: { + path: { + id: number; + }; + }; + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["callDisposition"]; + id: number; + relationships?: components["schemas"]["callDispositionRelationships"]; + type: string; + }; + }; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["callDisposition"]; + id: number; + relationships?: components["schemas"]["callDispositionRelationships"]; + type: string; + }; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/callPurposes": { + /** Get a Collection of Call Purposes */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["callPurposeResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Create a New Call Purpose */ + post: { + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["callPurpose"]; + relationships?: components["schemas"]["callPurposeRelationships"]; + type?: string; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["callPurposeResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/callPurposes/{id}": { + /** Get a Call Purpose by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["callPurposeResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Delete an Existing Call Purpose by ID */ + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Deleted */ + 204: { + content: { + "application/vnd.api+json": unknown; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Update a Call Purpose */ + patch: { + parameters: { + path: { + id: number; + }; + }; + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["callPurpose"]; + id: number; + relationships?: components["schemas"]["callPurposeRelationships"]; + type: string; + }; + }; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["callPurpose"]; + id: number; + relationships?: components["schemas"]["callPurposeRelationships"]; + type: string; + }; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/calls": { + /** Get a Collection of Calls */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["callResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Create a New Call */ + post: { + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["call"]; + relationships?: components["schemas"]["callRelationships"]; + type?: string; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["callResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/calls/{id}": { + /** Get a Call by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["callResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Delete an Existing Call by ID */ + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Deleted */ + 204: { + content: { + "application/vnd.api+json": unknown; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/complianceRequests": { + /** Get a Collection of Compliance Requests */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["complianceRequestResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Create a New Compliance Request */ + post: { + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["complianceRequest"]; + relationships?: components["schemas"]["complianceRequestRelationships"]; + type?: string; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["complianceRequestResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/complianceRequests/{id}": { + /** Get a Compliance Request by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["complianceRequestResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/contentCategories": { + /** Get a Collection of Content Categories */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["contentCategoryResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Create a New Content Category */ + post: { + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["contentCategory"]; + relationships?: components["schemas"]["contentCategoryRelationships"]; + type?: string; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["contentCategoryResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/contentCategories/{id}": { + /** Get a Content Category by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["contentCategoryResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Delete an Existing Content Category by ID */ + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Deleted */ + 204: { + content: { + "application/vnd.api+json": unknown; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Update a Content Category */ + patch: { + parameters: { + path: { + id: number; + }; + }; + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["contentCategory"]; + id: number; + relationships?: components["schemas"]["contentCategoryRelationships"]; + type: string; + }; + }; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["contentCategory"]; + id: number; + relationships?: components["schemas"]["contentCategoryRelationships"]; + type: string; + }; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/contentCategoryMemberships": { + /** Get a Collection of Content Category Memberships */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["contentCategoryMembershipResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Create a New Content Category Membership */ + post: { + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["contentCategoryMembership"]; + relationships?: components["schemas"]["contentCategoryMembershipRelationships"]; + type?: string; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["contentCategoryMembershipResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/contentCategoryMemberships/{id}": { + /** Get a Content Category Membership by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["contentCategoryMembershipResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Delete an Existing Content Category Membership by ID */ + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Deleted */ + 204: { + content: { + "application/vnd.api+json": unknown; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/contentCategoryOwnerships": { + /** Get a Collection of Content Category Ownerships */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["contentCategoryOwnershipResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Create a New Content Category Ownership */ + post: { + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["contentCategoryOwnership"]; + relationships?: components["schemas"]["contentCategoryOwnershipRelationships"]; + type?: string; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["contentCategoryOwnershipResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/contentCategoryOwnerships/{id}": { + /** Delete an Existing Content Category Ownership by ID */ + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Deleted */ + 204: { + content: { + "application/vnd.api+json": unknown; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/customDuties": { + /** Create a New Custom Duty */ + post: { + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["customDuty"]; + relationships?: components["schemas"]["customDutyRelationships"]; + type?: string; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["customDutyResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/duties": { + /** Get a Collection of Duties */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["dutyResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/emailAddresses": { + /** Get a Collection of Email Addresses */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["emailAddressResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Create a New Email Address */ + post: { + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["emailAddress"]; + relationships?: components["schemas"]["emailAddressRelationships"]; + type?: string; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["emailAddressResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/emailAddresses/{id}": { + /** Get an Email Address by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["emailAddressResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Delete an Existing Email Address by ID */ + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Deleted */ + 204: { + content: { + "application/vnd.api+json": unknown; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Update an Email Address */ + patch: { + parameters: { + path: { + id: number; + }; + }; + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["emailAddress"]; + id: number; + relationships?: components["schemas"]["emailAddressRelationships"]; + type: string; + }; + }; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["emailAddress"]; + id: number; + relationships?: components["schemas"]["emailAddressRelationships"]; + type: string; + }; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/events/{id}": { + /** Get an Event by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["eventResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/favorites": { + /** Get a Collection of Favorites */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["favoriteResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Create a New Favorite */ + post: { + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["favorite"]; + relationships?: components["schemas"]["favoriteRelationships"]; + type?: string; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["favoriteResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/favorites/{id}": { + /** Get a Favorite by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["favoriteResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Delete an Existing Favorite by ID */ + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Deleted */ + 204: { + content: { + "application/vnd.api+json": unknown; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/mailAliases": { + /** Get a Collection of Mail Aliases */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["mailAliasResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/mailAliases/{id}": { + /** Get a Mail Alias by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["mailAliasResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/mailboxes": { + /** Get a Collection of Mailboxes */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["mailboxResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Create a New Mailbox */ + post: { + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["mailbox"]; + relationships?: components["schemas"]["mailboxRelationships"]; + type?: string; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["mailboxResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/mailboxes/{id}": { + /** Get a Mailbox by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["mailboxResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Delete an Existing Mailbox by ID */ + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Deleted */ + 204: { + content: { + "application/vnd.api+json": unknown; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Update a Mailbox */ + patch: { + parameters: { + path: { + id: number; + }; + }; + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["mailbox"]; + id: number; + relationships?: components["schemas"]["mailboxRelationships"]; + type: string; + }; + }; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["mailbox"]; + id: number; + relationships?: components["schemas"]["mailboxRelationships"]; + type: string; + }; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/mailboxes/{id}/actions/linkEwsMasterAccount": { + /** + * Link Ews Master Account + * @description ### Member Action + * + * Link mailbox with EWS master account + */ + post: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": Record; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/mailboxes/{id}/actions/testSend": { + /** + * Test Send + * @description ### Member Action + * + * Test if sending emails works from this mailbox. + */ + post: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["mailboxResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/mailboxes/{id}/actions/testSync": { + /** + * Test Sync + * @description ### Member Action + * + * Test if syncing emails works from this mailbox. + */ + post: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["mailboxResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/mailboxes/{id}/actions/unlinkEwsMasterAccount": { + /** + * Unlink Ews Master Account + * @description ### Member Action + * + * Unlink EWS master account from mailbox + */ + post: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": Record; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/mailings": { + /** Get a Collection of Mailings */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["mailingResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Create a New Mailing */ + post: { + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["mailing"]; + relationships?: components["schemas"]["mailingRelationships"]; + type?: string; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["mailingResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/mailings/{id}": { + /** Get a Mailing by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["mailingResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/opportunities": { + /** Get a Collection of Opportunities */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["opportunityResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Create a New Opportunity */ + post: { + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["opportunity"]; + relationships?: components["schemas"]["opportunityRelationships"]; + type?: string; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["opportunityResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/opportunities/{id}": { + /** Get an Opportunity by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["opportunityResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Delete an Existing Opportunity by ID */ + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Deleted */ + 204: { + content: { + "application/vnd.api+json": unknown; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Update an Opportunity */ + patch: { + parameters: { + path: { + id: number; + }; + }; + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["opportunity"]; + id: number; + relationships?: components["schemas"]["opportunityRelationships"]; + type: string; + }; + }; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["opportunity"]; + id: number; + relationships?: components["schemas"]["opportunityRelationships"]; + type: string; + }; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/opportunityProspectRoles": { + /** Get a Collection of Opportunity Prospect Roles */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["opportunityProspectRoleResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Create a New Opportunity Prospect Role */ + post: { + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["opportunityProspectRole"]; + relationships?: components["schemas"]["opportunityProspectRoleRelationships"]; + type?: string; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["opportunityProspectRoleResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/opportunityProspectRoles/{id}": { + /** Get an Opportunity Prospect Role by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["opportunityProspectRoleResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Delete an Existing Opportunity Prospect Role by ID */ + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Deleted */ + 204: { + content: { + "application/vnd.api+json": unknown; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Update an Opportunity Prospect Role */ + patch: { + parameters: { + path: { + id: number; + }; + }; + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["opportunityProspectRole"]; + id: number; + relationships?: components["schemas"]["opportunityProspectRoleRelationships"]; + type: string; + }; + }; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["opportunityProspectRole"]; + id: number; + relationships?: components["schemas"]["opportunityProspectRoleRelationships"]; + type: string; + }; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/opportunityStages": { + /** Get a Collection of Opportunity Stages */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["opportunityStageResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Create a New Opportunity Stage */ + post: { + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["opportunityStage"]; + relationships?: components["schemas"]["opportunityStageRelationships"]; + type?: string; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["opportunityStageResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/opportunityStages/{id}": { + /** Get an Opportunity Stage by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["opportunityStageResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Delete an Existing Opportunity Stage by ID */ + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Deleted */ + 204: { + content: { + "application/vnd.api+json": unknown; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Update an Opportunity Stage */ + patch: { + parameters: { + path: { + id: number; + }; + }; + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["opportunityStage"]; + id: number; + relationships?: components["schemas"]["opportunityStageRelationships"]; + type: string; + }; + }; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["opportunityStage"]; + id: number; + relationships?: components["schemas"]["opportunityStageRelationships"]; + type: string; + }; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/personas": { + /** Get a Collection of Personas */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["personaResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Create a New Persona */ + post: { + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["persona"]; + relationships?: components["schemas"]["personaRelationships"]; + type?: string; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["personaResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/personas/{id}": { + /** Get a Persona by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["personaResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Delete an Existing Persona by ID */ + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Deleted */ + 204: { + content: { + "application/vnd.api+json": unknown; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Update a Persona */ + patch: { + parameters: { + path: { + id: number; + }; + }; + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["persona"]; + id: number; + relationships?: components["schemas"]["personaRelationships"]; + type: string; + }; + }; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["persona"]; + id: number; + relationships?: components["schemas"]["personaRelationships"]; + type: string; + }; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/phoneNumbers": { + /** Get a Collection of Phone Numbers */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["phoneNumberResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Create a New Phone Number */ + post: { + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["phoneNumber"]; + relationships?: components["schemas"]["phoneNumberRelationships"]; + type?: string; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["phoneNumberResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/phoneNumbers/{id}": { + /** Get a Phone Number by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["phoneNumberResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Delete an Existing Phone Number by ID */ + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Deleted */ + 204: { + content: { + "application/vnd.api+json": unknown; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Update a Phone Number */ + patch: { + parameters: { + path: { + id: number; + }; + }; + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["phoneNumber"]; + id: number; + relationships?: components["schemas"]["phoneNumberRelationships"]; + type: string; + }; + }; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["phoneNumber"]; + id: number; + relationships?: components["schemas"]["phoneNumberRelationships"]; + type: string; + }; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/profiles": { + /** Get a Collection of Profiles */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["profileResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Create a New Profile */ + post: { + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["profile"]; + relationships?: components["schemas"]["profileRelationships"]; + type?: string; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["profileResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/profiles/{id}": { + /** Get a Profile by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["profileResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Delete an Existing Profile by ID */ + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Deleted */ + 204: { + content: { + "application/vnd.api+json": unknown; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Update a Profile */ + patch: { + parameters: { + path: { + id: number; + }; + }; + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["profile"]; + id: number; + relationships?: components["schemas"]["profileRelationships"]; + type: string; + }; + }; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["profile"]; + id: number; + relationships?: components["schemas"]["profileRelationships"]; + type: string; + }; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/prospects": { + /** Get a Collection of Prospects */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["prospectResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Create a New Prospect */ + post: { + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["prospect"]; + relationships?: components["schemas"]["prospectRelationships"]; + type?: string; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["prospectResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/prospects/{id}": { + /** Get a Prospect by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["prospectResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Delete an Existing Prospect by ID */ + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Deleted */ + 204: { + content: { + "application/vnd.api+json": unknown; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Update a Prospect */ + patch: { + parameters: { + path: { + id: number; + }; + }; + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["prospect"]; + id: number; + relationships?: components["schemas"]["prospectRelationships"]; + type: string; + }; + }; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["prospect"]; + id: number; + relationships?: components["schemas"]["prospectRelationships"]; + type: string; + }; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/recipients": { + /** Get a Collection of Recipients */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["recipientResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Create a New Recipient */ + post: { + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["recipient"]; + relationships?: components["schemas"]["recipientRelationships"]; + type?: string; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["recipientResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/recipients/{id}": { + /** Get a Recipient by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["recipientResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Delete an Existing Recipient by ID */ + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Deleted */ + 204: { + content: { + "application/vnd.api+json": unknown; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Update a Recipient */ + patch: { + parameters: { + path: { + id: number; + }; + }; + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["recipient"]; + id: number; + relationships?: components["schemas"]["recipientRelationships"]; + type: string; + }; + }; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["recipient"]; + id: number; + relationships?: components["schemas"]["recipientRelationships"]; + type: string; + }; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/roles": { + /** Get a Collection of Roles */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["roleResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Create a New Role */ + post: { + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["role"]; + relationships?: components["schemas"]["roleRelationships"]; + type?: string; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["roleResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/roles/{id}": { + /** Get a Role by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["roleResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Delete an Existing Role by ID */ + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Deleted */ + 204: { + content: { + "application/vnd.api+json": unknown; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Update a Role */ + patch: { + parameters: { + path: { + id: number; + }; + }; + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["role"]; + id: number; + relationships?: components["schemas"]["roleRelationships"]; + type: string; + }; + }; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["role"]; + id: number; + relationships?: components["schemas"]["roleRelationships"]; + type: string; + }; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/rulesets": { + /** Get a Collection of Rulesets */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["rulesetResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Create a New Ruleset */ + post: { + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["ruleset"]; + relationships?: components["schemas"]["rulesetRelationships"]; + type?: string; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["rulesetResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/rulesets/{id}": { + /** Get a Ruleset by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["rulesetResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Delete an Existing Ruleset by ID */ + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Deleted */ + 204: { + content: { + "application/vnd.api+json": unknown; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Update a Ruleset */ + patch: { + parameters: { + path: { + id: number; + }; + }; + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["ruleset"]; + id: number; + relationships?: components["schemas"]["rulesetRelationships"]; + type: string; + }; + }; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["ruleset"]; + id: number; + relationships?: components["schemas"]["rulesetRelationships"]; + type: string; + }; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/sequenceStates": { + /** Get a Collection of Sequence States */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["sequenceStateResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Create a New Sequence State */ + post: { + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["sequenceState"]; + relationships?: components["schemas"]["sequenceStateRelationships"]; + type?: string; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["sequenceStateResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/sequenceStates/{id}": { + /** Get a Sequence State by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["sequenceStateResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Delete an Existing Sequence State by ID */ + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Deleted */ + 204: { + content: { + "application/vnd.api+json": unknown; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/sequenceStates/{id}/actions/finish": { + /** + * Finish + * @description ### Member Action + * + * Finishes an active sequence state. + */ + post: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["sequenceStateResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/sequenceStates/{id}/actions/pause": { + /** + * Pause + * @description ### Member Action + * + * Pauses an active sequence state. + */ + post: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["sequenceStateResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/sequenceStates/{id}/actions/resume": { + /** + * Resume + * @description ### Member Action + * + * Resumes a paused sequence state. + */ + post: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["sequenceStateResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/sequenceSteps": { + /** Get a Collection of Sequence Steps */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["sequenceStepResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Create a New Sequence Step */ + post: { + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["sequenceStep"]; + relationships?: components["schemas"]["sequenceStepRelationships"]; + type?: string; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["sequenceStepResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/sequenceSteps/{id}": { + /** Get a Sequence Step by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["sequenceStepResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Update a Sequence Step */ + patch: { + parameters: { + path: { + id: number; + }; + }; + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["sequenceStep"]; + id: number; + relationships?: components["schemas"]["sequenceStepRelationships"]; + type: string; + }; + }; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["sequenceStep"]; + id: number; + relationships?: components["schemas"]["sequenceStepRelationships"]; + type: string; + }; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/sequenceTemplates": { + /** Get a Collection of Sequence Templates */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["sequenceTemplateResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Create a New Sequence Template */ + post: { + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["sequenceTemplate"]; + relationships?: components["schemas"]["sequenceTemplateRelationships"]; + type?: string; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["sequenceTemplateResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/sequenceTemplates/{id}": { + /** Get a Sequence Template by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["sequenceTemplateResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Delete an Existing Sequence Template by ID */ + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Deleted */ + 204: { + content: { + "application/vnd.api+json": unknown; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Update a Sequence Template */ + patch: { + parameters: { + path: { + id: number; + }; + }; + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["sequenceTemplate"]; + id: number; + relationships?: components["schemas"]["sequenceTemplateRelationships"]; + type: string; + }; + }; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["sequenceTemplate"]; + id: number; + relationships?: components["schemas"]["sequenceTemplateRelationships"]; + type: string; + }; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/sequences": { + /** Get a Collection of Sequences */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["sequenceResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Create a New Sequence */ + post: { + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["sequence"]; + relationships?: components["schemas"]["sequenceRelationships"]; + type?: string; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["sequenceResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/sequences/{id}": { + /** Get a Sequence by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["sequenceResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Delete an Existing Sequence by ID */ + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Deleted */ + 204: { + content: { + "application/vnd.api+json": unknown; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Update a Sequence */ + patch: { + parameters: { + path: { + id: number; + }; + }; + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["sequence"]; + id: number; + relationships?: components["schemas"]["sequenceRelationships"]; + type: string; + }; + }; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["sequence"]; + id: number; + relationships?: components["schemas"]["sequenceRelationships"]; + type: string; + }; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/snippets": { + /** Get a Collection of Snippets */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["snippetResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Create a New Snippet */ + post: { + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["snippet"]; + relationships?: components["schemas"]["snippetRelationships"]; + type?: string; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["snippetResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/snippets/{id}": { + /** Get a Snippet by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["snippetResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Delete an Existing Snippet by ID */ + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Deleted */ + 204: { + content: { + "application/vnd.api+json": unknown; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Update a Snippet */ + patch: { + parameters: { + path: { + id: number; + }; + }; + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["snippet"]; + id: number; + relationships?: components["schemas"]["snippetRelationships"]; + type: string; + }; + }; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["snippet"]; + id: number; + relationships?: components["schemas"]["snippetRelationships"]; + type: string; + }; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/stages": { + /** Get a Collection of Stages */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["stageResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Create a New Stage */ + post: { + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["stage"]; + relationships?: components["schemas"]["stageRelationships"]; + type?: string; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["stageResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/stages/{id}": { + /** Get a Stage by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["stageResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Delete an Existing Stage by ID */ + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Deleted */ + 204: { + content: { + "application/vnd.api+json": unknown; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Update a Stage */ + patch: { + parameters: { + path: { + id: number; + }; + }; + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["stage"]; + id: number; + relationships?: components["schemas"]["stageRelationships"]; + type: string; + }; + }; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["stage"]; + id: number; + relationships?: components["schemas"]["stageRelationships"]; + type: string; + }; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/taskPriorities": { + /** Get a Collection of Task Priorities */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["taskPriorityResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/taskPriorities/{id}": { + /** Get a Task Priority by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["taskPriorityResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/tasks": { + /** Get a Collection of Tasks */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["taskResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Create a New Task */ + post: { + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["task"]; + relationships?: components["schemas"]["taskRelationships"]; + type?: string; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["taskResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/tasks/{id}": { + /** Get a Task by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["taskResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Delete an Existing Task by ID */ + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Deleted */ + 204: { + content: { + "application/vnd.api+json": unknown; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Update a Task */ + patch: { + parameters: { + path: { + id: number; + }; + }; + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["task"]; + id: number; + relationships?: components["schemas"]["taskRelationships"]; + type: string; + }; + }; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["task"]; + id: number; + relationships?: components["schemas"]["taskRelationships"]; + type: string; + }; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/tasks/{id}/actions/advance": { + /** + * Advance + * @description ### Member Action + * + * Advances the sequence state associated with the task to the next step in the sequence. Note that only tasks with task_type of 'sequence_step_call', 'sequence_step_email', 'sequence_step_linkedin_interact_with_post', 'sequence_step_linkedin_other', 'sequence_step_linkedin_send_connection_request', 'sequence_step_linkedin_send_message', 'sequence_step_linkedin_view_profile', 'sequence_step_sms' or 'sequence_step_task' can be advanced. + */ + post: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["taskResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/tasks/{id}/actions/deliver": { + /** + * Deliver + * @description ### Member Action + * + * Schedules the mailing associated with the task for delivery, if possible. + */ + post: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["taskResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/tasks/{id}/actions/markComplete": { + /** + * Mark Complete + * @description ### Member Action + * + * Marks the task as complete. + */ + post: { + parameters: { + query?: { + actionParams?: { + /** @description For sequence step tasks, this specifies how to finish the sequence state. Possible values are: 'finish_no_reply' to finish the sequence, 'finish_replied' to set the sequence as replied, and anything else (including leaving it blank) will advance the sequence state. */ + completionAction?: unknown; + /** @description A note to attach to the associated prospect, if there is one. */ + completionNote?: unknown; + }; + }; + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["taskResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/tasks/{id}/actions/reassignOwner": { + /** + * Reassign Owner + * @description ### Member Action + * + * Reassigns the owner of a task + */ + post: { + parameters: { + query?: { + actionParams?: { + /** @description The id of the new owner of the task */ + ownerId: unknown; + }; + }; + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["taskResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/tasks/{id}/actions/reschedule": { + /** + * Reschedule + * @description ### Member Action + * + * Reschedules a task by setting a new task due time. + */ + post: { + parameters: { + query?: { + actionParams?: { + /** @description The new time for the task to be due. */ + dueAt: unknown; + }; + }; + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["taskResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/tasks/{id}/actions/snooze": { + /** + * Snooze + * @description ### Member Action + * + * Sets the 'dueAt' value to be a day later than either now or the existing 'dueAt' value, whichever is later. + */ + post: { + parameters: { + query?: { + actionParams?: { + /** @description The new time for the task to be due. */ + dueAt?: unknown; + /** @description Whether to mark the task as urgent or not. */ + markAsUrgent?: unknown; + }; + }; + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["taskResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/tasks/{id}/actions/updateNote": { + /** + * Update Note + * @description ### Member Action + * + * Updates note of a task + */ + post: { + parameters: { + query?: { + actionParams?: { + /** @description The note to set on the task. */ + note: unknown; + }; + }; + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["taskResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/tasks/{id}/actions/updateOpportunityAssociation": { + /** + * Update Opportunity Association + * @description ### Member Action + * + * Updates opportunity association of a task + */ + post: { + parameters: { + query?: { + actionParams?: { + /** @description The opportunity to associate with the task. */ + opportunityAssociation: unknown; + }; + }; + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["taskResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/teams": { + /** Get a Collection of Teams */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["teamResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Create a New Team */ + post: { + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["team"]; + relationships?: components["schemas"]["teamRelationships"]; + type?: string; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["teamResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/teams/{id}": { + /** Get a Team by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["teamResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Delete an Existing Team by ID */ + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Deleted */ + 204: { + content: { + "application/vnd.api+json": unknown; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Update a Team */ + patch: { + parameters: { + path: { + id: number; + }; + }; + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["team"]; + id: number; + relationships?: components["schemas"]["teamRelationships"]; + type: string; + }; + }; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["team"]; + id: number; + relationships?: components["schemas"]["teamRelationships"]; + type: string; + }; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/templates": { + /** Get a Collection of Templates */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["templateResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Create a New Template */ + post: { + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["template"]; + relationships?: components["schemas"]["templateRelationships"]; + type?: string; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["templateResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/templates/{id}": { + /** Get a Template by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["templateResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Delete an Existing Template by ID */ + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Deleted */ + 204: { + content: { + "application/vnd.api+json": unknown; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Update a Template */ + patch: { + parameters: { + path: { + id: number; + }; + }; + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["template"]; + id: number; + relationships?: components["schemas"]["templateRelationships"]; + type: string; + }; + }; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["template"]; + id: number; + relationships?: components["schemas"]["templateRelationships"]; + type: string; + }; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/users": { + /** Get a Collection of Users */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["userResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Create a New User */ + post: { + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["user"]; + relationships?: components["schemas"]["userRelationships"]; + type?: string; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["userResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/users/{id}": { + /** Get a User by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["userResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Update a User */ + patch: { + parameters: { + path: { + id: number; + }; + }; + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["user"]; + id: number; + relationships?: components["schemas"]["userRelationships"]; + type: string; + }; + }; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["user"]; + id: number; + relationships?: components["schemas"]["userRelationships"]; + type: string; + }; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/webhooks": { + /** Get a Collection of Webhooks */ + get: { + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["webhookResponse"][]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Create a New Webhook */ + post: { + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["webhook"]; + relationships?: components["schemas"]["webhookRelationships"]; + type?: string; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["webhookResponse"]; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; + "/webhooks/{id}": { + /** Get a Webhook by ID */ + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: components["schemas"]["webhookResponse"]; + }; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Delete an Existing Webhook by ID */ + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Deleted */ + 204: { + content: { + "application/vnd.api+json": unknown; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + /** Update a Webhook */ + patch: { + parameters: { + path: { + id: number; + }; + }; + requestBody: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["webhook"]; + id: number; + relationships?: components["schemas"]["webhookRelationships"]; + type: string; + }; + }; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/vnd.api+json": { + data?: { + attributes?: components["schemas"]["webhook"]; + id: number; + relationships?: components["schemas"]["webhookRelationships"]; + type: string; + }; + }; + }; + }; + /** @description JSON error message */ + 422: { + content: { + "application/vnd.api+json": { + errors?: { + detail?: string; + id?: string; + title?: string; + }[]; + }; + }; + }; + }; + }; + }; +} + +export type webhooks = Record; + +export interface components { + schemas: { + /** @description A descriptor of a named company used to categorize prospects within an account-based sales approach. */ + account: { + /** + * Format: float + * @description + * + * A custom score given to measure the quality of the account. + */ + buyerIntentScore?: number; + /** + * @description + * + * A description of the company’s type (e.g. "Public Company"). + */ + companyType?: string; + /** + * Format: date-time + * @description + * + * The date and time the account was created. + */ + createdAt?: string; + /** + * @description + * + * The value of the account’s first custom field. + */ + custom1?: string; + /** + * @description + * + * The value of the account’s second custom field. + */ + custom2?: string; + /** + * @description + * + * The value of the account’s third custom field. + */ + custom3?: string; + /** + * @description + * + * The value of the account’s fourth custom field. + */ + custom4?: string; + /** + * @description + * + * The value of the account’s fifth custom field. + */ + custom5?: string; + /** + * @description + * + * The value of the account’s sixth custom field. + */ + custom6?: string; + /** + * @description + * + * The value of the account’s seventh custom field. + */ + custom7?: string; + /** + * @description + * + * The value of the account’s eight custom field. + */ + custom8?: string; + /** + * @description + * + * The value of the account’s ninth custom field. + */ + custom9?: string; + /** + * @description + * + * The value of the account’s 10th custom field. + */ + custom10?: string; + /** + * @description + * + * The value of the account’s 11th custom field. + */ + custom11?: string; + /** + * @description + * + * The value of the account’s 12th custom field. + */ + custom12?: string; + /** + * @description + * + * The value of the account’s 13th custom field. + */ + custom13?: string; + /** + * @description + * + * The value of the account’s 14th custom field. + */ + custom14?: string; + /** + * @description + * + * The value of the account’s 15th custom field. + */ + custom15?: string; + /** + * @description + * + * The value of the account’s 16th custom field. + */ + custom16?: string; + /** + * @description + * + * The value of the account’s 17th custom field. + */ + custom17?: string; + /** + * @description + * + * The value of the account’s 18th custom field. + */ + custom18?: string; + /** + * @description + * + * The value of the account’s 19th custom field. + */ + custom19?: string; + /** + * @description + * + * The value of the account’s 20th custom field. + */ + custom20?: string; + /** + * @description + * + * The value of the account’s 21st custom field. + */ + custom21?: string; + /** + * @description + * + * The value of the account’s 22nd custom field. + */ + custom22?: string; + /** + * @description + * + * The value of the account’s 23rd custom field. + */ + custom23?: string; + /** + * @description + * + * The value of the account’s 24th custom field. + */ + custom24?: string; + /** + * @description + * + * The value of the account’s 25th custom field. + */ + custom25?: string; + /** + * @description + * + * The value of the account’s 26th custom field. + */ + custom26?: string; + /** + * @description + * + * The value of the account’s 27th custom field. + */ + custom27?: string; + /** + * @description + * + * The value of the account’s 28th custom field. + */ + custom28?: string; + /** + * @description + * + * The value of the account’s 29th custom field. + */ + custom29?: string; + /** + * @description + * + * The value of the account’s 30th custom field. + */ + custom30?: string; + /** + * @description + * + * The value of the account’s 31st custom field. + */ + custom31?: string; + /** + * @description + * + * The value of the account’s 32nd custom field. + */ + custom32?: string; + /** + * @description + * + * The value of the account’s 33rd custom field. + */ + custom33?: string; + /** + * @description + * + * The value of the account’s 34th custom field. + */ + custom34?: string; + /** + * @description + * + * The value of the account’s 35th custom field. + */ + custom35?: string; + /** + * @description + * + * The value of the account's 36th custom field. + */ + custom36?: string; + /** + * @description + * + * The value of the account's 37th custom field. + */ + custom37?: string; + /** + * @description + * + * The value of the account's 38th custom field. + */ + custom38?: string; + /** + * @description + * + * The value of the account's 39th custom field. + */ + custom39?: string; + /** + * @description + * + * The value of the account's 40th custom field. + */ + custom40?: string; + /** + * @description + * + * The value of the account's 41st custom field. + */ + custom41?: string; + /** + * @description + * + * The value of the account's 42nd custom field. + */ + custom42?: string; + /** + * @description + * + * The value of the account's 43rd custom field. + */ + custom43?: string; + /** + * @description + * + * The value of the account's 44th custom field. + */ + custom44?: string; + /** + * @description + * + * The value of the account's 45th custom field. + */ + custom45?: string; + /** + * @description + * + * The value of the account's 46th custom field. + */ + custom46?: string; + /** + * @description + * + * The value of the account's 47th custom field. + */ + custom47?: string; + /** + * @description + * + * The value of the account's 48th custom field. + */ + custom48?: string; + /** + * @description + * + * The value of the account's 49th custom field. + */ + custom49?: string; + /** + * @description + * + * The value of the account's 50th custom field. + */ + custom50?: string; + /** + * @description + * + * The value of the account's 51st custom field. + */ + custom51?: string; + /** + * @description + * + * The value of the account's 52nd custom field. + */ + custom52?: string; + /** + * @description + * + * The value of the account's 53rd custom field. + */ + custom53?: string; + /** + * @description + * + * The value of the account's 54th custom field. + */ + custom54?: string; + /** + * @description + * + * The value of the account's 55th custom field. + */ + custom55?: string; + /** + * @description + * + * The value of the account's 56th custom field. + */ + custom56?: string; + /** + * @description + * + * The value of the account's 57th custom field. + */ + custom57?: string; + /** + * @description + * + * The value of the account's 58th custom field. + */ + custom58?: string; + /** + * @description + * + * The value of the account's 59th custom field. + */ + custom59?: string; + /** + * @description + * + * The value of the account's 60th custom field. + */ + custom60?: string; + /** + * @description + * + * The value of the account's 61st custom field. + */ + custom61?: string; + /** + * @description + * + * The value of the account's 62nd custom field. + */ + custom62?: string; + /** + * @description + * + * The value of the account's 63rd custom field. + */ + custom63?: string; + /** + * @description + * + * The value of the account's 64th custom field. + */ + custom64?: string; + /** + * @description + * + * The value of the account's 65th custom field. + */ + custom65?: string; + /** + * @description + * + * The value of the account's 66th custom field. + */ + custom66?: string; + /** + * @description + * + * The value of the account's 67th custom field. + */ + custom67?: string; + /** + * @description + * + * The value of the account's 68th custom field. + */ + custom68?: string; + /** + * @description + * + * The value of the account's 69th custom field. + */ + custom69?: string; + /** + * @description + * + * The value of the account's 70th custom field. + */ + custom70?: string; + /** + * @description + * + * The value of the account's 71st custom field. + */ + custom71?: string; + /** + * @description + * + * The value of the account's 72nd custom field. + */ + custom72?: string; + /** + * @description + * + * The value of the account's 73rd custom field. + */ + custom73?: string; + /** + * @description + * + * The value of the account's 74th custom field. + */ + custom74?: string; + /** + * @description + * + * The value of the account's 75th custom field. + */ + custom75?: string; + /** + * @description + * + * The value of the account's 76th custom field. + */ + custom76?: string; + /** + * @description + * + * The value of the account's 77th custom field. + */ + custom77?: string; + /** + * @description + * + * The value of the account's 78th custom field. + */ + custom78?: string; + /** + * @description + * + * The value of the account's 79th custom field. + */ + custom79?: string; + /** + * @description + * + * The value of the account's 80th custom field. + */ + custom80?: string; + /** + * @description + * + * The value of the account's 81st custom field. + */ + custom81?: string; + /** + * @description + * + * The value of the account's 82nd custom field. + */ + custom82?: string; + /** + * @description + * + * The value of the account's 83rd custom field. + */ + custom83?: string; + /** + * @description + * + * The value of the account's 84th custom field. + */ + custom84?: string; + /** + * @description + * + * The value of the account's 85th custom field. + */ + custom85?: string; + /** + * @description + * + * The value of the account's 86th custom field. + */ + custom86?: string; + /** + * @description + * + * The value of the account's 87th custom field. + */ + custom87?: string; + /** + * @description + * + * The value of the account's 88th custom field. + */ + custom88?: string; + /** + * @description + * + * The value of the account's 89th custom field. + */ + custom89?: string; + /** + * @description + * + * The value of the account's 90th custom field. + */ + custom90?: string; + /** + * @description + * + * The value of the account's 91st custom field. + */ + custom91?: string; + /** + * @description + * + * The value of the account's 92nd custom field. + */ + custom92?: string; + /** + * @description + * + * The value of the account's 93rd custom field. + */ + custom93?: string; + /** + * @description + * + * The value of the account's 94th custom field. + */ + custom94?: string; + /** + * @description + * + * The value of the account's 95th custom field. + */ + custom95?: string; + /** + * @description + * + * The value of the account's 96th custom field. + */ + custom96?: string; + /** + * @description + * + * The value of the account's 97th custom field. + */ + custom97?: string; + /** + * @description + * + * The value of the account's 98th custom field. + */ + custom98?: string; + /** + * @description + * + * The value of the account's 99th custom field. + */ + custom99?: string; + /** + * @description + * + * The value of the account’s 100th custom field. + */ + custom100?: string; + /** + * @description + * + * The value of the account’s 101st custom field. + */ + custom101?: string; + /** + * @description + * + * The value of the account’s 102nd custom field. + */ + custom102?: string; + /** + * @description + * + * The value of the account’s 103rd custom field. + */ + custom103?: string; + /** + * @description + * + * The value of the account’s 104th custom field. + */ + custom104?: string; + /** + * @description + * + * The value of the account’s 105th custom field. + */ + custom105?: string; + /** + * @description + * + * The value of the account’s 106th custom field. + */ + custom106?: string; + /** + * @description + * + * The value of the account’s 107th custom field. + */ + custom107?: string; + /** + * @description + * + * The value of the account’s 108th custom field. + */ + custom108?: string; + /** + * @description + * + * The value of the account’s 109th custom field. + */ + custom109?: string; + /** + * @description + * + * The value of the account’s 110th custom field. + */ + custom110?: string; + /** + * @description + * + * The value of the account’s 111th custom field. + */ + custom111?: string; + /** + * @description + * + * The value of the account’s 112th custom field. + */ + custom112?: string; + /** + * @description + * + * The value of the account’s 113th custom field. + */ + custom113?: string; + /** + * @description + * + * The value of the account’s 114th custom field. + */ + custom114?: string; + /** + * @description + * + * The value of the account’s 115th custom field. + */ + custom115?: string; + /** + * @description + * + * The value of the account’s 116th custom field. + */ + custom116?: string; + /** + * @description + * + * The value of the account’s 117th custom field. + */ + custom117?: string; + /** + * @description + * + * The value of the account’s 118th custom field. + */ + custom118?: string; + /** + * @description + * + * The value of the account’s 119th custom field. + */ + custom119?: string; + /** + * @description + * + * The value of the account’s 120th custom field. + */ + custom120?: string; + /** + * @description + * + * The value of the account’s 121st custom field. + */ + custom121?: string; + /** + * @description + * + * The value of the account’s 122nd custom field. + */ + custom122?: string; + /** + * @description + * + * The value of the account’s 123rd custom field. + */ + custom123?: string; + /** + * @description + * + * The value of the account’s 124th custom field. + */ + custom124?: string; + /** + * @description + * + * The value of the account’s 125th custom field. + */ + custom125?: string; + /** + * @description + * + * The value of the account’s 126th custom field. + */ + custom126?: string; + /** + * @description + * + * The value of the account’s 127th custom field. + */ + custom127?: string; + /** + * @description + * + * The value of the account’s 128th custom field. + */ + custom128?: string; + /** + * @description + * + * The value of the account’s 129th custom field. + */ + custom129?: string; + /** + * @description + * + * The value of the account’s 130th custom field. + */ + custom130?: string; + /** + * @description + * + * The value of the account’s 131st custom field. + */ + custom131?: string; + /** + * @description + * + * The value of the account’s 132nd custom field. + */ + custom132?: string; + /** + * @description + * + * The value of the account’s 133rd custom field. + */ + custom133?: string; + /** + * @description + * + * The value of the account’s 134th custom field. + */ + custom134?: string; + /** + * @description + * + * The value of the account’s 135th custom field. + */ + custom135?: string; + /** + * @description + * + * The value of the account’s 136th custom field. + */ + custom136?: string; + /** + * @description + * + * The value of the account’s 137th custom field. + */ + custom137?: string; + /** + * @description + * + * The value of the account’s 138th custom field. + */ + custom138?: string; + /** + * @description + * + * The value of the account’s 139th custom field. + */ + custom139?: string; + /** + * @description + * + * The value of the account’s 140th custom field. + */ + custom140?: string; + /** + * @description + * + * The value of the account’s 141st custom field. + */ + custom141?: string; + /** + * @description + * + * The value of the account’s 142nd custom field. + */ + custom142?: string; + /** + * @description + * + * The value of the account’s 143rd custom field. + */ + custom143?: string; + /** + * @description + * + * The value of the account’s 144th custom field. + */ + custom144?: string; + /** + * @description + * + * The value of the account’s 145th custom field. + */ + custom145?: string; + /** + * @description + * + * The value of the account’s 146th custom field. + */ + custom146?: string; + /** + * @description + * + * The value of the account’s 147th custom field. + */ + custom147?: string; + /** + * @description + * + * The value of the account’s 148th custom field. + */ + custom148?: string; + /** + * @description + * + * The value of the account’s 149th custom field. + */ + custom149?: string; + /** + * @description + * + * The value of the account’s 150th custom field. + */ + custom150?: string; + /** + * @description + * + * A custom ID for the account, often referencing an ID in an external system. + */ + customId?: string; + /** + * @description + * + * A custom description of the account. + */ + description?: string; + /** + * @description + * + * The company’s website domain (e.g. "`www.acme.com`"). + */ + domain?: string; + /** + * @description + * + * The source of the resource’s creation (e.g. "outreach-api"). + */ + externalSource?: string; + /** + * @description + * + * The number of followers the company has listed on social media. + */ + followers?: number; + /** + * Format: date-time + * @description + * + * The founding date of the company. + */ + foundedAt?: string; + /** + * @description + * + * A description of the company’s industry (e.g. "Manufacturing"). + */ + industry?: string; + /** + * @description + * + * The number of employees listed on the company’s LinkedIn URL. + */ + linkedInEmployees?: number; + /** + * @description + * + * The company’s LinkedIn URL. + */ + linkedInUrl?: string; + /** + * @description + * + * The company’s primary geographic region (e.g. "Eastern USA"). + */ + locality?: string; + /** + * @description + * + * The name of the company (e.g. "Acme Corporation"). + */ + name?: string; + /** + * @description + * + * A boolean value determining whether this is a "named" account or not. Only named accounts will show up on the collection index. + */ + named?: boolean; + /** + * @description + * + * The natural name of the company (e.g. "Acme"). + */ + naturalName?: string; + /** + * @description + * + * The number of employees working at the company. + */ + numberOfEmployees?: number; + /** + * @description + * + * The ID of the sharing team associated with this object. Access is currently in beta. + */ + sharingTeamId?: string; + /** + * @description + * + * A list of tag values associated with the account (e.g. ["Enterprise", "Tier 1"]). + */ + tags?: string[]; + /** + * Format: date-time + * @description + * + * The date and time the account was last touched. + */ + touchedAt?: string; + /** + * Format: date-time + * @description + * + * The date and time the account was last updated. + */ + updatedAt?: string; + /** + * @description + * + * The company’s website URL (e.g. "`https://www.acme.com/contact`"). + */ + websiteUrl?: string; + }; + accountRelationships: { + /** + * @description + * + * The creator of the account. Relationship creator cannot be used as a filter. + */ + creator?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** + * user + * @description The owner of the account. You can use only the attribute id to filter accounts by owner (e.g. filter[owner][id]=X). + */ + owner?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** + * @description + * + * The account's associated prospects. Relationship prospects cannot be used as a filter. + */ + prospects?: { + links?: { + /** @enum {string} */ + related?: "prospect"; + }; + }[]; + /** + * @description + * + * The associated tasks. Relationship tasks cannot be used as a filter. + */ + tasks?: { + links?: { + /** @enum {string} */ + related?: "task"; + }; + }[]; + /** + * @description + * + * The most recent updater of the account. Relationship updater cannot be used as a filter. + */ + updater?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + accountResponse: { + attributes?: components["schemas"]["account"]; + id?: number; + relationships?: components["schemas"]["accountRelationships"]; + type?: string; + }; + addressRelationships: Record; + attachmentRelationships: Record; + /** @description Events that happen during the day. Things like login, plugin mapping changes, etc. */ + audit: { + /** + * @description + * + * Name of the event + */ + eventName?: string; + /** + * Format: date-time + * @description + * + * When the event happened + */ + timestamp?: string; + /** + * Format: email + * @description + * + * Email of the user who perfomed the action + */ + userEmail?: string; + }; + auditRelationships: Record; + auditResponse: { + attributes?: components["schemas"]["audit"]; + id?: number; + relationships?: components["schemas"]["auditRelationships"]; + type?: string; + }; + batchItemRelationships: Record; + batchRelationships: Record; + blockedNumberRelationships: Record; + calendarEventAttendeeRelationships: { + /** prospect */ + prospect?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "prospect"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "prospect"; + }; + }]>; + /** user */ + user?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + calendarEventRelationships: { + /** @description */ + accounts?: { + links?: { + /** @enum {string} */ + related?: "account"; + }; + }[]; + /** + * user + * @description + * + * The user who booked this event. + */ + booker?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** + * @description + * + * The creator of the event. + */ + creator?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** + * opportunity + * @description The opportunity associated with the event. + */ + opportunity?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "opportunity"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "opportunity"; + }; + }]>; + /** @description */ + prospects?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "prospect"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "prospect"; + }; + }]>[]; + /** + * user + * @description + * + * The user associated with the calendar. + */ + user?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + users?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>[]; + }; + calendarRelationships: { + /** + * @description + * + * The creator of the calendar. + */ + creator?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** + * @description + * + * The most recent updater of the calendar. + */ + updater?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** + * user + * @description The user associated with the calendar. + */ + user?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + calendarUrlRelationships: Record; + /** @description A log of an inbound or outbound call made with a prospect. */ + call: { + /** + * Format: date-time + * @description + * + * The date and time the call was answered. + */ + answeredAt?: string; + /** + * Format: date-time + * @description + * + * The date and time the call was completed. + */ + completedAt?: string; + /** + * Format: date-time + * @description + * + * The date and time the call was created. + */ + createdAt?: string; + /** + * Format: date-time + * @description + * + * The date and time the call was dialed. + */ + dialedAt?: string; + /** + * @description + * + * The call direction from the user’s point of view; must be either "inbound" or "outbound". + */ + direction?: string; + /** + * @description + * + * The voice provider of the call. Can be blank. + */ + externalVendor?: string; + /** + * @description + * + * The phone number used to place the call. + */ + from?: string; + /** + * @description + * + * A custom note associated with this call. + */ + note?: string; + /** + * @description + * + * The call’s outcome; must be either "Answered" or "Not Answered". + */ + outcome?: string; + /** + * @description + * + * The URL of the call’s audio recording. + */ + recordingUrl?: string; + /** + * Format: date-time + * @description + * + * The date and time the call was returned. + */ + returnedAt?: string; + /** + * @description + * + * The action to take on the associated sequence; must be either "Advance", "Finish", "Finish - No Reply", or "Finish - Replied". + */ + sequenceAction?: string; + /** + * @description + * + * Indicated whether or not the call is recorded. + */ + shouldRecordCall?: boolean; + /** + * @description + * + * The call’s current state. + */ + state?: string; + /** + * Format: date-time + * @description + * + * The date and time the call’s state last changed. + */ + stateChangedAt?: string; + /** + * @description + * + * A list of tag values associated with the call (e.g. ["Interested", "Meeting Booked"]). + */ + tags?: string[]; + /** + * @description + * + * The phone number that the call was placed to. + */ + to?: string; + /** + * @description + * + * The Outreach voice trace id. + */ + uid?: string; + /** + * Format: date-time + * @description + * + * The date and time the call was last updated. + */ + updatedAt?: string; + /** + * @description + * + * The type of call placed within the Outreach client; must be either "bridge" or "voip". + */ + userCallType?: string; + /** + * @description + * + * The call-id as recoreded by the voice provider. Can be blank. + */ + vendorCallId?: string; + /** + * @description + * + * The URL of the call’s voicemail audio recording. + */ + voicemailRecordingUrl?: string; + }; + /** @description A ready-made collection of call dispositions that help categorize your call logs. */ + callDisposition: { + /** + * Format: date-time + * @description + * + * The date and time the call disposition was created. + */ + createdAt?: string; + /** + * @description + * + * The disposition’s name (e.g. "Meeting Scheduled"). + */ + name?: string; + /** + * @description + * + * The disposition’s display order within the collection. + */ + order?: number; + /** + * @description + * + * The disposition’s call outcome; must be either "Answered" or "Not Answered". + */ + outcome?: string; + /** + * Format: date-time + * @description + * + * The date and time the call disposition was last updated. + */ + updatedAt?: string; + }; + callDispositionRelationships: { + /** + * @description + * + * The calls made with this disposition. Relationship calls cannot be used as a filter. + */ + calls?: { + links?: { + /** @enum {string} */ + related?: "call"; + }; + }[]; + /** + * @description + * + * The creator of the call disposition. Relationship creator cannot be used as a filter. + */ + creator?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + callDispositionResponse: { + attributes?: components["schemas"]["callDisposition"]; + id?: number; + relationships?: components["schemas"]["callDispositionRelationships"]; + type?: string; + }; + /** @description A ready-made collection of call purposes that help categorize your call logs. */ + callPurpose: { + /** + * Format: date-time + * @description + * + * The date and time the call purpose was created. + */ + createdAt?: string; + /** + * @description + * + * The purpose’s name (e.g. "Initial Contact"). + */ + name?: string; + /** + * @description + * + * The purpose’s display order within the collection. + */ + order?: number; + /** + * Format: date-time + * @description + * + * The date and time the call purpose was last updated. + */ + updatedAt?: string; + }; + callPurposeRelationships: { + /** + * @description + * + * The calls made with this purpose. Relationship calls cannot be used as a filter. + */ + calls?: { + links?: { + /** @enum {string} */ + related?: "call"; + }; + }[]; + /** + * @description + * + * The creator of the call purpose. Relationship creator cannot be used as a filter. + */ + creator?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + callPurposeResponse: { + attributes?: components["schemas"]["callPurpose"]; + id?: number; + relationships?: components["schemas"]["callPurposeRelationships"]; + type?: string; + }; + callRelationships: { + /** + * callDisposition + * @description The associated call disposition. You can use only the attribute id to filter calls by callDisposition (e.g. filter[callDisposition][id]=X). + */ + callDisposition?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "callDisposition"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "callDisposition"; + }; + }]>; + /** + * callPurpose + * @description The associated call purpose. You can use only the attribute id to filter calls by callPurpose (e.g. filter[callPurpose][id]=X). + */ + callPurpose?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "callPurpose"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "callPurpose"; + }; + }]>; + /** + * opportunity + * @description The associated opportunity. You can use only the attribute id to filter calls by opportunity (e.g. filter[opportunity][id]=X). + */ + opportunity?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "opportunity"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "opportunity"; + }; + }]>; + /** + * phoneNumber + * @description The associated phone number of the prospect. You can use only the attribute id to filter calls by phoneNumber (e.g. filter[phoneNumber][id]=X). + */ + phoneNumber?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "phoneNumber"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "phoneNumber"; + }; + }]>; + /** + * prospect + * @description The associated prospect. You can use only the attribute id to filter calls by prospect (e.g. filter[prospect][id]=X). + */ + prospect?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "prospect"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "prospect"; + }; + }]>; + /** + * sequence + * @description The associated sequence. You can use only the attribute id to filter calls by sequence (e.g. filter[sequence][id]=X). + */ + sequence?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "sequence"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "sequence"; + }; + }]>; + /** + * sequenceState + * @description The associated sequence state. You can use only the attribute id to filter calls by sequenceState (e.g. filter[sequenceState][id]=X). + */ + sequenceState?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "sequenceState"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "sequenceState"; + }; + }]>; + /** + * sequenceStep + * @description The associated sequence step. You can use only the attribute id to filter calls by sequenceStep (e.g. filter[sequenceStep][id]=X). + */ + sequenceStep?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "sequenceStep"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "sequenceStep"; + }; + }]>; + /** + * task + * @description The associated task. You can use only the attribute id to filter calls by task (e.g. filter[task][id]=X). + */ + task?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "task"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "task"; + }; + }]>; + /** + * user + * @description The associated user. You can use only the attribute id to filter calls by user (e.g. filter[user][id]=X). + */ + user?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + callResponse: { + attributes?: components["schemas"]["call"]; + id?: number; + relationships?: components["schemas"]["callRelationships"]; + type?: string; + }; + /** @description A regulatory request to delete or export an individual's PII. */ + complianceRequest: { + /** + * @description + * + * The UUID of the batch the compliance request belongs to. + */ + batchComplianceRequestUuid?: string; + /** + * Format: date-time + * @description + * + * The date and time the compliance request was created. + */ + createdAt?: string; + /** + * @description + * + * The type of record to process, can be 'Prospect' or 'Recipient' for e-mail addresses unassociated with a prospect. + */ + objectType?: string; + /** + * @description + * + * A JSON object of personal information required for processing the compliance request. + */ + pii?: Record; + /** + * @description + * + * The identifier for the record processed, for Prospects this is the Prospect ID, for Recipients this is an e-mail address. + */ + requestObjectId?: string; + /** + * @description + * + * The type of compliance request (only 'Delete' is supported at this time). + */ + requestType?: string; + /** + * @description + * + * The ID of the Outreach user who submitted the compliance request. + */ + requesterId?: number; + /** + * @description + * + * The current state of the compliance request, can be 'pending', 'running', 'failed', or 'done'. The states on the higher level abstraction, the batch compliance request, do not map 1:1 to these states. The only states that the batch compliance request will report are either 'pending' or 'done'. + */ + state?: string; + /** + * Format: date-time + * @description + * + * The date and time at which the compliance request was last updated. + */ + updatedAt?: string; + /** + * @description + * + * The UUID of the compliance request. + */ + uuid?: string; + }; + complianceRequestRelationships: { + /** + * @description + * + * The Outreach user who submitted the compliance request. Relationship requester cannot be used as a filter. + */ + requester?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + complianceRequestResponse: { + attributes?: components["schemas"]["complianceRequest"]; + id?: number; + relationships?: components["schemas"]["complianceRequestRelationships"]; + type?: string; + }; + /** @description Content can be grouped into content categories to help discoverability. */ + contentCategory: { + /** + * @description + * + * Can this category be used to group sequences? + */ + allowSequences?: boolean; + /** + * @description + * + * Can this category be used to group snippets? + */ + allowSnippets?: boolean; + /** + * @description + * + * Can this category be used to group templates? + */ + allowTemplates?: boolean; + /** + * @description + * + * Color of the content category to be used as a background + */ + color?: string; + /** + * Format: date-time + * @description + * + * The date and time the content category was created. + */ + createdAt?: string; + /** + * @description + * + * The name of the content category. + */ + name?: string; + /** + * Format: date-time + * @description + * + * The date and time the content category was last updated. + */ + updatedAt?: string; + }; + /** @description A record that maps content (e.g. a sequence) to a content category. */ + contentCategoryMembership: { + /** + * Format: date-time + * @description + * + * The date and time the content category membership was created. + */ + createdAt?: string; + /** + * Format: date-time + * @description + * + * The date and time the content category membership was last updated. + */ + updatedAt?: string; + }; + contentCategoryMembershipRelationships: { + /** @description The record in the content category. Must be a sequence, snippet, or template. Relationship content cannot be used as a filter. */ + content?: OneOf<[OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "snippet" | "template" | "sequence"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "snippet" | "template" | "sequence"; + }; + }]>, OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "snippet" | "template" | "sequence"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "snippet" | "template" | "sequence"; + }; + }]>, OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "snippet" | "template" | "sequence"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "snippet" | "template" | "sequence"; + }; + }]>]>; + /** + * contentCategory + * @description The content category the record is part of. You can use only the attribute id to filter contentCategoryMemberships by contentCategory (e.g. filter[contentCategory][id]=X). + */ + contentCategory?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "contentCategory"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "contentCategory"; + }; + }]>; + /** + * @description + * + * The creator of the content category membership. Relationship creator cannot be used as a filter. + */ + creator?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + contentCategoryMembershipResponse: { + attributes?: components["schemas"]["contentCategoryMembership"]; + id?: number; + relationships?: components["schemas"]["contentCategoryMembershipRelationships"]; + type?: string; + }; + /** @description A record that maps content categories to owners. This allows categories to be linked to one or more teams. */ + contentCategoryOwnership: { + /** + * Format: date-time + * @description + * + * The date and time the content category ownership was created. + */ + createdAt?: string; + /** + * Format: date-time + * @description + * + * The date and time the content category ownership was last updated. + */ + updatedAt?: string; + }; + contentCategoryOwnershipRelationships: { + /** + * contentCategory + * @description The content category the owner is linked to. You can use only the attribute id to filter contentCategoryOwnerships by contentCategory (e.g. filter[contentCategory][id]=X). + */ + contentCategory?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "contentCategory"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "contentCategory"; + }; + }]>; + /** + * @description + * + * The creator of the content category ownership. Relationship creator cannot be used as a filter. + */ + creator?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** @description The record the content category is tied to. Must a team for now. Relationship owner cannot be used as a filter. */ + owner?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "team"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "team"; + }; + }]>; + }; + contentCategoryOwnershipResponse: { + attributes?: components["schemas"]["contentCategoryOwnership"]; + id?: number; + relationships?: components["schemas"]["contentCategoryOwnershipRelationships"]; + type?: string; + }; + contentCategoryRelationships: { + /** + * @description + * + * The creator of the content category. Relationship creator cannot be used as a filter. + */ + creator?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + contentCategoryResponse: { + attributes?: components["schemas"]["contentCategory"]; + id?: number; + relationships?: components["schemas"]["contentCategoryRelationships"]; + type?: string; + }; + /** @description A freeform user-specified role or job duty played by a user in their organization. */ + customDuty: { + /** + * @description + * + * The polymorphic type of the duty (not the Ruby type, the duty type). + */ + dutyType?: string; + /** + * @description + * + * The name of the role. + */ + name?: string; + }; + customDutyRelationships: Record; + customDutyResponse: { + attributes?: components["schemas"]["customDuty"]; + id?: number; + relationships?: components["schemas"]["customDutyRelationships"]; + type?: string; + }; + customValidationRelationships: { + /** + * user + * @description + * + * The creator of the custom validation. + */ + creator?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** + * user + * @description + * + * The most recent updater of the custom validation. + */ + updater?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + /** @description An Outreach-suggested role or job duty played by a user in their organization. */ + duty: { + /** + * @description + * + * The polymorphic type of the duty (not the Ruby type, the duty type). + */ + dutyType?: string; + /** + * @description + * + * The string constant used to refer to this duty which can be internationalized on the client. + */ + symbolicName?: string; + }; + dutyRelationships: Record; + dutyResponse: { + attributes?: components["schemas"]["duty"]; + id?: number; + relationships?: components["schemas"]["dutyRelationships"]; + type?: string; + }; + /** @description A prospect's email address */ + emailAddress: { + /** + * Format: date-time + * @description + * + * The date and time the email address was created. + */ + createdAt?: string; + /** + * Format: email + * @description + * + * The raw email address value + */ + email?: string; + /** + * @description + * + * Type of email address (work or personal) + */ + emailType?: string; + /** + * @description + * + * Ordered position in list of emails + */ + order?: number; + /** + * @description + * + * The status of the email + */ + status?: string; + /** + * Format: date-time + * @description + * + * Time the status was updated + */ + statusChangedAt?: string; + /** + * Format: date-time + * @description + * + * Time a mailing was unsubscribed using this address + */ + unsubscribedAt?: string; + /** + * Format: date-time + * @description + * + * The date and time the email address was last updated. + */ + updatedAt?: string; + }; + emailAddressRelationships: { + /** + * prospect + * @description The owning prospect You can use only the attribute id to filter emailAddresses by prospect (e.g. filter[prospect][id]=X). + */ + prospect?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "prospect"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "prospect"; + }; + }]>; + }; + emailAddressResponse: { + attributes?: components["schemas"]["emailAddress"]; + id?: number; + relationships?: components["schemas"]["emailAddressRelationships"]; + type?: string; + }; + /** @description Application events, capturing details around the initiator, recipient, etc. */ + event: { + /** + * @description + * + * The event body (for external events only) + */ + body?: string; + /** + * Format: date-time + * @description + * + * The date and time the event was created. + */ + createdAt?: string; + /** + * Format: date-time + * @description + * + * The date and time the event occurred. + */ + eventAt?: string; + /** + * @description + * + * The external URL associated with this event (for external events only) + */ + externalUrl?: string; + /** + * @description + * + * The name of the event that took place (e.g. "mailbox_created"). + */ + name?: string; + /** + * @description + * + * The transmitted data for the event (cannot be updated once an event has been created) + */ + payload?: Record; + /** + * @description + * + * The city where the request that created the event was made. + */ + requestCity?: string; + /** + * @description + * + * The type of device on which the request that created the event was made. + */ + requestDevice?: string; + /** + * @description + * + * Name of the host from which the request was made. + */ + requestHost?: string; + /** + * @description + * + * A boolean value whether the request was proxied. For example, when true the request city refers to the location of the email server and not the prospect. + */ + requestProxied?: boolean; + /** + * @description + * + * Name of the region from which the request was made. + */ + requestRegion?: string; + }; + eventRelationships: { + /** + * account + * @description The account associated with this event. You can use only the attribute id to filter events by account (e.g. filter[account][id]=X). + */ + account?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "account"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "account"; + }; + }]>; + /** + * call + * @description The call associated with this event. You can use only the attribute id to filter events by call (e.g. filter[call][id]=X). + */ + call?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "call"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "call"; + }; + }]>; + /** + * mailing + * @description The mailing associated with this event. You can use only the attribute id to filter events by mailing (e.g. filter[mailing][id]=X). + */ + mailing?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "mailing"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "mailing"; + }; + }]>; + /** + * opportunity + * @description The opportunity associated with this event. You can use only the attribute id to filter events by opportunity (e.g. filter[opportunity][id]=X). + */ + opportunity?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "opportunity"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "opportunity"; + }; + }]>; + /** + * prospect + * @description The prospect associated with this event. You can use only the attribute id to filter events by prospect (e.g. filter[prospect][id]=X). + */ + prospect?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "prospect"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "prospect"; + }; + }]>; + /** + * task + * @description The task associated with this event. You can use only the attribute id to filter events by task (e.g. filter[task][id]=X). + */ + task?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "task"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "task"; + }; + }]>; + /** + * user + * @description The user associated with this event. You can use only the attribute id to filter events by user (e.g. filter[user][id]=X). + */ + user?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + eventResponse: { + attributes?: components["schemas"]["event"]; + id?: number; + relationships?: components["schemas"]["eventRelationships"]; + type?: string; + }; + experimentRelationships: { + /** + * @description + * + * The creator of the experiment. + */ + creator?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** @description The user who owns the experiment. */ + owner?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** @description The "target" sequence, Sequence A, of this experiment. When the experiment is enabled, this sequence will be probabilistically replaced with the "alternate" sequence, Sequence B, based on the percentage attribute. */ + sequenceA?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "sequence"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "sequence"; + }; + }]>; + /** @description The "alternate" sequence of this experiment. */ + sequenceB?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "sequence"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "sequence"; + }; + }]>; + }; + exportRelationships: { + /** @description */ + creator?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + /** @description A record (Prospect, Account, Sequence, etc.) favorited by a particular user. */ + favorite: { + /** + * Format: date-time + * @description + * + * The date and time the favorite was created. + */ + createdAt?: string; + /** + * @description + * + * The type of record that was favorited. + */ + targetType?: string; + /** + * Format: date-time + * @description + * + * The date and time the favorite was last updated. + */ + updatedAt?: string; + }; + favoriteRelationships: { + /** + * @description + * + * The user who created the favorite. Relationship creator cannot be used as a filter. + */ + creator?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** + * user + * @description The user who's favorite this is. You can use only the attribute id to filter favorites by user (e.g. filter[user][id]=X). + */ + user?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + favoriteResponse: { + attributes?: components["schemas"]["favorite"]; + id?: number; + relationships?: components["schemas"]["favoriteRelationships"]; + type?: string; + }; + featureFlagParticipationRelationships: Record; + featureFlagRelationships: Record; + gmailMessageMetadatumRelationships: { + mailings?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "mailing"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "mailing"; + }; + }]>[]; + }; + importRelationships: { + /** @description */ + creator?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + inboxSettingRelationships: { + /** + * user + * @description The associated user to whom this settings belong. + */ + user?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + jobRoleRelationships: Record; + /** @description Alternative email name for a mailbox. */ + mailAlias: { + /** + * @description + * + * Can this alias send email. + */ + canSend?: boolean; + /** + * Format: date-time + * @description + * + * The date the alias was created. + */ + createdAt?: string; + /** + * @description + * + * The email alias. + */ + email?: string; + /** + * @description + * + * Hashed email address of the alias. + */ + emailHash?: string; + /** + * Format: date-time + * @description + * + * The date the alias was last updated. + */ + updatedAt?: string; + }; + mailAliasRelationships: { + /** + * mailbox + * @description The parent mailbox for this alias. You can use only the attribute id to filter mailAliases by mailbox (e.g. filter[mailbox][id]=X). + */ + mailbox?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "mailbox"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "mailbox"; + }; + }]>; + }; + mailAliasResponse: { + attributes?: components["schemas"]["mailAlias"]; + id?: number; + relationships?: components["schemas"]["mailAliasRelationships"]; + type?: string; + }; + /** @description A representation of an email mailbox, used within the application for sending and syncing emails. */ + mailbox: { + /** + * @description + * + * The auth id associated with the mailbox. + */ + authId?: number; + /** + * Format: date-time + * @description + * + * The date and time the mailbox was created. + */ + createdAt?: string; + /** + * @description + * + * A boolean value to indicate if the user has the permission to edit mailbox fields. + */ + editable?: boolean; + /** + * @description + * + * The email address of the mailbox. + */ + email?: string; + /** + * @description + * + * Hashed email address of the mailbox. + */ + emailHash?: string; + /** + * @description + * + * The mail service provider. While not a required field, it is strongly recommended to use one of 'exchange_online', 'exchange_server', 'gmail', 'gmail_api', 'google_oauth2', 'intermedia', 'office365_oauth2', 'microsoft_hma_oauth2', 'office_365', 'rackspace'. If no value is provided, send and sync will make assumptions based on the ews, imap, and smtp values provided. + */ + emailProvider?: string; + /** + * @description + * + * The default signature, in HTML, to be appended to sent email messages. + */ + emailSignature?: string; + /** + * @description + * + * The url of the Exchange Web Service. + */ + ewsEndpoint?: string; + /** + * @description + * + * The SSL verify mode, represented as an integer, the EWS connection will used. (verify none=0, verify peer=1, verify client once=4, verify fail if no peer cert=2) + */ + ewsSslVerifyMode?: number; + /** + * @description + * + * The version of Exchange. Must be one of 'Exchange2007', 'Exchange2007_SP1', 'Exchange2010', 'Exchange2010_SP1', 'Exchange2010_SP2', 'Exchange2013', 'Exchange2013_SP1'. + */ + exchangeVersion?: string; + /** + * @description + * + * The address of the IMAP host, used for syncing (e.g. 'imap.gmail.com'). + */ + imapHost?: string; + /** + * @description + * + * The port number the IMAP server is using (e.g. '993'). + */ + imapPort?: number; + /** + * @description + * + * A boolean value whether the IMAP connection will use SSL. + */ + imapSsl?: boolean; + /** + * @description + * + * The maximum number of in/out emails per day. + */ + maxEmailsPerDay?: number; + /** + * @description + * + * The maximum number of emails the application can send in a day from this mailbox. Recommended value is 500. + */ + maxMailingsPerDay?: number; + /** + * @description + * + * The maximum number of emails the application can send within a week from this mailbox. Recommended value is 5000. + */ + maxMailingsPerWeek?: number; + /** + * @description + * + * The message displayed on the unsubscribe confirmation page, seen after clicking the unsubscribe link in the email (e.g. "To unsubscribe, click the button below."). + */ + optOutMessage?: string; + /** + * @description + * + * The message below the signature, in HTML, when the sequence requires an unsubscribe link (e.g. "If you'd like me to stop sending you emails, please `click here`"). + */ + optOutSignature?: string; + /** + * @description + * + * The password of the mailbox. This attribute can be used to set the password, but is not available for read. + */ + password?: string; + /** + * @description + * + * A list (provided as a string, newline-delimited) of email address patterns to be excluded from syncing (e.g. "`*@outreach.io + * daniel@example.com`"). + */ + prospectEmailExclusions?: string; + /** + * @description + * + * The id of the provider associated with this calendar. + */ + providerId?: number; + /** + * @description + * + * Email provider type. + */ + providerType?: string; + /** + * @description + * + * A boolean value whether sending is disabled from this mailbox. + */ + sendDisabled?: boolean; + /** + * Format: date-time + * @description + * + * The date and time the most recent send error occurred. + */ + sendErroredAt?: string; + /** + * @description + * + * The maximum number of times to auto-retry a delivery when it fails. + */ + sendMaxRetries?: number; + /** + * @description + * + * The method used for sending email. Must be either 'ews', 'sendgrid', or 'smtp'. + */ + sendMethod?: string; + /** + * @description + * + * The amount of time in seconds that the number of sendThreshold emails can be sent. Recommended value is two deliveries per minute (sendPeriod is 60). + */ + sendPeriod?: number; + /** + * @description + * + * A boolean value whether the mailbox is required to be recently synced before sending. + */ + sendRequiresSync?: boolean; + /** + * Format: date-time + * @description + * + * The date and time the most recent successful email send occurred. + */ + sendSuccessAt?: string; + /** + * @description + * + * The maximum number of email sends per the sendPeriod amount of time. Recommended value is two deliveries per minute (sendThreshold is 2). + */ + sendThreshold?: number; + /** + * @description + * + * The api key of the SendGrid account used for sending. + */ + sendgridApiKey?: string; + /** + * @description + * + * The endpoint required within the SendGrid account settings to support bounce and spam-report tracking. + */ + sendgridWebhookUrl?: string; + /** + * @description + * + * The address of the SMTP host, used for sending (e.g. 'smtp.gmail.com'). + */ + smtpHost?: string; + /** + * @description + * + * The password for the SMTP account. This value should be left blank unless a separate SMTP account is being used for sending (i.e. not the mailbox's main username/password). + */ + smtpPassword?: string; + /** + * @description + * + * The port number the SMTP server is using (e.g. '587'). + */ + smtpPort?: number; + /** + * @description + * + * A boolean value whether the SMTP connection will use SSL. + */ + smtpSsl?: boolean; + /** + * @description + * + * The username for the SMTP account. This value should be left blank unless a separate SMTP account is being used for sending (i.e. not the mailbox's main username/password). + */ + smtpUsername?: string; + /** + * @description + * + * The amount of time in seconds between syncing when the user is actively using the application. + */ + syncActiveFrequency?: number; + /** + * @description + * + * A boolean value whether syncing is disabled from this mailbox. + */ + syncDisabled?: boolean; + /** + * Format: date-time + * @description + * + * The date and time the most recent sync error occurred. + */ + syncErroredAt?: string; + /** + * Format: date-time + * @description + * + * The date and time the most recent sync finished. + */ + syncFinishedAt?: string; + /** + * @description + * + * The method used for syncing email. Must be either 'ews', 'gmail_api', or 'imap'. + */ + syncMethod?: string; + /** + * @description + * + * A boolean value whether the folder for syncing is named 'Outreach' instead of 'Inbox'. Only available for Exchange version 'Exchange2007_SP1'. + */ + syncOutreachFolder?: boolean; + /** + * @description + * + * The amount of time in seconds between syncing when the user is not actively using the application. + */ + syncPassiveFrequency?: number; + /** + * Format: date-time + * @description + * + * The date and time the most recent successful email sync occurred. + */ + syncSuccessAt?: string; + /** + * Format: date-time + * @description + * + * The date and time the mailbox was last updated. + */ + updatedAt?: string; + /** + * @description + * + * The id of the user associated with this mailbox. + */ + userId?: number; + /** + * @description + * + * The username of the email account. While not a required field, a username is necessary for most email providers outside of OAuth. This value is normally the same as the email address. + */ + username?: string; + /** + * @description + * + * If this is set to true then the record will only save successfully if the mailbox is properly configured to send emails. + */ + validateSend?: boolean; + /** + * @description + * + * If this is set to true then the record will only save successfully if the mailbox is properly configured to sync emails. + */ + validateSync?: boolean; + }; + mailboxContactRelationships: { + /** + * mailbox + * @description The mailbox associated with this contact. + */ + mailbox?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "mailbox"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "mailbox"; + }; + }]>; + }; + mailboxRelationships: { + /** + * @description + * + * The creator of the mailbox. Relationship creator cannot be used as a filter. + */ + creator?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** + * @description + * + * The email aliases associated with this mailbox Relationship mailAliases cannot be used as a filter. + */ + mailAliases?: { + links?: { + /** @enum {string} */ + related?: "mailAlias"; + }; + }[]; + /** + * @description + * + * The mailings sent via this mailbox. Relationship mailings cannot be used as a filter. + */ + mailings?: { + links?: { + /** @enum {string} */ + related?: "mailing"; + }; + }[]; + /** + * @description + * + * The most recent updater of the mailbox. Relationship updater cannot be used as a filter. + */ + updater?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** + * user + * @description The user owning this mailbox. You can use only the attribute id to filter mailboxes by user (e.g. filter[user][id]=X). + */ + user?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + mailboxResponse: { + attributes?: components["schemas"]["mailbox"]; + id?: number; + relationships?: components["schemas"]["mailboxRelationships"]; + type?: string; + }; + /** @description A representation of a platform-related email. */ + mailing: { + /** + * @description + * + * The mailing's custom email body, represented in HTML. If provided this field will override any associated template. + */ + bodyHtml?: string; + /** + * @description + * + * The plain-text representation of the 'bodyHTML' field. + */ + bodyText?: string; + /** + * Format: date-time + * @description + * + * The date and time the email was bounced. + */ + bouncedAt?: string; + /** + * @description + * + * The total number of times links within the email were clicked (if the message is tracking links). + */ + clickCount?: number; + /** + * Format: date-time + * @description + * + * The most recent date and time a link was clicked (if the message is tracking links). + */ + clickedAt?: string; + /** + * Format: date-time + * @description + * + * The date and time the mailing was created. + */ + createdAt?: string; + /** + * Format: date-time + * @description + * + * The date and time the email was delivered. + */ + deliveredAt?: string; + /** + * @description + * + * Technical details explaining the mailing's error. + */ + errorBacktrace?: string; + /** + * @description + * + * A summary explaining the mailing's error. + */ + errorReason?: string; + /** + * Format: date-time + * @description + * + * The date and time of when a follow-up task should be due for this mailing. + */ + followUpTaskScheduledAt?: string; + /** + * @description + * + * The type of follow-up task to create. Possible values are 'follow_up' or 'no_reply'. + */ + followUpTaskType?: string; + /** + * @description + * + * The email address the mailing was sent from. + */ + mailboxAddress?: string; + /** + * @description + * + * A description of the type of the emailing (e.g. "sequence", "single", "campaign"). + */ + mailingType?: string; + /** + * Format: date-time + * @description + * + * The date and time the email was marked as spam. + */ + markedAsSpamAt?: string; + /** + * @description + * + * The MIME content Message-ID of the delivered message. + */ + messageId?: string; + /** + * @description + * + * The condition of when to bump this mailing to the top of the user's inbox. Possible values are 'always' or 'no_reply'. + */ + notifyThreadCondition?: string; + /** + * Format: date-time + * @description + * + * The date and time of when this mailing should be bumped to the top of the user's inbox. + */ + notifyThreadScheduledAt?: string; + /** + * @description + * + * The status of the bump. Possible values are 'pending', 'sent' or 'skipped'. + */ + notifyThreadStatus?: string; + /** + * @description + * + * The total number of times the email was opened (if the message is tracking opens). + */ + openCount?: number; + /** + * Format: date-time + * @description + * + * The most recent date and time the email was opened (if the message is tracking opens). + */ + openedAt?: string; + /** + * @description + * + * A boolean value whether users can override submission if template variables have not all been replaced. + */ + overrideSafetySettings?: boolean; + /** + * @description + * + * A list of references for the mailing taken from the email header. + */ + references?: string[]; + /** + * Format: date-time + * @description + * + * The date and time the email was replied to. + */ + repliedAt?: string; + /** + * Format: date-time + * @description + * + * The date and time the email will rety to send. + */ + retryAt?: string; + /** + * @description + * + * The number of times the email has been retried to send. + */ + retryCount?: number; + /** + * @description + * + * The amount of time in seconds between retry attempts. + */ + retryInterval?: number; + /** + * Format: date-time + * @description + * + * The date and time the email is scheduled to send. + */ + scheduledAt?: string; + /** + * @description + * + * The current state of the mailing. Can be 'bounced', 'delivered', 'delivering', 'drafted', 'failed', 'opened', 'placeholder', 'queued', 'replied', or 'scheduled'. + */ + state?: string; + /** + * Format: date-time + * @description + * + * The date and time the state last changed. + */ + stateChangedAt?: string; + /** + * @description + * + * The subject line of the email. + */ + subject?: string; + /** + * @description + * + * A boolean value whether the mailing is tracking link clicks. + */ + trackLinks?: boolean; + /** + * @description + * + * A boolean value whether the mailing is tracking email opens. + */ + trackOpens?: boolean; + /** + * Format: date-time + * @description + * + * The date and time the recepient unsubscribed from the mailing's sequence. + */ + unsubscribedAt?: string; + /** + * Format: date-time + * @description + * + * The date and time the mailing was last updated. + */ + updatedAt?: string; + }; + mailingRelationships: { + /** + * sequence + * @description + * + * The followup sequence associated with this mailing. You can use only the attribute id to filter mailings by followUpSequence (e.g. filter[followUpSequence][id]=X). + */ + followUpSequence?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "sequence"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "sequence"; + }; + }]>; + /** + * mailbox + * @description The mailbox associated with this mailing. You can use only the attribute id to filter mailings by mailbox (e.g. filter[mailbox][id]=X). + */ + mailbox?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "mailbox"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "mailbox"; + }; + }]>; + /** + * opportunity + * @description + * + * The associated opportunity. You can use only the attribute id to filter mailings by opportunity (e.g. filter[opportunity][id]=X). + */ + opportunity?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "opportunity"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "opportunity"; + }; + }]>; + /** + * prospect + * @description The prospect associated with this mailing. You can use only the attribute id to filter mailings by prospect (e.g. filter[prospect][id]=X). + */ + prospect?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "prospect"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "prospect"; + }; + }]>; + /** @description Recipients of the mailing. Relationship recipients cannot be used as a filter. */ + recipients?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "recipient"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "recipient"; + }; + }]>[]; + /** + * sequence + * @description + * + * The associated sequence. You can use only the attribute id to filter mailings by sequence (e.g. filter[sequence][id]=X). + */ + sequence?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "sequence"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "sequence"; + }; + }]>; + /** + * sequenceState + * @description + * + * The associated sequence state. You can use only the attribute id to filter mailings by sequenceState (e.g. filter[sequenceState][id]=X). + */ + sequenceState?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "sequenceState"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "sequenceState"; + }; + }]>; + /** + * sequenceStep + * @description + * + * The associated sequence step. You can use only the attribute id to filter mailings by sequenceStep (e.g. filter[sequenceStep][id]=X). + */ + sequenceStep?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "sequenceStep"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "sequenceStep"; + }; + }]>; + /** + * task + * @description + * + * The task this mailing will or did complete upon sending. You can use only the attribute id to filter mailings by task (e.g. filter[task][id]=X). + */ + task?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "task"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "task"; + }; + }]>; + /** + * @description + * + * All tasks associated with this mailing, such as a follow-up task. Relationship tasks cannot be used as a filter. + */ + tasks?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "task"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "task"; + }; + }]>[]; + /** + * template + * @description The template associated with this mailing. You can use only the attribute id to filter mailings by template (e.g. filter[template][id]=X). + */ + template?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "template"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "template"; + }; + }]>; + /** + * user + * @description + * + * The user associated with this mailing. You can use only the attribute id to filter mailings by user (e.g. filter[user][id]=X). + */ + user?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + mailingResponse: { + attributes?: components["schemas"]["mailing"]; + id?: number; + relationships?: components["schemas"]["mailingRelationships"]; + type?: string; + }; + meetingFieldRelationships: Record; + meetingRelationships: Record; + meetingTypeRelationships: { + /** + * @description + * + * The creator of the meeting type. + */ + creator?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** + * user + * @description The user who owns this meeting type. + */ + owner?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** team */ + team?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "team"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "team"; + }; + }]>; + }; + modelSchemaVersionRelationships: Record; + noteRelationships: Record; + /** @description An opportunity for a sale or pending deal. Requires the Opportunities SKU to be enabled in order to have access. Please contact support for more assistance. */ + opportunity: { + /** + * @description + * + * The amount the opportunity is worth. + */ + amount?: number; + /** + * Format: date-time + * @description + * + * The date the opportunity is expected to close. + */ + closeDate?: string; + /** + * Format: date-time + * @description + * + * The date the opportunity was created. + */ + createdAt?: string; + /** + * @description + * + * The ISO code of the currency this opportunity is in. + */ + currencyType?: string; + /** + * @description + * + * The value of the opportunity's first custom field. + */ + custom1?: string; + /** + * @description + * + * The value of the opportunity's second custom field. + */ + custom2?: string; + /** + * @description + * + * The value of the opportunity's third custom field. + */ + custom3?: string; + /** + * @description + * + * The value of the opportunity's fourth custom field. + */ + custom4?: string; + /** + * @description + * + * The value of the opportunity's fifth custom field. + */ + custom5?: string; + /** + * @description + * + * The value of the opportunity's sixth custom field. + */ + custom6?: string; + /** + * @description + * + * The value of the opportunity's seventh custom field. + */ + custom7?: string; + /** + * @description + * + * The value of the opportunity's eighth custom field. + */ + custom8?: string; + /** + * @description + * + * The value of the opportunity's ninth custom field. + */ + custom9?: string; + /** + * @description + * + * The value of the opportunity's 10th custom field. + */ + custom10?: string; + /** + * @description + * + * The value of the opportunity's 11th custom field. + */ + custom11?: string; + /** + * @description + * + * The value of the opportunity's 12th custom field. + */ + custom12?: string; + /** + * @description + * + * The value of the opportunity's 13th custom field. + */ + custom13?: string; + /** + * @description + * + * The value of the opportunity's 14th custom field. + */ + custom14?: string; + /** + * @description + * + * The value of the opportunity's 15th custom field. + */ + custom15?: string; + /** + * @description + * + * The value of the opportunity's 16th custom field. + */ + custom16?: string; + /** + * @description + * + * The value of the opportunity's 17th custom field. + */ + custom17?: string; + /** + * @description + * + * The value of the opportunity's 18th custom field. + */ + custom18?: string; + /** + * @description + * + * The value of the opportunity's 19th custom field. + */ + custom19?: string; + /** + * @description + * + * The value of the opportunity's 20th custom field. + */ + custom20?: string; + /** + * @description + * + * The value of the opportunity's 21st custom field. + */ + custom21?: string; + /** + * @description + * + * The value of the opportunity's 22nd custom field. + */ + custom22?: string; + /** + * @description + * + * The value of the opportunity's 23rd custom field. + */ + custom23?: string; + /** + * @description + * + * The value of the opportunity's 24th custom field. + */ + custom24?: string; + /** + * @description + * + * The value of the opportunity's 25th custom field. + */ + custom25?: string; + /** + * @description + * + * The value of the opportunity's 26th custom field. + */ + custom26?: string; + /** + * @description + * + * The value of the opportunity's 27th custom field. + */ + custom27?: string; + /** + * @description + * + * The value of the opportunity's 28th custom field. + */ + custom28?: string; + /** + * @description + * + * The value of the opportunity's 29th custom field. + */ + custom29?: string; + /** + * @description + * + * The value of the opportunity's 30th custom field. + */ + custom30?: string; + /** + * @description + * + * The value of the opportunity's 31st custom field. + */ + custom31?: string; + /** + * @description + * + * The value of the opportunity's 32nd custom field. + */ + custom32?: string; + /** + * @description + * + * The value of the opportunity's 33rd custom field. + */ + custom33?: string; + /** + * @description + * + * The value of the opportunity's 34th custom field. + */ + custom34?: string; + /** + * @description + * + * The value of the opportunity's 35th custom field. + */ + custom35?: string; + /** + * @description + * + * The value of the opportunity's 36th custom field. + */ + custom36?: string; + /** + * @description + * + * The value of the opportunity's 37th custom field. + */ + custom37?: string; + /** + * @description + * + * The value of the opportunity's 38th custom field. + */ + custom38?: string; + /** + * @description + * + * The value of the opportunity's 39th custom field. + */ + custom39?: string; + /** + * @description + * + * The value of the opportunity's 40th custom field. + */ + custom40?: string; + /** + * @description + * + * The value of the opportunity's 41st custom field. + */ + custom41?: string; + /** + * @description + * + * The value of the opportunity's 42nd custom field. + */ + custom42?: string; + /** + * @description + * + * The value of the opportunity's 43rd custom field. + */ + custom43?: string; + /** + * @description + * + * The value of the opportunity's 44th custom field. + */ + custom44?: string; + /** + * @description + * + * The value of the opportunity's 45th custom field. + */ + custom45?: string; + /** + * @description + * + * The value of the opportunity's 46th custom field. + */ + custom46?: string; + /** + * @description + * + * The value of the opportunity's 47th custom field. + */ + custom47?: string; + /** + * @description + * + * The value of the opportunity's 48th custom field. + */ + custom48?: string; + /** + * @description + * + * The value of the opportunity's 49th custom field. + */ + custom49?: string; + /** + * @description + * + * The value of the opportunity's 50th custom field. + */ + custom50?: string; + /** + * @description + * + * The value of the opportunity's 51st custom field. + */ + custom51?: string; + /** + * @description + * + * The value of the opportunity's 52nd custom field. + */ + custom52?: string; + /** + * @description + * + * The value of the opportunity's 53rd custom field. + */ + custom53?: string; + /** + * @description + * + * The value of the opportunity's 54th custom field. + */ + custom54?: string; + /** + * @description + * + * The value of the opportunity's 55th custom field. + */ + custom55?: string; + /** + * @description + * + * The value of the opportunity's 56th custom field. + */ + custom56?: string; + /** + * @description + * + * The value of the opportunity's 57th custom field. + */ + custom57?: string; + /** + * @description + * + * The value of the opportunity's 58th custom field. + */ + custom58?: string; + /** + * @description + * + * The value of the opportunity's 59th custom field. + */ + custom59?: string; + /** + * @description + * + * The value of the opportunity's 60th custom field. + */ + custom60?: string; + /** + * @description + * + * The value of the opportunity's 61st custom field. + */ + custom61?: string; + /** + * @description + * + * The value of the opportunity's 62nd custom field. + */ + custom62?: string; + /** + * @description + * + * The value of the opportunity's 63rd custom field. + */ + custom63?: string; + /** + * @description + * + * The value of the opportunity's 64th custom field. + */ + custom64?: string; + /** + * @description + * + * The value of the opportunity's 65th custom field. + */ + custom65?: string; + /** + * @description + * + * The value of the opportunity's 66th custom field. + */ + custom66?: string; + /** + * @description + * + * The value of the opportunity's 67th custom field. + */ + custom67?: string; + /** + * @description + * + * The value of the opportunity's 68th custom field. + */ + custom68?: string; + /** + * @description + * + * The value of the opportunity's 69th custom field. + */ + custom69?: string; + /** + * @description + * + * The value of the opportunity's 70th custom field. + */ + custom70?: string; + /** + * @description + * + * The value of the opportunity's 71st custom field. + */ + custom71?: string; + /** + * @description + * + * The value of the opportunity's 72nd custom field. + */ + custom72?: string; + /** + * @description + * + * The value of the opportunity's 73rd custom field. + */ + custom73?: string; + /** + * @description + * + * The value of the opportunity's 74th custom field. + */ + custom74?: string; + /** + * @description + * + * The value of the opportunity's 75th custom field. + */ + custom75?: string; + /** + * @description + * + * The value of the opportunity's 76th custom field. + */ + custom76?: string; + /** + * @description + * + * The value of the opportunity's 77th custom field. + */ + custom77?: string; + /** + * @description + * + * The value of the opportunity's 78th custom field. + */ + custom78?: string; + /** + * @description + * + * The value of the opportunity's 79th custom field. + */ + custom79?: string; + /** + * @description + * + * The value of the opportunity's 80th custom field. + */ + custom80?: string; + /** + * @description + * + * The value of the opportunity's 81st custom field. + */ + custom81?: string; + /** + * @description + * + * The value of the opportunity's 82nd custom field. + */ + custom82?: string; + /** + * @description + * + * The value of the opportunity's 83rd custom field. + */ + custom83?: string; + /** + * @description + * + * The value of the opportunity's 84th custom field. + */ + custom84?: string; + /** + * @description + * + * The value of the opportunity's 85th custom field. + */ + custom85?: string; + /** + * @description + * + * The value of the opportunity's 86th custom field. + */ + custom86?: string; + /** + * @description + * + * The value of the opportunity's 87th custom field. + */ + custom87?: string; + /** + * @description + * + * The value of the opportunity's 88th custom field. + */ + custom88?: string; + /** + * @description + * + * The value of the opportunity's 89th custom field. + */ + custom89?: string; + /** + * @description + * + * The value of the opportunity's 90th custom field. + */ + custom90?: string; + /** + * @description + * + * The value of the opportunity's 91st custom field. + */ + custom91?: string; + /** + * @description + * + * The value of the opportunity's 92nd custom field. + */ + custom92?: string; + /** + * @description + * + * The value of the opportunity's 93rd custom field. + */ + custom93?: string; + /** + * @description + * + * The value of the opportunity's 94th custom field. + */ + custom94?: string; + /** + * @description + * + * The value of the opportunity's 95th custom field. + */ + custom95?: string; + /** + * @description + * + * The value of the opportunity's 96th custom field. + */ + custom96?: string; + /** + * @description + * + * The value of the opportunity's 97th custom field. + */ + custom97?: string; + /** + * @description + * + * The value of the opportunity's 98th custom field. + */ + custom98?: string; + /** + * @description + * + * The value of the opportunity's 99th custom field. + */ + custom99?: string; + /** + * @description + * + * The value of the opportunity's 100th custom field. + */ + custom100?: string; + /** + * @description + * + * The value of the opportunity’s 101st custom field. + */ + custom101?: string; + /** + * @description + * + * The value of the opportunity’s 102nd custom field. + */ + custom102?: string; + /** + * @description + * + * The value of the opportunity’s 103rd custom field. + */ + custom103?: string; + /** + * @description + * + * The value of the opportunity’s 104th custom field. + */ + custom104?: string; + /** + * @description + * + * The value of the opportunity’s 105th custom field. + */ + custom105?: string; + /** + * @description + * + * The value of the opportunity’s 106th custom field. + */ + custom106?: string; + /** + * @description + * + * The value of the opportunity’s 107th custom field. + */ + custom107?: string; + /** + * @description + * + * The value of the opportunity’s 108th custom field. + */ + custom108?: string; + /** + * @description + * + * The value of the opportunity’s 109th custom field. + */ + custom109?: string; + /** + * @description + * + * The value of the opportunity’s 110th custom field. + */ + custom110?: string; + /** + * @description + * + * The value of the opportunity’s 111th custom field. + */ + custom111?: string; + /** + * @description + * + * The value of the opportunity’s 112th custom field. + */ + custom112?: string; + /** + * @description + * + * The value of the opportunity’s 113th custom field. + */ + custom113?: string; + /** + * @description + * + * The value of the opportunity’s 114th custom field. + */ + custom114?: string; + /** + * @description + * + * The value of the opportunity’s 115th custom field. + */ + custom115?: string; + /** + * @description + * + * The value of the opportunity’s 116th custom field. + */ + custom116?: string; + /** + * @description + * + * The value of the opportunity’s 117th custom field. + */ + custom117?: string; + /** + * @description + * + * The value of the opportunity’s 118th custom field. + */ + custom118?: string; + /** + * @description + * + * The value of the opportunity’s 119th custom field. + */ + custom119?: string; + /** + * @description + * + * The value of the opportunity’s 120th custom field. + */ + custom120?: string; + /** + * @description + * + * The value of the opportunity’s 121st custom field. + */ + custom121?: string; + /** + * @description + * + * The value of the opportunity’s 122nd custom field. + */ + custom122?: string; + /** + * @description + * + * The value of the opportunity’s 123rd custom field. + */ + custom123?: string; + /** + * @description + * + * The value of the opportunity’s 124th custom field. + */ + custom124?: string; + /** + * @description + * + * The value of the opportunity’s 125th custom field. + */ + custom125?: string; + /** + * @description + * + * The value of the opportunity’s 126th custom field. + */ + custom126?: string; + /** + * @description + * + * The value of the opportunity’s 127th custom field. + */ + custom127?: string; + /** + * @description + * + * The value of the opportunity’s 128th custom field. + */ + custom128?: string; + /** + * @description + * + * The value of the opportunity’s 129th custom field. + */ + custom129?: string; + /** + * @description + * + * The value of the opportunity’s 130th custom field. + */ + custom130?: string; + /** + * @description + * + * The value of the opportunity’s 131st custom field. + */ + custom131?: string; + /** + * @description + * + * The value of the opportunity’s 132nd custom field. + */ + custom132?: string; + /** + * @description + * + * The value of the opportunity’s 133rd custom field. + */ + custom133?: string; + /** + * @description + * + * The value of the opportunity’s 134th custom field. + */ + custom134?: string; + /** + * @description + * + * The value of the opportunity’s 135th custom field. + */ + custom135?: string; + /** + * @description + * + * The value of the opportunity’s 136th custom field. + */ + custom136?: string; + /** + * @description + * + * The value of the opportunity’s 137th custom field. + */ + custom137?: string; + /** + * @description + * + * The value of the opportunity’s 138th custom field. + */ + custom138?: string; + /** + * @description + * + * The value of the opportunity’s 139th custom field. + */ + custom139?: string; + /** + * @description + * + * The value of the opportunity’s 140th custom field. + */ + custom140?: string; + /** + * @description + * + * The value of the opportunity’s 141st custom field. + */ + custom141?: string; + /** + * @description + * + * The value of the opportunity’s 142nd custom field. + */ + custom142?: string; + /** + * @description + * + * The value of the opportunity’s 143rd custom field. + */ + custom143?: string; + /** + * @description + * + * The value of the opportunity’s 144th custom field. + */ + custom144?: string; + /** + * @description + * + * The value of the opportunity’s 145th custom field. + */ + custom145?: string; + /** + * @description + * + * The value of the opportunity’s 146th custom field. + */ + custom146?: string; + /** + * @description + * + * The value of the opportunity’s 147th custom field. + */ + custom147?: string; + /** + * @description + * + * The value of the opportunity’s 148th custom field. + */ + custom148?: string; + /** + * @description + * + * The value of the opportunity’s 149th custom field. + */ + custom149?: string; + /** + * @description + * + * The value of the opportunity’s 150th custom field. + */ + custom150?: string; + /** + * @description + * + * A description of the opportunity. + */ + description?: string; + /** + * Format: date-time + * @description + * + * The date the opportunity was created in the external system. + */ + externalCreatedAt?: string; + /** + * @description + * + * A link to the SamePlan MAP (Mutual Action Plan) associated with this opportunity. + */ + mapLink?: string; + /** + * @description + * + * The next event in the timeline that has yet to be completed for the SamePlan MAP (Mutual Action Plan). + */ + mapNextSteps?: string; + /** + * @description + * + * The status of the SamePlan MAP (Mutual Action Plan) based on how well both parties are trending towards the plan. + */ + mapStatus?: string; + /** + * @description + * + * The name of the opportunity. + */ + name?: string; + /** + * @description + * + * The next step to take for the opportunity. + */ + nextStep?: string; + /** + * @description + * + * The type of opportunity. + */ + opportunityType?: string; + /** + * @description + * + * The chances of the opportunity succeeding, represented as a percentage. + */ + probability?: number; + /** + * @description + * + * The ID of the sales rep that prospects the opportunity. + */ + prospectingRepId?: string; + /** + * @description + * + * The ID of the sharing team associated with this object. Access is currently in beta. + */ + sharingTeamId?: string; + /** + * @description + * + * Tags associated with the opportunity. + */ + tags?: string[]; + /** + * Format: date-time + * @description + * + * The last time an event happened for an opportunity. + */ + touchedAt?: string; + /** + * Format: date-time + * @description + * + * The date the opportunity was last updated. + */ + updatedAt?: string; + }; + opportunityHealthFactorRelationships: { + /** + * opportunity + * @description The opportunity the health factor apply to. + */ + opportunity?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "opportunity"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "opportunity"; + }; + }]>; + }; + /** @description A prospect's role and association with an opportunity */ + opportunityProspectRole: { + /** + * Format: date-time + * @description + * + * The date and time the role was created. + */ + createdAt?: string; + /** + * @description + * + * A boolean value indicating if this prospect is the primary contact within an opportunity. + */ + primary?: boolean; + /** + * @description + * + * A string value representing the role. + */ + role?: string; + /** + * Format: date-time + * @description + * + * The date and time the role was last updated. + */ + updatedAt?: string; + }; + opportunityProspectRoleRelationships: { + /** + * opportunity + * @description The opportunity associated with the role. You can use only the attribute id to filter opportunityProspectRoles by opportunity (e.g. filter[opportunity][id]=X). + */ + opportunity?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "opportunity"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "opportunity"; + }; + }]>; + /** + * prospect + * @description The prospect associated with the role. You can use only the attribute id to filter opportunityProspectRoles by prospect (e.g. filter[prospect][id]=X). + */ + prospect?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "prospect"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "prospect"; + }; + }]>; + }; + opportunityProspectRoleResponse: { + attributes?: components["schemas"]["opportunityProspectRole"]; + id?: number; + relationships?: components["schemas"]["opportunityProspectRoleRelationships"]; + type?: string; + }; + opportunityRelationships: { + /** + * account + * @description The account the opportunity is for. You can use attributes id and name to filter opportunities by account (e.g. filter[account][id]=X). + */ + account?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "account"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "account"; + }; + }]>; + /** + * @description + * + * The creator of the opportunity. Relationship creator cannot be used as a filter. + */ + creator?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** + * opportunityStage + * @description The current stage of the opportunity. You can use only the attribute id to filter opportunities by stage (e.g. filter[stage][id]=X). + */ + opportunityStage?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "opportunityStage"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "opportunityStage"; + }; + }]>; + /** + * user + * @description The user who owns the opportunity. You can use only the attribute id to filter opportunities by owner (e.g. filter[owner][id]=X). + */ + owner?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** + * @description + * + * The prospects associated with this opportunity. You can use only the attribute id to filter opportunities by prospects (e.g. filter[prospects][id]=X). + */ + prospects?: { + links?: { + /** @enum {string} */ + related?: "prospect"; + }; + }[]; + /** + * opportunityStage + * @description + * + * The current stage of the opportunity. You can use only the attribute id to filter opportunities by stage (e.g. filter[stage][id]=X). + */ + stage?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "opportunityStage"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "opportunityStage"; + }; + }]>; + /** + * @description + * + * The updater of the opportunity. Relationship updater cannot be used as a filter. + */ + updater?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + opportunityResponse: { + attributes?: components["schemas"]["opportunity"]; + id?: number; + relationships?: components["schemas"]["opportunityRelationships"]; + type?: string; + }; + /** @description The stage an opportunity is in. Requires the Opportunities SKU to be enabled in order to have access. Please contact support for more assistance. */ + opportunityStage: { + /** + * @description + * + * The color used to label and highlight the opportunity stage. + */ + color?: string; + /** + * Format: date-time + * @description + * + * The date and time the opportunity stage was created. + */ + createdAt?: string; + /** + * @description + * + * Either true or flase, whether or not the opportunity stage represents an open or closed state of an opportunity. + */ + isClosed?: boolean; + /** + * @description + * + * The name of the opportunity stage. + */ + name?: string; + /** + * @description + * + * The order of the opportunity stage. + */ + order?: number; + /** + * Format: date-time + * @description + * + * The date and time the opportunity stage was last updated. + */ + updatedAt?: string; + }; + opportunityStageRelationships: { + /** + * @description + * + * The creator of the opportunity. Relationship creator cannot be used as a filter. + */ + creator?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** + * @description + * + * The opportunities currently associated with the opportunity stage. Relationship opportunities cannot be used as a filter. + */ + opportunities?: { + links?: { + /** @enum {string} */ + related?: "opportunity"; + }; + }[]; + }; + opportunityStageResponse: { + attributes?: components["schemas"]["opportunityStage"]; + id?: number; + relationships?: components["schemas"]["opportunityStageRelationships"]; + type?: string; + }; + orgSettingRelationships: Record; + outboundVoicemailRelationships: { + /** user */ + user?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + outlookAddInEwsItemRelationships: { + /** + * mailbox + * @description The mailbox this originated from + */ + mailbox?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "mailbox"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "mailbox"; + }; + }]>; + }; + permissionGrantRelationships: Record; + /** @description A descriptor of a person, used for categorizing Prospects. */ + persona: { + /** + * Format: date-time + * @description + * + * The date and time the persona was created. + */ + createdAt?: string; + /** + * @description + * + * A description of the persona. + */ + description?: string; + /** + * @description + * + * The name of the persona (e.g. "Sales Rep"). + */ + name?: string; + /** + * Format: date-time + * @description + * + * The date and time the persona was last updated. + */ + updatedAt?: string; + }; + personaRelationships: { + /** + * @description + * + * The prospects with this persona. Relationship prospects cannot be used as a filter. + */ + prospects?: { + links?: { + /** @enum {string} */ + related?: "prospect"; + }; + }[]; + }; + personaResponse: { + attributes?: components["schemas"]["persona"]; + id?: number; + relationships?: components["schemas"]["personaRelationships"]; + type?: string; + }; + phoneIdentityRelationships: { + /** + * user + * @description The owner of this identity. + */ + owner?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + /** @description A prospect's phone number */ + phoneNumber: { + /** + * @description + * + * The country code (e.g. US) + */ + countryCode?: string; + /** + * Format: date-time + * @description + * + * The date and time the phone number was created. + */ + createdAt?: string; + /** + * @description + * + * Phone number extension (e.g. 123) + */ + extension?: string; + /** + * @description + * + * The phone number (e.g. +18889387356) + */ + number?: string; + /** + * @description + * + * Ordered position in list of numbers + */ + order?: number; + /** + * @description + * + * Type of phone (mobile, work, home, voip, and other) + */ + phoneType?: string; + /** + * @description + * + * Unformatted phone number + */ + rawNumber?: string; + /** + * @description + * + * The status of the number + */ + status?: string; + /** + * Format: date-time + * @description + * + * Time the status was updated + */ + statusChangedAt?: string; + /** + * Format: date-time + * @description + * + * The date and time the phone number was last updated. + */ + updatedAt?: string; + }; + phoneNumberPredictionRelationships: Record; + phoneNumberRelationships: { + /** + * prospect + * @description The owning prospect You can use only the attribute id to filter phoneNumbers by prospect (e.g. filter[prospect][id]=X). + */ + prospect?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "prospect"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "prospect"; + }; + }]>; + }; + phoneNumberResponse: { + attributes?: components["schemas"]["phoneNumber"]; + id?: number; + relationships?: components["schemas"]["phoneNumberRelationships"]; + type?: string; + }; + phoneRelationships: { + /** + * user + * @description The User this phone belongs to. + */ + user?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + pluginErrorLogPreSignedUrlRelationships: Record; + pluginMappingRelationships: Record; + pluginRelationships: Record; + /** @description Controls what you can see and do within Outreach */ + profile: { + /** + * Format: date-time + * @description + * + * The date and time the team was created. + */ + createdAt?: string; + /** + * @description + * + * Flag that indicates whether the profile provides admin access. + */ + isAdmin?: boolean; + /** + * @description + * + * The name of the profile (e.g. "Admin"). + */ + name?: string; + /** + * @description + * + * The special id flag assigned to the profile (i.e. admin or default) + */ + specialId?: string; + /** + * Format: date-time + * @description + * + * The date and time the team was last updated. + */ + updatedAt?: string; + }; + profileRelationships: Record; + profileResponse: { + attributes?: components["schemas"]["profile"]; + id?: number; + relationships?: components["schemas"]["profileRelationships"]; + type?: string; + }; + /** @description A descriptor of a person. */ + prospect: { + /** + * Format: date-time + * @description + * + * The date and time the prospect was added to any system. + */ + addedAt?: string; + /** + * @description + * + * The prospect’s city (e.g. "Seattle"). + */ + addressCity?: string; + /** + * @description + * + * The prospect’s country (e.g. "USA"). + */ + addressCountry?: string; + /** + * @description + * + * The prospect’s state (e.g. "Washington"). + */ + addressState?: string; + /** + * @description + * + * The prospect’s street address (e.g. "1441 N 34th St"). + */ + addressStreet?: string; + /** + * @description + * + * The prospect’s second street address, if applicable. + */ + addressStreet2?: string; + /** + * @description + * + * The prospect’s postal code (e.g. "98103"). + */ + addressZip?: string; + /** + * @description + * + * The prospect’s AngelList URL. + */ + angelListUrl?: string; + /** + * Format: date-time + * @description + * + * The date and time the prospect is available to contact again. + */ + availableAt?: string; + /** + * @description + * + * Whether the prospect is opted out of calling, or opted out in general if granular opt-out is not enabled. + */ + callOptedOut?: boolean; + /** + * @description + * + * A string ("opted_in", "opted_out", "null") that represents whether a prospect has opted into or out of calls. + */ + callsOptStatus?: string; + /** + * Format: date-time + * @description + * + * The date and time the prospect opted in/out of calls. + */ + callsOptedAt?: string; + /** + * @description + * + * The name of the campaign the prospect is associated with. + */ + campaignName?: string; + /** + * @description + * + * The number of clicks the prospect has made since the last touch point. + */ + clickCount?: number; + /** + * @description + * + * The name of the company the prospect works at. If associated with an account, this is the name of the account. (e.g. Acme International). + */ + company?: string; + /** + * @description + * + * The last 12 months of email contact history with the prospect, with the current month being the last element. The format for each month is '[inboundCount, outboundCount]'. Note: Retrieving this field will slow down the queries. Unless this field is required, it is best to filter it out. See Specify Sparse Fieldsets for examples + */ + contactHistogram?: unknown[]; + /** + * Format: date-time + * @description + * + * The date and time the prospect was created. + */ + createdAt?: string; + /** + * @description + * + * The value of the prospect’s first custom field. + */ + custom1?: string; + /** + * @description + * + * The value of the prospect’s second custom field. + */ + custom2?: string; + /** + * @description + * + * The value of the prospect’s third custom field. + */ + custom3?: string; + /** + * @description + * + * The value of the prospect’s fourth custom field. + */ + custom4?: string; + /** + * @description + * + * The value of the prospect’s fifth custom field. + */ + custom5?: string; + /** + * @description + * + * The value of the prospect’s sixth custom field. + */ + custom6?: string; + /** + * @description + * + * The value of the prospect’s seventh custom field. + */ + custom7?: string; + /** + * @description + * + * The value of the prospect’s eight custom field. + */ + custom8?: string; + /** + * @description + * + * The value of the prospect’s ninth custom field. + */ + custom9?: string; + /** + * @description + * + * The value of the prospect’s 10th custom field. + */ + custom10?: string; + /** + * @description + * + * The value of the prospect’s 11th custom field. + */ + custom11?: string; + /** + * @description + * + * The value of the prospect’s 12th custom field. + */ + custom12?: string; + /** + * @description + * + * The value of the prospect’s 13th custom field. + */ + custom13?: string; + /** + * @description + * + * The value of the prospect’s 14th custom field. + */ + custom14?: string; + /** + * @description + * + * The value of the prospect’s 15th custom field. + */ + custom15?: string; + /** + * @description + * + * The value of the prospect’s 16th custom field. + */ + custom16?: string; + /** + * @description + * + * The value of the prospect’s 17th custom field. + */ + custom17?: string; + /** + * @description + * + * The value of the prospect’s 18th custom field. + */ + custom18?: string; + /** + * @description + * + * The value of the prospect’s 19th custom field. + */ + custom19?: string; + /** + * @description + * + * The value of the prospect’s 20th custom field. + */ + custom20?: string; + /** + * @description + * + * The value of the prospect’s 21st custom field. + */ + custom21?: string; + /** + * @description + * + * The value of the prospect’s 22nd custom field. + */ + custom22?: string; + /** + * @description + * + * The value of the prospect’s 23rd custom field. + */ + custom23?: string; + /** + * @description + * + * The value of the prospect’s 24th custom field. + */ + custom24?: string; + /** + * @description + * + * The value of the prospect’s 25th custom field. + */ + custom25?: string; + /** + * @description + * + * The value of the prospect’s 26th custom field. + */ + custom26?: string; + /** + * @description + * + * The value of the prospect’s 27th custom field. + */ + custom27?: string; + /** + * @description + * + * The value of the prospect’s 28th custom field. + */ + custom28?: string; + /** + * @description + * + * The value of the prospect’s 29th custom field. + */ + custom29?: string; + /** + * @description + * + * The value of the prospect’s 30th custom field. + */ + custom30?: string; + /** + * @description + * + * The value of the prospect’s 31st custom field. + */ + custom31?: string; + /** + * @description + * + * The value of the prospect’s 32nd custom field. + */ + custom32?: string; + /** + * @description + * + * The value of the prospect’s 33rd custom field. + */ + custom33?: string; + /** + * @description + * + * The value of the prospect’s 34th custom field. + */ + custom34?: string; + /** + * @description + * + * The value of the prospect’s 35th custom field. + */ + custom35?: string; + /** + * @description + * + * The value of the prospect’s 36th custom field. + */ + custom36?: string; + /** + * @description + * + * The value of the prospect’s 37th custom field. + */ + custom37?: string; + /** + * @description + * + * The value of the prospect’s 38th custom field. + */ + custom38?: string; + /** + * @description + * + * The value of the prospect’s 39th custom field. + */ + custom39?: string; + /** + * @description + * + * The value of the prospect’s 40th custom field. + */ + custom40?: string; + /** + * @description + * + * The value of the prospect’s 41st custom field. + */ + custom41?: string; + /** + * @description + * + * The value of the prospect’s 42nd custom field. + */ + custom42?: string; + /** + * @description + * + * The value of the prospect’s 43rd custom field. + */ + custom43?: string; + /** + * @description + * + * The value of the prospect’s 44th custom field. + */ + custom44?: string; + /** + * @description + * + * The value of the prospect’s 45th custom field. + */ + custom45?: string; + /** + * @description + * + * The value of the prospect’s 46th custom field. + */ + custom46?: string; + /** + * @description + * + * The value of the prospect’s 47th custom field. + */ + custom47?: string; + /** + * @description + * + * The value of the prospect’s 48th custom field. + */ + custom48?: string; + /** + * @description + * + * The value of the prospect’s 49th custom field. + */ + custom49?: string; + /** + * @description + * + * The value of the prospect’s 50th custom field. + */ + custom50?: string; + /** + * @description + * + * The value of the prospect’s 51st custom field. + */ + custom51?: string; + /** + * @description + * + * The value of the prospect’s 52nd custom field. + */ + custom52?: string; + /** + * @description + * + * The value of the prospect’s 53rd custom field. + */ + custom53?: string; + /** + * @description + * + * The value of the prospect’s 54th custom field. + */ + custom54?: string; + /** + * @description + * + * The value of the prospect’s 55th custom field. + */ + custom55?: string; + /** + * @description + * + * The value of the prospect’s 56th custom field. + */ + custom56?: string; + /** + * @description + * + * The value of the prospect’s 57th custom field. + */ + custom57?: string; + /** + * @description + * + * The value of the prospect’s 58th custom field. + */ + custom58?: string; + /** + * @description + * + * The value of the prospect’s 59th custom field. + */ + custom59?: string; + /** + * @description + * + * The value of the prospect’s 60th custom field. + */ + custom60?: string; + /** + * @description + * + * The value of the prospect’s 61st custom field. + */ + custom61?: string; + /** + * @description + * + * The value of the prospect’s 62nd custom field. + */ + custom62?: string; + /** + * @description + * + * The value of the prospect’s 63rd custom field. + */ + custom63?: string; + /** + * @description + * + * The value of the prospect’s 64th custom field. + */ + custom64?: string; + /** + * @description + * + * The value of the prospect’s 65th custom field. + */ + custom65?: string; + /** + * @description + * + * The value of the prospect’s 66th custom field. + */ + custom66?: string; + /** + * @description + * + * The value of the prospect’s 67th custom field. + */ + custom67?: string; + /** + * @description + * + * The value of the prospect’s 68th custom field. + */ + custom68?: string; + /** + * @description + * + * The value of the prospect’s 69th custom field. + */ + custom69?: string; + /** + * @description + * + * The value of the prospect’s 70th custom field. + */ + custom70?: string; + /** + * @description + * + * The value of the prospect’s 71st custom field. + */ + custom71?: string; + /** + * @description + * + * The value of the prospect’s 72nd custom field. + */ + custom72?: string; + /** + * @description + * + * The value of the prospect’s 73rd custom field. + */ + custom73?: string; + /** + * @description + * + * The value of the prospect’s 74th custom field. + */ + custom74?: string; + /** + * @description + * + * The value of the prospect’s 75th custom field. + */ + custom75?: string; + /** + * @description + * + * The value of the prospect’s 76th custom field. + */ + custom76?: string; + /** + * @description + * + * The value of the prospect’s 77th custom field. + */ + custom77?: string; + /** + * @description + * + * The value of the prospect’s 78th custom field. + */ + custom78?: string; + /** + * @description + * + * The value of the prospect’s 79th custom field. + */ + custom79?: string; + /** + * @description + * + * The value of the prospect’s 80th custom field. + */ + custom80?: string; + /** + * @description + * + * The value of the prospect’s 81st custom field. + */ + custom81?: string; + /** + * @description + * + * The value of the prospect’s 82nd custom field. + */ + custom82?: string; + /** + * @description + * + * The value of the prospect’s 83rd custom field. + */ + custom83?: string; + /** + * @description + * + * The value of the prospect’s 84th custom field. + */ + custom84?: string; + /** + * @description + * + * The value of the prospect’s 85th custom field. + */ + custom85?: string; + /** + * @description + * + * The value of the prospect’s 86th custom field. + */ + custom86?: string; + /** + * @description + * + * The value of the prospect’s 87th custom field. + */ + custom87?: string; + /** + * @description + * + * The value of the prospect’s 88th custom field. + */ + custom88?: string; + /** + * @description + * + * The value of the prospect’s 89th custom field. + */ + custom89?: string; + /** + * @description + * + * The value of the prospect’s 90th custom field. + */ + custom90?: string; + /** + * @description + * + * The value of the prospect’s 91st custom field. + */ + custom91?: string; + /** + * @description + * + * The value of the prospect’s 92nd custom field. + */ + custom92?: string; + /** + * @description + * + * The value of the prospect’s 93rd custom field. + */ + custom93?: string; + /** + * @description + * + * The value of the prospect’s 94th custom field. + */ + custom94?: string; + /** + * @description + * + * The value of the prospect’s 95th custom field. + */ + custom95?: string; + /** + * @description + * + * The value of the prospect’s 96th custom field. + */ + custom96?: string; + /** + * @description + * + * The value of the prospect’s 97th custom field. + */ + custom97?: string; + /** + * @description + * + * The value of the prospect’s 98th custom field. + */ + custom98?: string; + /** + * @description + * + * The value of the prospect’s 99th custom field. + */ + custom99?: string; + /** + * @description + * + * The value of the prospect’s 100th custom field. + */ + custom100?: string; + /** + * @description + * + * The value of the prospect’s 101st custom field. + */ + custom101?: string; + /** + * @description + * + * The value of the prospect’s 102nd custom field. + */ + custom102?: string; + /** + * @description + * + * The value of the prospect’s 103rd custom field. + */ + custom103?: string; + /** + * @description + * + * The value of the prospect’s 104th custom field. + */ + custom104?: string; + /** + * @description + * + * The value of the prospect’s 105th custom field. + */ + custom105?: string; + /** + * @description + * + * The value of the prospect’s 106th custom field. + */ + custom106?: string; + /** + * @description + * + * The value of the prospect’s 107th custom field. + */ + custom107?: string; + /** + * @description + * + * The value of the prospect’s 108th custom field. + */ + custom108?: string; + /** + * @description + * + * The value of the prospect’s 109th custom field. + */ + custom109?: string; + /** + * @description + * + * The value of the prospect’s 110th custom field. + */ + custom110?: string; + /** + * @description + * + * The value of the prospect’s 111th custom field. + */ + custom111?: string; + /** + * @description + * + * The value of the prospect’s 112th custom field. + */ + custom112?: string; + /** + * @description + * + * The value of the prospect’s 113th custom field. + */ + custom113?: string; + /** + * @description + * + * The value of the prospect’s 114th custom field. + */ + custom114?: string; + /** + * @description + * + * The value of the prospect’s 115th custom field. + */ + custom115?: string; + /** + * @description + * + * The value of the prospect’s 116th custom field. + */ + custom116?: string; + /** + * @description + * + * The value of the prospect’s 117th custom field. + */ + custom117?: string; + /** + * @description + * + * The value of the prospect’s 118th custom field. + */ + custom118?: string; + /** + * @description + * + * The value of the prospect’s 119th custom field. + */ + custom119?: string; + /** + * @description + * + * The value of the prospect’s 120th custom field. + */ + custom120?: string; + /** + * @description + * + * The value of the prospect’s 121st custom field. + */ + custom121?: string; + /** + * @description + * + * The value of the prospect’s 122nd custom field. + */ + custom122?: string; + /** + * @description + * + * The value of the prospect’s 123rd custom field. + */ + custom123?: string; + /** + * @description + * + * The value of the prospect’s 124th custom field. + */ + custom124?: string; + /** + * @description + * + * The value of the prospect’s 125th custom field. + */ + custom125?: string; + /** + * @description + * + * The value of the prospect’s 126th custom field. + */ + custom126?: string; + /** + * @description + * + * The value of the prospect’s 127th custom field. + */ + custom127?: string; + /** + * @description + * + * The value of the prospect’s 128th custom field. + */ + custom128?: string; + /** + * @description + * + * The value of the prospect’s 129th custom field. + */ + custom129?: string; + /** + * @description + * + * The value of the prospect’s 130th custom field. + */ + custom130?: string; + /** + * @description + * + * The value of the prospect’s 131st custom field. + */ + custom131?: string; + /** + * @description + * + * The value of the prospect’s 132nd custom field. + */ + custom132?: string; + /** + * @description + * + * The value of the prospect’s 133rd custom field. + */ + custom133?: string; + /** + * @description + * + * The value of the prospect’s 134th custom field. + */ + custom134?: string; + /** + * @description + * + * The value of the prospect’s 135th custom field. + */ + custom135?: string; + /** + * @description + * + * The value of the prospect’s 136th custom field. + */ + custom136?: string; + /** + * @description + * + * The value of the prospect’s 137th custom field. + */ + custom137?: string; + /** + * @description + * + * The value of the prospect’s 138th custom field. + */ + custom138?: string; + /** + * @description + * + * The value of the prospect’s 139th custom field. + */ + custom139?: string; + /** + * @description + * + * The value of the prospect’s 140th custom field. + */ + custom140?: string; + /** + * @description + * + * The value of the prospect’s 141st custom field. + */ + custom141?: string; + /** + * @description + * + * The value of the prospect’s 142nd custom field. + */ + custom142?: string; + /** + * @description + * + * The value of the prospect’s 143rd custom field. + */ + custom143?: string; + /** + * @description + * + * The value of the prospect’s 144th custom field. + */ + custom144?: string; + /** + * @description + * + * The value of the prospect’s 145th custom field. + */ + custom145?: string; + /** + * @description + * + * The value of the prospect’s 146th custom field. + */ + custom146?: string; + /** + * @description + * + * The value of the prospect’s 147th custom field. + */ + custom147?: string; + /** + * @description + * + * The value of the prospect’s 148th custom field. + */ + custom148?: string; + /** + * @description + * + * The value of the prospect’s 149th custom field. + */ + custom149?: string; + /** + * @description + * + * The value of the prospect’s 150th custom field. + */ + custom150?: string; + /** + * Format: date + * @description + * + * The date the prospect was born. + */ + dateOfBirth?: string; + /** + * @description + * + * The degree(s) the prospect has received. + */ + degree?: string; + /** + * @description + * + * Whether the prospect is opted out of email, or opted out in general if granular opt-out is not enabled. + */ + emailOptedOut?: boolean; + /** + * @description + * + * A list of email addresses associated with the prospect. + */ + emails?: string[]; + /** + * @description + * + * A string ("opted_in", "opted_out", "null") that represents whether a prospect has opted into or out of emails. + */ + emailsOptStatus?: string; + /** + * Format: date-time + * @description + * + * The date and time the prospect opted in/out of emails. + */ + emailsOptedAt?: string; + /** + * Format: date-time + * @description + * + * The date and time the prospect last engaged. + */ + engagedAt?: string; + /** + * Format: float + * @description + * + * A number representing the quality of the lead, based on the number of the prospect’s opens, clicks and mailing replies. + */ + engagedScore?: number; + /** + * @description + * + * The name of the event the prospect was met at. + */ + eventName?: string; + /** + * @description + * + * A custom ID for the prospect, often referencing an ID in an external system. + */ + externalId?: string; + /** + * @description + * + * A custom owner for the prospect, often referencing an ownering in an external system. + */ + externalOwner?: string; + /** + * @description + * + * The source of the resource’s creation (e.g. "outreach-api"). + */ + externalSource?: string; + /** + * @description + * + * The prospect’s Facebook URL. + */ + facebookUrl?: string; + /** + * @description + * + * The first name of the prospect. + */ + firstName?: string; + /** + * @description + * + * The gender of the prospect. + */ + gender?: string; + /** + * @description + * + * The prospect’s GitHub URL. + */ + githubUrl?: string; + /** + * @description + * + * The prospect’s GitHub username. + */ + githubUsername?: string; + /** + * @description + * + * The prospect’s Google+ URL. + */ + googlePlusUrl?: string; + /** + * Format: date + * @description + * + * The graduation date of the prospect. + */ + graduationDate?: string; + /** + * @description + * + * A list of home phone numbers associated with the prospect. + */ + homePhones?: string[]; + /** + * Format: date + * @description + * + * The starting date of the prospect’s current job. + */ + jobStartDate?: string; + /** + * @description + * + * The last name of the prospect. + */ + lastName?: string; + /** + * @description + * + * The number of connections on the prospect’s LinkedIn profile. + */ + linkedInConnections?: number; + /** + * @description + * + * The prospect’s LinkedIn ID. + */ + linkedInId?: string; + /** + * @description + * + * The prospect’s LinkedIn slug. + */ + linkedInSlug?: string; + /** + * @description + * + * The prospect’s LinkedIn URL. + */ + linkedInUrl?: string; + /** + * @description + * + * The middle name of the prospect. + */ + middleName?: string; + /** + * @description + * + * A list of mobile phone numbers associated with the prospect. + */ + mobilePhones?: string[]; + /** + * @description + * + * The full name of the prospect. + */ + name?: string; + /** + * @description + * + * The nickname of the prospect. + */ + nickname?: string; + /** + * @description + * + * The occupation of the prospect (e.g. "Purchasing Manager"). + */ + occupation?: string; + /** + * @description + * + * The number of opens the prospect has made since the last touch point. + */ + openCount?: number; + /** + * @description + * + * A boolean value representing whether this prospect is currently opted out of all mailings. Set this value to true to opt out the prospect; the 'opted_out' timestamp will be updated to the time of the request. Set this value to false to revert the opt at and clear the opted out timestamp. + */ + optedOut?: boolean; + /** + * Format: date-time + * @description + * + * The date and time the prospect opted out of emails. + */ + optedOutAt?: string; + /** + * @description + * + * A list of other phone numbers associated with the prospect. + */ + otherPhones?: string[]; + /** + * @description + * + * A custom note field related to the prospect. + */ + personalNote1?: string; + /** + * @description + * + * A second note field related to the prospect. + */ + personalNote2?: string; + /** + * @description + * + * The preferred contact method for the prospect. + */ + preferredContact?: string; + /** + * @description + * + * The prospect’s Quora URL. + */ + quoraUrl?: string; + /** + * @description + * + * The primary geographic region of the prospect. + */ + region?: string; + /** + * @description + * + * The number of replies the prospect has made since the last touch point. + */ + replyCount?: number; + /** + * @description + * + * The school(s) the prospect has attended. + */ + school?: string; + /** + * Format: float + * @description + * + * A custom score given to measure the quality of the lead. + */ + score?: number; + /** + * @description + * + * The ID of the sharing team associated with this object. Access is currently in beta. + */ + sharingTeamId?: string; + /** + * @description + * + * A custom source representing where the lead was first acquired. + */ + source?: string; + /** + * @description + * + * A description of the prospect’s specialties. + */ + specialties?: string; + /** + * @description + * + * The prospect’s StackOverflow ID. + */ + stackOverflowId?: string; + /** + * @description + * + * The prospect’s StackOverflow URL. + */ + stackOverflowUrl?: string; + /** + * @description + * + * A list of tag values associated with the account (e.g. ["Interested", "2017 Expo"]). + */ + tags?: string[]; + /** + * @description + * + * The prospect’s current timezone, preferably in the IANA format (e.g. "America/LosAngeles"). + */ + timeZone?: string; + /** + * @description + * + * The prospect’s current IANA timezone, if available. + */ + timeZoneIana?: string; + /** + * @description + * + * The prospect’s current inferred IANA timezone, if available. + */ + timeZoneInferred?: string; + /** + * @description + * + * The title of the prospect. + */ + title?: string; + /** + * Format: date-time + * @description + * + * The date and time the prospect was last touched. + */ + touchedAt?: string; + /** + * Format: date-time + * @description + * + * The date a prospect was soft deleted. + */ + trashedAt?: string; + /** + * @description + * + * The prospect’s Twitter URL. + */ + twitterUrl?: string; + /** + * @description + * + * The prospect’s Twitter username. + */ + twitterUsername?: string; + /** + * Format: date-time + * @description + * + * The date and time the prospect was last updated. + */ + updatedAt?: string; + /** + * @description + * + * A list of voip phone numbers associated with the prospect. + */ + voipPhones?: string[]; + /** + * @description + * + * The URL of the prospect’s website. + */ + websiteUrl1?: string; + /** + * @description + * + * The value of the prospect’s second website URL field. + */ + websiteUrl2?: string; + /** + * @description + * + * The value of the prospect’s third website URL field. + */ + websiteUrl3?: string; + /** + * @description + * + * A list of work phone numbers associated with the prospect. + */ + workPhones?: string[]; + }; + prospectRelationships: { + /** + * account + * @description The prospect's associated account. You can use attributes id, customId, name, named and updatedAt to filter prospects by account (e.g. filter[account][id]=X). + */ + account?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "account"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "account"; + }; + }]>; + /** + * @description + * + * The non-finished sequence states where this prospect is the primary recipient. This includes states of "active", "paused", "failed", "bounced", "pending" and "disabled." You can use attributes id and state to filter prospects by activeSequenceStates (e.g. filter[activeSequenceStates][id]=X). + */ + activeSequenceStates?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "sequenceState"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "sequenceState"; + }; + }]>[]; + /** + * @description + * + * The calls associated with the prospect. Relationship calls cannot be used as a filter. + */ + calls?: { + links?: { + /** @enum {string} */ + related?: "call"; + }; + }[]; + /** + * @description + * + * The creater of the prospect. Relationship creator cannot be used as a filter. + */ + creator?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** @description The prospect's email addresses. Relationship emailAddresses cannot be used as a filter. */ + emailAddresses?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "emailAddress"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "emailAddress"; + }; + }]>[]; + /** @description The prospect's favorites. Relationship favorites cannot be used as a filter. */ + favorites?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "favorite"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "favorite"; + }; + }]>[]; + /** + * @description + * + * The mailings associated with the prospect. Relationship mailings cannot be used as a filter. + */ + mailings?: { + links?: { + /** @enum {string} */ + related?: "mailing"; + }; + }[]; + /** @description The opportunities associated with the prospect. Requires the Opportunities SKU to be enabled in order to have access. Please contact support@outreach.io for more assistance. You can use only the attribute id to filter prospects by opportunities (e.g. filter[opportunities][id]=X). */ + opportunities?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "opportunity"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "opportunity"; + }; + }]>[]; + /** @description The roles that associate the prospect with opportunities. Relationship opportunityProspectRoles cannot be used as a filter. */ + opportunityProspectRoles?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "opportunityProspectRole"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "opportunityProspectRole"; + }; + }]>[]; + /** + * user + * @description The owner of the prospect. You can use only the attribute id to filter prospects by owner (e.g. filter[owner][id]=X). + */ + owner?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** + * persona + * @description The persona of the prospect, if it has one. You can use only the attribute id to filter prospects by persona (e.g. filter[persona][id]=X). + */ + persona?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "persona"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "persona"; + }; + }]>; + /** @description The prospect's phone numbers Relationship phoneNumbers cannot be used as a filter. */ + phoneNumbers?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "phoneNumber"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "phoneNumber"; + }; + }]>[]; + /** + * @description + * + * The sequence states where this prospect is the primary recipient. You can use attributes id and state to filter prospects by sequenceStates (e.g. filter[sequenceStates][id]=X). + */ + sequenceStates?: { + links?: { + /** @enum {string} */ + related?: "sequenceState"; + }; + }[]; + /** + * stage + * @description The stage the prospect is in. You can use attributes id and name to filter prospects by stage (e.g. filter[stage][id]=X). + */ + stage?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "stage"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "stage"; + }; + }]>; + /** + * @description + * + * The tasks associated with the prospect. Relationship tasks cannot be used as a filter. + */ + tasks?: { + links?: { + /** @enum {string} */ + related?: "task"; + }; + }[]; + /** + * @description + * + * The most recent updater of the prospect. Relationship updater cannot be used as a filter. + */ + updater?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + prospectResponse: { + attributes?: components["schemas"]["prospect"]; + id?: number; + relationships?: components["schemas"]["prospectRelationships"]; + type?: string; + }; + /** @description Record for a recipient for some communication, such as email */ + recipient: { + /** + * Format: date-time + * @description + * + * The date and time the team was created. + */ + createdAt?: string; + /** + * @description + * + * Hash of email for recipient. + */ + emailHash?: string; + /** + * @description + * + * The type of action for the communcation to the recipient. Must be one of 'bcc', 'cc', or 'to'. + */ + recipientType?: string; + /** + * Format: date-time + * @description + * + * The date and time the team was last updated. + */ + updatedAt?: string; + /** + * @description + * + * The recipient contact information (i.e. email address) + */ + value?: string; + }; + recipientRelationships: Record; + recipientResponse: { + attributes?: components["schemas"]["recipient"]; + id?: number; + relationships?: components["schemas"]["recipientRelationships"]; + type?: string; + }; + recordActorAssignmentRelationships: { + actor?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + record?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "account"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "account"; + }; + }]>; + }; + referralPredictionRelationships: { + /** + * prospect + * @description The prospect this prediction belongs to. + */ + prospect?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "prospect"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "prospect"; + }; + }]>; + /** + * sequenceState + * @description The sequence state this prediction belongs to. + */ + sequenceState?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "sequenceState"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "sequenceState"; + }; + }]>; + }; + returnDatePredictionRelationships: { + /** + * prospect + * @description The Prospect this prediction belongs to. + */ + prospect?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "prospect"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "prospect"; + }; + }]>; + /** + * sequenceState + * @description The sequence state this prediction belongs to. + */ + sequenceState?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "sequenceState"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "sequenceState"; + }; + }]>; + }; + /** @description Where you fall within your organization's structure. */ + role: { + /** + * Format: date-time + * @description + * + * The date and time the team was created. + */ + createdAt?: string; + /** + * @description + * + * The name of the role (e.g. "Vice-President"). + */ + name?: string; + /** + * Format: date-time + * @description + * + * The date and time the team was last updated. + */ + updatedAt?: string; + }; + roleRelationships: { + /** + * role + * @description Roles are heirarchical. This is the parent of the current role. You can use only the attribute id to filter roles by parentRole (e.g. filter[parentRole][id]=X). + */ + parentRole?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "role"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "role"; + }; + }]>; + }; + roleResponse: { + attributes?: components["schemas"]["role"]; + id?: number; + relationships?: components["schemas"]["roleRelationships"]; + type?: string; + }; + /** @description A reusable set of behaviors to be applied to Sequences */ + ruleset: { + /** + * @description + * + * The amount of time in seconds after the sequence has completed before the "completedStage" will be applied to the Prospect. + */ + applyCompletedStageIn?: number; + /** + * @description + * + * A boolean value whether out-of-the-office Prospects will be automatically resumed. See "autoResumeOotoProspectsIn" and "autoResumeOotoProspectsExpiresIn" for more information. + */ + autoResumeOotoProspects?: boolean; + /** + * @description + * + * The maximum amount of time in seconds to wait before opted-out Prospect will be resumed. + */ + autoResumeOotoProspectsExpiresIn?: number; + /** + * @description + * + * The default amount of time in seconds to wait before opted-out Prospects will be resumed. + */ + autoResumeOotoProspectsIn?: number; + /** + * @description + * + * Determines if prospect can be added to sequences if they are opted out of calling. + */ + callOptOutAction?: string; + /** + * @description + * + * The number of email clicks needed before a call task will be automatically created. This feature will be disabled unless a value is set. + */ + clicksNeededBeforeCallTaskCreated?: number; + /** + * Format: date-time + * @description + * + * The date and time the ruleset was created. + */ + createdAt?: string; + /** + * @description + * + * Determines if prospect can be added to sequences if they are opted out of emails. + */ + emailOptOutAction?: string; + /** + * @description + * + * A boolean value whether to include unsubscribe links within emails. + */ + includeUnsubscribeLinks?: boolean; + /** + * @description + * + * Determines if a prospect is marked as finished when a meeting is booked. + */ + meetingBookedAction?: string; + /** + * @description + * + * The minimum number of seconds that must elapse between when a Prospect was last contacted and when they may be added to a sequnce. This feature will be disabled unless a value is set. + */ + minimumProspectTouchedInterval?: number; + /** + * @description + * + * The name of the ruleset. + */ + name?: string; + /** + * @description + * + * A boolean value determining whether to use out of the office return date auto extraction. + */ + ootoAutoExtractionEnabled?: boolean; + /** + * @description + * + * The number of email opens needed before a call task will be automatically created. This feature will be disabled unless a value is set. + */ + opensNeededBeforeCallTaskCreated?: number; + /** + * @description + * + * A value determining whether a Prospect may be added to this Sequence multiple times or not. Permitted values include "allow", "disallow" (the default) and "only_if_inactive", which indicates that Prospects may be re-added to this sequence if their existing SequenceState is inactive. + */ + permitDuplicateProspects?: string; + /** + * @description + * + * A value determining whether Prospects may be added to multiple different Sequences. Permitted values include "all_sequences", "exclusive_sequences" and "none" (the default). If the value is "all_sequences", then Prospects may only be added if they are not active in any other Sequence; likewise, a Prospect active in a Sequence with "all_sequences" exclusivity cannot be added to any other Sequence. If the value is "exclusive_sequences", then Prospects may only be added if they are not active in any other Sequence with "exclusive_sequences" exclusivity; likewise, a Prospect active in a Sequence with "exclusive_sequences" exclusivity cannot be added to any other Sequence with "exclusive_sequences" exclusivity. If the value is "none", then no additional restrictions will be applied. + */ + sequenceExclusivity?: string; + /** + * @description + * + * Determines if prospect can be added to sequences if they are opted out of SMS. + */ + smsOptOutAction?: string; + /** + * @description + * + * Determines if a prospect is marked as finished when a text message is received + */ + smsReceivedAction?: string; + /** + * @description + * + * A boolean value determining whether to allow users to customize step templates when adding to sequence. + */ + stepOverridesEnabled?: boolean; + /** + * Format: date-time + * @description + * + * The date and time the ruleset was last updated. + */ + updatedAt?: string; + }; + rulesetRelationships: { + /** + * stage + * @description The stage to assign to the prospect when a mailing in this sequence bounces. You can use only the attribute id to filter rulesets by bouncedStage (e.g. filter[bouncedStage][id]=X). + */ + bouncedStage?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "stage"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "stage"; + }; + }]>; + /** + * taskPriority + * @description The task priority to use when creating call tasks based on mail opens. You can use only the attribute id to filter rulesets by callTaskPriorityFromOpens (e.g. filter[callTaskPriorityFromOpens][id]=X). + */ + callTaskPriority?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "taskPriority"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "taskPriority"; + }; + }]>; + /** + * taskPriority + * @description The task priority to use when creating call tasks based on mail clicks. You can use only the attribute id to filter rulesets by callTaskPriorityFromClicks (e.g. filter[callTaskPriorityFromClicks][id]=X). + */ + callTaskPriorityFromClicks?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "taskPriority"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "taskPriority"; + }; + }]>; + /** + * taskPriority + * @description The task priority to use when creating call tasks based on mail opens. You can use only the attribute id to filter rulesets by callTaskPriorityFromOpens (e.g. filter[callTaskPriorityFromOpens][id]=X). + */ + callTaskPriorityFromOpens?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "taskPriority"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "taskPriority"; + }; + }]>; + /** + * stage + * @description The stage to assign to the prospect when this sequence completes. You can use only the attribute id to filter rulesets by completedStage (e.g. filter[completedStage][id]=X). + */ + completedStage?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "stage"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "stage"; + }; + }]>; + /** + * stage + * @description The stage to assign to the prospect when a mailing in this sequence is delivered. You can use only the attribute id to filter rulesets by deliveredStage (e.g. filter[deliveredStage][id]=X). + */ + deliveredStage?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "stage"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "stage"; + }; + }]>; + /** + * stage + * @description The stage to assign to the prospect when this sequence finishes. You can use only the attribute id to filter rulesets by finishedStage (e.g. filter[finishedStage][id]=X). + */ + finishedStage?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "stage"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "stage"; + }; + }]>; + /** + * stage + * @description The stage to assign to the prospect when they opt out of this sequence. You can use only the attribute id to filter rulesets by optedOutStage (e.g. filter[optedOutStage][id]=X). + */ + optedOutStage?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "stage"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "stage"; + }; + }]>; + /** + * user + * @description The owner of the ruleset. You can use only the attribute id to filter rulesets by owner (e.g. filter[owner][id]=X). + */ + owner?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** + * stage + * @description The stage to assign to the prospect when a mailing in this sequence is replied to. You can use only the attribute id to filter rulesets by repliedStage (e.g. filter[repliedStage][id]=X). + */ + repliedStage?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "stage"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "stage"; + }; + }]>; + /** + * @description + * + * The sequences associated with this ruleset. You can use only the attribute id to filter rulesets by sequences (e.g. filter[sequences][id]=X). + */ + sequences?: { + links?: { + /** @enum {string} */ + related?: "sequence"; + }; + }[]; + /** + * stage + * @description The stage to assign to the prospect when this sequence starts. You can use only the attribute id to filter rulesets by startedStage (e.g. filter[startedStage][id]=X). + */ + startedStage?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "stage"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "stage"; + }; + }]>; + }; + rulesetResponse: { + attributes?: components["schemas"]["ruleset"]; + id?: number; + relationships?: components["schemas"]["rulesetRelationships"]; + type?: string; + }; + scheduleRelationships: { + /** + * user + * @description The owner of the schedule. + */ + owner?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + /** @description Leverage emailing within Sequences to engage each individual persona more effectively, and queue up the right actions at the right time. */ + sequence: { + /** + * Format: float + * @description + * + * The percentage of "auto_email" sequence steps in this sequence. + */ + automationPercentage?: number; + /** + * @description + * + * The total count of bounced mailings during this sequence. + */ + bounceCount?: number; + /** + * @description + * + * The total count of clicked mailings from this sequence. + */ + clickCount?: number; + /** + * Format: date-time + * @description + * + * The date and time the sequence was created. + */ + createdAt?: string; + /** + * @description + * + * The total count of delivered mailings from this sequence. + */ + deliverCount?: number; + /** + * @description + * + * A custom description for the sequence. + */ + description?: string; + /** + * @description + * + * The total number of days it takes to get through this sequence. + */ + durationInDays?: number; + /** + * @description + * + * A boolean value determining whether the sequence is enabled or not. + */ + enabled?: boolean; + /** + * Format: date-time + * @description + * + * The date and time the sequence was enabled, or null if currently disabled. + */ + enabledAt?: string; + /** + * @description + * + * The total count of failed mailings from this sequence. + */ + failureCount?: number; + /** + * @description + * + * Deprecated. This boolean value exists only to maintain backward compatibility and primaryReplyAction should be used instead. True if primaryReplyAction is "finish", false otherwise. + */ + finishOnReply?: boolean; + /** + * Format: date-time + * @description + * + * The date and time the sequence was last used. + */ + lastUsedAt?: string; + /** + * @description + * + * A boolean value determining whether the sequence is locked or not. + */ + locked?: boolean; + /** + * Format: date-time + * @description + * + * The date and time the sequence was locked, or null if currently unlocked. + */ + lockedAt?: string; + /** + * @description + * + * The maximum number of prospects that can be associated with the sequence. Only applies if the sequence type is "date". + */ + maxActivations?: number; + /** + * @description + * + * The name or the sequence. + */ + name?: string; + /** + * @description + * + * The total count of negative reply mailings from this sequence. + */ + negativeReplyCount?: number; + /** + * @description + * + * The total count of neutral reply mailings from this sequence. + */ + neutralReplyCount?: number; + /** + * @description + * + * The total count of prospects who have been either called or emailed. + */ + numContactedProspects?: number; + /** + * @description + * + * The total count of prospects who have been marked as replied. + */ + numRepliedProspects?: number; + /** + * @description + * + * The total count of opened mailings from this sequence. + */ + openCount?: number; + /** + * @description + * + * The total count of opted out mailings from this sequence. + */ + optOutCount?: number; + /** + * @description + * + * The total count of positive reply mailings from this sequence. + */ + positiveReplyCount?: number; + /** + * @description + * + * The action to take when the primary prospect replies. Must be one of "finish", "continue", or "pause". + */ + primaryReplyAction?: string; + /** + * @description + * + * The duration in seconds to pause for (before automatically finishing) after a reply from the primary prospect if the primaryReplyAction is "pause". + */ + primaryReplyPauseDuration?: number; + /** + * @description + * + * The total count of replied mailings from this sequence. + */ + replyCount?: number; + /** + * @description + * + * The total count of scheduled mailings from this sequence. + */ + scheduleCount?: number; + /** + * @description + * + * The schedule interval type must be either "calendar" or "schedule" + */ + scheduleIntervalType?: string; + /** + * @description + * + * The action to take when someone other than the primary prospect replies. Must be one of "finish", "continue", or "pause". + */ + secondaryReplyAction?: string; + /** + * @description + * + * The duration in seconds to pause for (before automatically finishing) after a reply from anyone other than the primary prospect if the secondaryReplyAction is "pause". + */ + secondaryReplyPauseDuration?: number; + /** + * @description + * + * The total number of sequence steps in this sequence. + */ + sequenceStepCount?: number; + /** + * @description + * + * The sequence type must be either "date" or "interval". + */ + sequenceType?: string; + /** + * @description + * + * The sequence share type must be either "private", "read_only" or "shared". + */ + shareType?: string; + /** + * @description + * + * A list of tag values associated with the sequence (e.g. ["Tier 1", "Inbound Leads"]) + */ + tags?: string[]; + /** + * @description + * + * The maximum number of associated sequence states per user that can be active at a one time. + */ + throttleCapacity?: number; + /** + * @description + * + * The maximum number of associated sequence states per user that can be added to the sequence each day. + */ + throttleMaxAddsPerDay?: number; + /** + * @description + * + * A boolean value determining whether the throttling of sequence states is paused or not. + */ + throttlePaused?: boolean; + /** + * Format: date-time + * @description + * + * The date and time the sequence state throttling was paused, or null if not currently paused. + */ + throttlePausedAt?: string; + /** + * @description + * + * A boolean value determining whether prospect opt out preferences are respected. Intended only for non-marketing sequences. + */ + transactional?: boolean; + /** + * Format: date-time + * @description + * + * The date and time the sequence was last updated. + */ + updatedAt?: string; + }; + sequenceRelationships: { + /** + * @description + * + * The associated calls. You can use only the attribute id to filter sequences by calls (e.g. filter[calls][id]=X). + */ + calls?: { + links?: { + /** @enum {string} */ + related?: "call"; + }; + }[]; + /** + * @description + * + * The content categories (collections) of the sequence. You can use only the attribute id to filter sequences by contentCategoryMemberships (e.g. filter[contentCategoryMemberships][id]=X). + */ + contentCategoryMemberships?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "contentCategoryMembership"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "contentCategoryMembership"; + }; + }]>[]; + /** + * user + * @description + * + * The creater of the sequence. You can use only the attribute id to filter sequences by creator (e.g. filter[creator][id]=X). + */ + creator?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** + * @description + * + * The associated mailings. Relationship mailings cannot be used as a filter. + */ + mailings?: { + links?: { + /** @enum {string} */ + related?: "mailing"; + }; + }[]; + /** + * user + * @description The owner of the sequence. You can use attributes id, email, firstName and lastName to filter sequences by owner (e.g. filter[owner][id]=X). + */ + owner?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** + * ruleset + * @description The associated ruleset. You can use only the attribute id to filter sequences by ruleset (e.g. filter[ruleset][id]=X). + */ + ruleset?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "ruleset"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "ruleset"; + }; + }]>; + /** + * @description + * + * The associated sequence states. You can use only the attribute id to filter sequences by sequenceStates (e.g. filter[sequenceStates][id]=X). + */ + sequenceStates?: { + links?: { + /** @enum {string} */ + related?: "sequenceState"; + }; + }[]; + /** @description The associated sequence steps. You can use only the attribute id to filter sequences by sequenceSteps (e.g. filter[sequenceSteps][id]=X). */ + sequenceSteps?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "sequenceStep"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "sequenceStep"; + }; + }]>[]; + /** + * @description + * + * The associated tasks. You can use only the attribute id to filter sequences by tasks (e.g. filter[tasks][id]=X). + */ + tasks?: { + links?: { + /** @enum {string} */ + related?: "task"; + }; + }[]; + /** + * user + * @description + * + * The most recent updater of the sequence. You can use only the attribute id to filter sequences by updater (e.g. filter[updater][id]=X). + */ + updater?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + sequenceResponse: { + attributes?: components["schemas"]["sequence"]; + id?: number; + relationships?: components["schemas"]["sequenceRelationships"]; + type?: string; + }; + /** @description A descriptor of a currently sequenced prospect, which includes relationships to its sequence, prospect and user. */ + sequenceState: { + /** + * Format: date-time + * @description + * + * The date and time the sequence state was last active. + */ + activeAt?: string; + /** + * @description + * + * The total count of bounced mailings during this sequence state. + */ + bounceCount?: number; + /** + * Format: date-time + * @description + * + * The date and time the sequence state last had a call completed. + */ + callCompletedAt?: string; + /** + * @description + * + * The total count of clicked mailings from this sequence state. + */ + clickCount?: number; + /** + * Format: date-time + * @description + * + * The date and time the sequence state was created. + */ + createdAt?: string; + /** + * @description + * + * The total count of delivered mailings from this sequence state. + */ + deliverCount?: number; + /** + * @description + * + * The reason for the most recent error. + */ + errorReason?: string; + /** + * @description + * + * The total count of failed mailings from this sequence state. + */ + failureCount?: number; + /** + * @description + * + * The total count of negative reply mailings from this sequence state. + */ + negativeReplyCount?: number; + /** + * @description + * + * The total count of neutral reply mailings from this sequence state. + */ + neutralReplyCount?: number; + /** + * @description + * + * The total count of opened mailings from this sequence state. + */ + openCount?: number; + /** + * @description + * + * The total count of opted out mailings from this sequence state. + */ + optOutCount?: number; + /** + * @description + * + * The reason for the most recent pause. + */ + pauseReason?: string; + /** + * @description + * + * The total count of positive reply mailings from this sequence state. + */ + positiveReplyCount?: number; + /** + * Format: date-time + * @description + * + * The date and time the sequence state last had a mailing reply. + */ + repliedAt?: string; + /** + * @description + * + * The total count of replied mailings from this sequence state. + */ + replyCount?: number; + /** + * @description + * + * The total count of scheduled mailings from this sequence state. + */ + scheduleCount?: number; + /** + * @description + * + * The current state of the sequence state. + */ + state?: string; + /** + * Format: date-time + * @description + * + * The date and time the sequence state’s state last changed. + */ + stateChangedAt?: string; + /** + * Format: date-time + * @description + * + * The date and time the sequence state was last updated. + */ + updatedAt?: string; + }; + sequenceStateRecipientRelationships: { + /** + * prospect + * @description The prospect that is associated with this recipient. + */ + prospect?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "prospect"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "prospect"; + }; + }]>; + /** + * sequenceState + * @description The sequence state that is associated with this recipient. + */ + sequenceState?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "sequenceState"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "sequenceState"; + }; + }]>; + }; + sequenceStateRelationships: { + /** + * account + * @description + * + * The account associated with the prospect the sequence state is targeting. You can use only the attribute id to filter sequenceStates by account (e.g. filter[account][id]=X). + */ + account?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "account"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "account"; + }; + }]>; + /** + * @description + * + * Any undelivered mailings associated with the current sequence step. Relationship activeStepMailings cannot be used as a filter. + */ + activeStepMailings?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "mailing"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "mailing"; + }; + }]>[]; + /** + * @description + * + * Any incomplete tasks associated with the current sequence step. Relationship activeStepTasks cannot be used as a filter. + */ + activeStepTasks?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "task"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "task"; + }; + }]>[]; + /** + * @description + * + * The calls associated with the sequence state. You can use only the attribute id to filter sequenceStates by calls (e.g. filter[calls][id]=X). + */ + calls?: { + links?: { + /** @enum {string} */ + related?: "call"; + }; + }[]; + /** + * @description + * + * The creator of the sequence state. Relationship creator cannot be used as a filter. + */ + creator?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** + * mailbox + * @description The mailbox to use for mailing steps. You can use attributes id and email to filter sequenceStates by mailbox (e.g. filter[mailbox][id]=X). + */ + mailbox?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "mailbox"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "mailbox"; + }; + }]>; + /** + * @description + * + * The mailings associated with the sequence state. Relationship mailings cannot be used as a filter. + */ + mailings?: { + links?: { + /** @enum {string} */ + related?: "mailing"; + }; + }[]; + /** + * opportunity + * @description + * + * The associated opportunity. You can use only the attribute id to filter sequenceStates by opportunity (e.g. filter[opportunity][id]=X). + */ + opportunity?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "opportunity"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "opportunity"; + }; + }]>; + /** + * prospect + * @description The primary prospect this sequence state is targeting. You can use attributes id and emails to filter sequenceStates by prospect (e.g. filter[prospect][id]=X). + */ + prospect?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "prospect"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "prospect"; + }; + }]>; + /** + * sequence + * @description The sequence this prospect is engaged in. You can use any filterable attribute of sequence. + */ + sequence?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "sequence"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "sequence"; + }; + }]>; + /** + * sequenceStep + * @description + * + * The current sequence step the prospect is in. You can use any filterable attribute of sequenceStep. + */ + sequenceStep?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "sequenceStep"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "sequenceStep"; + }; + }]>; + /** + * @description + * + * The tasks associated with the sequence state. You can use attributes id and dueAt to filter sequenceStates by tasks (e.g. filter[tasks][id]=X). + */ + tasks?: { + links?: { + /** @enum {string} */ + related?: "task"; + }; + }[]; + }; + sequenceStateResponse: { + attributes?: components["schemas"]["sequenceState"]; + id?: number; + relationships?: components["schemas"]["sequenceStateRelationships"]; + type?: string; + }; + /** @description A descriptor of a single step within an automated sequence. */ + sequenceStep: { + /** + * @description + * + * The total count of bounced mailings during this sequence step. + */ + bounceCount?: number; + /** + * @description + * + * The total count of clicked mailings from this sequence step. + */ + clickCount?: number; + /** + * Format: date-time + * @description + * + * The date and time the sequence step was created. + */ + createdAt?: string; + /** + * Format: date + * @description + * + * The date this step will activate; only applicable to date-based sequences. + */ + date?: string; + /** + * @description + * + * The total count of delivered mailings from this sequence step. + */ + deliverCount?: number; + /** + * @description + * + * A human-readable display name that captures the step’s type and order. + */ + displayName?: string; + /** + * @description + * + * The total count of failed mailings from this sequence step. + */ + failureCount?: number; + /** + * @description + * + * The interval (in seconds) until this step will activate; only applicable to interval-based sequences. + */ + interval?: number; + /** + * @description + * + * The total count of negative reply mailings from this sequence step. + */ + negativeReplyCount?: number; + /** + * @description + * + * The total count of neutral reply mailings from this sequence step. + */ + neutralReplyCount?: number; + /** + * @description + * + * The total count of opened mailings from this sequence step. + */ + openCount?: number; + /** + * @description + * + * The total count of opted out mailings from this sequence step. + */ + optOutCount?: number; + /** + * @description + * + * The step’s display order within its sequence. + */ + order?: number; + /** + * @description + * + * The total count of positive reply mailings from this sequence step. + */ + positiveReplyCount?: number; + /** + * @description + * + * The total count of replied mailings from this sequence step. + */ + replyCount?: number; + /** + * @description + * + * The total count of scheduled mailings from this sequence step. + */ + scheduleCount?: number; + /** + * @description + * + * The step’s type; must be "auto_email", "manual_email", "call" or "task". + */ + stepType?: string; + /** + * @description + * + * The optional interval (in seconds) from when tasks created by this sequence step are overdue until they are automatically skipped. + */ + taskAutoskipDelay?: number; + /** + * @description + * + * An optional note to associate with created tasks. + */ + taskNote?: string; + /** + * Format: date-time + * @description + * + * The date and time the sequence step was last updated. + */ + updatedAt?: string; + }; + sequenceStepOverrideRelationships: Record; + sequenceStepRelationships: { + /** + * callPurpose + * @description The default call purpose associated with the sequence step. You can use only the attribute id to filter sequenceSteps by callPurpose (e.g. filter[callPurpose][id]=X). + */ + callPurpose?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "callPurpose"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "callPurpose"; + }; + }]>; + /** + * @description + * + * The calls associated with the sequence step. You can use only the attribute id to filter sequenceSteps by calls (e.g. filter[calls][id]=X). + */ + calls?: { + links?: { + /** @enum {string} */ + related?: "call"; + }; + }[]; + /** + * user + * @description + * + * The creator of the sequence step. You can use only the attribute id to filter sequenceSteps by creator (e.g. filter[creator][id]=X). + */ + creator?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** + * @description + * + * The mailings associated with the sequence step. Relationship mailings cannot be used as a filter. + */ + mailings?: { + links?: { + /** @enum {string} */ + related?: "mailing"; + }; + }[]; + /** + * sequence + * @description The associated sequence. You can use attributes id, enabledAt and name to filter sequenceSteps by sequence (e.g. filter[sequence][id]=X). + */ + sequence?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "sequence"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "sequence"; + }; + }]>; + /** + * @description + * + * The sequence templates in use by this sequence step. You can use any filterable attribute of sequenceTemplates. + */ + sequenceTemplates?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "sequenceTemplate"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "sequenceTemplate"; + }; + }]>[]; + /** + * taskPriority + * @description The associated task priority. You can use only the attribute id to filter sequenceSteps by taskPriority (e.g. filter[taskPriority][id]=X). + */ + taskPriority?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "taskPriority"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "taskPriority"; + }; + }]>; + /** + * @description + * + * The tasks associated with the sequence step. You can use only the attribute id to filter sequenceSteps by tasks (e.g. filter[tasks][id]=X). + */ + tasks?: { + links?: { + /** @enum {string} */ + related?: "task"; + }; + }[]; + /** + * user + * @description + * + * The most recent updater of the sequence step. You can use only the attribute id to filter sequenceSteps by updater (e.g. filter[updater][id]=X). + */ + updater?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + sequenceStepResponse: { + attributes?: components["schemas"]["sequenceStep"]; + id?: number; + relationships?: components["schemas"]["sequenceStepRelationships"]; + type?: string; + }; + /** @description An object used to track which templates are in use by which sequence steps. */ + sequenceTemplate: { + /** + * @description + * + * The total count of bounced mailings during this sequence template. + */ + bounceCount?: number; + /** + * @description + * + * The total count of clicked mailings from this sequence template. + */ + clickCount?: number; + /** + * Format: date-time + * @description + * + * The date and time the sequence template was created. + */ + createdAt?: string; + /** + * @description + * + * The total count of delivered mailings from this sequence template. + */ + deliverCount?: number; + /** + * @description + * + * Boolean indicating if the sequence template is currently enabled. + */ + enabled?: boolean; + /** + * Format: date-time + * @description + * + * Datetime for when the sequence template was enabled. + */ + enabledAt?: string; + /** + * @description + * + * The total count of failed mailings from this sequence template. + */ + failureCount?: number; + /** + * @description + * + * Boolean indicating if the sequence template should be a reply email or a new thread. + */ + isReply?: boolean; + /** + * @description + * + * The total count of negative reply mailings from this sequence template. + */ + negativeReplyCount?: number; + /** + * @description + * + * The total count of neutral reply mailings from this sequence template. + */ + neutralReplyCount?: number; + /** + * @description + * + * The total count of opened mailings from this sequence template. + */ + openCount?: number; + /** + * @description + * + * The total count of opted out mailings from this sequence template. + */ + optOutCount?: number; + /** + * @description + * + * The total count of positive reply mailings from this sequence template. + */ + positiveReplyCount?: number; + /** + * @description + * + * The total count of replied mailings from this sequence template. + */ + replyCount?: number; + /** + * @description + * + * The total count of scheduled mailings from this sequence template. + */ + scheduleCount?: number; + /** + * Format: date-time + * @description + * + * The date and time the sequence template was last updated. + */ + updatedAt?: string; + }; + sequenceTemplateRelationships: { + /** + * user + * @description + * + * User that created the sequence template. You can use only the attribute id to filter sequenceTemplates by creator (e.g. filter[creator][id]=X). + */ + creator?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** + * sequenceStep + * @description The sequence step that uses the sequence template. You can use any filterable attribute of sequenceStep. + */ + sequenceStep?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "sequenceStep"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "sequenceStep"; + }; + }]>; + /** + * template + * @description The template used for this sequence template. You can use only the attribute id to filter sequenceTemplates by template (e.g. filter[template][id]=X). + */ + template?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "template"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "template"; + }; + }]>; + /** + * user + * @description + * + * User that last updated the sequence template. You can use only the attribute id to filter sequenceTemplates by updater (e.g. filter[updater][id]=X). + */ + updater?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + sequenceTemplateResponse: { + attributes?: components["schemas"]["sequenceTemplate"]; + id?: number; + relationships?: components["schemas"]["sequenceTemplateRelationships"]; + type?: string; + }; + smartViewNotificationRelationships: { + /** + * user + * @description The owner of the notificiation. + */ + owner?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + smartViewRelationships: { + /** + * user + * @description The owner of the smart view. + */ + owner?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + /** @description A piece of an email to be reused in multiple messages. */ + snippet: { + /** + * @description + * + * The HTML of the snippet. + */ + bodyHtml?: string; + /** + * @description + * + * The text of the snippet. + */ + bodyText?: string; + /** + * Format: date-time + * @description + * + * The date and time the snippet was created. + */ + createdAt?: string; + /** + * @description + * + * The name of the snippet. + */ + name?: string; + /** + * @description + * + * The permissions for sharing the snippet; must be "private" or "shared." + */ + shareType?: string; + /** + * @description + * + * A list of tags associated with the snippet (e.g. ["Useful", "Prospecting"]). + */ + tags?: string[]; + /** + * Format: date-time + * @description + * + * The date and time the snippet was last updated. + */ + updatedAt?: string; + }; + snippetRelationships: { + /** @description The content categories (collections) of the snippet. You can use only the attribute id to filter snippets by contentCategoryMemberships (e.g. filter[contentCategoryMemberships][id]=X). */ + contentCategoryMemberships?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "contentCategoryMembership"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "contentCategoryMembership"; + }; + }]>[]; + /** + * user + * @description + * + * The creator of the snippet. You can use only the attribute id to filter snippets by creator (e.g. filter[creator][id]=X). + */ + creator?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** + * user + * @description The owner of the snippet. You can use only the attribute id to filter snippets by owner (e.g. filter[owner][id]=X). + */ + owner?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** + * user + * @description + * + * The updater of the snippet. You can use only the attribute id to filter snippets by updater (e.g. filter[updater][id]=X). + */ + updater?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + snippetResponse: { + attributes?: components["schemas"]["snippet"]; + id?: number; + relationships?: components["schemas"]["snippetRelationships"]; + type?: string; + }; + /** @description A descriptor of the point in the process, used for categorizing Prospects. */ + stage: { + /** + * @description + * + * The color the stage label will be highlighted in the interface, specified as a hexidecimal value (e.g. "#5951ff"). + */ + color?: string; + /** + * Format: date-time + * @description + * + * The date and time the stage was created. + */ + createdAt?: string; + /** + * @description + * + * The name of the stage (e.g. "Qualified Lead"). + */ + name?: string; + /** + * @description + * + * The stage's display order within the collection. + */ + order?: number; + /** + * Format: date-time + * @description + * + * The date and time the stage was last updated. + */ + updatedAt?: string; + }; + stageRelationships: { + /** + * @description + * + * The creator of the stage. Relationship creator cannot be used as a filter. + */ + creator?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** + * @description + * + * The prospects associated to the stage. You can use only the attribute id to filter stages by prospects (e.g. filter[prospects][id]=X). + */ + prospects?: { + links?: { + /** @enum {string} */ + related?: "prospect"; + }; + }[]; + /** + * @description + * + * The most recent updater of the stage. Relationship updater cannot be used as a filter. + */ + updater?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + stageResponse: { + attributes?: components["schemas"]["stage"]; + id?: number; + relationships?: components["schemas"]["stageRelationships"]; + type?: string; + }; + surveyQuestionOptionRelationships: Record; + surveyQuestionRelationships: Record; + surveyRelationships: Record; + surveyUserResponseRelationships: { + /** + * user + * @description + * + * The user who responded. + */ + user?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + tagRelationships: Record; + /** @description An item that requires action to complete. */ + task: { + /** + * @description + * + * The action type of the task. Can be 'action_item', 'call', 'email', or 'in_person'. + */ + action?: string; + /** + * Format: date-time + * @description + * + * The optional date and time when the task will automatically be skipped. Tasks with an empty autoskip_at will never be autoskipped. + */ + autoskipAt?: string; + /** + * @description + * + * The compiled template HTML of incomplete SMS or LinkedIn tasks associated with a sequence. + */ + compiledSequenceTemplateHtml?: string; + /** + * @description + * + * A boolean value whether the task has been completed. + */ + completed?: boolean; + /** + * Format: date-time + * @description + * + * The date and time the task was completed. + */ + completedAt?: string; + /** + * Format: date-time + * @description + * + * The date and time the task was created. + */ + createdAt?: string; + /** + * Format: date-time + * @description + * + * The date and time the task is due. + */ + dueAt?: string; + /** + * @description + * + * An optional note for the task. + */ + note?: string; + /** + * @description + * + * The optional opportunity rule associated with the task. Can be 'recent_created', 'recent_updated', 'noop'. + */ + opportunityAssociation?: string; + /** + * Format: date-time + * @description + * + * The date and time the pending task is scheduled for. + */ + scheduledAt?: string; + /** + * @description + * + * The current state of the task. Can be 'pending', 'incomplete', or 'complete'. + */ + state?: string; + /** + * Format: date-time + * @description + * + * The date and time the state last changed. + */ + stateChangedAt?: string; + /** + * @description + * + * The type of task. Can be 'follow_up', 'manual', 'no_reply', 'sequence_open', 'sequence_click', 'sequence_step_call', 'sequence_step_email', 'sequence_step_linkedin_interact_with_post', 'sequence_step_linkedin_other', 'sequence_step_linkedin_send_connection_request', 'sequence_step_linkedin_send_message', 'sequence_step_linkedin_view_profile', 'sequence_step_sms', 'sequence_step_task', or 'touch'. Tasks created through the API will automatically be 'manual' tasks. + */ + taskType?: string; + /** + * Format: date-time + * @description + * + * The date and time the task was last updated. + */ + updatedAt?: string; + }; + /** @description A descriptor of importance used for categorizing Tasks. */ + taskPriority: { + /** + * @description + * + * The color the task priority label will be highlighted in the interface, specified as a hexadecimal value (e.g. "0xFF5951FF"). + */ + color?: number; + /** + * Format: date-time + * @description + * + * The date and time the task priority was created. + */ + createdAt?: string; + /** + * @description + * + * The name of the task priority (e.g. "High"). + */ + name?: string; + /** + * Format: date-time + * @description + * + * The date and time the task priority was last updated. + */ + updatedAt?: string; + /** + * @description + * + * A relative value used for display order. Task priorities are listed from lowest to highest weight. + */ + weight?: number; + }; + taskPriorityRelationships: { + /** + * @description + * + * The associated sequence steps. Relationship sequenceSteps cannot be used as a filter. + */ + sequenceSteps?: { + links?: { + /** @enum {string} */ + related?: "sequenceStep"; + }; + }[]; + /** + * @description + * + * The associated tasks. Relationship tasks cannot be used as a filter. + */ + tasks?: { + links?: { + /** @enum {string} */ + related?: "task"; + }; + }[]; + }; + taskPriorityResponse: { + attributes?: components["schemas"]["taskPriority"]; + id?: number; + relationships?: components["schemas"]["taskPriorityRelationships"]; + type?: string; + }; + taskRelationships: { + /** + * account + * @description + * + * The associated account. You can use only the attribute id to filter tasks by account (e.g. filter[account][id]=X). + */ + account?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "account"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "account"; + }; + }]>; + /** + * call + * @description + * + * The associated call, if a call task. You can use only the attribute id to filter tasks by call (e.g. filter[call][id]=X). + */ + call?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "call"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "call"; + }; + }]>; + /** + * @description + * + * The associated calls, if a call task. You can use only the attribute id to filter tasks by calls (e.g. filter[calls][id]=X). + */ + calls?: { + links?: { + /** @enum {string} */ + related?: "call"; + }; + }[]; + /** + * user + * @description + * + * The completer of this task. You can use only the attribute id to filter tasks by completer (e.g. filter[completer][id]=X). + */ + completer?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** + * @description + * + * The creator of this task. Relationship creator cannot be used as a filter. + */ + creator?: OneOf<[OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "stage" | "user" | "sequenceStep"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "stage" | "user" | "sequenceStep"; + }; + }]>, OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "stage" | "user" | "sequenceStep"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "stage" | "user" | "sequenceStep"; + }; + }]>, OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "stage" | "user" | "sequenceStep"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "stage" | "user" | "sequenceStep"; + }; + }]>]>; + /** + * mailing + * @description + * + * The associated mailing, if a mailing task. You can use only the attribute id to filter tasks by mailing (e.g. filter[mailing][id]=X). + */ + mailing?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "mailing"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "mailing"; + }; + }]>; + /** + * @description + * + * The associated mailings, if a mailing task. You can use only the attribute id to filter tasks by mailings (e.g. filter[mailings][id]=X). + */ + mailings?: { + links?: { + /** @enum {string} */ + related?: "mailing"; + }; + }[]; + /** + * opportunity + * @description + * + * The associated opportunity. You can use only the attribute id to filter tasks by opportunity (e.g. filter[opportunity][id]=X). + */ + opportunity?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "opportunity"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "opportunity"; + }; + }]>; + /** + * user + * @description The owner of this task. You can use attributes id, email and firstName to filter tasks by owner (e.g. filter[owner][id]=X). + */ + owner?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** + * prospect + * @description + * + * The associated prospect. You can use attributes id, byPersonaId, byStageId, createdAt, firstName, tags, title and updatedAt to filter tasks by prospect (e.g. filter[prospect][id]=X). + */ + prospect?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "prospect"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "prospect"; + }; + }]>; + /** + * sequence + * @description + * + * The associated sequence. You can use attributes id and tags to filter tasks by sequence (e.g. filter[sequence][id]=X). + */ + sequence?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "sequence"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "sequence"; + }; + }]>; + /** + * @description + * + * The sequence steps of the associated sequence. You can use only the attribute id to filter tasks by sequenceSequenceSteps (e.g. filter[sequenceSequenceSteps][id]=X). + */ + sequenceSequenceSteps?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "sequenceStep"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "sequenceStep"; + }; + }]>[]; + /** + * sequenceState + * @description + * + * The associated sequence state. You can use only the attribute id to filter tasks by sequenceState (e.g. filter[sequenceState][id]=X). + */ + sequenceState?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "sequenceState"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "sequenceState"; + }; + }]>; + /** + * sequenceStep + * @description + * + * The associated sequence step. You can use attributes id and stepType to filter tasks by sequenceStep (e.g. filter[sequenceStep][id]=X). + */ + sequenceStep?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "sequenceStep"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "sequenceStep"; + }; + }]>; + /** + * sequenceTemplate + * @description + * + * The associated sequence template. You can use only the attribute id to filter tasks by sequenceTemplate (e.g. filter[sequenceTemplate][id]=X). + */ + sequenceTemplate?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "sequenceTemplate"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "sequenceTemplate"; + }; + }]>; + /** @description The task's subject, either an account or prospect. Relationship subject cannot be used as a filter. */ + subject?: OneOf<[OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "account" | "opportunity" | "prospect"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "account" | "opportunity" | "prospect"; + }; + }]>, OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "account" | "opportunity" | "prospect"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "account" | "opportunity" | "prospect"; + }; + }]>, OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "account" | "opportunity" | "prospect"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "account" | "opportunity" | "prospect"; + }; + }]>]>; + /** + * taskPriority + * @description The associated task priority. You can use attributes id and name to filter tasks by taskPriority (e.g. filter[taskPriority][id]=X). + */ + taskPriority?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "taskPriority"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "taskPriority"; + }; + }]>; + /** + * template + * @description + * + * The associated template. You can use only the attribute id to filter tasks by template (e.g. filter[template][id]=X). + */ + template?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "template"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "template"; + }; + }]>; + }; + taskResponse: { + attributes?: components["schemas"]["task"]; + id?: number; + relationships?: components["schemas"]["taskRelationships"]; + type?: string; + }; + taskThemeRelationships: Record; + /** @description A descriptor of a group of users. */ + team: { + /** + * @description + * + * The color used to label and highlight the team. + */ + color?: string; + /** + * Format: date-time + * @description + * + * The date and time the team was created. + */ + createdAt?: string; + /** + * @description + * + * The name of the team (e.g. "SDRs"). + */ + name?: string; + /** + * @description + * + * The ID from the SCIM provisioning service used to create the team. + */ + scimExternalId?: string; + /** + * @description + * + * The name of the SCIM provisioning source used to create the team. + */ + scimSource?: string; + /** + * Format: date-time + * @description + * + * The date and time the team was last updated. + */ + updatedAt?: string; + }; + teamMembershipRelationships: { + /** + * team + * @description The team associated with the team membership. + */ + team?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "team"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "team"; + }; + }]>; + /** + * user + * @description The user associated with the team membership. + */ + user?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + teamRelationships: { + /** @description The content categories that are assigned to the team. Relationship contentCategories cannot be used as a filter. */ + contentCategories?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "contentCategory"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "contentCategory"; + }; + }]>[]; + /** + * @description + * + * The creator of the team. Relationship creator cannot be used as a filter. + */ + creator?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** + * @description + * + * The most recent updater of the team. Relationship updater cannot be used as a filter. + */ + updater?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** @description The users associated with the team. You can use only the attribute id to filter teams by users (e.g. filter[users][id]=X). */ + users?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>[]; + }; + teamResponse: { + attributes?: components["schemas"]["team"]; + id?: number; + relationships?: components["schemas"]["teamRelationships"]; + type?: string; + }; + teamSettingsRelationships: { + /** + * profile + * @description The governance profile that is applied to the team. + */ + profile?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "profile"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "profile"; + }; + }]>; + /** + * team + * @description The team the settings apply to. + */ + team?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "team"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "team"; + }; + }]>; + }; + /** @description A reusable template for building emails. */ + template: { + /** + * @description + * + * Boolean value indicating if the template has been archived. + */ + archived?: boolean; + /** + * Format: date-time + * @description + * + * The date and time the template was archived. + */ + archivedAt?: string; + /** + * @description + * + * A list of default person and email address pairs to receive this template in the "bcc" field (e.g. [Billy Bob ``]) + */ + bccRecipients?: string[]; + /** + * @description + * + * The body HTML of the template. + */ + bodyHtml?: string; + /** + * @description + * + * The body text of the template. + */ + bodyText?: string; + /** + * @description + * + * The total count of bounced mailings during this template. + */ + bounceCount?: number; + /** + * @description + * + * A list of default person and email address pairs to receive this template in the "cc" field (e.g. [Billy Bob ``]) + */ + ccRecipients?: string[]; + /** + * @description + * + * The total count of clicked mailings from this template. + */ + clickCount?: number; + /** + * Format: date-time + * @description + * + * The date and time the template was created. + */ + createdAt?: string; + /** + * @description + * + * The total count of delivered mailings from this template. + */ + deliverCount?: number; + /** + * @description + * + * The total count of failed mailings from this template. + */ + failureCount?: number; + /** + * Format: date-time + * @description + * + * The last time the template was used. + */ + lastUsedAt?: string; + /** + * @description + * + * The name of the template. + */ + name?: string; + /** + * @description + * + * The total count of negative reply mailings from this template. + */ + negativeReplyCount?: number; + /** + * @description + * + * The total count of neutral reply mailings from this template. + */ + neutralReplyCount?: number; + /** + * @description + * + * The total count of opened mailings from this template. + */ + openCount?: number; + /** + * @description + * + * The total count of opted out mailings from this template. + */ + optOutCount?: number; + /** + * @description + * + * The total count of positive reply mailings from this template. + */ + positiveReplyCount?: number; + /** + * @description + * + * The total count of replied mailings from this template. + */ + replyCount?: number; + /** + * @description + * + * The total count of scheduled mailings from this template. + */ + scheduleCount?: number; + /** + * @description + * + * The share type must be one of "read_only," "private," or "shared". + */ + shareType?: string; + /** + * @description + * + * The subject line for the email to be sent. + */ + subject?: string; + /** + * @description + * + * A list of tag values associated with the template (e.g. ["Sequencing", "Quick Response"]). + */ + tags?: string[]; + /** + * @description + * + * A list of default person and email address pairs to receive this template in the "to" field (e.g. ["Billy Bob "]) + */ + toRecipients?: string[]; + /** + * @description + * + * Boolean value indicating if link tracking is on for the template. + */ + trackLinks?: boolean; + /** + * @description + * + * Boolean value indicating if open tracking is on for the template. + */ + trackOpens?: boolean; + /** + * Format: date-time + * @description + * + * The date and time the template was last updated. + */ + updatedAt?: string; + }; + templateRelationships: { + /** @description The content cateogories with which this template is associated. Relationship contentCategoryMemberships cannot be used as a filter. */ + contentCategoryMemberships?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "contentCategoryMembership"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "contentCategoryMembership"; + }; + }]>[]; + /** + * user + * @description + * + * The creator of the template. You can use only the attribute id to filter templates by creator (e.g. filter[creator][id]=X). + */ + creator?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** + * user + * @description The owner of the template. You can use only the attribute id to filter templates by owner (e.g. filter[owner][id]=X). + */ + owner?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** + * @description + * + * A list of default email addresses to receive this template. You can use only the attribute id to filter templates by recipients (e.g. filter[recipients][id]=X). + */ + recipients?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "recipient"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "recipient"; + }; + }]>[]; + /** + * @description + * + * The sequence templates using the template for their content. Relationship sequenceTemplates cannot be used as a filter. + */ + sequenceTemplates?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "sequenceTemplate"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "sequenceTemplate"; + }; + }]>[]; + /** + * user + * @description + * + * The creator of the template. You can use only the attribute id to filter templates by updater (e.g. filter[updater][id]=X). + */ + updater?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + templateResponse: { + attributes?: components["schemas"]["template"]; + id?: number; + relationships?: components["schemas"]["templateRelationships"]; + type?: string; + }; + /** @description The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users. */ + user: { + /** + * @description + * + * The default smart view to load on the account index view. + */ + accountsViewId?: number; + /** + * @description + * + * A boolean value whether the user's activity notifications are disabled. + */ + activityNotificationsDisabled?: boolean; + /** + * @description + * + * A boolean value whether the user's bounce warning emails are enabled. + */ + bounceWarningEmailEnabled?: boolean; + /** + * @description + * + * The telephone number of the user's outbound bridge phone. + */ + bridgePhone?: string; + /** + * @description + * + * The extension number of the user's outbound bridge phone. + */ + bridgePhoneExtension?: string; + /** + * @description + * + * The default smart view to load on the calls view. + */ + callsViewId?: number; + /** + * @description + * + * The user's preferred default tab to open when in task flow. + */ + controlledTabDefault?: string; + /** + * Format: date-time + * @description + * + * The date and time the user was created. + */ + createdAt?: string; + /** + * Format: date-time + * @description + * + * The date and time the user most recently signed in. + */ + currentSignInAt?: string; + /** + * @description + * + * The value of the user's first custom field. + */ + custom1?: string; + /** + * @description + * + * The value of the user's second custom field. + */ + custom2?: string; + /** + * @description + * + * The value of the user's third custom field. + */ + custom3?: string; + /** + * @description + * + * The value of the user's fourth custom field. + */ + custom4?: string; + /** + * @description + * + * The value of the user's fifth custom field. + */ + custom5?: string; + /** + * @description + * + * A boolean value whether the user's daily digest emails are enabled. + */ + dailyDigestEmailEnabled?: boolean; + /** + * @description + * + * The id of the default ruleset assigned to the user. + */ + defaultRulesetId?: number; + /** + * @description + * + * A collection of the user's work roles. + */ + duties?: Record; + /** + * Format: email + * @description + * + * The email address of the user. Cannot be updated via the API. + */ + email?: string; + /** + * @description + * + * A boolean value whether the user has voice recordings enabled. + */ + enableVoiceRecordings?: boolean; + /** + * @description + * + * A boolean value whether the user has engagement emails enabled. + */ + engagementEmailsEnabled?: boolean; + /** + * @description + * + * The first name of the user. + */ + firstName?: string; + /** + * @description + * + * The telephone number of the user's inbound bridge phone. + */ + inboundBridgePhone?: string; + /** + * @description + * + * The extension number of the user's inbound bridge phone. + */ + inboundBridgePhoneExtension?: string; + /** + * @description + * + * The behavior of inbound calls. Must be either "inbound_bridge" or "inbound_voicemail". + */ + inboundCallBehavior?: string; + /** + * @description + * + * The user's type of telephone for inbound calls. Must be either "bridge", "voip" or "bridge_and_voip". + */ + inboundPhoneType?: string; + /** + * @description + * + * The message for inbound voicemails (e.g. "Please leave a message and I will get back to you as soon I can"). + */ + inboundVoicemailCustomMessageText?: string; + /** + * @description + * + * The gender of the voice that reads the voicemail message. Must be either "man" or "woman". + */ + inboundVoicemailMessageTextVoice?: string; + /** + * @description + * + * The type of inbound voicemail to use. Must be either "automated", "recorded", or "off". + */ + inboundVoicemailPromptType?: string; + /** + * @description + * + * The default smart view to load on the kaia recordings view. + */ + kaiaRecordingsViewId?: number; + /** + * @description + * + * Whether to keep the user's bridge phone connected in-between outbound calls. + */ + keepBridgePhoneConnected?: boolean; + /** + * @description + * + * The last name of the user. + */ + lastName?: string; + /** + * Format: date-time + * @description + * + * The date and time the user previously signed in. + */ + lastSignInAt?: string; + /** + * @description + * + * A boolean value whether the user is locked out of the application. + */ + locked?: boolean; + /** + * @description + * + * A boolean value whether the user's mailbox error emails are enabled. + */ + mailboxErrorEmailEnabled?: boolean; + /** + * @description + * + * A boolean value whether the user's meeting engagement notifications are enabled. + */ + meetingEngagementNotificationEnabled?: boolean; + /** + * @description + * + * The full name of the user. + */ + name?: string; + /** + * @description + * + * A boolean value whether the user's notifications are enabled. + */ + notificationsEnabled?: boolean; + /** + * @description + * + * A boolean value indicating if phone calls will launch a call from Outreach (Salesforce, Github, Gmail, LinkedIn, and Twitter). + */ + oceClickToDialEverywhere?: boolean; + /** + * @description + * + * A boolean value indicating whether the Outreach Gmail toolbar is enabled. + */ + oceGmailToolbar?: boolean; + /** + * @description + * + * The user's current email tracking settings when using Outreach Everywhere with GMail. + */ + oceGmailTrackingState?: string; + /** + * @description + * + * A boolean value indicating if emails are enabled in Outreach Everywhere with Salesforce. + */ + oceSalesforceEmailDecorating?: boolean; + /** + * @description + * + * A boolean value indicating if phone calls are enabled in Outreach Everywhere with Salesforce. + */ + oceSalesforcePhoneDecorating?: boolean; + /** + * @description + * + * A boolean value indicating whether Outreach Everywhere universal task flow is enabled. + */ + oceUniversalTaskFlow?: boolean; + /** + * @description + * + * A boolean value indicating whether Outreach Everywhere window mode is enabled. + */ + oceWindowMode?: boolean; + /** + * @description + * + * The default smart view to load on the opportunity index view. + */ + opportunitiesViewId?: number; + /** + * Format: date-time + * @description + * + * The date and time the current password expires. + */ + passwordExpiresAt?: string; + /** + * @description + * + * The country code of the user's phone. + */ + phoneCountryCode?: string; + /** + * @description + * + * The telephone number of the user's phone. + */ + phoneNumber?: string; + /** + * @description + * + * The user's type of telephone for outbound calls. Must be either "bridge" or "voip". + */ + phoneType?: string; + /** + * @description + * + * A boolean value whether the user's plugin related error notifications are enabled. + */ + pluginAlertNotificationEnabled?: boolean; + /** + * @description + * + * A string that represents Twilio data center used to connect to Twilio. + */ + preferredVoiceRegion?: string; + /** + * @description + * + * A boolean value whether the user prefers that a voice call comes from a local phone number. + */ + prefersLocalPresence?: boolean; + /** + * @description + * + * The primary preferred timezone to use when scheduling meetings. + */ + primaryTimezone?: string; + /** + * @description + * + * The default smart view to load on the prospect index view. + */ + prospectsViewId?: number; + /** + * @description + * + * The default smart view to load on the team performance reports view. + */ + reportsTeamPerfViewId?: number; + /** + * @description + * + * The default smart view to load on the reports view. + */ + reportsViewId?: number; + /** + * @description + * + * The ID from the SCIM provisioning service used to create the user. + */ + scimExternalId?: string; + /** + * @description + * + * The name of the SCIM provisioning source used to create the user. + */ + scimSource?: string; + /** + * @description + * + * The secondary preferred timezone to use when scheduling meetings. + */ + secondaryTimezone?: string; + /** + * @description + * + * A boolean value whether the user's sender notifications are excluded. + */ + senderNotificationsExcluded?: boolean; + /** + * @description + * + * The default smart view to load on the tasks index view. + */ + tasksViewId?: number; + /** + * @description + * + * The default smart view to load on the teams index view. + */ + teamsViewId?: number; + /** + * @description + * + * The tertiary preferred timezone to use when scheduling meetings. + */ + tertiaryTimezone?: string; + /** + * @description + * + * A boolean value whether to send the user email notifications when a text message is missed. + */ + textingEmailNotifications?: boolean; + /** + * @description + * + * The user's job title (e.g. "Staff Accountant"). + */ + title?: string; + /** + * @description + * + * A boolean value whether the user's unknown reply emails are enabled. + */ + unknownReplyEmailEnabled?: boolean; + /** + * Format: date-time + * @description + * + * The date and time the user was last updated. + */ + updatedAt?: string; + /** + * @description + * + * The globally unique ID (GUID) assigned to the user. + */ + userGuid?: string; + /** + * @description + * + * A reader friendly unique identifier of the user. + */ + username?: string; + /** + * @description + * + * The default smart view to load on the users index view. + */ + usersViewId?: number; + /** + * @description + * + * A boolean value whether the user's voicemail notifications are enabled. + */ + voicemailNotificationEnabled?: boolean; + /** + * @description + * + * A boolean value whether the user's weekly digest email are enabled. + */ + weeklyDigestEmailEnabled?: boolean; + }; + userRelationships: { + /** @description The groupings of sequences, snippets and templates that this user has access to. Relationship contentCategories cannot be used as a filter. */ + contentCategories?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "contentCategory"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "contentCategory"; + }; + }]>[]; + /** + * @description + * + * The creator of the user. Relationship creator cannot be used as a filter. + */ + creator?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** + * mailbox + * @description The default mailbox associated with the user. Relationship mailbox cannot be used as a filter. + */ + mailbox?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "mailbox"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "mailbox"; + }; + }]>; + /** @description All mailboxes associated with the user. Relationship mailboxes cannot be used as a filter. */ + mailboxes?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "mailbox"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "mailbox"; + }; + }]>[]; + /** + * profile + * @description The user's profile in Outreach. You can use only the attribute id to filter users by profile (e.g. filter[profile][id]=X). + */ + profile?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "profile"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "profile"; + }; + }]>; + /** @description Recipients that will be included by default in all emails composed by user. Relationship recipients cannot be used as a filter. */ + recipients?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "recipient"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "recipient"; + }; + }]>[]; + /** + * role + * @description The role associated with the user. You can use only the attribute id to filter users by role (e.g. filter[role][id]=X). + */ + role?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "role"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "role"; + }; + }]>; + /** @description The teams the user belongs to. You can use only the attribute id to filter users by teams (e.g. filter[teams][id]=X). */ + teams?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "team"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "team"; + }; + }]>[]; + /** + * @description + * + * The most recent updater of the user. Relationship updater cannot be used as a filter. + */ + updater?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + userResponse: { + attributes?: components["schemas"]["user"]; + id?: number; + relationships?: components["schemas"]["userRelationships"]; + type?: string; + }; + voicePluginRelationships: Record; + voicemailPromptRelationships: { + /** user */ + user?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + /** @description A configurable notification that submits external JSON-API-formatted HTTP requests whenever resources are modified. */ + webhook: { + /** + * @description + * + * The action that will trigger this webhook (e.g. "*", "created", "updated", "destroyed"). Webhooks will only execute if both the action and resource match. + */ + action?: string; + /** + * @description + * + * A boolean value indicating whether the webhook is active. + */ + active?: boolean; + /** + * Format: date-time + * @description + * + * The date and time the webhook was created. + */ + createdAt?: string; + /** + * @description + * + * The resource that will trigger this webhook (e.g. "*", "prospect", "sequenceState"). Webhooks will only execute if both the action and resource match. + */ + resource?: string; + /** + * @description + * + * A private token used to verify the authenticity of incoming webhook payloads. + */ + secret?: string; + /** + * Format: date-time + * @description + * + * The date and time the webhook was last updated. + */ + updatedAt?: string; + /** + * @description + * + * The URL where the webhook will route its POST HTTP request. + */ + url?: string; + }; + webhookRelationships: { + /** + * user + * @description + * + * The authorizer of the webhook. The webhook will not deliver results if the authorizer does not have permission to read the resource being returned. Relationship authorizer cannot be used as a filter. + */ + authorizer?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** + * user + * @description + * + * The creator of the webhook. You can use only the attribute id to filter webhooks by creator (e.g. filter[creator][id]=X). + */ + creator?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + /** + * user + * @description + * + * The most recent updater of the webhook. You can use only the attribute id to filter webhooks by updater (e.g. filter[updater][id]=X). + */ + updater?: OneOf<[{ + data?: { + id?: number; + /** @enum {string} */ + type?: "user"; + }; + }, { + links?: { + /** @enum {string} */ + related?: "user"; + }; + }]>; + }; + webhookResponse: { + attributes?: components["schemas"]["webhook"]; + id?: number; + relationships?: components["schemas"]["webhookRelationships"]; + type?: string; + }; + }; + responses: never; + parameters: never; + requestBodies: never; + headers: never; + pathItems: never; +} + +export type $defs = Record; + +export type external = Record; + +export type operations = Record; diff --git a/packages/core/remotes/impl/outreach/outreach.openapi.yaml b/packages/core/remotes/impl/outreach/outreach.openapi.yaml new file mode 100644 index 000000000..30f48124c --- /dev/null +++ b/packages/core/remotes/impl/outreach/outreach.openapi.yaml @@ -0,0 +1,20219 @@ +--- + openapi: "3.0.3" + info: + title: "Outreach REST API Reference" + version: "" + servers: + - + url: "https://api.outreach.io/api/v2" + security: + - + bearerAuth: [] + tags: + - + description: "\n\n## Account Relationships\n\n\n\n## Account Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n| dataConnections | The set of connections a given Account has to external sources. | provideDataConnections |\n\n\n## ⌵ Account Actions\n\n" + name: "Account" + x-internal: false + - + description: "\n\n## ⌵ Audit Actions\n\n" + name: "Audit" + x-internal: false + - + description: "\n\n## Call Disposition Relationships\n\n\n\n## Call Disposition Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Call Disposition Actions\n\n" + name: "Call Disposition" + x-internal: false + - + description: "\n\n## Call Purpose Relationships\n\n\n\n## Call Purpose Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Call Purpose Actions\n\n" + name: "Call Purpose" + x-internal: false + - + description: "\n\n## Call Relationships\n\n\n\n## Call Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n| dataConnections | The set of connections a given Call has to external sources. | provideDataConnections |\n\n\n## ⌵ Call Actions\n\n" + name: "Call" + x-internal: false + - + description: "\n\n## Compliance Request Relationships\n\n\n\n## ⌵ Compliance Request Actions\n\n" + name: "Compliance Request" + x-internal: false + - + description: "\n\n## Content Category Relationships\n\n\n\n## Content Category Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Content Category Actions\n\n" + name: "Content Category" + x-internal: false + - + description: "\n\n## Content Category Membership Relationships\n\n\n\n## Content Category Membership Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Content Category Membership Actions\n\n" + name: "Content Category Membership" + x-internal: false + - + description: "\n\n## Content Category Ownership Relationships\n\n\n\n## Content Category Ownership Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Content Category Ownership Actions\n\n" + name: "Content Category Ownership" + x-internal: false + - + description: "\n\n## ⌵ Custom Duty Actions\n\n" + name: "Custom Duty" + x-internal: false + - + description: "\n\n## ⌵ Duty Actions\n\n" + name: "Duty" + x-internal: false + - + description: "\n\n## Email Address Relationships\n\n\n\n## Email Address Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Email Address Actions\n\n" + name: "Email Address" + x-internal: false + - + description: "\n\n## Event Relationships\n\n\n\n## ⌵ Event Actions\n\n" + name: "Event" + x-internal: false + - + description: "\n\n## Favorite Relationships\n\n\n\n## Favorite Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Favorite Actions\n\n" + name: "Favorite" + x-internal: false + - + description: "\n\n## Mail Alias Relationships\n\n\n\n## ⌵ Mail Alias Actions\n\n" + name: "Mail Alias" + x-internal: false + - + description: "\n\n## Mailbox Relationships\n\n\n\n## Mailbox Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Mailbox Actions\n\n" + name: "Mailbox" + x-internal: false + - + description: "\n\n## Mailing Relationships\n\n\n\n## Mailing Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| dataConnections | The set of connections a given Mailing has to external sources. | provideDataConnections |\n\n\n## ⌵ Mailing Actions\n\n" + name: "Mailing" + x-internal: false + - + description: "\n\n## Opportunity Relationships\n\n\n\n## Opportunity Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n| dataConnections | The set of connections a given Opportunity has to external sources. | provideDataConnections |\n\n\n## ⌵ Opportunity Actions\n\n" + name: "Opportunity" + x-internal: false + - + description: "\n\n## Opportunity Prospect Role Relationships\n\n\n\n## Opportunity Prospect Role Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Opportunity Prospect Role Actions\n\n" + name: "Opportunity Prospect Role" + x-internal: false + - + description: "\n\n## Opportunity Stage Relationships\n\n\n\n## Opportunity Stage Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n| dataConnections | The set of connections a given Opportunity Stage has to external sources. | provideDataConnections |\n\n\n## ⌵ Opportunity Stage Actions\n\n" + name: "Opportunity Stage" + x-internal: false + - + description: "\n\n## Persona Relationships\n\n\n\n## Persona Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Persona Actions\n\n" + name: "Persona" + x-internal: false + - + description: "\n\n## Phone Number Relationships\n\n\n\n## Phone Number Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Phone Number Actions\n\n" + name: "Phone Number" + x-internal: false + - + description: "\n\n## Profile Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Profile Actions\n\n" + name: "Profile" + x-internal: false + - + description: "\n\n## Prospect Relationships\n\n\n\n## Prospect Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n| dataConnections | The set of connections a given Prospect has to external sources. | provideDataConnections |\n\n\n## ⌵ Prospect Actions\n\n" + name: "Prospect" + x-internal: false + - + description: "\n\n## Recipient Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Recipient Actions\n\n" + name: "Recipient" + x-internal: false + - + description: "\n\n## Role Relationships\n\n\n\n## Role Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Role Actions\n\n" + name: "Role" + x-internal: false + - + description: "\n\n## Ruleset Relationships\n\n\n\n## Ruleset Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Ruleset Actions\n\n" + name: "Ruleset" + x-internal: false + - + description: "\n\n## Sequence State Relationships\n\n\n\n## Sequence State Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Sequence State Actions\n\n" + name: "Sequence State" + x-internal: false + - + description: "\n\n## Sequence Step Relationships\n\n\n\n## Sequence Step Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Sequence Step Actions\n\n" + name: "Sequence Step" + x-internal: false + - + description: "\n\n## Sequence Template Relationships\n\n\n\n## Sequence Template Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Sequence Template Actions\n\n" + name: "Sequence Template" + x-internal: false + - + description: "\n\n## Sequence Relationships\n\n\n\n## Sequence Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Sequence Actions\n\n" + name: "Sequence" + x-internal: false + - + description: "\n\n## Snippet Relationships\n\n\n\n## Snippet Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Snippet Actions\n\n" + name: "Snippet" + x-internal: false + - + description: "\n\n## Stage Relationships\n\n\n\n## Stage Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n| dataConnections | The set of connections a given Stage has to external sources. | provideDataConnections |\n\n\n## ⌵ Stage Actions\n\n" + name: "Stage" + x-internal: false + - + description: "\n\n## Task Priority Relationships\n\n\n\n## ⌵ Task Priority Actions\n\n" + name: "Task Priority" + x-internal: false + - + description: "\n\n## Task Relationships\n\n\n\n## Task Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n| dataConnections | The set of connections a given Task has to external sources. | provideDataConnections |\n\n\n## ⌵ Task Actions\n\n" + name: "Task" + x-internal: false + - + description: "\n\n## Team Relationships\n\n\n\n## Team Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Team Actions\n\n" + name: "Team" + x-internal: false + - + description: "\n\n## Template Relationships\n\n\n\n## Template Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Template Actions\n\n" + name: "Template" + x-internal: false + - + description: "\n\n## User Relationships\n\n\n\n## User Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| dataConnections | The set of connections a given User has to external sources. | provideDataConnections |\n\n\n## ⌵ User Actions\n\n" + name: "User" + x-internal: false + - + description: "\n\n## Webhook Relationships\n\n\n\n## Webhook Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Webhook Actions\n\n" + name: "Webhook" + x-internal: false + paths: + /accounts: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/accountResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Get a Collection of Accounts" + tags: + - "Account" + x-internal: false + post: + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/account" + relationships: + $ref: "#/components/schemas/accountRelationships" + type: + type: "string" + type: "object" + required: true + responses: + 201: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/accountResponse" + description: "Created" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Create a New Account" + tags: + - "Account" + x-internal: false + /accounts/{id}: + delete: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 204: + content: + application/vnd.api+json: {} + description: "Deleted" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Delete an Existing Account by ID" + tags: + - "Account" + x-internal: false + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/accountResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Get an Account by ID" + tags: + - "Account" + x-internal: false + patch: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/account" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/accountRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + required: true + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/account" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/accountRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Update an Account" + tags: + - "Account" + x-internal: false + /audits: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/auditResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Get a Collection of Audits" + tags: + - "Audit" + x-internal: false + /callDispositions: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/callDispositionResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Get a Collection of Call Dispositions" + tags: + - "Call Disposition" + x-internal: false + post: + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/callDisposition" + relationships: + $ref: "#/components/schemas/callDispositionRelationships" + type: + type: "string" + type: "object" + required: true + responses: + 201: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/callDispositionResponse" + description: "Created" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Create a New Call Disposition" + tags: + - "Call Disposition" + x-internal: false + /callDispositions/{id}: + delete: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 204: + content: + application/vnd.api+json: {} + description: "Deleted" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Delete an Existing Call Disposition by ID" + tags: + - "Call Disposition" + x-internal: false + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/callDispositionResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + summary: "Get a Call Disposition by ID" + tags: + - "Call Disposition" + x-internal: false + patch: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/callDisposition" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/callDispositionRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + required: true + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/callDisposition" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/callDispositionRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Update a Call Disposition" + tags: + - "Call Disposition" + x-internal: false + /callPurposes: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/callPurposeResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Get a Collection of Call Purposes" + tags: + - "Call Purpose" + x-internal: false + post: + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/callPurpose" + relationships: + $ref: "#/components/schemas/callPurposeRelationships" + type: + type: "string" + type: "object" + required: true + responses: + 201: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/callPurposeResponse" + description: "Created" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Create a New Call Purpose" + tags: + - "Call Purpose" + x-internal: false + /callPurposes/{id}: + delete: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 204: + content: + application/vnd.api+json: {} + description: "Deleted" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Delete an Existing Call Purpose by ID" + tags: + - "Call Purpose" + x-internal: false + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/callPurposeResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + summary: "Get a Call Purpose by ID" + tags: + - "Call Purpose" + x-internal: false + patch: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/callPurpose" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/callPurposeRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + required: true + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/callPurpose" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/callPurposeRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Update a Call Purpose" + tags: + - "Call Purpose" + x-internal: false + /calls: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/callResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Get a Collection of Calls" + tags: + - "Call" + x-internal: false + post: + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/call" + relationships: + $ref: "#/components/schemas/callRelationships" + type: + type: "string" + type: "object" + required: true + responses: + 201: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/callResponse" + description: "Created" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Create a New Call" + tags: + - "Call" + x-internal: false + /calls/{id}: + delete: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 204: + content: + application/vnd.api+json: {} + description: "Deleted" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Delete an Existing Call by ID" + tags: + - "Call" + x-internal: false + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/callResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Get a Call by ID" + tags: + - "Call" + x-internal: false + /complianceRequests: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/complianceRequestResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Get a Collection of Compliance Requests" + tags: + - "Compliance Request" + x-internal: false + post: + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/complianceRequest" + relationships: + $ref: "#/components/schemas/complianceRequestRelationships" + type: + type: "string" + type: "object" + required: true + responses: + 201: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/complianceRequestResponse" + description: "Created" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Create a New Compliance Request" + tags: + - "Compliance Request" + x-internal: false + /complianceRequests/{id}: + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/complianceRequestResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + summary: "Get a Compliance Request by ID" + tags: + - "Compliance Request" + x-internal: false + /contentCategories: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/contentCategoryResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Get a Collection of Content Categories" + tags: + - "Content Category" + x-internal: false + post: + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/contentCategory" + relationships: + $ref: "#/components/schemas/contentCategoryRelationships" + type: + type: "string" + type: "object" + required: true + responses: + 201: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/contentCategoryResponse" + description: "Created" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Create a New Content Category" + tags: + - "Content Category" + x-internal: false + /contentCategories/{id}: + delete: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 204: + content: + application/vnd.api+json: {} + description: "Deleted" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Delete an Existing Content Category by ID" + tags: + - "Content Category" + x-internal: false + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/contentCategoryResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + summary: "Get a Content Category by ID" + tags: + - "Content Category" + x-internal: false + patch: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/contentCategory" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/contentCategoryRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + required: true + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/contentCategory" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/contentCategoryRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Update a Content Category" + tags: + - "Content Category" + x-internal: false + /contentCategoryMemberships: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/contentCategoryMembershipResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Get a Collection of Content Category Memberships" + tags: + - "Content Category Membership" + x-internal: false + post: + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/contentCategoryMembership" + relationships: + $ref: "#/components/schemas/contentCategoryMembershipRelationships" + type: + type: "string" + type: "object" + required: true + responses: + 201: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/contentCategoryMembershipResponse" + description: "Created" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Create a New Content Category Membership" + tags: + - "Content Category Membership" + x-internal: false + /contentCategoryMemberships/{id}: + delete: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 204: + content: + application/vnd.api+json: {} + description: "Deleted" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Delete an Existing Content Category Membership by ID" + tags: + - "Content Category Membership" + x-internal: false + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/contentCategoryMembershipResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + summary: "Get a Content Category Membership by ID" + tags: + - "Content Category Membership" + x-internal: false + /contentCategoryOwnerships: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/contentCategoryOwnershipResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Get a Collection of Content Category Ownerships" + tags: + - "Content Category Ownership" + x-internal: false + post: + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/contentCategoryOwnership" + relationships: + $ref: "#/components/schemas/contentCategoryOwnershipRelationships" + type: + type: "string" + type: "object" + required: true + responses: + 201: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/contentCategoryOwnershipResponse" + description: "Created" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Create a New Content Category Ownership" + tags: + - "Content Category Ownership" + x-internal: false + /contentCategoryOwnerships/{id}: + delete: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 204: + content: + application/vnd.api+json: {} + description: "Deleted" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Delete an Existing Content Category Ownership by ID" + tags: + - "Content Category Ownership" + x-internal: false + /customDuties: + post: + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/customDuty" + relationships: + $ref: "#/components/schemas/customDutyRelationships" + type: + type: "string" + type: "object" + required: true + responses: + 201: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/customDutyResponse" + description: "Created" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Create a New Custom Duty" + tags: + - "Custom Duty" + x-internal: false + /duties: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/dutyResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Get a Collection of Duties" + tags: + - "Duty" + x-internal: false + /emailAddresses: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/emailAddressResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Get a Collection of Email Addresses" + tags: + - "Email Address" + x-internal: false + post: + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/emailAddress" + relationships: + $ref: "#/components/schemas/emailAddressRelationships" + type: + type: "string" + type: "object" + required: true + responses: + 201: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/emailAddressResponse" + description: "Created" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Create a New Email Address" + tags: + - "Email Address" + x-internal: false + /emailAddresses/{id}: + delete: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 204: + content: + application/vnd.api+json: {} + description: "Deleted" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Delete an Existing Email Address by ID" + tags: + - "Email Address" + x-internal: false + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/emailAddressResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + summary: "Get an Email Address by ID" + tags: + - "Email Address" + x-internal: false + patch: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/emailAddress" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/emailAddressRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + required: true + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/emailAddress" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/emailAddressRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Update an Email Address" + tags: + - "Email Address" + x-internal: false + /events/{id}: + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/eventResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Get an Event by ID" + tags: + - "Event" + x-internal: false + /favorites: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/favoriteResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Get a Collection of Favorites" + tags: + - "Favorite" + x-internal: false + post: + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/favorite" + relationships: + $ref: "#/components/schemas/favoriteRelationships" + type: + type: "string" + type: "object" + required: true + responses: + 201: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/favoriteResponse" + description: "Created" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Create a New Favorite" + tags: + - "Favorite" + x-internal: false + /favorites/{id}: + delete: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 204: + content: + application/vnd.api+json: {} + description: "Deleted" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Delete an Existing Favorite by ID" + tags: + - "Favorite" + x-internal: false + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/favoriteResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + summary: "Get a Favorite by ID" + tags: + - "Favorite" + x-internal: false + /mailAliases: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/mailAliasResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Get a Collection of Mail Aliases" + tags: + - "Mail Alias" + x-internal: false + /mailAliases/{id}: + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/mailAliasResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + summary: "Get a Mail Alias by ID" + tags: + - "Mail Alias" + x-internal: false + /mailboxes: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/mailboxResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Get a Collection of Mailboxes" + tags: + - "Mailbox" + x-internal: false + post: + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/mailbox" + relationships: + $ref: "#/components/schemas/mailboxRelationships" + type: + type: "string" + type: "object" + required: true + responses: + 201: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/mailboxResponse" + description: "Created" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Create a New Mailbox" + tags: + - "Mailbox" + x-internal: false + /mailboxes/{id}: + delete: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 204: + content: + application/vnd.api+json: {} + description: "Deleted" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Delete an Existing Mailbox by ID" + tags: + - "Mailbox" + x-internal: false + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/mailboxResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + summary: "Get a Mailbox by ID" + tags: + - "Mailbox" + x-internal: false + patch: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/mailbox" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/mailboxRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + required: true + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/mailbox" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/mailboxRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Update a Mailbox" + tags: + - "Mailbox" + x-internal: false + /mailboxes/{id}/actions/linkEwsMasterAccount: + post: + description: "### Member Action \n\nLink mailbox with EWS master account" + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + description: "empty" + type: "object" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Link Ews Master Account" + tags: + - "Mailbox" + x-internal: false + /mailboxes/{id}/actions/testSend: + post: + description: "### Member Action \n\nTest if sending emails works from this mailbox." + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/mailboxResponse" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Test Send" + tags: + - "Mailbox" + x-internal: false + /mailboxes/{id}/actions/testSync: + post: + description: "### Member Action \n\nTest if syncing emails works from this mailbox." + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/mailboxResponse" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Test Sync" + tags: + - "Mailbox" + x-internal: false + /mailboxes/{id}/actions/unlinkEwsMasterAccount: + post: + description: "### Member Action \n\nUnlink EWS master account from mailbox" + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + description: "empty" + type: "object" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Unlink Ews Master Account" + tags: + - "Mailbox" + x-internal: false + /mailings: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/mailingResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Get a Collection of Mailings" + tags: + - "Mailing" + x-internal: false + post: + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/mailing" + relationships: + $ref: "#/components/schemas/mailingRelationships" + type: + type: "string" + type: "object" + required: true + responses: + 201: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/mailingResponse" + description: "Created" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Create a New Mailing" + tags: + - "Mailing" + x-internal: false + /mailings/{id}: + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/mailingResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Get a Mailing by ID" + tags: + - "Mailing" + x-internal: false + /opportunities: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/opportunityResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Get a Collection of Opportunities" + tags: + - "Opportunity" + x-internal: false + post: + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/opportunity" + relationships: + $ref: "#/components/schemas/opportunityRelationships" + type: + type: "string" + type: "object" + required: true + responses: + 201: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/opportunityResponse" + description: "Created" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Create a New Opportunity" + tags: + - "Opportunity" + x-internal: false + /opportunities/{id}: + delete: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 204: + content: + application/vnd.api+json: {} + description: "Deleted" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Delete an Existing Opportunity by ID" + tags: + - "Opportunity" + x-internal: false + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/opportunityResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Get an Opportunity by ID" + tags: + - "Opportunity" + x-internal: false + patch: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/opportunity" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/opportunityRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + required: true + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/opportunity" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/opportunityRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Update an Opportunity" + tags: + - "Opportunity" + x-internal: false + /opportunityProspectRoles: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/opportunityProspectRoleResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Get a Collection of Opportunity Prospect Roles" + tags: + - "Opportunity Prospect Role" + x-internal: false + post: + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/opportunityProspectRole" + relationships: + $ref: "#/components/schemas/opportunityProspectRoleRelationships" + type: + type: "string" + type: "object" + required: true + responses: + 201: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/opportunityProspectRoleResponse" + description: "Created" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Create a New Opportunity Prospect Role" + tags: + - "Opportunity Prospect Role" + x-internal: false + /opportunityProspectRoles/{id}: + delete: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 204: + content: + application/vnd.api+json: {} + description: "Deleted" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Delete an Existing Opportunity Prospect Role by ID" + tags: + - "Opportunity Prospect Role" + x-internal: false + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/opportunityProspectRoleResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + summary: "Get an Opportunity Prospect Role by ID" + tags: + - "Opportunity Prospect Role" + x-internal: false + patch: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/opportunityProspectRole" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/opportunityProspectRoleRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + required: true + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/opportunityProspectRole" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/opportunityProspectRoleRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Update an Opportunity Prospect Role" + tags: + - "Opportunity Prospect Role" + x-internal: false + /opportunityStages: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/opportunityStageResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Get a Collection of Opportunity Stages" + tags: + - "Opportunity Stage" + x-internal: false + post: + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/opportunityStage" + relationships: + $ref: "#/components/schemas/opportunityStageRelationships" + type: + type: "string" + type: "object" + required: true + responses: + 201: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/opportunityStageResponse" + description: "Created" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Create a New Opportunity Stage" + tags: + - "Opportunity Stage" + x-internal: false + /opportunityStages/{id}: + delete: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 204: + content: + application/vnd.api+json: {} + description: "Deleted" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Delete an Existing Opportunity Stage by ID" + tags: + - "Opportunity Stage" + x-internal: false + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/opportunityStageResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + summary: "Get an Opportunity Stage by ID" + tags: + - "Opportunity Stage" + x-internal: false + patch: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/opportunityStage" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/opportunityStageRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + required: true + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/opportunityStage" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/opportunityStageRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Update an Opportunity Stage" + tags: + - "Opportunity Stage" + x-internal: false + /personas: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/personaResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Get a Collection of Personas" + tags: + - "Persona" + x-internal: false + post: + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/persona" + relationships: + $ref: "#/components/schemas/personaRelationships" + type: + type: "string" + type: "object" + required: true + responses: + 201: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/personaResponse" + description: "Created" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Create a New Persona" + tags: + - "Persona" + x-internal: false + /personas/{id}: + delete: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 204: + content: + application/vnd.api+json: {} + description: "Deleted" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Delete an Existing Persona by ID" + tags: + - "Persona" + x-internal: false + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/personaResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + summary: "Get a Persona by ID" + tags: + - "Persona" + x-internal: false + patch: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/persona" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/personaRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + required: true + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/persona" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/personaRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Update a Persona" + tags: + - "Persona" + x-internal: false + /phoneNumbers: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/phoneNumberResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Get a Collection of Phone Numbers" + tags: + - "Phone Number" + x-internal: false + post: + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/phoneNumber" + relationships: + $ref: "#/components/schemas/phoneNumberRelationships" + type: + type: "string" + type: "object" + required: true + responses: + 201: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/phoneNumberResponse" + description: "Created" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Create a New Phone Number" + tags: + - "Phone Number" + x-internal: false + /phoneNumbers/{id}: + delete: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 204: + content: + application/vnd.api+json: {} + description: "Deleted" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Delete an Existing Phone Number by ID" + tags: + - "Phone Number" + x-internal: false + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/phoneNumberResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + summary: "Get a Phone Number by ID" + tags: + - "Phone Number" + x-internal: false + patch: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/phoneNumber" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/phoneNumberRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + required: true + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/phoneNumber" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/phoneNumberRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Update a Phone Number" + tags: + - "Phone Number" + x-internal: false + /profiles: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/profileResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Get a Collection of Profiles" + tags: + - "Profile" + x-internal: false + post: + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/profile" + relationships: + $ref: "#/components/schemas/profileRelationships" + type: + type: "string" + type: "object" + required: true + responses: + 201: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/profileResponse" + description: "Created" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Create a New Profile" + tags: + - "Profile" + x-internal: false + /profiles/{id}: + delete: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 204: + content: + application/vnd.api+json: {} + description: "Deleted" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Delete an Existing Profile by ID" + tags: + - "Profile" + x-internal: false + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/profileResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + summary: "Get a Profile by ID" + tags: + - "Profile" + x-internal: false + patch: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/profile" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/profileRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + required: true + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/profile" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/profileRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Update a Profile" + tags: + - "Profile" + x-internal: false + /prospects: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/prospectResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Get a Collection of Prospects" + tags: + - "Prospect" + x-internal: false + post: + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/prospect" + relationships: + $ref: "#/components/schemas/prospectRelationships" + type: + type: "string" + type: "object" + required: true + responses: + 201: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/prospectResponse" + description: "Created" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Create a New Prospect" + tags: + - "Prospect" + x-internal: false + /prospects/{id}: + delete: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 204: + content: + application/vnd.api+json: {} + description: "Deleted" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Delete an Existing Prospect by ID" + tags: + - "Prospect" + x-internal: false + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/prospectResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Get a Prospect by ID" + tags: + - "Prospect" + x-internal: false + patch: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/prospect" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/prospectRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + required: true + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/prospect" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/prospectRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Update a Prospect" + tags: + - "Prospect" + x-internal: false + /recipients: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/recipientResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Get a Collection of Recipients" + tags: + - "Recipient" + x-internal: false + post: + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/recipient" + relationships: + $ref: "#/components/schemas/recipientRelationships" + type: + type: "string" + type: "object" + required: true + responses: + 201: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/recipientResponse" + description: "Created" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Create a New Recipient" + tags: + - "Recipient" + x-internal: false + /recipients/{id}: + delete: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 204: + content: + application/vnd.api+json: {} + description: "Deleted" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Delete an Existing Recipient by ID" + tags: + - "Recipient" + x-internal: false + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/recipientResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + summary: "Get a Recipient by ID" + tags: + - "Recipient" + x-internal: false + patch: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/recipient" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/recipientRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + required: true + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/recipient" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/recipientRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Update a Recipient" + tags: + - "Recipient" + x-internal: false + /roles: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/roleResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Get a Collection of Roles" + tags: + - "Role" + x-internal: false + post: + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/role" + relationships: + $ref: "#/components/schemas/roleRelationships" + type: + type: "string" + type: "object" + required: true + responses: + 201: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/roleResponse" + description: "Created" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Create a New Role" + tags: + - "Role" + x-internal: false + /roles/{id}: + delete: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 204: + content: + application/vnd.api+json: {} + description: "Deleted" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Delete an Existing Role by ID" + tags: + - "Role" + x-internal: false + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/roleResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + summary: "Get a Role by ID" + tags: + - "Role" + x-internal: false + patch: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/role" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/roleRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + required: true + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/role" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/roleRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Update a Role" + tags: + - "Role" + x-internal: false + /rulesets: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/rulesetResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Get a Collection of Rulesets" + tags: + - "Ruleset" + x-internal: false + post: + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/ruleset" + relationships: + $ref: "#/components/schemas/rulesetRelationships" + type: + type: "string" + type: "object" + required: true + responses: + 201: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/rulesetResponse" + description: "Created" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Create a New Ruleset" + tags: + - "Ruleset" + x-internal: false + /rulesets/{id}: + delete: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 204: + content: + application/vnd.api+json: {} + description: "Deleted" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Delete an Existing Ruleset by ID" + tags: + - "Ruleset" + x-internal: false + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/rulesetResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + summary: "Get a Ruleset by ID" + tags: + - "Ruleset" + x-internal: false + patch: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/ruleset" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/rulesetRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + required: true + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/ruleset" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/rulesetRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Update a Ruleset" + tags: + - "Ruleset" + x-internal: false + /sequenceStates: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/sequenceStateResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Get a Collection of Sequence States" + tags: + - "Sequence State" + x-internal: false + post: + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/sequenceState" + relationships: + $ref: "#/components/schemas/sequenceStateRelationships" + type: + type: "string" + type: "object" + required: true + responses: + 201: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/sequenceStateResponse" + description: "Created" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Create a New Sequence State" + tags: + - "Sequence State" + x-internal: false + /sequenceStates/{id}: + delete: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 204: + content: + application/vnd.api+json: {} + description: "Deleted" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Delete an Existing Sequence State by ID" + tags: + - "Sequence State" + x-internal: false + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/sequenceStateResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Get a Sequence State by ID" + tags: + - "Sequence State" + x-internal: false + /sequenceStates/{id}/actions/finish: + post: + description: "### Member Action \n\nFinishes an active sequence state." + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/sequenceStateResponse" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Finish" + tags: + - "Sequence State" + x-internal: false + /sequenceStates/{id}/actions/pause: + post: + description: "### Member Action \n\nPauses an active sequence state." + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/sequenceStateResponse" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Pause" + tags: + - "Sequence State" + x-internal: false + /sequenceStates/{id}/actions/resume: + post: + description: "### Member Action \n\nResumes a paused sequence state." + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/sequenceStateResponse" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Resume" + tags: + - "Sequence State" + x-internal: false + /sequenceSteps: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/sequenceStepResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Get a Collection of Sequence Steps" + tags: + - "Sequence Step" + x-internal: false + post: + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/sequenceStep" + relationships: + $ref: "#/components/schemas/sequenceStepRelationships" + type: + type: "string" + type: "object" + required: true + responses: + 201: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/sequenceStepResponse" + description: "Created" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Create a New Sequence Step" + tags: + - "Sequence Step" + x-internal: false + /sequenceSteps/{id}: + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/sequenceStepResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + summary: "Get a Sequence Step by ID" + tags: + - "Sequence Step" + x-internal: false + patch: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/sequenceStep" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/sequenceStepRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + required: true + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/sequenceStep" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/sequenceStepRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Update a Sequence Step" + tags: + - "Sequence Step" + x-internal: false + /sequenceTemplates: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/sequenceTemplateResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Get a Collection of Sequence Templates" + tags: + - "Sequence Template" + x-internal: false + post: + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/sequenceTemplate" + relationships: + $ref: "#/components/schemas/sequenceTemplateRelationships" + type: + type: "string" + type: "object" + required: true + responses: + 201: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/sequenceTemplateResponse" + description: "Created" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Create a New Sequence Template" + tags: + - "Sequence Template" + x-internal: false + /sequenceTemplates/{id}: + delete: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 204: + content: + application/vnd.api+json: {} + description: "Deleted" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Delete an Existing Sequence Template by ID" + tags: + - "Sequence Template" + x-internal: false + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/sequenceTemplateResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + summary: "Get a Sequence Template by ID" + tags: + - "Sequence Template" + x-internal: false + patch: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/sequenceTemplate" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/sequenceTemplateRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + required: true + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/sequenceTemplate" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/sequenceTemplateRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Update a Sequence Template" + tags: + - "Sequence Template" + x-internal: false + /sequences: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/sequenceResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Get a Collection of Sequences" + tags: + - "Sequence" + x-internal: false + post: + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/sequence" + relationships: + $ref: "#/components/schemas/sequenceRelationships" + type: + type: "string" + type: "object" + required: true + responses: + 201: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/sequenceResponse" + description: "Created" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Create a New Sequence" + tags: + - "Sequence" + x-internal: false + /sequences/{id}: + delete: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 204: + content: + application/vnd.api+json: {} + description: "Deleted" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Delete an Existing Sequence by ID" + tags: + - "Sequence" + x-internal: false + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/sequenceResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Get a Sequence by ID" + tags: + - "Sequence" + x-internal: false + patch: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/sequence" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/sequenceRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + required: true + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/sequence" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/sequenceRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Update a Sequence" + tags: + - "Sequence" + x-internal: false + /snippets: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/snippetResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Get a Collection of Snippets" + tags: + - "Snippet" + x-internal: false + post: + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/snippet" + relationships: + $ref: "#/components/schemas/snippetRelationships" + type: + type: "string" + type: "object" + required: true + responses: + 201: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/snippetResponse" + description: "Created" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Create a New Snippet" + tags: + - "Snippet" + x-internal: false + /snippets/{id}: + delete: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 204: + content: + application/vnd.api+json: {} + description: "Deleted" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Delete an Existing Snippet by ID" + tags: + - "Snippet" + x-internal: false + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/snippetResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Get a Snippet by ID" + tags: + - "Snippet" + x-internal: false + patch: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/snippet" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/snippetRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + required: true + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/snippet" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/snippetRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Update a Snippet" + tags: + - "Snippet" + x-internal: false + /stages: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/stageResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Get a Collection of Stages" + tags: + - "Stage" + x-internal: false + post: + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/stage" + relationships: + $ref: "#/components/schemas/stageRelationships" + type: + type: "string" + type: "object" + required: true + responses: + 201: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/stageResponse" + description: "Created" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Create a New Stage" + tags: + - "Stage" + x-internal: false + /stages/{id}: + delete: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 204: + content: + application/vnd.api+json: {} + description: "Deleted" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Delete an Existing Stage by ID" + tags: + - "Stage" + x-internal: false + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/stageResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + summary: "Get a Stage by ID" + tags: + - "Stage" + x-internal: false + patch: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/stage" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/stageRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + required: true + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/stage" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/stageRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Update a Stage" + tags: + - "Stage" + x-internal: false + /taskPriorities: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/taskPriorityResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Get a Collection of Task Priorities" + tags: + - "Task Priority" + x-internal: false + /taskPriorities/{id}: + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/taskPriorityResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + summary: "Get a Task Priority by ID" + tags: + - "Task Priority" + x-internal: false + /tasks: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/taskResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Get a Collection of Tasks" + tags: + - "Task" + x-internal: false + post: + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/task" + relationships: + $ref: "#/components/schemas/taskRelationships" + type: + type: "string" + type: "object" + required: true + responses: + 201: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/taskResponse" + description: "Created" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Create a New Task" + tags: + - "Task" + x-internal: false + /tasks/{id}: + delete: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 204: + content: + application/vnd.api+json: {} + description: "Deleted" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Delete an Existing Task by ID" + tags: + - "Task" + x-internal: false + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/taskResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Get a Task by ID" + tags: + - "Task" + x-internal: false + patch: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/task" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/taskRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + required: true + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/task" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/taskRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Update a Task" + tags: + - "Task" + x-internal: false + /tasks/{id}/actions/advance: + post: + description: "### Member Action \n\nAdvances the sequence state associated with the task to the next step in the sequence. Note that only tasks with task_type of 'sequence_step_call', 'sequence_step_email', 'sequence_step_linkedin_interact_with_post', 'sequence_step_linkedin_other', 'sequence_step_linkedin_send_connection_request', 'sequence_step_linkedin_send_message', 'sequence_step_linkedin_view_profile', 'sequence_step_sms' or 'sequence_step_task' can be advanced." + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/taskResponse" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Advance" + tags: + - "Task" + x-internal: false + /tasks/{id}/actions/deliver: + post: + description: "### Member Action \n\nSchedules the mailing associated with the task for delivery, if possible." + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/taskResponse" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Deliver" + tags: + - "Task" + x-internal: false + /tasks/{id}/actions/markComplete: + post: + description: "### Member Action \n\nMarks the task as complete." + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + - + explode: true + in: "query" + name: "actionParams" + schema: + properties: + completionAction: + description: "For sequence step tasks, this specifies how to finish the sequence state. Possible values are: 'finish_no_reply' to finish the sequence, 'finish_replied' to set the sequence as replied, and anything else (including leaving it blank) will advance the sequence state." + completionNote: + description: "A note to attach to the associated prospect, if there is one." + style: "deepObject" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/taskResponse" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Mark Complete" + tags: + - "Task" + x-internal: false + /tasks/{id}/actions/reassignOwner: + post: + description: "### Member Action \n\nReassigns the owner of a task" + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + - + explode: true + in: "query" + name: "actionParams" + schema: + properties: + ownerId: + description: "The id of the new owner of the task" + required: + - "ownerId" + style: "deepObject" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/taskResponse" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Reassign Owner" + tags: + - "Task" + x-internal: false + /tasks/{id}/actions/reschedule: + post: + description: "### Member Action \n\nReschedules a task by setting a new task due time." + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + - + explode: true + in: "query" + name: "actionParams" + schema: + properties: + dueAt: + description: "The new time for the task to be due." + required: + - "dueAt" + style: "deepObject" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/taskResponse" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Reschedule" + tags: + - "Task" + x-internal: false + /tasks/{id}/actions/snooze: + post: + description: "### Member Action \n\nSets the 'dueAt' value to be a day later than either now or the existing 'dueAt' value, whichever is later." + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + - + explode: true + in: "query" + name: "actionParams" + schema: + properties: + dueAt: + description: "The new time for the task to be due." + markAsUrgent: + description: "Whether to mark the task as urgent or not." + style: "deepObject" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/taskResponse" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Snooze" + tags: + - "Task" + x-internal: false + /tasks/{id}/actions/updateNote: + post: + description: "### Member Action \n\nUpdates note of a task" + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + - + explode: true + in: "query" + name: "actionParams" + schema: + properties: + note: + description: "The note to set on the task." + required: + - "note" + style: "deepObject" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/taskResponse" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Update Note" + tags: + - "Task" + x-internal: false + /tasks/{id}/actions/updateOpportunityAssociation: + post: + description: "### Member Action \n\nUpdates opportunity association of a task" + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + - + explode: true + in: "query" + name: "actionParams" + schema: + properties: + opportunityAssociation: + description: "The opportunity to associate with the task." + required: + - "opportunityAssociation" + style: "deepObject" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/taskResponse" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Update Opportunity Association" + tags: + - "Task" + x-internal: false + /teams: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/teamResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Get a Collection of Teams" + tags: + - "Team" + x-internal: false + post: + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/team" + relationships: + $ref: "#/components/schemas/teamRelationships" + type: + type: "string" + type: "object" + required: true + responses: + 201: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/teamResponse" + description: "Created" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Create a New Team" + tags: + - "Team" + x-internal: false + /teams/{id}: + delete: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 204: + content: + application/vnd.api+json: {} + description: "Deleted" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Delete an Existing Team by ID" + tags: + - "Team" + x-internal: false + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/teamResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + summary: "Get a Team by ID" + tags: + - "Team" + x-internal: false + patch: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/team" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/teamRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + required: true + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/team" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/teamRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Update a Team" + tags: + - "Team" + x-internal: false + /templates: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/templateResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Get a Collection of Templates" + tags: + - "Template" + x-internal: false + post: + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/template" + relationships: + $ref: "#/components/schemas/templateRelationships" + type: + type: "string" + type: "object" + required: true + responses: + 201: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/templateResponse" + description: "Created" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Create a New Template" + tags: + - "Template" + x-internal: false + /templates/{id}: + delete: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 204: + content: + application/vnd.api+json: {} + description: "Deleted" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Delete an Existing Template by ID" + tags: + - "Template" + x-internal: false + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/templateResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Get a Template by ID" + tags: + - "Template" + x-internal: false + patch: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/template" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/templateRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + required: true + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/template" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/templateRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Update a Template" + tags: + - "Template" + x-internal: false + /users: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/userResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Get a Collection of Users" + tags: + - "User" + x-internal: false + post: + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/user" + relationships: + $ref: "#/components/schemas/userRelationships" + type: + type: "string" + type: "object" + required: true + responses: + 201: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/userResponse" + description: "Created" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Create a New User" + tags: + - "User" + x-internal: false + /users/{id}: + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/userResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Get a User by ID" + tags: + - "User" + x-internal: false + patch: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/user" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/userRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + required: true + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/user" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/userRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + summary: "Update a User" + tags: + - "User" + x-internal: false + /webhooks: + get: + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/webhookResponse" + type: "array" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Get a Collection of Webhooks" + tags: + - "Webhook" + x-internal: false + post: + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/webhook" + relationships: + $ref: "#/components/schemas/webhookRelationships" + type: + type: "string" + type: "object" + required: true + responses: + 201: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/webhookResponse" + description: "Created" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Create a New Webhook" + tags: + - "Webhook" + x-internal: false + /webhooks/{id}: + delete: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 204: + content: + application/vnd.api+json: {} + description: "Deleted" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Delete an Existing Webhook by ID" + tags: + - "Webhook" + x-internal: false + get: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + $ref: "#/components/schemas/webhookResponse" + description: "OK" + 404: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "Not Found" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Get a Webhook by ID" + tags: + - "Webhook" + x-internal: false + patch: + parameters: + - + in: "path" + name: "id" + required: true + schema: + type: "integer" + requestBody: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/webhook" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/webhookRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + required: true + responses: + 200: + content: + application/vnd.api+json: + schema: + properties: + data: + properties: + attributes: + $ref: "#/components/schemas/webhook" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/webhookRelationships" + type: + type: "string" + required: + - "type" + - "id" + type: "object" + description: "OK" + 422: + content: + application/vnd.api+json: + schema: + properties: + errors: + items: + properties: + detail: + type: "string" + id: + type: "string" + title: + type: "string" + type: "object" + type: "array" + description: "JSON error message" + security: + - + bearerAuth: [] + s2sAuthToken: [] + summary: "Update a Webhook" + tags: + - "Webhook" + x-internal: false + components: + schemas: + account: + description: "A descriptor of a named company used to categorize prospects within an account-based sales approach." + properties: + buyerIntentScore: + description: " \n\nA custom score given to measure the quality of the account." + format: "float" + type: "number" + x-internal: false + companyType: + description: "\n\nA description of the company’s type (e.g. \"Public Company\")." + maxLength: 255 + type: "string" + x-internal: false + createdAt: + description: " \n\nThe date and time the account was created." + format: "date-time" + type: "string" + x-internal: false + custom1: + description: "\n\nThe value of the account’s first custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom2: + description: "\n\nThe value of the account’s second custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom3: + description: "\n\nThe value of the account’s third custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom4: + description: "\n\nThe value of the account’s fourth custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom5: + description: "\n\nThe value of the account’s fifth custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom6: + description: "\n\nThe value of the account’s sixth custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom7: + description: "\n\nThe value of the account’s seventh custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom8: + description: "\n\nThe value of the account’s eight custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom9: + description: "\n\nThe value of the account’s ninth custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom10: + description: "\n\nThe value of the account’s 10th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom11: + description: "\n\nThe value of the account’s 11th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom12: + description: "\n\nThe value of the account’s 12th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom13: + description: "\n\nThe value of the account’s 13th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom14: + description: "\n\nThe value of the account’s 14th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom15: + description: "\n\nThe value of the account’s 15th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom16: + description: "\n\nThe value of the account’s 16th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom17: + description: "\n\nThe value of the account’s 17th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom18: + description: "\n\nThe value of the account’s 18th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom19: + description: "\n\nThe value of the account’s 19th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom20: + description: "\n\nThe value of the account’s 20th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom21: + description: "\n\nThe value of the account’s 21st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom22: + description: "\n\nThe value of the account’s 22nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom23: + description: "\n\nThe value of the account’s 23rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom24: + description: "\n\nThe value of the account’s 24th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom25: + description: "\n\nThe value of the account’s 25th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom26: + description: "\n\nThe value of the account’s 26th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom27: + description: "\n\nThe value of the account’s 27th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom28: + description: "\n\nThe value of the account’s 28th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom29: + description: "\n\nThe value of the account’s 29th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom30: + description: "\n\nThe value of the account’s 30th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom31: + description: "\n\nThe value of the account’s 31st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom32: + description: "\n\nThe value of the account’s 32nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom33: + description: "\n\nThe value of the account’s 33rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom34: + description: "\n\nThe value of the account’s 34th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom35: + description: "\n\nThe value of the account’s 35th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom36: + description: "\n\nThe value of the account's 36th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom37: + description: "\n\nThe value of the account's 37th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom38: + description: "\n\nThe value of the account's 38th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom39: + description: "\n\nThe value of the account's 39th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom40: + description: "\n\nThe value of the account's 40th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom41: + description: "\n\nThe value of the account's 41st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom42: + description: "\n\nThe value of the account's 42nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom43: + description: "\n\nThe value of the account's 43rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom44: + description: "\n\nThe value of the account's 44th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom45: + description: "\n\nThe value of the account's 45th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom46: + description: "\n\nThe value of the account's 46th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom47: + description: "\n\nThe value of the account's 47th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom48: + description: "\n\nThe value of the account's 48th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom49: + description: "\n\nThe value of the account's 49th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom50: + description: "\n\nThe value of the account's 50th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom51: + description: "\n\nThe value of the account's 51st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom52: + description: "\n\nThe value of the account's 52nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom53: + description: "\n\nThe value of the account's 53rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom54: + description: "\n\nThe value of the account's 54th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom55: + description: "\n\nThe value of the account's 55th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom56: + description: "\n\nThe value of the account's 56th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom57: + description: "\n\nThe value of the account's 57th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom58: + description: "\n\nThe value of the account's 58th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom59: + description: "\n\nThe value of the account's 59th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom60: + description: "\n\nThe value of the account's 60th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom61: + description: "\n\nThe value of the account's 61st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom62: + description: "\n\nThe value of the account's 62nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom63: + description: "\n\nThe value of the account's 63rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom64: + description: "\n\nThe value of the account's 64th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom65: + description: "\n\nThe value of the account's 65th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom66: + description: "\n\nThe value of the account's 66th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom67: + description: "\n\nThe value of the account's 67th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom68: + description: "\n\nThe value of the account's 68th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom69: + description: "\n\nThe value of the account's 69th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom70: + description: "\n\nThe value of the account's 70th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom71: + description: "\n\nThe value of the account's 71st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom72: + description: "\n\nThe value of the account's 72nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom73: + description: "\n\nThe value of the account's 73rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom74: + description: "\n\nThe value of the account's 74th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom75: + description: "\n\nThe value of the account's 75th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom76: + description: "\n\nThe value of the account's 76th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom77: + description: "\n\nThe value of the account's 77th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom78: + description: "\n\nThe value of the account's 78th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom79: + description: "\n\nThe value of the account's 79th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom80: + description: "\n\nThe value of the account's 80th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom81: + description: "\n\nThe value of the account's 81st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom82: + description: "\n\nThe value of the account's 82nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom83: + description: "\n\nThe value of the account's 83rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom84: + description: "\n\nThe value of the account's 84th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom85: + description: "\n\nThe value of the account's 85th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom86: + description: "\n\nThe value of the account's 86th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom87: + description: "\n\nThe value of the account's 87th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom88: + description: "\n\nThe value of the account's 88th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom89: + description: "\n\nThe value of the account's 89th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom90: + description: "\n\nThe value of the account's 90th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom91: + description: "\n\nThe value of the account's 91st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom92: + description: "\n\nThe value of the account's 92nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom93: + description: "\n\nThe value of the account's 93rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom94: + description: "\n\nThe value of the account's 94th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom95: + description: "\n\nThe value of the account's 95th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom96: + description: "\n\nThe value of the account's 96th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom97: + description: "\n\nThe value of the account's 97th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom98: + description: "\n\nThe value of the account's 98th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom99: + description: "\n\nThe value of the account's 99th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom100: + description: "\n\nThe value of the account’s 100th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom101: + description: "\n\nThe value of the account’s 101st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom102: + description: "\n\nThe value of the account’s 102nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom103: + description: "\n\nThe value of the account’s 103rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom104: + description: "\n\nThe value of the account’s 104th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom105: + description: "\n\nThe value of the account’s 105th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom106: + description: "\n\nThe value of the account’s 106th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom107: + description: "\n\nThe value of the account’s 107th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom108: + description: "\n\nThe value of the account’s 108th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom109: + description: "\n\nThe value of the account’s 109th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom110: + description: "\n\nThe value of the account’s 110th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom111: + description: "\n\nThe value of the account’s 111th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom112: + description: "\n\nThe value of the account’s 112th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom113: + description: "\n\nThe value of the account’s 113th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom114: + description: "\n\nThe value of the account’s 114th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom115: + description: "\n\nThe value of the account’s 115th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom116: + description: "\n\nThe value of the account’s 116th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom117: + description: "\n\nThe value of the account’s 117th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom118: + description: "\n\nThe value of the account’s 118th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom119: + description: "\n\nThe value of the account’s 119th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom120: + description: "\n\nThe value of the account’s 120th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom121: + description: "\n\nThe value of the account’s 121st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom122: + description: "\n\nThe value of the account’s 122nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom123: + description: "\n\nThe value of the account’s 123rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom124: + description: "\n\nThe value of the account’s 124th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom125: + description: "\n\nThe value of the account’s 125th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom126: + description: "\n\nThe value of the account’s 126th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom127: + description: "\n\nThe value of the account’s 127th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom128: + description: "\n\nThe value of the account’s 128th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom129: + description: "\n\nThe value of the account’s 129th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom130: + description: "\n\nThe value of the account’s 130th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom131: + description: "\n\nThe value of the account’s 131st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom132: + description: "\n\nThe value of the account’s 132nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom133: + description: "\n\nThe value of the account’s 133rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom134: + description: "\n\nThe value of the account’s 134th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom135: + description: "\n\nThe value of the account’s 135th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom136: + description: "\n\nThe value of the account’s 136th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom137: + description: "\n\nThe value of the account’s 137th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom138: + description: "\n\nThe value of the account’s 138th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom139: + description: "\n\nThe value of the account’s 139th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom140: + description: "\n\nThe value of the account’s 140th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom141: + description: "\n\nThe value of the account’s 141st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom142: + description: "\n\nThe value of the account’s 142nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom143: + description: "\n\nThe value of the account’s 143rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom144: + description: "\n\nThe value of the account’s 144th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom145: + description: "\n\nThe value of the account’s 145th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom146: + description: "\n\nThe value of the account’s 146th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom147: + description: "\n\nThe value of the account’s 147th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom148: + description: "\n\nThe value of the account’s 148th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom149: + description: "\n\nThe value of the account’s 149th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom150: + description: "\n\nThe value of the account’s 150th custom field." + maxLength: 32000 + type: "string" + x-internal: false + customId: + description: " \n\nA custom ID for the account, often referencing an ID in an external system." + maxLength: 255 + type: "string" + x-internal: false + description: + description: "\n\nA custom description of the account." + maxLength: 65535 + type: "string" + x-internal: false + domain: + description: " \n\nThe company’s website domain (e.g. \"`www.acme.com`\")." + maxLength: 255 + type: "string" + x-internal: false + externalSource: + description: "\n\nThe source of the resource’s creation (e.g. \"outreach-api\")." + maxLength: 255 + type: "string" + x-internal: false + followers: + description: "\n\nThe number of followers the company has listed on social media." + type: "integer" + x-internal: false + foundedAt: + description: "\n\nThe founding date of the company." + format: "date-time" + type: "string" + x-internal: false + industry: + description: "\n\nA description of the company’s industry (e.g. \"Manufacturing\")." + maxLength: 255 + type: "string" + x-internal: false + linkedInEmployees: + description: "\n\nThe number of employees listed on the company’s LinkedIn URL." + type: "integer" + x-internal: false + linkedInUrl: + description: "\n\nThe company’s LinkedIn URL." + maxLength: 1000 + type: "string" + x-internal: false + locality: + description: "\n\nThe company’s primary geographic region (e.g. \"Eastern USA\")." + maxLength: 255 + type: "string" + x-internal: false + name: + description: " \n\nThe name of the company (e.g. \"Acme Corporation\")." + maxLength: 255 + type: "string" + x-internal: false + named: + description: " \n\nA boolean value determining whether this is a \"named\" account or not. Only named accounts will show up on the collection index." + type: "boolean" + x-internal: false + naturalName: + description: "\n\nThe natural name of the company (e.g. \"Acme\")." + maxLength: 255 + type: "string" + x-internal: false + numberOfEmployees: + description: "\n\nThe number of employees working at the company." + type: "integer" + x-internal: false + sharingTeamId: + description: "\n\nThe ID of the sharing team associated with this object. Access is currently in beta." + maxLength: 255 + type: "string" + x-internal: false + tags: + description: "\n\nA list of tag values associated with the account (e.g. [\"Enterprise\", \"Tier 1\"])." + items: + type: "string" + type: "array" + x-internal: false + touchedAt: + description: " \n\nThe date and time the account was last touched." + format: "date-time" + type: "string" + x-internal: false + updatedAt: + description: " \n\nThe date and time the account was last updated." + format: "date-time" + type: "string" + x-internal: false + websiteUrl: + description: "\n\nThe company’s website URL (e.g. \"`https://www.acme.com/contact`\")." + maxLength: 255 + type: "string" + x-internal: false + type: "object" + x-internal: false + accountRelationships: + properties: + creator: + description: "\n\nThe creator of the account. Relationship creator cannot be used as a filter." + oneOf: + - + description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + owner: + description: "The owner of the account. You can use only the attribute id to filter accounts by owner (e.g. filter[owner][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + prospects: + description: "\n\nThe account's associated prospects. Relationship prospects cannot be used as a filter." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "prospect" + type: "string" + title: "links" + title: "prospect" + type: "array" + x-internal: false + tasks: + description: "\n\nThe associated tasks. Relationship tasks cannot be used as a filter." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "task" + type: "string" + title: "links" + title: "task" + type: "array" + x-internal: false + updater: + description: "\n\nThe most recent updater of the account. Relationship updater cannot be used as a filter." + oneOf: + - + description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + accountResponse: + properties: + attributes: + $ref: "#/components/schemas/account" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/accountRelationships" + type: + type: "string" + type: "object" + x-internal: false + addressRelationships: + type: "object" + attachmentRelationships: + type: "object" + audit: + description: "Events that happen during the day. Things like login, plugin mapping changes, etc." + properties: + eventName: + description: " \n\nName of the event" + type: "string" + x-internal: false + timestamp: + description: " \n\nWhen the event happened" + format: "date-time" + type: "string" + x-internal: false + userEmail: + description: "\n\nEmail of the user who perfomed the action" + format: "email" + type: "string" + x-internal: false + type: "object" + x-internal: false + auditRelationships: + type: "object" + auditResponse: + properties: + attributes: + $ref: "#/components/schemas/audit" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/auditRelationships" + type: + type: "string" + type: "object" + x-internal: false + batchItemRelationships: + type: "object" + batchRelationships: + type: "object" + blockedNumberRelationships: + type: "object" + calendarEventAttendeeRelationships: + properties: + prospect: + description: "" + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "prospect" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "prospect" + type: "string" + title: "links" + title: "prospect" + x-internal: false + user: + description: "" + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + calendarEventRelationships: + properties: + accounts: + description: "\n\n" + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "account" + type: "string" + title: "links" + title: "account" + type: "array" + x-internal: false + booker: + description: "\n\nThe user who booked this event." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + creator: + description: "\n\nThe creator of the event." + oneOf: + - + description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + opportunity: + description: "The opportunity associated with the event." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "opportunity" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "opportunity" + type: "string" + title: "links" + title: "opportunity" + x-internal: false + prospects: + description: "\n\n" + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "prospect" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "prospect" + type: "string" + title: "links" + title: "prospect" + type: "array" + x-internal: false + user: + description: "\n\nThe user associated with the calendar." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + users: + description: "" + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + type: "array" + x-internal: false + type: "object" + calendarRelationships: + properties: + creator: + description: "\n\nThe creator of the calendar." + oneOf: + - + description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + updater: + description: "\n\nThe most recent updater of the calendar." + oneOf: + - + description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + user: + description: "The user associated with the calendar." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + calendarUrlRelationships: + type: "object" + call: + description: "A log of an inbound or outbound call made with a prospect." + properties: + answeredAt: + description: "\n\nThe date and time the call was answered." + format: "date-time" + type: "string" + x-internal: false + completedAt: + description: "\n\nThe date and time the call was completed." + format: "date-time" + type: "string" + x-internal: false + createdAt: + description: " \n\nThe date and time the call was created." + format: "date-time" + type: "string" + x-internal: false + dialedAt: + description: "\n\nThe date and time the call was dialed." + format: "date-time" + type: "string" + x-internal: false + direction: + description: "\n\nThe call direction from the user’s point of view; must be either \"inbound\" or \"outbound\"." + type: "string" + x-internal: false + externalVendor: + description: "\n\nThe voice provider of the call. Can be blank." + maxLength: 255 + type: "string" + x-internal: false + from: + description: " \n\nThe phone number used to place the call." + maxLength: 255 + type: "string" + x-internal: false + note: + description: "\n\nA custom note associated with this call." + maxLength: 65535 + type: "string" + x-internal: false + outcome: + description: " \n\nThe call’s outcome; must be either \"Answered\" or \"Not Answered\"." + maxLength: 255 + type: "string" + x-internal: false + recordingUrl: + description: " \n\nThe URL of the call’s audio recording." + maxLength: 255 + type: "string" + x-internal: false + returnedAt: + description: "\n\nThe date and time the call was returned." + format: "date-time" + type: "string" + x-internal: false + sequenceAction: + description: "\n\nThe action to take on the associated sequence; must be either \"Advance\", \"Finish\", \"Finish - No Reply\", or \"Finish - Replied\"." + maxLength: 255 + type: "string" + x-internal: false + shouldRecordCall: + description: "\n\nIndicated whether or not the call is recorded." + type: "boolean" + x-internal: false + state: + description: " \n\nThe call’s current state." + maxLength: 255 + type: "string" + x-internal: false + stateChangedAt: + description: "\n\nThe date and time the call’s state last changed." + format: "date-time" + type: "string" + x-internal: false + tags: + description: "\n\nA list of tag values associated with the call (e.g. [\"Interested\", \"Meeting Booked\"])." + items: + type: "string" + type: "array" + x-internal: false + to: + description: " \n\nThe phone number that the call was placed to." + maxLength: 255 + type: "string" + x-internal: false + uid: + description: "\n\nThe Outreach voice trace id." + maxLength: 255 + type: "string" + x-internal: false + updatedAt: + description: " \n\nThe date and time the call was last updated." + format: "date-time" + type: "string" + x-internal: false + userCallType: + description: " \n\nThe type of call placed within the Outreach client; must be either \"bridge\" or \"voip\"." + maxLength: 255 + type: "string" + x-internal: false + vendorCallId: + description: "\n\nThe call-id as recoreded by the voice provider. Can be blank." + maxLength: 63 + type: "string" + x-internal: false + voicemailRecordingUrl: + description: "\n\nThe URL of the call’s voicemail audio recording." + maxLength: 1024 + type: "string" + x-internal: false + type: "object" + x-internal: false + callDisposition: + description: "A ready-made collection of call dispositions that help categorize your call logs." + properties: + createdAt: + description: " \n\nThe date and time the call disposition was created." + format: "date-time" + type: "string" + x-internal: false + name: + description: " \n\nThe disposition’s name (e.g. \"Meeting Scheduled\")." + maxLength: 255 + type: "string" + x-internal: false + order: + description: " \n\nThe disposition’s display order within the collection." + type: "integer" + x-internal: false + outcome: + description: " \n\nThe disposition’s call outcome; must be either \"Answered\" or \"Not Answered\"." + maxLength: 255 + type: "string" + x-internal: false + updatedAt: + description: " \n\nThe date and time the call disposition was last updated." + format: "date-time" + type: "string" + x-internal: false + type: "object" + x-internal: false + callDispositionRelationships: + properties: + calls: + description: "\n\nThe calls made with this disposition. Relationship calls cannot be used as a filter." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "call" + type: "string" + title: "links" + title: "call" + type: "array" + x-internal: false + creator: + description: "\n\nThe creator of the call disposition. Relationship creator cannot be used as a filter." + oneOf: + - + description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + callDispositionResponse: + properties: + attributes: + $ref: "#/components/schemas/callDisposition" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/callDispositionRelationships" + type: + type: "string" + type: "object" + x-internal: false + callPurpose: + description: "A ready-made collection of call purposes that help categorize your call logs." + properties: + createdAt: + description: " \n\nThe date and time the call purpose was created." + format: "date-time" + type: "string" + x-internal: false + name: + description: " \n\nThe purpose’s name (e.g. \"Initial Contact\")." + maxLength: 255 + type: "string" + x-internal: false + order: + description: " \n\nThe purpose’s display order within the collection." + type: "integer" + x-internal: false + updatedAt: + description: " \n\nThe date and time the call purpose was last updated." + format: "date-time" + type: "string" + x-internal: false + type: "object" + x-internal: false + callPurposeRelationships: + properties: + calls: + description: "\n\nThe calls made with this purpose. Relationship calls cannot be used as a filter." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "call" + type: "string" + title: "links" + title: "call" + type: "array" + x-internal: false + creator: + description: "\n\nThe creator of the call purpose. Relationship creator cannot be used as a filter." + oneOf: + - + description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + callPurposeResponse: + properties: + attributes: + $ref: "#/components/schemas/callPurpose" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/callPurposeRelationships" + type: + type: "string" + type: "object" + x-internal: false + callRelationships: + properties: + callDisposition: + description: "The associated call disposition. You can use only the attribute id to filter calls by callDisposition (e.g. filter[callDisposition][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "callDisposition" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "callDisposition" + type: "string" + title: "links" + title: "callDisposition" + x-internal: false + callPurpose: + description: "The associated call purpose. You can use only the attribute id to filter calls by callPurpose (e.g. filter[callPurpose][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "callPurpose" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "callPurpose" + type: "string" + title: "links" + title: "callPurpose" + x-internal: false + opportunity: + description: "The associated opportunity. You can use only the attribute id to filter calls by opportunity (e.g. filter[opportunity][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "opportunity" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "opportunity" + type: "string" + title: "links" + title: "opportunity" + x-internal: false + phoneNumber: + description: "The associated phone number of the prospect. You can use only the attribute id to filter calls by phoneNumber (e.g. filter[phoneNumber][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "phoneNumber" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "phoneNumber" + type: "string" + title: "links" + title: "phoneNumber" + x-internal: false + prospect: + description: "The associated prospect. You can use only the attribute id to filter calls by prospect (e.g. filter[prospect][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "prospect" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "prospect" + type: "string" + title: "links" + title: "prospect" + x-internal: false + sequence: + description: "The associated sequence. You can use only the attribute id to filter calls by sequence (e.g. filter[sequence][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "sequence" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "sequence" + type: "string" + title: "links" + title: "sequence" + x-internal: false + sequenceState: + description: "The associated sequence state. You can use only the attribute id to filter calls by sequenceState (e.g. filter[sequenceState][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "sequenceState" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "sequenceState" + type: "string" + title: "links" + title: "sequenceState" + x-internal: false + sequenceStep: + description: "The associated sequence step. You can use only the attribute id to filter calls by sequenceStep (e.g. filter[sequenceStep][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "sequenceStep" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "sequenceStep" + type: "string" + title: "links" + title: "sequenceStep" + x-internal: false + task: + description: "The associated task. You can use only the attribute id to filter calls by task (e.g. filter[task][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "task" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "task" + type: "string" + title: "links" + title: "task" + x-internal: false + user: + description: "The associated user. You can use only the attribute id to filter calls by user (e.g. filter[user][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + callResponse: + properties: + attributes: + $ref: "#/components/schemas/call" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/callRelationships" + type: + type: "string" + type: "object" + x-internal: false + complianceRequest: + description: "A regulatory request to delete or export an individual's PII." + properties: + batchComplianceRequestUuid: + description: "\n\nThe UUID of the batch the compliance request belongs to." + type: "string" + x-internal: false + createdAt: + description: "\n\nThe date and time the compliance request was created." + format: "date-time" + type: "string" + x-internal: false + objectType: + description: "\n\nThe type of record to process, can be 'Prospect' or 'Recipient' for e-mail addresses unassociated with a prospect." + maxLength: 255 + type: "string" + x-internal: false + pii: + description: "\n\nA JSON object of personal information required for processing the compliance request." + type: "object" + x-internal: false + requestObjectId: + description: "\n\nThe identifier for the record processed, for Prospects this is the Prospect ID, for Recipients this is an e-mail address." + maxLength: 255 + type: "string" + x-internal: false + requestType: + description: "\n\nThe type of compliance request (only 'Delete' is supported at this time)." + maxLength: 32 + type: "string" + x-internal: false + requesterId: + description: "\n\nThe ID of the Outreach user who submitted the compliance request." + type: "integer" + x-internal: false + state: + description: " \n\nThe current state of the compliance request, can be 'pending', 'running', 'failed', or 'done'. The states on the higher level abstraction, the batch compliance request, do not map 1:1 to these states. The only states that the batch compliance request will report are either 'pending' or 'done'." + maxLength: 32 + type: "string" + x-internal: false + updatedAt: + description: "\n\nThe date and time at which the compliance request was last updated." + format: "date-time" + type: "string" + x-internal: false + uuid: + description: " \n\nThe UUID of the compliance request." + maxLength: 255 + type: "string" + x-internal: false + type: "object" + x-internal: false + complianceRequestRelationships: + properties: + requester: + description: "\n\nThe Outreach user who submitted the compliance request. Relationship requester cannot be used as a filter." + oneOf: + - + description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + complianceRequestResponse: + properties: + attributes: + $ref: "#/components/schemas/complianceRequest" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/complianceRequestRelationships" + type: + type: "string" + type: "object" + x-internal: false + contentCategory: + description: "Content can be grouped into content categories to help discoverability." + properties: + allowSequences: + description: "\n\nCan this category be used to group sequences?" + type: "boolean" + x-internal: false + allowSnippets: + description: "\n\nCan this category be used to group snippets?" + type: "boolean" + x-internal: false + allowTemplates: + description: "\n\nCan this category be used to group templates?" + type: "boolean" + x-internal: false + color: + description: "\n\nColor of the content category to be used as a background" + maxLength: 255 + type: "string" + x-internal: false + createdAt: + description: " \n\nThe date and time the content category was created." + format: "date-time" + type: "string" + x-internal: false + name: + description: " \n\nThe name of the content category." + maxLength: 255 + type: "string" + x-internal: false + updatedAt: + description: " \n\nThe date and time the content category was last updated." + format: "date-time" + type: "string" + x-internal: false + type: "object" + x-internal: false + contentCategoryMembership: + description: "A record that maps content (e.g. a sequence) to a content category." + properties: + createdAt: + description: " \n\nThe date and time the content category membership was created." + format: "date-time" + type: "string" + x-internal: false + updatedAt: + description: " \n\nThe date and time the content category membership was last updated." + format: "date-time" + type: "string" + x-internal: false + type: "object" + x-internal: false + contentCategoryMembershipRelationships: + properties: + content: + description: "The record in the content category. Must be a sequence, snippet, or template. Relationship content cannot be used as a filter." + oneOf: + - + description: "Leverage emailing within Sequences to engage each individual persona more effectively, and queue up the right actions at the right time." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "snippet" + - "template" + - "sequence" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "snippet" + - "template" + - "sequence" + type: "string" + title: "links" + title: "sequence" + - + description: "A piece of an email to be reused in multiple messages." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "snippet" + - "template" + - "sequence" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "snippet" + - "template" + - "sequence" + type: "string" + title: "links" + title: "snippet" + - + description: "A reusable template for building emails." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "snippet" + - "template" + - "sequence" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "snippet" + - "template" + - "sequence" + type: "string" + title: "links" + title: "template" + x-internal: false + contentCategory: + description: "The content category the record is part of. You can use only the attribute id to filter contentCategoryMemberships by contentCategory (e.g. filter[contentCategory][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "contentCategory" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "contentCategory" + type: "string" + title: "links" + title: "contentCategory" + x-internal: false + creator: + description: "\n\nThe creator of the content category membership. Relationship creator cannot be used as a filter." + oneOf: + - + description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + contentCategoryMembershipResponse: + properties: + attributes: + $ref: "#/components/schemas/contentCategoryMembership" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/contentCategoryMembershipRelationships" + type: + type: "string" + type: "object" + x-internal: false + contentCategoryOwnership: + description: "A record that maps content categories to owners. This allows categories to be linked to one or more teams." + properties: + createdAt: + description: " \n\nThe date and time the content category ownership was created." + format: "date-time" + type: "string" + x-internal: false + updatedAt: + description: " \n\nThe date and time the content category ownership was last updated." + format: "date-time" + type: "string" + x-internal: false + type: "object" + x-internal: false + contentCategoryOwnershipRelationships: + properties: + contentCategory: + description: "The content category the owner is linked to. You can use only the attribute id to filter contentCategoryOwnerships by contentCategory (e.g. filter[contentCategory][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "contentCategory" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "contentCategory" + type: "string" + title: "links" + title: "contentCategory" + x-internal: false + creator: + description: "\n\nThe creator of the content category ownership. Relationship creator cannot be used as a filter." + oneOf: + - + description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + owner: + description: "The record the content category is tied to. Must a team for now. Relationship owner cannot be used as a filter." + oneOf: + - + description: "A descriptor of a group of users." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "team" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "team" + type: "string" + title: "links" + title: "team" + x-internal: false + type: "object" + contentCategoryOwnershipResponse: + properties: + attributes: + $ref: "#/components/schemas/contentCategoryOwnership" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/contentCategoryOwnershipRelationships" + type: + type: "string" + type: "object" + x-internal: false + contentCategoryRelationships: + properties: + creator: + description: "\n\nThe creator of the content category. Relationship creator cannot be used as a filter." + oneOf: + - + description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + contentCategoryResponse: + properties: + attributes: + $ref: "#/components/schemas/contentCategory" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/contentCategoryRelationships" + type: + type: "string" + type: "object" + x-internal: false + customDuty: + description: "A freeform user-specified role or job duty played by a user in their organization." + properties: + dutyType: + description: "\n\nThe polymorphic type of the duty (not the Ruby type, the duty type)." + type: "string" + x-internal: false + name: + description: "\n\nThe name of the role." + maxLength: 255 + type: "string" + x-internal: false + type: "object" + x-internal: false + customDutyRelationships: + type: "object" + customDutyResponse: + properties: + attributes: + $ref: "#/components/schemas/customDuty" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/customDutyRelationships" + type: + type: "string" + type: "object" + x-internal: false + customValidationRelationships: + properties: + creator: + description: "\n\nThe creator of the custom validation." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + updater: + description: "\n\nThe most recent updater of the custom validation." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + duty: + description: "An Outreach-suggested role or job duty played by a user in their organization." + properties: + dutyType: + description: "\n\nThe polymorphic type of the duty (not the Ruby type, the duty type)." + type: "string" + x-internal: false + symbolicName: + description: "\n\nThe string constant used to refer to this duty which can be internationalized on the client." + maxLength: 255 + type: "string" + x-internal: false + type: "object" + x-internal: false + dutyRelationships: + type: "object" + dutyResponse: + properties: + attributes: + $ref: "#/components/schemas/duty" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/dutyRelationships" + type: + type: "string" + type: "object" + x-internal: false + emailAddress: + description: "A prospect's email address" + properties: + createdAt: + description: "\n\nThe date and time the email address was created." + format: "date-time" + type: "string" + x-internal: false + email: + description: " \n\nThe raw email address value" + format: "email" + maxLength: 255 + type: "string" + x-internal: false + emailType: + description: " \n\nType of email address (work or personal)" + maxLength: 255 + type: "string" + x-internal: false + order: + description: " \n\nOrdered position in list of emails" + type: "integer" + x-internal: false + status: + description: " \n\nThe status of the email" + maxLength: 255 + type: "string" + x-internal: false + statusChangedAt: + description: " \n\nTime the status was updated" + format: "date-time" + type: "string" + x-internal: false + unsubscribedAt: + description: " \n\nTime a mailing was unsubscribed using this address" + format: "date-time" + type: "string" + x-internal: false + updatedAt: + description: " \n\nThe date and time the email address was last updated." + format: "date-time" + type: "string" + x-internal: false + type: "object" + x-internal: false + emailAddressRelationships: + properties: + prospect: + description: "The owning prospect You can use only the attribute id to filter emailAddresses by prospect (e.g. filter[prospect][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "prospect" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "prospect" + type: "string" + title: "links" + title: "prospect" + x-internal: false + type: "object" + emailAddressResponse: + properties: + attributes: + $ref: "#/components/schemas/emailAddress" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/emailAddressRelationships" + type: + type: "string" + type: "object" + x-internal: false + event: + description: "Application events, capturing details around the initiator, recipient, etc." + properties: + body: + description: "\n\nThe event body (for external events only)" + type: "string" + x-internal: false + createdAt: + description: " \n\nThe date and time the event was created." + format: "date-time" + type: "string" + x-internal: false + eventAt: + description: " \n\nThe date and time the event occurred." + format: "date-time" + type: "string" + x-internal: false + externalUrl: + description: "\n\nThe external URL associated with this event (for external events only)" + type: "string" + x-internal: false + name: + description: "\n\nThe name of the event that took place (e.g. \"mailbox_created\")." + maxLength: 255 + type: "string" + x-internal: false + payload: + description: "\n\nThe transmitted data for the event (cannot be updated once an event has been created)" + type: "object" + x-internal: false + requestCity: + description: "\n\nThe city where the request that created the event was made." + maxLength: 255 + type: "string" + x-internal: false + requestDevice: + description: "\n\nThe type of device on which the request that created the event was made." + maxLength: 255 + type: "string" + x-internal: false + requestHost: + description: "\n\nName of the host from which the request was made." + maxLength: 255 + type: "string" + x-internal: false + requestProxied: + description: "\n\nA boolean value whether the request was proxied. For example, when true the request city refers to the location of the email server and not the prospect." + type: "boolean" + x-internal: false + requestRegion: + description: "\n\nName of the region from which the request was made." + maxLength: 255 + type: "string" + x-internal: false + type: "object" + x-internal: false + eventRelationships: + properties: + account: + description: "The account associated with this event. You can use only the attribute id to filter events by account (e.g. filter[account][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "account" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "account" + type: "string" + title: "links" + title: "account" + x-internal: false + call: + description: "The call associated with this event. You can use only the attribute id to filter events by call (e.g. filter[call][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "call" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "call" + type: "string" + title: "links" + title: "call" + x-internal: false + mailing: + description: "The mailing associated with this event. You can use only the attribute id to filter events by mailing (e.g. filter[mailing][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "mailing" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "mailing" + type: "string" + title: "links" + title: "mailing" + x-internal: false + opportunity: + description: "The opportunity associated with this event. You can use only the attribute id to filter events by opportunity (e.g. filter[opportunity][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "opportunity" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "opportunity" + type: "string" + title: "links" + title: "opportunity" + x-internal: false + prospect: + description: "The prospect associated with this event. You can use only the attribute id to filter events by prospect (e.g. filter[prospect][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "prospect" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "prospect" + type: "string" + title: "links" + title: "prospect" + x-internal: false + task: + description: "The task associated with this event. You can use only the attribute id to filter events by task (e.g. filter[task][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "task" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "task" + type: "string" + title: "links" + title: "task" + x-internal: false + user: + description: "The user associated with this event. You can use only the attribute id to filter events by user (e.g. filter[user][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + eventResponse: + properties: + attributes: + $ref: "#/components/schemas/event" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/eventRelationships" + type: + type: "string" + type: "object" + x-internal: false + experimentRelationships: + properties: + creator: + description: "\n\nThe creator of the experiment." + oneOf: + - + description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + owner: + description: "The user who owns the experiment." + oneOf: + - + description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + sequenceA: + description: "The \"target\" sequence, Sequence A, of this experiment. When the experiment is enabled, this sequence will be probabilistically replaced with the \"alternate\" sequence, Sequence B, based on the percentage attribute." + oneOf: + - + description: "Leverage emailing within Sequences to engage each individual persona more effectively, and queue up the right actions at the right time." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "sequence" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "sequence" + type: "string" + title: "links" + title: "sequence" + x-internal: false + sequenceB: + description: "The \"alternate\" sequence of this experiment." + oneOf: + - + description: "Leverage emailing within Sequences to engage each individual persona more effectively, and queue up the right actions at the right time." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "sequence" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "sequence" + type: "string" + title: "links" + title: "sequence" + x-internal: false + type: "object" + exportRelationships: + properties: + creator: + description: "\n\n" + oneOf: + - + description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + favorite: + description: "A record (Prospect, Account, Sequence, etc.) favorited by a particular user." + properties: + createdAt: + description: " \n\nThe date and time the favorite was created." + format: "date-time" + type: "string" + x-internal: false + targetType: + description: " \n\nThe type of record that was favorited." + maxLength: 255 + type: "string" + x-internal: false + updatedAt: + description: " \n\nThe date and time the favorite was last updated." + format: "date-time" + type: "string" + x-internal: false + type: "object" + x-internal: false + favoriteRelationships: + properties: + creator: + description: "\n\nThe user who created the favorite. Relationship creator cannot be used as a filter." + oneOf: + - + description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + user: + description: "The user who's favorite this is. You can use only the attribute id to filter favorites by user (e.g. filter[user][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + favoriteResponse: + properties: + attributes: + $ref: "#/components/schemas/favorite" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/favoriteRelationships" + type: + type: "string" + type: "object" + x-internal: false + featureFlagParticipationRelationships: + type: "object" + featureFlagRelationships: + type: "object" + gmailMessageMetadatumRelationships: + properties: + mailings: + description: "" + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "mailing" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "mailing" + type: "string" + title: "links" + title: "mailing" + type: "array" + x-internal: false + type: "object" + importRelationships: + properties: + creator: + description: "\n\n" + oneOf: + - + description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + inboxSettingRelationships: + properties: + user: + description: "The associated user to whom this settings belong." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + jobRoleRelationships: + type: "object" + mailAlias: + description: "Alternative email name for a mailbox." + properties: + canSend: + description: "\n\nCan this alias send email." + type: "boolean" + x-internal: false + createdAt: + description: " \n\nThe date the alias was created." + format: "date-time" + type: "string" + x-internal: false + email: + description: "\n\nThe email alias." + maxLength: 255 + type: "string" + x-internal: false + emailHash: + description: "\n\nHashed email address of the alias." + maxLength: 255 + type: "string" + x-internal: false + updatedAt: + description: " \n\nThe date the alias was last updated." + format: "date-time" + type: "string" + x-internal: false + type: "object" + x-internal: false + mailAliasRelationships: + properties: + mailbox: + description: "The parent mailbox for this alias. You can use only the attribute id to filter mailAliases by mailbox (e.g. filter[mailbox][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "mailbox" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "mailbox" + type: "string" + title: "links" + title: "mailbox" + x-internal: false + type: "object" + mailAliasResponse: + properties: + attributes: + $ref: "#/components/schemas/mailAlias" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/mailAliasRelationships" + type: + type: "string" + type: "object" + x-internal: false + mailbox: + description: "A representation of an email mailbox, used within the application for sending and syncing emails." + properties: + authId: + description: "\n\nThe auth id associated with the mailbox." + type: "integer" + x-internal: false + createdAt: + description: " \n\nThe date and time the mailbox was created." + format: "date-time" + type: "string" + x-internal: false + editable: + description: "\n\nA boolean value to indicate if the user has the permission to edit mailbox fields." + type: "boolean" + x-internal: false + email: + description: " \n\nThe email address of the mailbox." + maxLength: 255 + type: "string" + x-internal: false + emailHash: + description: "\n\nHashed email address of the mailbox." + maxLength: 255 + type: "string" + x-internal: false + emailProvider: + description: "\n\nThe mail service provider. While not a required field, it is strongly recommended to use one of 'exchange_online', 'exchange_server', 'gmail', 'gmail_api', 'google_oauth2', 'intermedia', 'office365_oauth2', 'microsoft_hma_oauth2', 'office_365', 'rackspace'. If no value is provided, send and sync will make assumptions based on the ews, imap, and smtp values provided." + maxLength: 255 + type: "string" + x-internal: false + emailSignature: + description: "\n\nThe default signature, in HTML, to be appended to sent email messages." + maxLength: 65535 + type: "string" + x-internal: false + ewsEndpoint: + description: "\n\nThe url of the Exchange Web Service." + maxLength: 255 + type: "string" + x-internal: false + ewsSslVerifyMode: + description: "\n\nThe SSL verify mode, represented as an integer, the EWS connection will used. (verify none=0, verify peer=1, verify client once=4, verify fail if no peer cert=2)" + type: "integer" + x-internal: false + exchangeVersion: + description: "\n\nThe version of Exchange. Must be one of 'Exchange2007', 'Exchange2007_SP1', 'Exchange2010', 'Exchange2010_SP1', 'Exchange2010_SP2', 'Exchange2013', 'Exchange2013_SP1'." + maxLength: 255 + type: "string" + x-internal: false + imapHost: + description: "\n\nThe address of the IMAP host, used for syncing (e.g. 'imap.gmail.com')." + maxLength: 255 + type: "string" + x-internal: false + imapPort: + description: "\n\nThe port number the IMAP server is using (e.g. '993')." + type: "integer" + x-internal: false + imapSsl: + description: "\n\nA boolean value whether the IMAP connection will use SSL." + type: "boolean" + x-internal: false + maxEmailsPerDay: + description: "\n\nThe maximum number of in/out emails per day." + type: "integer" + x-internal: false + maxMailingsPerDay: + description: "\n\nThe maximum number of emails the application can send in a day from this mailbox. Recommended value is 500." + type: "integer" + x-internal: false + maxMailingsPerWeek: + description: "\n\nThe maximum number of emails the application can send within a week from this mailbox. Recommended value is 5000." + type: "integer" + x-internal: false + optOutMessage: + description: "\n\nThe message displayed on the unsubscribe confirmation page, seen after clicking the unsubscribe link in the email (e.g. \"To unsubscribe, click the button below.\")." + maxLength: 512 + type: "string" + x-internal: false + optOutSignature: + description: "\n\nThe message below the signature, in HTML, when the sequence requires an unsubscribe link (e.g. \"If you'd like me to stop sending you emails, please `click here`\")." + maxLength: 512 + type: "string" + x-internal: false + password: + description: "\n\nThe password of the mailbox. This attribute can be used to set the password, but is not available for read." + maxLength: 65535 + type: "string" + x-internal: false + prospectEmailExclusions: + description: "\n\nA list (provided as a string, newline-delimited) of email address patterns to be excluded from syncing (e.g. \"`*@outreach.io\ndaniel@example.com`\")." + maxLength: 65535 + type: "string" + x-internal: false + providerId: + description: "\n\nThe id of the provider associated with this calendar." + type: "integer" + x-internal: false + providerType: + description: "\n\nEmail provider type." + maxLength: 255 + type: "string" + x-internal: false + sendDisabled: + description: "\n\nA boolean value whether sending is disabled from this mailbox." + type: "boolean" + x-internal: false + sendErroredAt: + description: "\n\nThe date and time the most recent send error occurred." + format: "date-time" + type: "string" + x-internal: false + sendMaxRetries: + description: "\n\nThe maximum number of times to auto-retry a delivery when it fails." + type: "integer" + x-internal: false + sendMethod: + description: "\n\nThe method used for sending email. Must be either 'ews', 'sendgrid', or 'smtp'." + maxLength: 255 + type: "string" + x-internal: false + sendPeriod: + description: "\n\nThe amount of time in seconds that the number of sendThreshold emails can be sent. Recommended value is two deliveries per minute (sendPeriod is 60)." + type: "integer" + x-internal: false + sendRequiresSync: + description: "\n\nA boolean value whether the mailbox is required to be recently synced before sending." + type: "boolean" + x-internal: false + sendSuccessAt: + description: "\n\nThe date and time the most recent successful email send occurred." + format: "date-time" + type: "string" + x-internal: false + sendThreshold: + description: "\n\nThe maximum number of email sends per the sendPeriod amount of time. Recommended value is two deliveries per minute (sendThreshold is 2)." + type: "integer" + x-internal: false + sendgridApiKey: + description: "\n\nThe api key of the SendGrid account used for sending." + maxLength: 65535 + type: "string" + x-internal: false + sendgridWebhookUrl: + description: "\n\nThe endpoint required within the SendGrid account settings to support bounce and spam-report tracking." + type: "string" + x-internal: false + smtpHost: + description: "\n\nThe address of the SMTP host, used for sending (e.g. 'smtp.gmail.com')." + maxLength: 255 + type: "string" + x-internal: false + smtpPassword: + description: "\n\nThe password for the SMTP account. This value should be left blank unless a separate SMTP account is being used for sending (i.e. not the mailbox's main username/password)." + maxLength: 65535 + type: "string" + x-internal: false + smtpPort: + description: "\n\nThe port number the SMTP server is using (e.g. '587')." + type: "integer" + x-internal: false + smtpSsl: + description: "\n\nA boolean value whether the SMTP connection will use SSL." + type: "boolean" + x-internal: false + smtpUsername: + description: "\n\nThe username for the SMTP account. This value should be left blank unless a separate SMTP account is being used for sending (i.e. not the mailbox's main username/password)." + maxLength: 255 + type: "string" + x-internal: false + syncActiveFrequency: + description: "\n\nThe amount of time in seconds between syncing when the user is actively using the application." + type: "integer" + x-internal: false + syncDisabled: + description: "\n\nA boolean value whether syncing is disabled from this mailbox." + type: "boolean" + x-internal: false + syncErroredAt: + description: "\n\nThe date and time the most recent sync error occurred." + format: "date-time" + type: "string" + x-internal: false + syncFinishedAt: + description: "\n\nThe date and time the most recent sync finished." + format: "date-time" + type: "string" + x-internal: false + syncMethod: + description: "\n\nThe method used for syncing email. Must be either 'ews', 'gmail_api', or 'imap'." + maxLength: 255 + type: "string" + x-internal: false + syncOutreachFolder: + description: "\n\nA boolean value whether the folder for syncing is named 'Outreach' instead of 'Inbox'. Only available for Exchange version 'Exchange2007_SP1'." + type: "boolean" + x-internal: false + syncPassiveFrequency: + description: "\n\nThe amount of time in seconds between syncing when the user is not actively using the application." + type: "integer" + x-internal: false + syncSuccessAt: + description: "\n\nThe date and time the most recent successful email sync occurred." + format: "date-time" + type: "string" + x-internal: false + updatedAt: + description: " \n\nThe date and time the mailbox was last updated." + format: "date-time" + type: "string" + x-internal: false + userId: + description: " \n\nThe id of the user associated with this mailbox." + type: "integer" + x-internal: false + username: + description: "\n\nThe username of the email account. While not a required field, a username is necessary for most email providers outside of OAuth. This value is normally the same as the email address." + maxLength: 255 + type: "string" + x-internal: false + validateSend: + description: "\n\nIf this is set to true then the record will only save successfully if the mailbox is properly configured to send emails." + type: "boolean" + x-internal: false + validateSync: + description: "\n\nIf this is set to true then the record will only save successfully if the mailbox is properly configured to sync emails." + type: "boolean" + x-internal: false + type: "object" + x-internal: false + mailboxContactRelationships: + properties: + mailbox: + description: "The mailbox associated with this contact." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "mailbox" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "mailbox" + type: "string" + title: "links" + title: "mailbox" + x-internal: false + type: "object" + mailboxRelationships: + properties: + creator: + description: "\n\nThe creator of the mailbox. Relationship creator cannot be used as a filter." + oneOf: + - + description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + mailAliases: + description: "\n\nThe email aliases associated with this mailbox Relationship mailAliases cannot be used as a filter." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "mailAlias" + type: "string" + title: "links" + title: "mailAlias" + type: "array" + x-internal: false + mailings: + description: "\n\nThe mailings sent via this mailbox. Relationship mailings cannot be used as a filter." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "mailing" + type: "string" + title: "links" + title: "mailing" + type: "array" + x-internal: false + updater: + description: "\n\nThe most recent updater of the mailbox. Relationship updater cannot be used as a filter." + oneOf: + - + description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + user: + description: "The user owning this mailbox. You can use only the attribute id to filter mailboxes by user (e.g. filter[user][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + mailboxResponse: + properties: + attributes: + $ref: "#/components/schemas/mailbox" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/mailboxRelationships" + type: + type: "string" + type: "object" + x-internal: false + mailing: + description: "A representation of a platform-related email." + properties: + bodyHtml: + description: "\n\nThe mailing's custom email body, represented in HTML. If provided this field will override any associated template." + type: "string" + x-internal: false + bodyText: + description: "\n\nThe plain-text representation of the 'bodyHTML' field." + type: "string" + x-internal: false + bouncedAt: + description: " \n\nThe date and time the email was bounced." + format: "date-time" + type: "string" + x-internal: false + clickCount: + description: "\n\nThe total number of times links within the email were clicked (if the message is tracking links)." + type: "integer" + x-internal: false + clickedAt: + description: " \n\nThe most recent date and time a link was clicked (if the message is tracking links)." + format: "date-time" + type: "string" + x-internal: false + createdAt: + description: " \n\nThe date and time the mailing was created." + format: "date-time" + type: "string" + x-internal: false + deliveredAt: + description: " \n\nThe date and time the email was delivered." + format: "date-time" + type: "string" + x-internal: false + errorBacktrace: + description: "\n\nTechnical details explaining the mailing's error." + maxLength: 65535 + type: "string" + x-internal: false + errorReason: + description: "\n\nA summary explaining the mailing's error." + maxLength: 255 + type: "string" + x-internal: false + followUpTaskScheduledAt: + description: "\n\nThe date and time of when a follow-up task should be due for this mailing." + format: "date-time" + type: "string" + x-internal: false + followUpTaskType: + description: "\n\nThe type of follow-up task to create. Possible values are 'follow_up' or 'no_reply'." + maxLength: 255 + type: "string" + x-internal: false + mailboxAddress: + description: "\n\nThe email address the mailing was sent from." + type: "string" + x-internal: false + mailingType: + description: " \n\nA description of the type of the emailing (e.g. \"sequence\", \"single\", \"campaign\")." + maxLength: 255 + type: "string" + x-internal: false + markedAsSpamAt: + description: "\n\nThe date and time the email was marked as spam." + format: "date-time" + type: "string" + x-internal: false + messageId: + description: " \n\nThe MIME content Message-ID of the delivered message." + maxLength: 255 + type: "string" + x-internal: false + notifyThreadCondition: + description: "\n\nThe condition of when to bump this mailing to the top of the user's inbox. Possible values are 'always' or 'no_reply'." + maxLength: 255 + type: "string" + x-internal: false + notifyThreadScheduledAt: + description: " \n\nThe date and time of when this mailing should be bumped to the top of the user's inbox." + format: "date-time" + type: "string" + x-internal: false + notifyThreadStatus: + description: " \n\nThe status of the bump. Possible values are 'pending', 'sent' or 'skipped'." + maxLength: 255 + type: "string" + x-internal: false + openCount: + description: "\n\nThe total number of times the email was opened (if the message is tracking opens)." + type: "integer" + x-internal: false + openedAt: + description: " \n\nThe most recent date and time the email was opened (if the message is tracking opens)." + format: "date-time" + type: "string" + x-internal: false + overrideSafetySettings: + description: "\n\nA boolean value whether users can override submission if template variables have not all been replaced." + type: "boolean" + x-internal: false + references: + description: "\n\nA list of references for the mailing taken from the email header." + items: + type: "string" + type: "array" + x-internal: false + repliedAt: + description: " \n\nThe date and time the email was replied to." + format: "date-time" + type: "string" + x-internal: false + retryAt: + description: " \n\nThe date and time the email will rety to send." + format: "date-time" + type: "string" + x-internal: false + retryCount: + description: "\n\nThe number of times the email has been retried to send." + type: "integer" + x-internal: false + retryInterval: + description: "\n\nThe amount of time in seconds between retry attempts." + type: "integer" + x-internal: false + scheduledAt: + description: " \n\nThe date and time the email is scheduled to send." + format: "date-time" + type: "string" + x-internal: false + state: + description: " \n\nThe current state of the mailing. Can be 'bounced', 'delivered', 'delivering', 'drafted', 'failed', 'opened', 'placeholder', 'queued', 'replied', or 'scheduled'." + maxLength: 255 + type: "string" + x-internal: false + stateChangedAt: + description: " \n\nThe date and time the state last changed." + format: "date-time" + type: "string" + x-internal: false + subject: + description: "\n\nThe subject line of the email." + type: "string" + x-internal: false + trackLinks: + description: "\n\nA boolean value whether the mailing is tracking link clicks." + type: "boolean" + x-internal: false + trackOpens: + description: "\n\nA boolean value whether the mailing is tracking email opens." + type: "boolean" + x-internal: false + unsubscribedAt: + description: " \n\nThe date and time the recepient unsubscribed from the mailing's sequence." + format: "date-time" + type: "string" + x-internal: false + updatedAt: + description: " \n\nThe date and time the mailing was last updated." + format: "date-time" + type: "string" + x-internal: false + type: "object" + x-internal: false + mailingRelationships: + properties: + followUpSequence: + description: "\n\nThe followup sequence associated with this mailing. You can use only the attribute id to filter mailings by followUpSequence (e.g. filter[followUpSequence][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "sequence" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "sequence" + type: "string" + title: "links" + title: "sequence" + x-internal: false + mailbox: + description: "The mailbox associated with this mailing. You can use only the attribute id to filter mailings by mailbox (e.g. filter[mailbox][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "mailbox" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "mailbox" + type: "string" + title: "links" + title: "mailbox" + x-internal: false + opportunity: + description: "\n\nThe associated opportunity. You can use only the attribute id to filter mailings by opportunity (e.g. filter[opportunity][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "opportunity" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "opportunity" + type: "string" + title: "links" + title: "opportunity" + x-internal: false + prospect: + description: "The prospect associated with this mailing. You can use only the attribute id to filter mailings by prospect (e.g. filter[prospect][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "prospect" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "prospect" + type: "string" + title: "links" + title: "prospect" + x-internal: false + recipients: + description: "Recipients of the mailing. Relationship recipients cannot be used as a filter." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "recipient" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "recipient" + type: "string" + title: "links" + title: "recipient" + type: "array" + x-internal: false + sequence: + description: "\n\nThe associated sequence. You can use only the attribute id to filter mailings by sequence (e.g. filter[sequence][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "sequence" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "sequence" + type: "string" + title: "links" + title: "sequence" + x-internal: false + sequenceState: + description: "\n\nThe associated sequence state. You can use only the attribute id to filter mailings by sequenceState (e.g. filter[sequenceState][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "sequenceState" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "sequenceState" + type: "string" + title: "links" + title: "sequenceState" + x-internal: false + sequenceStep: + description: "\n\nThe associated sequence step. You can use only the attribute id to filter mailings by sequenceStep (e.g. filter[sequenceStep][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "sequenceStep" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "sequenceStep" + type: "string" + title: "links" + title: "sequenceStep" + x-internal: false + task: + description: "\n\nThe task this mailing will or did complete upon sending. You can use only the attribute id to filter mailings by task (e.g. filter[task][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "task" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "task" + type: "string" + title: "links" + title: "task" + x-internal: false + tasks: + description: "\n\nAll tasks associated with this mailing, such as a follow-up task. Relationship tasks cannot be used as a filter." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "task" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "task" + type: "string" + title: "links" + title: "task" + type: "array" + x-internal: false + template: + description: "The template associated with this mailing. You can use only the attribute id to filter mailings by template (e.g. filter[template][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "template" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "template" + type: "string" + title: "links" + title: "template" + x-internal: false + user: + description: "\n\nThe user associated with this mailing. You can use only the attribute id to filter mailings by user (e.g. filter[user][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + mailingResponse: + properties: + attributes: + $ref: "#/components/schemas/mailing" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/mailingRelationships" + type: + type: "string" + type: "object" + x-internal: false + meetingFieldRelationships: + type: "object" + meetingRelationships: + type: "object" + meetingTypeRelationships: + properties: + creator: + description: "\n\nThe creator of the meeting type." + oneOf: + - + description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + owner: + description: "The user who owns this meeting type." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + team: + description: "" + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "team" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "team" + type: "string" + title: "links" + title: "team" + x-internal: false + type: "object" + modelSchemaVersionRelationships: + type: "object" + noteRelationships: + type: "object" + opportunity: + description: "An opportunity for a sale or pending deal. Requires the Opportunities SKU to be enabled in order to have access. Please contact support for more assistance." + properties: + amount: + description: "\n\nThe amount the opportunity is worth." + type: "integer" + x-internal: false + closeDate: + description: "\n\nThe date the opportunity is expected to close." + format: "date-time" + type: "string" + x-internal: false + createdAt: + description: " \n\nThe date the opportunity was created." + format: "date-time" + type: "string" + x-internal: false + currencyType: + description: "\n\nThe ISO code of the currency this opportunity is in." + maxLength: 255 + type: "string" + x-internal: false + custom1: + description: "\n\nThe value of the opportunity's first custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom2: + description: "\n\nThe value of the opportunity's second custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom3: + description: "\n\nThe value of the opportunity's third custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom4: + description: "\n\nThe value of the opportunity's fourth custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom5: + description: "\n\nThe value of the opportunity's fifth custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom6: + description: "\n\nThe value of the opportunity's sixth custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom7: + description: "\n\nThe value of the opportunity's seventh custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom8: + description: "\n\nThe value of the opportunity's eighth custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom9: + description: "\n\nThe value of the opportunity's ninth custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom10: + description: "\n\nThe value of the opportunity's 10th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom11: + description: "\n\nThe value of the opportunity's 11th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom12: + description: "\n\nThe value of the opportunity's 12th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom13: + description: "\n\nThe value of the opportunity's 13th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom14: + description: "\n\nThe value of the opportunity's 14th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom15: + description: "\n\nThe value of the opportunity's 15th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom16: + description: "\n\nThe value of the opportunity's 16th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom17: + description: "\n\nThe value of the opportunity's 17th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom18: + description: "\n\nThe value of the opportunity's 18th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom19: + description: "\n\nThe value of the opportunity's 19th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom20: + description: "\n\nThe value of the opportunity's 20th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom21: + description: "\n\nThe value of the opportunity's 21st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom22: + description: "\n\nThe value of the opportunity's 22nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom23: + description: "\n\nThe value of the opportunity's 23rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom24: + description: "\n\nThe value of the opportunity's 24th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom25: + description: "\n\nThe value of the opportunity's 25th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom26: + description: "\n\nThe value of the opportunity's 26th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom27: + description: "\n\nThe value of the opportunity's 27th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom28: + description: "\n\nThe value of the opportunity's 28th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom29: + description: "\n\nThe value of the opportunity's 29th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom30: + description: "\n\nThe value of the opportunity's 30th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom31: + description: "\n\nThe value of the opportunity's 31st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom32: + description: "\n\nThe value of the opportunity's 32nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom33: + description: "\n\nThe value of the opportunity's 33rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom34: + description: "\n\nThe value of the opportunity's 34th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom35: + description: "\n\nThe value of the opportunity's 35th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom36: + description: "\n\nThe value of the opportunity's 36th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom37: + description: "\n\nThe value of the opportunity's 37th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom38: + description: "\n\nThe value of the opportunity's 38th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom39: + description: "\n\nThe value of the opportunity's 39th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom40: + description: "\n\nThe value of the opportunity's 40th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom41: + description: "\n\nThe value of the opportunity's 41st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom42: + description: "\n\nThe value of the opportunity's 42nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom43: + description: "\n\nThe value of the opportunity's 43rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom44: + description: "\n\nThe value of the opportunity's 44th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom45: + description: "\n\nThe value of the opportunity's 45th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom46: + description: "\n\nThe value of the opportunity's 46th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom47: + description: "\n\nThe value of the opportunity's 47th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom48: + description: "\n\nThe value of the opportunity's 48th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom49: + description: "\n\nThe value of the opportunity's 49th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom50: + description: "\n\nThe value of the opportunity's 50th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom51: + description: "\n\nThe value of the opportunity's 51st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom52: + description: "\n\nThe value of the opportunity's 52nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom53: + description: "\n\nThe value of the opportunity's 53rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom54: + description: "\n\nThe value of the opportunity's 54th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom55: + description: "\n\nThe value of the opportunity's 55th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom56: + description: "\n\nThe value of the opportunity's 56th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom57: + description: "\n\nThe value of the opportunity's 57th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom58: + description: "\n\nThe value of the opportunity's 58th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom59: + description: "\n\nThe value of the opportunity's 59th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom60: + description: "\n\nThe value of the opportunity's 60th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom61: + description: "\n\nThe value of the opportunity's 61st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom62: + description: "\n\nThe value of the opportunity's 62nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom63: + description: "\n\nThe value of the opportunity's 63rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom64: + description: "\n\nThe value of the opportunity's 64th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom65: + description: "\n\nThe value of the opportunity's 65th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom66: + description: "\n\nThe value of the opportunity's 66th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom67: + description: "\n\nThe value of the opportunity's 67th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom68: + description: "\n\nThe value of the opportunity's 68th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom69: + description: "\n\nThe value of the opportunity's 69th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom70: + description: "\n\nThe value of the opportunity's 70th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom71: + description: "\n\nThe value of the opportunity's 71st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom72: + description: "\n\nThe value of the opportunity's 72nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom73: + description: "\n\nThe value of the opportunity's 73rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom74: + description: "\n\nThe value of the opportunity's 74th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom75: + description: "\n\nThe value of the opportunity's 75th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom76: + description: "\n\nThe value of the opportunity's 76th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom77: + description: "\n\nThe value of the opportunity's 77th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom78: + description: "\n\nThe value of the opportunity's 78th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom79: + description: "\n\nThe value of the opportunity's 79th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom80: + description: "\n\nThe value of the opportunity's 80th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom81: + description: "\n\nThe value of the opportunity's 81st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom82: + description: "\n\nThe value of the opportunity's 82nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom83: + description: "\n\nThe value of the opportunity's 83rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom84: + description: "\n\nThe value of the opportunity's 84th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom85: + description: "\n\nThe value of the opportunity's 85th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom86: + description: "\n\nThe value of the opportunity's 86th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom87: + description: "\n\nThe value of the opportunity's 87th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom88: + description: "\n\nThe value of the opportunity's 88th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom89: + description: "\n\nThe value of the opportunity's 89th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom90: + description: "\n\nThe value of the opportunity's 90th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom91: + description: "\n\nThe value of the opportunity's 91st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom92: + description: "\n\nThe value of the opportunity's 92nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom93: + description: "\n\nThe value of the opportunity's 93rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom94: + description: "\n\nThe value of the opportunity's 94th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom95: + description: "\n\nThe value of the opportunity's 95th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom96: + description: "\n\nThe value of the opportunity's 96th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom97: + description: "\n\nThe value of the opportunity's 97th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom98: + description: "\n\nThe value of the opportunity's 98th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom99: + description: "\n\nThe value of the opportunity's 99th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom100: + description: "\n\nThe value of the opportunity's 100th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom101: + description: "\n\nThe value of the opportunity’s 101st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom102: + description: "\n\nThe value of the opportunity’s 102nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom103: + description: "\n\nThe value of the opportunity’s 103rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom104: + description: "\n\nThe value of the opportunity’s 104th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom105: + description: "\n\nThe value of the opportunity’s 105th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom106: + description: "\n\nThe value of the opportunity’s 106th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom107: + description: "\n\nThe value of the opportunity’s 107th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom108: + description: "\n\nThe value of the opportunity’s 108th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom109: + description: "\n\nThe value of the opportunity’s 109th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom110: + description: "\n\nThe value of the opportunity’s 110th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom111: + description: "\n\nThe value of the opportunity’s 111th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom112: + description: "\n\nThe value of the opportunity’s 112th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom113: + description: "\n\nThe value of the opportunity’s 113th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom114: + description: "\n\nThe value of the opportunity’s 114th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom115: + description: "\n\nThe value of the opportunity’s 115th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom116: + description: "\n\nThe value of the opportunity’s 116th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom117: + description: "\n\nThe value of the opportunity’s 117th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom118: + description: "\n\nThe value of the opportunity’s 118th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom119: + description: "\n\nThe value of the opportunity’s 119th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom120: + description: "\n\nThe value of the opportunity’s 120th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom121: + description: "\n\nThe value of the opportunity’s 121st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom122: + description: "\n\nThe value of the opportunity’s 122nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom123: + description: "\n\nThe value of the opportunity’s 123rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom124: + description: "\n\nThe value of the opportunity’s 124th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom125: + description: "\n\nThe value of the opportunity’s 125th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom126: + description: "\n\nThe value of the opportunity’s 126th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom127: + description: "\n\nThe value of the opportunity’s 127th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom128: + description: "\n\nThe value of the opportunity’s 128th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom129: + description: "\n\nThe value of the opportunity’s 129th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom130: + description: "\n\nThe value of the opportunity’s 130th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom131: + description: "\n\nThe value of the opportunity’s 131st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom132: + description: "\n\nThe value of the opportunity’s 132nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom133: + description: "\n\nThe value of the opportunity’s 133rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom134: + description: "\n\nThe value of the opportunity’s 134th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom135: + description: "\n\nThe value of the opportunity’s 135th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom136: + description: "\n\nThe value of the opportunity’s 136th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom137: + description: "\n\nThe value of the opportunity’s 137th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom138: + description: "\n\nThe value of the opportunity’s 138th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom139: + description: "\n\nThe value of the opportunity’s 139th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom140: + description: "\n\nThe value of the opportunity’s 140th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom141: + description: "\n\nThe value of the opportunity’s 141st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom142: + description: "\n\nThe value of the opportunity’s 142nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom143: + description: "\n\nThe value of the opportunity’s 143rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom144: + description: "\n\nThe value of the opportunity’s 144th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom145: + description: "\n\nThe value of the opportunity’s 145th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom146: + description: "\n\nThe value of the opportunity’s 146th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom147: + description: "\n\nThe value of the opportunity’s 147th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom148: + description: "\n\nThe value of the opportunity’s 148th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom149: + description: "\n\nThe value of the opportunity’s 149th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom150: + description: "\n\nThe value of the opportunity’s 150th custom field." + maxLength: 32000 + type: "string" + x-internal: false + description: + description: "\n\nA description of the opportunity." + maxLength: 65535 + type: "string" + x-internal: false + externalCreatedAt: + description: "\n\nThe date the opportunity was created in the external system." + format: "date-time" + type: "string" + x-internal: false + mapLink: + description: "\n\nA link to the SamePlan MAP (Mutual Action Plan) associated with this opportunity." + maxLength: 255 + type: "string" + x-internal: false + mapNextSteps: + description: "\n\nThe next event in the timeline that has yet to be completed for the SamePlan MAP (Mutual Action Plan)." + maxLength: 255 + type: "string" + x-internal: false + mapStatus: + description: " \n\nThe status of the SamePlan MAP (Mutual Action Plan) based on how well both parties are trending towards the plan." + maxLength: 255 + type: "string" + x-internal: false + name: + description: " \n\nThe name of the opportunity." + maxLength: 255 + type: "string" + x-internal: false + nextStep: + description: "\n\nThe next step to take for the opportunity." + maxLength: 65535 + type: "string" + x-internal: false + opportunityType: + description: "\n\nThe type of opportunity." + maxLength: 255 + type: "string" + x-internal: false + probability: + description: " \n\nThe chances of the opportunity succeeding, represented as a percentage." + type: "integer" + x-internal: false + prospectingRepId: + description: "\n\nThe ID of the sales rep that prospects the opportunity." + maxLength: 255 + type: "string" + x-internal: false + sharingTeamId: + description: "\n\nThe ID of the sharing team associated with this object. Access is currently in beta." + maxLength: 255 + type: "string" + x-internal: false + tags: + description: "\n\nTags associated with the opportunity." + items: + type: "string" + type: "array" + x-internal: false + touchedAt: + description: " \n\nThe last time an event happened for an opportunity." + format: "date-time" + type: "string" + x-internal: false + updatedAt: + description: " \n\nThe date the opportunity was last updated." + format: "date-time" + type: "string" + x-internal: false + type: "object" + x-internal: false + opportunityHealthFactorRelationships: + properties: + opportunity: + description: "The opportunity the health factor apply to." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "opportunity" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "opportunity" + type: "string" + title: "links" + title: "opportunity" + x-internal: false + type: "object" + opportunityProspectRole: + description: "A prospect's role and association with an opportunity" + properties: + createdAt: + description: " \n\nThe date and time the role was created." + format: "date-time" + type: "string" + x-internal: false + primary: + description: "\n\nA boolean value indicating if this prospect is the primary contact within an opportunity." + type: "boolean" + x-internal: false + role: + description: " \n\nA string value representing the role." + maxLength: 255 + type: "string" + x-internal: false + updatedAt: + description: " \n\nThe date and time the role was last updated." + format: "date-time" + type: "string" + x-internal: false + type: "object" + x-internal: false + opportunityProspectRoleRelationships: + properties: + opportunity: + description: "The opportunity associated with the role. You can use only the attribute id to filter opportunityProspectRoles by opportunity (e.g. filter[opportunity][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "opportunity" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "opportunity" + type: "string" + title: "links" + title: "opportunity" + x-internal: false + prospect: + description: "The prospect associated with the role. You can use only the attribute id to filter opportunityProspectRoles by prospect (e.g. filter[prospect][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "prospect" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "prospect" + type: "string" + title: "links" + title: "prospect" + x-internal: false + type: "object" + opportunityProspectRoleResponse: + properties: + attributes: + $ref: "#/components/schemas/opportunityProspectRole" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/opportunityProspectRoleRelationships" + type: + type: "string" + type: "object" + x-internal: false + opportunityRelationships: + properties: + account: + description: "The account the opportunity is for. You can use attributes id and name to filter opportunities by account (e.g. filter[account][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "account" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "account" + type: "string" + title: "links" + title: "account" + x-internal: false + creator: + description: "\n\nThe creator of the opportunity. Relationship creator cannot be used as a filter." + oneOf: + - + description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + opportunityStage: + description: "The current stage of the opportunity. You can use only the attribute id to filter opportunities by stage (e.g. filter[stage][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "opportunityStage" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "opportunityStage" + type: "string" + title: "links" + title: "opportunityStage" + x-internal: false + owner: + description: "The user who owns the opportunity. You can use only the attribute id to filter opportunities by owner (e.g. filter[owner][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + prospects: + description: "\n\nThe prospects associated with this opportunity. You can use only the attribute id to filter opportunities by prospects (e.g. filter[prospects][id]=X)." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "prospect" + type: "string" + title: "links" + title: "prospect" + type: "array" + x-internal: false + stage: + description: "\n\nThe current stage of the opportunity. You can use only the attribute id to filter opportunities by stage (e.g. filter[stage][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "opportunityStage" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "opportunityStage" + type: "string" + title: "links" + title: "opportunityStage" + x-internal: false + updater: + description: "\n\nThe updater of the opportunity. Relationship updater cannot be used as a filter." + oneOf: + - + description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + opportunityResponse: + properties: + attributes: + $ref: "#/components/schemas/opportunity" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/opportunityRelationships" + type: + type: "string" + type: "object" + x-internal: false + opportunityStage: + description: "The stage an opportunity is in. Requires the Opportunities SKU to be enabled in order to have access. Please contact support for more assistance." + properties: + color: + description: "\n\nThe color used to label and highlight the opportunity stage." + maxLength: 255 + type: "string" + x-internal: false + createdAt: + description: " \n\nThe date and time the opportunity stage was created." + format: "date-time" + type: "string" + x-internal: false + isClosed: + description: " \n\nEither true or flase, whether or not the opportunity stage represents an open or closed state of an opportunity." + type: "boolean" + x-internal: false + name: + description: " \n\nThe name of the opportunity stage." + maxLength: 255 + type: "string" + x-internal: false + order: + description: " \n\nThe order of the opportunity stage." + type: "integer" + x-internal: false + updatedAt: + description: " \n\nThe date and time the opportunity stage was last updated." + format: "date-time" + type: "string" + x-internal: false + type: "object" + x-internal: false + opportunityStageRelationships: + properties: + creator: + description: "\n\nThe creator of the opportunity. Relationship creator cannot be used as a filter." + oneOf: + - + description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + opportunities: + description: "\n\nThe opportunities currently associated with the opportunity stage. Relationship opportunities cannot be used as a filter." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "opportunity" + type: "string" + title: "links" + title: "opportunity" + type: "array" + x-internal: false + type: "object" + opportunityStageResponse: + properties: + attributes: + $ref: "#/components/schemas/opportunityStage" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/opportunityStageRelationships" + type: + type: "string" + type: "object" + x-internal: false + orgSettingRelationships: + type: "object" + outboundVoicemailRelationships: + properties: + user: + description: "" + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + outlookAddInEwsItemRelationships: + properties: + mailbox: + description: "The mailbox this originated from" + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "mailbox" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "mailbox" + type: "string" + title: "links" + title: "mailbox" + x-internal: false + type: "object" + permissionGrantRelationships: + type: "object" + persona: + description: "A descriptor of a person, used for categorizing Prospects." + properties: + createdAt: + description: " \n\nThe date and time the persona was created." + format: "date-time" + type: "string" + x-internal: false + description: + description: "\n\nA description of the persona." + maxLength: 255 + type: "string" + x-internal: false + name: + description: " \n\nThe name of the persona (e.g. \"Sales Rep\")." + maxLength: 255 + type: "string" + x-internal: false + updatedAt: + description: " \n\nThe date and time the persona was last updated." + format: "date-time" + type: "string" + x-internal: false + type: "object" + x-internal: false + personaRelationships: + properties: + prospects: + description: "\n\nThe prospects with this persona. Relationship prospects cannot be used as a filter." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "prospect" + type: "string" + title: "links" + title: "prospect" + type: "array" + x-internal: false + type: "object" + personaResponse: + properties: + attributes: + $ref: "#/components/schemas/persona" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/personaRelationships" + type: + type: "string" + type: "object" + x-internal: false + phoneIdentityRelationships: + properties: + owner: + description: "The owner of this identity." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + phoneNumber: + description: "A prospect's phone number" + properties: + countryCode: + description: "\n\nThe country code (e.g. US)" + maxLength: 255 + type: "string" + x-internal: false + createdAt: + description: "\n\nThe date and time the phone number was created." + format: "date-time" + type: "string" + x-internal: false + extension: + description: "\n\nPhone number extension (e.g. 123)" + maxLength: 255 + type: "string" + x-internal: false + number: + description: " \n\nThe phone number (e.g. +18889387356)" + maxLength: 255 + type: "string" + x-internal: false + order: + description: " \n\nOrdered position in list of numbers" + type: "integer" + x-internal: false + phoneType: + description: " \n\nType of phone (mobile, work, home, voip, and other)" + maxLength: 255 + type: "string" + x-internal: false + rawNumber: + description: "\n\nUnformatted phone number" + maxLength: 255 + type: "string" + x-internal: false + status: + description: " \n\nThe status of the number" + maxLength: 255 + type: "string" + x-internal: false + statusChangedAt: + description: " \n\nTime the status was updated" + format: "date-time" + type: "string" + x-internal: false + updatedAt: + description: " \n\nThe date and time the phone number was last updated." + format: "date-time" + type: "string" + x-internal: false + type: "object" + x-internal: false + phoneNumberPredictionRelationships: + type: "object" + phoneNumberRelationships: + properties: + prospect: + description: "The owning prospect You can use only the attribute id to filter phoneNumbers by prospect (e.g. filter[prospect][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "prospect" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "prospect" + type: "string" + title: "links" + title: "prospect" + x-internal: false + type: "object" + phoneNumberResponse: + properties: + attributes: + $ref: "#/components/schemas/phoneNumber" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/phoneNumberRelationships" + type: + type: "string" + type: "object" + x-internal: false + phoneRelationships: + properties: + user: + description: "The User this phone belongs to." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + pluginErrorLogPreSignedUrlRelationships: + type: "object" + pluginMappingRelationships: + type: "object" + pluginRelationships: + type: "object" + profile: + description: "Controls what you can see and do within Outreach" + properties: + createdAt: + description: " \n\nThe date and time the team was created." + format: "date-time" + type: "string" + x-internal: false + isAdmin: + description: "\n\nFlag that indicates whether the profile provides admin access." + type: "boolean" + x-internal: false + name: + description: " \n\nThe name of the profile (e.g. \"Admin\")." + maxLength: 255 + type: "string" + x-internal: false + specialId: + description: " \n\nThe special id flag assigned to the profile (i.e. admin or default)" + maxLength: 255 + type: "string" + x-internal: false + updatedAt: + description: " \n\nThe date and time the team was last updated." + format: "date-time" + type: "string" + x-internal: false + type: "object" + x-internal: false + profileRelationships: + type: "object" + profileResponse: + properties: + attributes: + $ref: "#/components/schemas/profile" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/profileRelationships" + type: + type: "string" + type: "object" + x-internal: false + prospect: + description: "A descriptor of a person." + properties: + addedAt: + description: "\n\nThe date and time the prospect was added to any system." + format: "date-time" + type: "string" + x-internal: false + addressCity: + description: "\n\nThe prospect’s city (e.g. \"Seattle\")." + maxLength: 255 + type: "string" + x-internal: false + addressCountry: + description: "\n\nThe prospect’s country (e.g. \"USA\")." + maxLength: 255 + type: "string" + x-internal: false + addressState: + description: "\n\nThe prospect’s state (e.g. \"Washington\")." + maxLength: 255 + type: "string" + x-internal: false + addressStreet: + description: "\n\nThe prospect’s street address (e.g. \"1441 N 34th St\")." + maxLength: 255 + type: "string" + x-internal: false + addressStreet2: + description: "\n\nThe prospect’s second street address, if applicable." + maxLength: 255 + type: "string" + x-internal: false + addressZip: + description: "\n\nThe prospect’s postal code (e.g. \"98103\")." + maxLength: 255 + type: "string" + x-internal: false + angelListUrl: + description: "\n\nThe prospect’s AngelList URL." + maxLength: 255 + type: "string" + x-internal: false + availableAt: + description: "\n\nThe date and time the prospect is available to contact again." + format: "date-time" + type: "string" + x-internal: false + callOptedOut: + description: "\n\nWhether the prospect is opted out of calling, or opted out in general if granular opt-out is not enabled." + type: "boolean" + x-internal: false + callsOptStatus: + description: "\n\nA string (\"opted_in\", \"opted_out\", \"null\") that represents whether a prospect has opted into or out of calls." + maxLength: 255 + type: "string" + x-internal: false + callsOptedAt: + description: "\n\nThe date and time the prospect opted in/out of calls." + format: "date-time" + type: "string" + x-internal: false + campaignName: + description: "\n\nThe name of the campaign the prospect is associated with." + maxLength: 255 + type: "string" + x-internal: false + clickCount: + description: "\n\nThe number of clicks the prospect has made since the last touch point." + type: "integer" + x-internal: false + company: + description: "\n\nThe name of the company the prospect works at. If associated with an account, this is the name of the account. (e.g. Acme International)." + type: "string" + x-internal: false + contactHistogram: + description: "\n\nThe last 12 months of email contact history with the prospect, with the current month being the last element. The format for each month is '[inboundCount, outboundCount]'. Note: Retrieving this field will slow down the queries. Unless this field is required, it is best to filter it out. See Specify Sparse Fieldsets for examples" + items: + format: "contact histogram" + type: "array" + x-internal: false + createdAt: + description: " \n\nThe date and time the prospect was created." + format: "date-time" + type: "string" + x-internal: false + custom1: + description: "\n\nThe value of the prospect’s first custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom2: + description: "\n\nThe value of the prospect’s second custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom3: + description: "\n\nThe value of the prospect’s third custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom4: + description: "\n\nThe value of the prospect’s fourth custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom5: + description: "\n\nThe value of the prospect’s fifth custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom6: + description: "\n\nThe value of the prospect’s sixth custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom7: + description: "\n\nThe value of the prospect’s seventh custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom8: + description: "\n\nThe value of the prospect’s eight custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom9: + description: "\n\nThe value of the prospect’s ninth custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom10: + description: "\n\nThe value of the prospect’s 10th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom11: + description: "\n\nThe value of the prospect’s 11th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom12: + description: "\n\nThe value of the prospect’s 12th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom13: + description: "\n\nThe value of the prospect’s 13th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom14: + description: "\n\nThe value of the prospect’s 14th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom15: + description: "\n\nThe value of the prospect’s 15th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom16: + description: "\n\nThe value of the prospect’s 16th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom17: + description: "\n\nThe value of the prospect’s 17th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom18: + description: "\n\nThe value of the prospect’s 18th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom19: + description: "\n\nThe value of the prospect’s 19th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom20: + description: "\n\nThe value of the prospect’s 20th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom21: + description: "\n\nThe value of the prospect’s 21st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom22: + description: "\n\nThe value of the prospect’s 22nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom23: + description: "\n\nThe value of the prospect’s 23rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom24: + description: "\n\nThe value of the prospect’s 24th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom25: + description: "\n\nThe value of the prospect’s 25th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom26: + description: "\n\nThe value of the prospect’s 26th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom27: + description: "\n\nThe value of the prospect’s 27th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom28: + description: "\n\nThe value of the prospect’s 28th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom29: + description: "\n\nThe value of the prospect’s 29th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom30: + description: "\n\nThe value of the prospect’s 30th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom31: + description: "\n\nThe value of the prospect’s 31st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom32: + description: "\n\nThe value of the prospect’s 32nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom33: + description: "\n\nThe value of the prospect’s 33rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom34: + description: "\n\nThe value of the prospect’s 34th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom35: + description: "\n\nThe value of the prospect’s 35th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom36: + description: "\n\nThe value of the prospect’s 36th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom37: + description: "\n\nThe value of the prospect’s 37th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom38: + description: "\n\nThe value of the prospect’s 38th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom39: + description: "\n\nThe value of the prospect’s 39th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom40: + description: "\n\nThe value of the prospect’s 40th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom41: + description: "\n\nThe value of the prospect’s 41st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom42: + description: "\n\nThe value of the prospect’s 42nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom43: + description: "\n\nThe value of the prospect’s 43rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom44: + description: "\n\nThe value of the prospect’s 44th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom45: + description: "\n\nThe value of the prospect’s 45th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom46: + description: "\n\nThe value of the prospect’s 46th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom47: + description: "\n\nThe value of the prospect’s 47th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom48: + description: "\n\nThe value of the prospect’s 48th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom49: + description: "\n\nThe value of the prospect’s 49th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom50: + description: "\n\nThe value of the prospect’s 50th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom51: + description: "\n\nThe value of the prospect’s 51st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom52: + description: "\n\nThe value of the prospect’s 52nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom53: + description: "\n\nThe value of the prospect’s 53rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom54: + description: "\n\nThe value of the prospect’s 54th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom55: + description: "\n\nThe value of the prospect’s 55th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom56: + description: "\n\nThe value of the prospect’s 56th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom57: + description: "\n\nThe value of the prospect’s 57th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom58: + description: "\n\nThe value of the prospect’s 58th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom59: + description: "\n\nThe value of the prospect’s 59th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom60: + description: "\n\nThe value of the prospect’s 60th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom61: + description: "\n\nThe value of the prospect’s 61st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom62: + description: "\n\nThe value of the prospect’s 62nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom63: + description: "\n\nThe value of the prospect’s 63rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom64: + description: "\n\nThe value of the prospect’s 64th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom65: + description: "\n\nThe value of the prospect’s 65th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom66: + description: "\n\nThe value of the prospect’s 66th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom67: + description: "\n\nThe value of the prospect’s 67th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom68: + description: "\n\nThe value of the prospect’s 68th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom69: + description: "\n\nThe value of the prospect’s 69th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom70: + description: "\n\nThe value of the prospect’s 70th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom71: + description: "\n\nThe value of the prospect’s 71st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom72: + description: "\n\nThe value of the prospect’s 72nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom73: + description: "\n\nThe value of the prospect’s 73rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom74: + description: "\n\nThe value of the prospect’s 74th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom75: + description: "\n\nThe value of the prospect’s 75th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom76: + description: "\n\nThe value of the prospect’s 76th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom77: + description: "\n\nThe value of the prospect’s 77th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom78: + description: "\n\nThe value of the prospect’s 78th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom79: + description: "\n\nThe value of the prospect’s 79th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom80: + description: "\n\nThe value of the prospect’s 80th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom81: + description: "\n\nThe value of the prospect’s 81st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom82: + description: "\n\nThe value of the prospect’s 82nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom83: + description: "\n\nThe value of the prospect’s 83rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom84: + description: "\n\nThe value of the prospect’s 84th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom85: + description: "\n\nThe value of the prospect’s 85th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom86: + description: "\n\nThe value of the prospect’s 86th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom87: + description: "\n\nThe value of the prospect’s 87th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom88: + description: "\n\nThe value of the prospect’s 88th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom89: + description: "\n\nThe value of the prospect’s 89th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom90: + description: "\n\nThe value of the prospect’s 90th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom91: + description: "\n\nThe value of the prospect’s 91st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom92: + description: "\n\nThe value of the prospect’s 92nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom93: + description: "\n\nThe value of the prospect’s 93rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom94: + description: "\n\nThe value of the prospect’s 94th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom95: + description: "\n\nThe value of the prospect’s 95th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom96: + description: "\n\nThe value of the prospect’s 96th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom97: + description: "\n\nThe value of the prospect’s 97th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom98: + description: "\n\nThe value of the prospect’s 98th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom99: + description: "\n\nThe value of the prospect’s 99th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom100: + description: "\n\nThe value of the prospect’s 100th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom101: + description: "\n\nThe value of the prospect’s 101st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom102: + description: "\n\nThe value of the prospect’s 102nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom103: + description: "\n\nThe value of the prospect’s 103rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom104: + description: "\n\nThe value of the prospect’s 104th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom105: + description: "\n\nThe value of the prospect’s 105th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom106: + description: "\n\nThe value of the prospect’s 106th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom107: + description: "\n\nThe value of the prospect’s 107th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom108: + description: "\n\nThe value of the prospect’s 108th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom109: + description: "\n\nThe value of the prospect’s 109th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom110: + description: "\n\nThe value of the prospect’s 110th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom111: + description: "\n\nThe value of the prospect’s 111th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom112: + description: "\n\nThe value of the prospect’s 112th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom113: + description: "\n\nThe value of the prospect’s 113th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom114: + description: "\n\nThe value of the prospect’s 114th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom115: + description: "\n\nThe value of the prospect’s 115th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom116: + description: "\n\nThe value of the prospect’s 116th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom117: + description: "\n\nThe value of the prospect’s 117th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom118: + description: "\n\nThe value of the prospect’s 118th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom119: + description: "\n\nThe value of the prospect’s 119th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom120: + description: "\n\nThe value of the prospect’s 120th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom121: + description: "\n\nThe value of the prospect’s 121st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom122: + description: "\n\nThe value of the prospect’s 122nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom123: + description: "\n\nThe value of the prospect’s 123rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom124: + description: "\n\nThe value of the prospect’s 124th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom125: + description: "\n\nThe value of the prospect’s 125th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom126: + description: "\n\nThe value of the prospect’s 126th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom127: + description: "\n\nThe value of the prospect’s 127th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom128: + description: "\n\nThe value of the prospect’s 128th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom129: + description: "\n\nThe value of the prospect’s 129th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom130: + description: "\n\nThe value of the prospect’s 130th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom131: + description: "\n\nThe value of the prospect’s 131st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom132: + description: "\n\nThe value of the prospect’s 132nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom133: + description: "\n\nThe value of the prospect’s 133rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom134: + description: "\n\nThe value of the prospect’s 134th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom135: + description: "\n\nThe value of the prospect’s 135th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom136: + description: "\n\nThe value of the prospect’s 136th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom137: + description: "\n\nThe value of the prospect’s 137th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom138: + description: "\n\nThe value of the prospect’s 138th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom139: + description: "\n\nThe value of the prospect’s 139th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom140: + description: "\n\nThe value of the prospect’s 140th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom141: + description: "\n\nThe value of the prospect’s 141st custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom142: + description: "\n\nThe value of the prospect’s 142nd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom143: + description: "\n\nThe value of the prospect’s 143rd custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom144: + description: "\n\nThe value of the prospect’s 144th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom145: + description: "\n\nThe value of the prospect’s 145th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom146: + description: "\n\nThe value of the prospect’s 146th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom147: + description: "\n\nThe value of the prospect’s 147th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom148: + description: "\n\nThe value of the prospect’s 148th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom149: + description: "\n\nThe value of the prospect’s 149th custom field." + maxLength: 32000 + type: "string" + x-internal: false + custom150: + description: "\n\nThe value of the prospect’s 150th custom field." + maxLength: 32000 + type: "string" + x-internal: false + dateOfBirth: + description: "\n\nThe date the prospect was born." + format: "date" + type: "string" + x-internal: false + degree: + description: "\n\nThe degree(s) the prospect has received." + maxLength: 255 + type: "string" + x-internal: false + emailOptedOut: + description: "\n\nWhether the prospect is opted out of email, or opted out in general if granular opt-out is not enabled." + type: "boolean" + x-internal: false + emails: + description: "\n\nA list of email addresses associated with the prospect." + items: + format: "email" + type: "string" + type: "array" + x-internal: false + emailsOptStatus: + description: "\n\nA string (\"opted_in\", \"opted_out\", \"null\") that represents whether a prospect has opted into or out of emails." + maxLength: 255 + type: "string" + x-internal: false + emailsOptedAt: + description: "\n\nThe date and time the prospect opted in/out of emails." + format: "date-time" + type: "string" + x-internal: false + engagedAt: + description: " \n\nThe date and time the prospect last engaged." + format: "date-time" + type: "string" + x-internal: false + engagedScore: + description: " \n\nA number representing the quality of the lead, based on the number of the prospect’s opens, clicks and mailing replies." + format: "float" + type: "number" + x-internal: false + eventName: + description: "\n\nThe name of the event the prospect was met at." + maxLength: 255 + type: "string" + x-internal: false + externalId: + description: "\n\nA custom ID for the prospect, often referencing an ID in an external system." + maxLength: 255 + type: "string" + x-internal: false + externalOwner: + description: "\n\nA custom owner for the prospect, often referencing an ownering in an external system." + maxLength: 255 + type: "string" + x-internal: false + externalSource: + description: " \n\nThe source of the resource’s creation (e.g. \"outreach-api\")." + maxLength: 255 + type: "string" + x-internal: false + facebookUrl: + description: "\n\nThe prospect’s Facebook URL." + maxLength: 255 + type: "string" + x-internal: false + firstName: + description: " \n\nThe first name of the prospect." + maxLength: 255 + type: "string" + x-internal: false + gender: + description: "\n\nThe gender of the prospect." + maxLength: 255 + type: "string" + x-internal: false + githubUrl: + description: "\n\nThe prospect’s GitHub URL." + maxLength: 1000 + type: "string" + x-internal: false + githubUsername: + description: " \n\nThe prospect’s GitHub username." + maxLength: 255 + type: "string" + x-internal: false + googlePlusUrl: + description: "\n\nThe prospect’s Google+ URL." + maxLength: 255 + type: "string" + x-internal: false + graduationDate: + description: "\n\nThe graduation date of the prospect." + format: "date" + type: "string" + x-internal: false + homePhones: + description: "\n\nA list of home phone numbers associated with the prospect." + items: + type: "string" + type: "array" + x-internal: false + jobStartDate: + description: "\n\nThe starting date of the prospect’s current job." + format: "date" + type: "string" + x-internal: false + lastName: + description: " \n\nThe last name of the prospect." + maxLength: 255 + type: "string" + x-internal: false + linkedInConnections: + description: "\n\nThe number of connections on the prospect’s LinkedIn profile." + type: "integer" + x-internal: false + linkedInId: + description: " \n\nThe prospect’s LinkedIn ID." + maxLength: 255 + type: "string" + x-internal: false + linkedInSlug: + description: " \n\nThe prospect’s LinkedIn slug." + maxLength: 255 + type: "string" + x-internal: false + linkedInUrl: + description: "\n\nThe prospect’s LinkedIn URL." + maxLength: 1000 + type: "string" + x-internal: false + middleName: + description: "\n\nThe middle name of the prospect." + maxLength: 255 + type: "string" + x-internal: false + mobilePhones: + description: "\n\nA list of mobile phone numbers associated with the prospect." + items: + type: "string" + type: "array" + x-internal: false + name: + description: "\n\nThe full name of the prospect." + type: "string" + x-internal: false + nickname: + description: "\n\nThe nickname of the prospect." + maxLength: 255 + type: "string" + x-internal: false + occupation: + description: "\n\nThe occupation of the prospect (e.g. \"Purchasing Manager\")." + maxLength: 255 + type: "string" + x-internal: false + openCount: + description: "\n\nThe number of opens the prospect has made since the last touch point." + type: "integer" + x-internal: false + optedOut: + description: "\n\nA boolean value representing whether this prospect is currently opted out of all mailings. Set this value to true to opt out the prospect; the 'opted_out' timestamp will be updated to the time of the request. Set this value to false to revert the opt at and clear the opted out timestamp." + type: "boolean" + x-internal: false + optedOutAt: + description: "\n\nThe date and time the prospect opted out of emails." + format: "date-time" + type: "string" + x-internal: false + otherPhones: + description: "\n\nA list of other phone numbers associated with the prospect." + items: + type: "string" + type: "array" + x-internal: false + personalNote1: + description: "\n\nA custom note field related to the prospect." + maxLength: 65535 + type: "string" + x-internal: false + personalNote2: + description: "\n\nA second note field related to the prospect." + maxLength: 65535 + type: "string" + x-internal: false + preferredContact: + description: "\n\nThe preferred contact method for the prospect." + maxLength: 255 + type: "string" + x-internal: false + quoraUrl: + description: "\n\nThe prospect’s Quora URL." + maxLength: 255 + type: "string" + x-internal: false + region: + description: "\n\nThe primary geographic region of the prospect." + maxLength: 255 + type: "string" + x-internal: false + replyCount: + description: "\n\nThe number of replies the prospect has made since the last touch point." + type: "integer" + x-internal: false + school: + description: "\n\nThe school(s) the prospect has attended." + maxLength: 255 + type: "string" + x-internal: false + score: + description: "\n\nA custom score given to measure the quality of the lead." + format: "float" + type: "number" + x-internal: false + sharingTeamId: + description: "\n\nThe ID of the sharing team associated with this object. Access is currently in beta." + maxLength: 255 + type: "string" + x-internal: false + source: + description: "\n\nA custom source representing where the lead was first acquired." + maxLength: 255 + type: "string" + x-internal: false + specialties: + description: "\n\nA description of the prospect’s specialties." + maxLength: 65535 + type: "string" + x-internal: false + stackOverflowId: + description: " \n\nThe prospect’s StackOverflow ID." + maxLength: 255 + type: "string" + x-internal: false + stackOverflowUrl: + description: "\n\nThe prospect’s StackOverflow URL." + maxLength: 1000 + type: "string" + x-internal: false + tags: + description: "\n\nA list of tag values associated with the account (e.g. [\"Interested\", \"2017 Expo\"])." + items: + type: "string" + type: "array" + x-internal: false + timeZone: + description: "\n\nThe prospect’s current timezone, preferably in the IANA format (e.g. \"America/LosAngeles\")." + maxLength: 255 + type: "string" + x-internal: false + timeZoneIana: + description: "\n\nThe prospect’s current IANA timezone, if available." + type: "string" + x-internal: false + timeZoneInferred: + description: "\n\nThe prospect’s current inferred IANA timezone, if available." + maxLength: 255 + type: "string" + x-internal: false + title: + description: " \n\nThe title of the prospect." + maxLength: 255 + type: "string" + x-internal: false + touchedAt: + description: " \n\nThe date and time the prospect was last touched." + format: "date-time" + type: "string" + x-internal: false + trashedAt: + description: "\n\nThe date a prospect was soft deleted." + format: "date-time" + type: "string" + x-internal: false + twitterUrl: + description: "\n\nThe prospect’s Twitter URL." + maxLength: 1000 + type: "string" + x-internal: false + twitterUsername: + description: " \n\nThe prospect’s Twitter username." + maxLength: 255 + type: "string" + x-internal: false + updatedAt: + description: " \n\nThe date and time the prospect was last updated." + format: "date-time" + type: "string" + x-internal: false + voipPhones: + description: "\n\nA list of voip phone numbers associated with the prospect." + items: + type: "string" + type: "array" + x-internal: false + websiteUrl1: + description: "\n\nThe URL of the prospect’s website." + maxLength: 65535 + type: "string" + x-internal: false + websiteUrl2: + description: "\n\nThe value of the prospect’s second website URL field." + maxLength: 65535 + type: "string" + x-internal: false + websiteUrl3: + description: "\n\nThe value of the prospect’s third website URL field." + maxLength: 65535 + type: "string" + x-internal: false + workPhones: + description: "\n\nA list of work phone numbers associated with the prospect." + items: + type: "string" + type: "array" + x-internal: false + type: "object" + x-internal: false + prospectRelationships: + properties: + account: + description: "The prospect's associated account. You can use attributes id, customId, name, named and updatedAt to filter prospects by account (e.g. filter[account][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "account" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "account" + type: "string" + title: "links" + title: "account" + x-internal: false + activeSequenceStates: + description: "\n\nThe non-finished sequence states where this prospect is the primary recipient. This includes states of \"active\", \"paused\", \"failed\", \"bounced\", \"pending\" and \"disabled.\" You can use attributes id and state to filter prospects by activeSequenceStates (e.g. filter[activeSequenceStates][id]=X)." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "sequenceState" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "sequenceState" + type: "string" + title: "links" + title: "sequenceState" + type: "array" + x-internal: false + calls: + description: "\n\nThe calls associated with the prospect. Relationship calls cannot be used as a filter." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "call" + type: "string" + title: "links" + title: "call" + type: "array" + x-internal: false + creator: + description: "\n\nThe creater of the prospect. Relationship creator cannot be used as a filter." + oneOf: + - + description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + emailAddresses: + description: "The prospect's email addresses. Relationship emailAddresses cannot be used as a filter." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "emailAddress" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "emailAddress" + type: "string" + title: "links" + title: "emailAddress" + type: "array" + x-internal: false + favorites: + description: "The prospect's favorites. Relationship favorites cannot be used as a filter." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "favorite" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "favorite" + type: "string" + title: "links" + title: "favorite" + type: "array" + x-internal: false + mailings: + description: "\n\nThe mailings associated with the prospect. Relationship mailings cannot be used as a filter." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "mailing" + type: "string" + title: "links" + title: "mailing" + type: "array" + x-internal: false + opportunities: + description: "The opportunities associated with the prospect. Requires the Opportunities SKU to be enabled in order to have access. Please contact support@outreach.io for more assistance. You can use only the attribute id to filter prospects by opportunities (e.g. filter[opportunities][id]=X)." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "opportunity" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "opportunity" + type: "string" + title: "links" + title: "opportunity" + type: "array" + x-internal: false + opportunityProspectRoles: + description: "The roles that associate the prospect with opportunities. Relationship opportunityProspectRoles cannot be used as a filter." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "opportunityProspectRole" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "opportunityProspectRole" + type: "string" + title: "links" + title: "opportunityProspectRole" + type: "array" + x-internal: false + owner: + description: "The owner of the prospect. You can use only the attribute id to filter prospects by owner (e.g. filter[owner][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + persona: + description: "The persona of the prospect, if it has one. You can use only the attribute id to filter prospects by persona (e.g. filter[persona][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "persona" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "persona" + type: "string" + title: "links" + title: "persona" + x-internal: false + phoneNumbers: + description: "The prospect's phone numbers Relationship phoneNumbers cannot be used as a filter." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "phoneNumber" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "phoneNumber" + type: "string" + title: "links" + title: "phoneNumber" + type: "array" + x-internal: false + sequenceStates: + description: "\n\nThe sequence states where this prospect is the primary recipient. You can use attributes id and state to filter prospects by sequenceStates (e.g. filter[sequenceStates][id]=X)." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "sequenceState" + type: "string" + title: "links" + title: "sequenceState" + type: "array" + x-internal: false + stage: + description: "The stage the prospect is in. You can use attributes id and name to filter prospects by stage (e.g. filter[stage][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "stage" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "stage" + type: "string" + title: "links" + title: "stage" + x-internal: false + tasks: + description: "\n\nThe tasks associated with the prospect. Relationship tasks cannot be used as a filter." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "task" + type: "string" + title: "links" + title: "task" + type: "array" + x-internal: false + updater: + description: "\n\nThe most recent updater of the prospect. Relationship updater cannot be used as a filter." + oneOf: + - + description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + prospectResponse: + properties: + attributes: + $ref: "#/components/schemas/prospect" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/prospectRelationships" + type: + type: "string" + type: "object" + x-internal: false + recipient: + description: "Record for a recipient for some communication, such as email" + properties: + createdAt: + description: "\n\nThe date and time the team was created." + format: "date-time" + type: "string" + x-internal: false + emailHash: + description: "\n\nHash of email for recipient." + maxLength: 255 + type: "string" + x-internal: false + recipientType: + description: "\n\nThe type of action for the communcation to the recipient. Must be one of 'bcc', 'cc', or 'to'." + maxLength: 3 + type: "string" + x-internal: false + updatedAt: + description: "\n\nThe date and time the team was last updated." + format: "date-time" + type: "string" + x-internal: false + value: + description: "\n\nThe recipient contact information (i.e. email address)" + maxLength: 255 + type: "string" + x-internal: false + type: "object" + x-internal: false + recipientRelationships: + type: "object" + recipientResponse: + properties: + attributes: + $ref: "#/components/schemas/recipient" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/recipientRelationships" + type: + type: "string" + type: "object" + x-internal: false + recordActorAssignmentRelationships: + properties: + actor: + description: "" + oneOf: + - + description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + record: + description: "" + oneOf: + - + description: "A descriptor of a named company used to categorize prospects within an account-based sales approach." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "account" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "account" + type: "string" + title: "links" + title: "account" + x-internal: false + type: "object" + referralPredictionRelationships: + properties: + prospect: + description: "The prospect this prediction belongs to." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "prospect" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "prospect" + type: "string" + title: "links" + title: "prospect" + x-internal: false + sequenceState: + description: "The sequence state this prediction belongs to." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "sequenceState" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "sequenceState" + type: "string" + title: "links" + title: "sequenceState" + x-internal: false + type: "object" + returnDatePredictionRelationships: + properties: + prospect: + description: "The Prospect this prediction belongs to." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "prospect" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "prospect" + type: "string" + title: "links" + title: "prospect" + x-internal: false + sequenceState: + description: "The sequence state this prediction belongs to." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "sequenceState" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "sequenceState" + type: "string" + title: "links" + title: "sequenceState" + x-internal: false + type: "object" + role: + description: "Where you fall within your organization's structure." + properties: + createdAt: + description: " \n\nThe date and time the team was created." + format: "date-time" + type: "string" + x-internal: false + name: + description: " \n\nThe name of the role (e.g. \"Vice-President\")." + maxLength: 255 + type: "string" + x-internal: false + updatedAt: + description: " \n\nThe date and time the team was last updated." + format: "date-time" + type: "string" + x-internal: false + type: "object" + x-internal: false + roleRelationships: + properties: + parentRole: + description: "Roles are heirarchical. This is the parent of the current role. You can use only the attribute id to filter roles by parentRole (e.g. filter[parentRole][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "role" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "role" + type: "string" + title: "links" + title: "role" + x-internal: false + type: "object" + roleResponse: + properties: + attributes: + $ref: "#/components/schemas/role" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/roleRelationships" + type: + type: "string" + type: "object" + x-internal: false + ruleset: + description: "A reusable set of behaviors to be applied to Sequences" + properties: + applyCompletedStageIn: + description: "\n\nThe amount of time in seconds after the sequence has completed before the \"completedStage\" will be applied to the Prospect." + type: "integer" + x-internal: false + autoResumeOotoProspects: + description: " \n\nA boolean value whether out-of-the-office Prospects will be automatically resumed. See \"autoResumeOotoProspectsIn\" and \"autoResumeOotoProspectsExpiresIn\" for more information." + type: "boolean" + x-internal: false + autoResumeOotoProspectsExpiresIn: + description: "\n\nThe maximum amount of time in seconds to wait before opted-out Prospect will be resumed." + type: "integer" + x-internal: false + autoResumeOotoProspectsIn: + description: "\n\nThe default amount of time in seconds to wait before opted-out Prospects will be resumed." + type: "integer" + x-internal: false + callOptOutAction: + description: "\n\nDetermines if prospect can be added to sequences if they are opted out of calling." + maxLength: 4 + type: "string" + x-internal: false + clicksNeededBeforeCallTaskCreated: + description: "\n\nThe number of email clicks needed before a call task will be automatically created. This feature will be disabled unless a value is set." + type: "integer" + x-internal: false + createdAt: + description: " \n\nThe date and time the ruleset was created." + format: "date-time" + type: "string" + x-internal: false + emailOptOutAction: + description: "\n\nDetermines if prospect can be added to sequences if they are opted out of emails." + maxLength: 4 + type: "string" + x-internal: false + includeUnsubscribeLinks: + description: " \n\nA boolean value whether to include unsubscribe links within emails." + type: "boolean" + x-internal: false + meetingBookedAction: + description: "\n\nDetermines if a prospect is marked as finished when a meeting is booked." + maxLength: 255 + type: "string" + x-internal: false + minimumProspectTouchedInterval: + description: "\n\nThe minimum number of seconds that must elapse between when a Prospect was last contacted and when they may be added to a sequnce. This feature will be disabled unless a value is set." + type: "integer" + x-internal: false + name: + description: " \n\nThe name of the ruleset." + maxLength: 255 + type: "string" + x-internal: false + ootoAutoExtractionEnabled: + description: "\n\nA boolean value determining whether to use out of the office return date auto extraction." + type: "boolean" + x-internal: false + opensNeededBeforeCallTaskCreated: + description: "\n\nThe number of email opens needed before a call task will be automatically created. This feature will be disabled unless a value is set." + type: "integer" + x-internal: false + permitDuplicateProspects: + description: " \n\nA value determining whether a Prospect may be added to this Sequence multiple times or not. Permitted values include \"allow\", \"disallow\" (the default) and \"only_if_inactive\", which indicates that Prospects may be re-added to this sequence if their existing SequenceState is inactive." + maxLength: 255 + type: "string" + x-internal: false + sequenceExclusivity: + description: " \n\nA value determining whether Prospects may be added to multiple different Sequences. Permitted values include \"all_sequences\", \"exclusive_sequences\" and \"none\" (the default). If the value is \"all_sequences\", then Prospects may only be added if they are not active in any other Sequence; likewise, a Prospect active in a Sequence with \"all_sequences\" exclusivity cannot be added to any other Sequence. If the value is \"exclusive_sequences\", then Prospects may only be added if they are not active in any other Sequence with \"exclusive_sequences\" exclusivity; likewise, a Prospect active in a Sequence with \"exclusive_sequences\" exclusivity cannot be added to any other Sequence with \"exclusive_sequences\" exclusivity. If the value is \"none\", then no additional restrictions will be applied." + maxLength: 255 + type: "string" + x-internal: false + smsOptOutAction: + description: "\n\nDetermines if prospect can be added to sequences if they are opted out of SMS." + maxLength: 4 + type: "string" + x-internal: false + smsReceivedAction: + description: "\n\nDetermines if a prospect is marked as finished when a text message is received" + maxLength: 255 + type: "string" + x-internal: false + stepOverridesEnabled: + description: "\n\nA boolean value determining whether to allow users to customize step templates when adding to sequence." + type: "boolean" + x-internal: false + updatedAt: + description: " \n\nThe date and time the ruleset was last updated." + format: "date-time" + type: "string" + x-internal: false + type: "object" + x-internal: false + rulesetRelationships: + properties: + bouncedStage: + description: "The stage to assign to the prospect when a mailing in this sequence bounces. You can use only the attribute id to filter rulesets by bouncedStage (e.g. filter[bouncedStage][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "stage" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "stage" + type: "string" + title: "links" + title: "stage" + x-internal: false + callTaskPriority: + description: "The task priority to use when creating call tasks based on mail opens. You can use only the attribute id to filter rulesets by callTaskPriorityFromOpens (e.g. filter[callTaskPriorityFromOpens][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "taskPriority" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "taskPriority" + type: "string" + title: "links" + title: "taskPriority" + x-internal: false + callTaskPriorityFromClicks: + description: "The task priority to use when creating call tasks based on mail clicks. You can use only the attribute id to filter rulesets by callTaskPriorityFromClicks (e.g. filter[callTaskPriorityFromClicks][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "taskPriority" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "taskPriority" + type: "string" + title: "links" + title: "taskPriority" + x-internal: false + callTaskPriorityFromOpens: + description: "The task priority to use when creating call tasks based on mail opens. You can use only the attribute id to filter rulesets by callTaskPriorityFromOpens (e.g. filter[callTaskPriorityFromOpens][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "taskPriority" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "taskPriority" + type: "string" + title: "links" + title: "taskPriority" + x-internal: false + completedStage: + description: "The stage to assign to the prospect when this sequence completes. You can use only the attribute id to filter rulesets by completedStage (e.g. filter[completedStage][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "stage" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "stage" + type: "string" + title: "links" + title: "stage" + x-internal: false + deliveredStage: + description: "The stage to assign to the prospect when a mailing in this sequence is delivered. You can use only the attribute id to filter rulesets by deliveredStage (e.g. filter[deliveredStage][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "stage" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "stage" + type: "string" + title: "links" + title: "stage" + x-internal: false + finishedStage: + description: "The stage to assign to the prospect when this sequence finishes. You can use only the attribute id to filter rulesets by finishedStage (e.g. filter[finishedStage][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "stage" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "stage" + type: "string" + title: "links" + title: "stage" + x-internal: false + optedOutStage: + description: "The stage to assign to the prospect when they opt out of this sequence. You can use only the attribute id to filter rulesets by optedOutStage (e.g. filter[optedOutStage][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "stage" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "stage" + type: "string" + title: "links" + title: "stage" + x-internal: false + owner: + description: "The owner of the ruleset. You can use only the attribute id to filter rulesets by owner (e.g. filter[owner][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + repliedStage: + description: "The stage to assign to the prospect when a mailing in this sequence is replied to. You can use only the attribute id to filter rulesets by repliedStage (e.g. filter[repliedStage][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "stage" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "stage" + type: "string" + title: "links" + title: "stage" + x-internal: false + sequences: + description: "\n\nThe sequences associated with this ruleset. You can use only the attribute id to filter rulesets by sequences (e.g. filter[sequences][id]=X)." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "sequence" + type: "string" + title: "links" + title: "sequence" + type: "array" + x-internal: false + startedStage: + description: "The stage to assign to the prospect when this sequence starts. You can use only the attribute id to filter rulesets by startedStage (e.g. filter[startedStage][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "stage" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "stage" + type: "string" + title: "links" + title: "stage" + x-internal: false + type: "object" + rulesetResponse: + properties: + attributes: + $ref: "#/components/schemas/ruleset" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/rulesetRelationships" + type: + type: "string" + type: "object" + x-internal: false + scheduleRelationships: + properties: + owner: + description: "The owner of the schedule." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + sequence: + description: "Leverage emailing within Sequences to engage each individual persona more effectively, and queue up the right actions at the right time." + properties: + automationPercentage: + description: "\n\nThe percentage of \"auto_email\" sequence steps in this sequence." + format: "float" + type: "number" + x-internal: false + bounceCount: + description: "\n\nThe total count of bounced mailings during this sequence." + type: "integer" + x-internal: false + clickCount: + description: " \n\nThe total count of clicked mailings from this sequence." + type: "integer" + x-internal: false + createdAt: + description: " \n\nThe date and time the sequence was created." + format: "date-time" + type: "string" + x-internal: false + deliverCount: + description: " \n\nThe total count of delivered mailings from this sequence." + type: "integer" + x-internal: false + description: + description: "\n\nA custom description for the sequence." + maxLength: 1024 + type: "string" + x-internal: false + durationInDays: + description: "\n\nThe total number of days it takes to get through this sequence." + type: "integer" + x-internal: false + enabled: + description: "\n\nA boolean value determining whether the sequence is enabled or not." + type: "boolean" + x-internal: false + enabledAt: + description: " \n\nThe date and time the sequence was enabled, or null if currently disabled." + format: "date-time" + type: "string" + x-internal: false + failureCount: + description: "\n\nThe total count of failed mailings from this sequence." + type: "integer" + x-internal: false + finishOnReply: + description: "\n\nDeprecated. This boolean value exists only to maintain backward compatibility and primaryReplyAction should be used instead. True if primaryReplyAction is \"finish\", false otherwise." + type: "boolean" + x-internal: false + lastUsedAt: + description: " \n\nThe date and time the sequence was last used." + format: "date-time" + type: "string" + x-internal: false + locked: + description: "\n\nA boolean value determining whether the sequence is locked or not." + type: "boolean" + x-internal: false + lockedAt: + description: " \n\nThe date and time the sequence was locked, or null if currently unlocked." + format: "date-time" + type: "string" + x-internal: false + maxActivations: + description: "\n\nThe maximum number of prospects that can be associated with the sequence. Only applies if the sequence type is \"date\"." + type: "integer" + x-internal: false + name: + description: " \n\nThe name or the sequence." + maxLength: 255 + type: "string" + x-internal: false + negativeReplyCount: + description: "\n\nThe total count of negative reply mailings from this sequence." + type: "integer" + x-internal: false + neutralReplyCount: + description: "\n\nThe total count of neutral reply mailings from this sequence." + type: "integer" + x-internal: false + numContactedProspects: + description: "\n\nThe total count of prospects who have been either called or emailed." + type: "integer" + x-internal: false + numRepliedProspects: + description: "\n\nThe total count of prospects who have been marked as replied." + type: "integer" + x-internal: false + openCount: + description: " \n\nThe total count of opened mailings from this sequence." + type: "integer" + x-internal: false + optOutCount: + description: "\n\nThe total count of opted out mailings from this sequence." + type: "integer" + x-internal: false + positiveReplyCount: + description: "\n\nThe total count of positive reply mailings from this sequence." + type: "integer" + x-internal: false + primaryReplyAction: + description: "\n\nThe action to take when the primary prospect replies. Must be one of \"finish\", \"continue\", or \"pause\"." + maxLength: 4 + type: "string" + x-internal: false + primaryReplyPauseDuration: + description: "\n\nThe duration in seconds to pause for (before automatically finishing) after a reply from the primary prospect if the primaryReplyAction is \"pause\"." + type: "integer" + x-internal: false + replyCount: + description: " \n\nThe total count of replied mailings from this sequence." + type: "integer" + x-internal: false + scheduleCount: + description: "\n\nThe total count of scheduled mailings from this sequence." + type: "integer" + x-internal: false + scheduleIntervalType: + description: "\n\nThe schedule interval type must be either \"calendar\" or \"schedule\"" + maxLength: 255 + type: "string" + x-internal: false + secondaryReplyAction: + description: "\n\nThe action to take when someone other than the primary prospect replies. Must be one of \"finish\", \"continue\", or \"pause\"." + maxLength: 4 + type: "string" + x-internal: false + secondaryReplyPauseDuration: + description: "\n\nThe duration in seconds to pause for (before automatically finishing) after a reply from anyone other than the primary prospect if the secondaryReplyAction is \"pause\"." + type: "integer" + x-internal: false + sequenceStepCount: + description: "\n\nThe total number of sequence steps in this sequence." + type: "integer" + x-internal: false + sequenceType: + description: "\n\nThe sequence type must be either \"date\" or \"interval\"." + maxLength: 255 + type: "string" + x-internal: false + shareType: + description: " \n\nThe sequence share type must be either \"private\", \"read_only\" or \"shared\"." + maxLength: 255 + type: "string" + x-internal: false + tags: + description: "\n\nA list of tag values associated with the sequence (e.g. [\"Tier 1\", \"Inbound Leads\"])" + items: + type: "string" + type: "array" + x-internal: false + throttleCapacity: + description: " \n\nThe maximum number of associated sequence states per user that can be active at a one time." + type: "integer" + x-internal: false + throttleMaxAddsPerDay: + description: " \n\nThe maximum number of associated sequence states per user that can be added to the sequence each day." + type: "integer" + x-internal: false + throttlePaused: + description: "\n\nA boolean value determining whether the throttling of sequence states is paused or not." + type: "boolean" + x-internal: false + throttlePausedAt: + description: "\n\nThe date and time the sequence state throttling was paused, or null if not currently paused." + format: "date-time" + type: "string" + x-internal: false + transactional: + description: "\n\nA boolean value determining whether prospect opt out preferences are respected. Intended only for non-marketing sequences." + type: "boolean" + x-internal: false + updatedAt: + description: " \n\nThe date and time the sequence was last updated." + format: "date-time" + type: "string" + x-internal: false + type: "object" + x-internal: false + sequenceRelationships: + properties: + calls: + description: "\n\nThe associated calls. You can use only the attribute id to filter sequences by calls (e.g. filter[calls][id]=X)." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "call" + type: "string" + title: "links" + title: "call" + type: "array" + x-internal: false + contentCategoryMemberships: + description: "\n\nThe content categories (collections) of the sequence. You can use only the attribute id to filter sequences by contentCategoryMemberships (e.g. filter[contentCategoryMemberships][id]=X)." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "contentCategoryMembership" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "contentCategoryMembership" + type: "string" + title: "links" + title: "contentCategoryMembership" + type: "array" + x-internal: false + creator: + description: "\n\nThe creater of the sequence. You can use only the attribute id to filter sequences by creator (e.g. filter[creator][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + mailings: + description: "\n\nThe associated mailings. Relationship mailings cannot be used as a filter." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "mailing" + type: "string" + title: "links" + title: "mailing" + type: "array" + x-internal: false + owner: + description: "The owner of the sequence. You can use attributes id, email, firstName and lastName to filter sequences by owner (e.g. filter[owner][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + ruleset: + description: "The associated ruleset. You can use only the attribute id to filter sequences by ruleset (e.g. filter[ruleset][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "ruleset" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "ruleset" + type: "string" + title: "links" + title: "ruleset" + x-internal: false + sequenceStates: + description: "\n\nThe associated sequence states. You can use only the attribute id to filter sequences by sequenceStates (e.g. filter[sequenceStates][id]=X)." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "sequenceState" + type: "string" + title: "links" + title: "sequenceState" + type: "array" + x-internal: false + sequenceSteps: + description: "The associated sequence steps. You can use only the attribute id to filter sequences by sequenceSteps (e.g. filter[sequenceSteps][id]=X)." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "sequenceStep" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "sequenceStep" + type: "string" + title: "links" + title: "sequenceStep" + type: "array" + x-internal: false + tasks: + description: "\n\nThe associated tasks. You can use only the attribute id to filter sequences by tasks (e.g. filter[tasks][id]=X)." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "task" + type: "string" + title: "links" + title: "task" + type: "array" + x-internal: false + updater: + description: "\n\nThe most recent updater of the sequence. You can use only the attribute id to filter sequences by updater (e.g. filter[updater][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + sequenceResponse: + properties: + attributes: + $ref: "#/components/schemas/sequence" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/sequenceRelationships" + type: + type: "string" + type: "object" + x-internal: false + sequenceState: + description: "A descriptor of a currently sequenced prospect, which includes relationships to its sequence, prospect and user." + properties: + activeAt: + description: "\n\nThe date and time the sequence state was last active." + format: "date-time" + type: "string" + x-internal: false + bounceCount: + description: "\n\nThe total count of bounced mailings during this sequence state." + type: "integer" + x-internal: false + callCompletedAt: + description: " \n\nThe date and time the sequence state last had a call completed." + format: "date-time" + type: "string" + x-internal: false + clickCount: + description: " \n\nThe total count of clicked mailings from this sequence state." + type: "integer" + x-internal: false + createdAt: + description: " \n\nThe date and time the sequence state was created." + format: "date-time" + type: "string" + x-internal: false + deliverCount: + description: " \n\nThe total count of delivered mailings from this sequence state." + type: "integer" + x-internal: false + errorReason: + description: "\n\nThe reason for the most recent error." + maxLength: 255 + type: "string" + x-internal: false + failureCount: + description: "\n\nThe total count of failed mailings from this sequence state." + type: "integer" + x-internal: false + negativeReplyCount: + description: "\n\nThe total count of negative reply mailings from this sequence state." + type: "integer" + x-internal: false + neutralReplyCount: + description: "\n\nThe total count of neutral reply mailings from this sequence state." + type: "integer" + x-internal: false + openCount: + description: " \n\nThe total count of opened mailings from this sequence state." + type: "integer" + x-internal: false + optOutCount: + description: "\n\nThe total count of opted out mailings from this sequence state." + type: "integer" + x-internal: false + pauseReason: + description: " \n\nThe reason for the most recent pause." + maxLength: 255 + type: "string" + x-internal: false + positiveReplyCount: + description: "\n\nThe total count of positive reply mailings from this sequence state." + type: "integer" + x-internal: false + repliedAt: + description: " \n\nThe date and time the sequence state last had a mailing reply." + format: "date-time" + type: "string" + x-internal: false + replyCount: + description: " \n\nThe total count of replied mailings from this sequence state." + type: "integer" + x-internal: false + scheduleCount: + description: "\n\nThe total count of scheduled mailings from this sequence state." + type: "integer" + x-internal: false + state: + description: " \n\nThe current state of the sequence state." + maxLength: 255 + type: "string" + x-internal: false + stateChangedAt: + description: " \n\nThe date and time the sequence state’s state last changed." + format: "date-time" + type: "string" + x-internal: false + updatedAt: + description: " \n\nThe date and time the sequence state was last updated." + format: "date-time" + type: "string" + x-internal: false + type: "object" + x-internal: false + sequenceStateRecipientRelationships: + properties: + prospect: + description: "The prospect that is associated with this recipient." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "prospect" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "prospect" + type: "string" + title: "links" + title: "prospect" + x-internal: false + sequenceState: + description: "The sequence state that is associated with this recipient." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "sequenceState" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "sequenceState" + type: "string" + title: "links" + title: "sequenceState" + x-internal: false + type: "object" + sequenceStateRelationships: + properties: + account: + description: "\n\nThe account associated with the prospect the sequence state is targeting. You can use only the attribute id to filter sequenceStates by account (e.g. filter[account][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "account" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "account" + type: "string" + title: "links" + title: "account" + x-internal: false + activeStepMailings: + description: "\n\nAny undelivered mailings associated with the current sequence step. Relationship activeStepMailings cannot be used as a filter." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "mailing" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "mailing" + type: "string" + title: "links" + title: "mailing" + type: "array" + x-internal: false + activeStepTasks: + description: "\n\nAny incomplete tasks associated with the current sequence step. Relationship activeStepTasks cannot be used as a filter." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "task" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "task" + type: "string" + title: "links" + title: "task" + type: "array" + x-internal: false + calls: + description: "\n\nThe calls associated with the sequence state. You can use only the attribute id to filter sequenceStates by calls (e.g. filter[calls][id]=X)." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "call" + type: "string" + title: "links" + title: "call" + type: "array" + x-internal: false + creator: + description: "\n\nThe creator of the sequence state. Relationship creator cannot be used as a filter." + oneOf: + - + description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + mailbox: + description: "The mailbox to use for mailing steps. You can use attributes id and email to filter sequenceStates by mailbox (e.g. filter[mailbox][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "mailbox" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "mailbox" + type: "string" + title: "links" + title: "mailbox" + x-internal: false + mailings: + description: "\n\nThe mailings associated with the sequence state. Relationship mailings cannot be used as a filter." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "mailing" + type: "string" + title: "links" + title: "mailing" + type: "array" + x-internal: false + opportunity: + description: "\n\nThe associated opportunity. You can use only the attribute id to filter sequenceStates by opportunity (e.g. filter[opportunity][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "opportunity" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "opportunity" + type: "string" + title: "links" + title: "opportunity" + x-internal: false + prospect: + description: "The primary prospect this sequence state is targeting. You can use attributes id and emails to filter sequenceStates by prospect (e.g. filter[prospect][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "prospect" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "prospect" + type: "string" + title: "links" + title: "prospect" + x-internal: false + sequence: + description: "The sequence this prospect is engaged in. You can use any filterable attribute of sequence." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "sequence" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "sequence" + type: "string" + title: "links" + title: "sequence" + x-internal: false + sequenceStep: + description: "\n\nThe current sequence step the prospect is in. You can use any filterable attribute of sequenceStep." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "sequenceStep" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "sequenceStep" + type: "string" + title: "links" + title: "sequenceStep" + x-internal: false + tasks: + description: "\n\nThe tasks associated with the sequence state. You can use attributes id and dueAt to filter sequenceStates by tasks (e.g. filter[tasks][id]=X)." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "task" + type: "string" + title: "links" + title: "task" + type: "array" + x-internal: false + type: "object" + sequenceStateResponse: + properties: + attributes: + $ref: "#/components/schemas/sequenceState" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/sequenceStateRelationships" + type: + type: "string" + type: "object" + x-internal: false + sequenceStep: + description: "A descriptor of a single step within an automated sequence." + properties: + bounceCount: + description: "\n\nThe total count of bounced mailings during this sequence step." + type: "integer" + x-internal: false + clickCount: + description: "\n\nThe total count of clicked mailings from this sequence step." + type: "integer" + x-internal: false + createdAt: + description: " \n\nThe date and time the sequence step was created." + format: "date-time" + type: "string" + x-internal: false + date: + description: " \n\nThe date this step will activate; only applicable to date-based sequences." + format: "date" + type: "string" + x-internal: false + deliverCount: + description: "\n\nThe total count of delivered mailings from this sequence step." + type: "integer" + x-internal: false + displayName: + description: "\n\nA human-readable display name that captures the step’s type and order." + type: "string" + x-internal: false + failureCount: + description: "\n\nThe total count of failed mailings from this sequence step." + type: "integer" + x-internal: false + interval: + description: "\n\nThe interval (in seconds) until this step will activate; only applicable to interval-based sequences." + type: "integer" + x-internal: false + negativeReplyCount: + description: "\n\nThe total count of negative reply mailings from this sequence step." + type: "integer" + x-internal: false + neutralReplyCount: + description: "\n\nThe total count of neutral reply mailings from this sequence step." + type: "integer" + x-internal: false + openCount: + description: "\n\nThe total count of opened mailings from this sequence step." + type: "integer" + x-internal: false + optOutCount: + description: "\n\nThe total count of opted out mailings from this sequence step." + type: "integer" + x-internal: false + order: + description: " \n\nThe step’s display order within its sequence." + type: "integer" + x-internal: false + positiveReplyCount: + description: "\n\nThe total count of positive reply mailings from this sequence step." + type: "integer" + x-internal: false + replyCount: + description: "\n\nThe total count of replied mailings from this sequence step." + type: "integer" + x-internal: false + scheduleCount: + description: "\n\nThe total count of scheduled mailings from this sequence step." + type: "integer" + x-internal: false + stepType: + description: " \n\nThe step’s type; must be \"auto_email\", \"manual_email\", \"call\" or \"task\"." + maxLength: 255 + type: "string" + x-internal: false + taskAutoskipDelay: + description: "\n\nThe optional interval (in seconds) from when tasks created by this sequence step are overdue until they are automatically skipped." + type: "integer" + x-internal: false + taskNote: + description: "\n\nAn optional note to associate with created tasks." + maxLength: 65535 + type: "string" + x-internal: false + updatedAt: + description: " \n\nThe date and time the sequence step was last updated." + format: "date-time" + type: "string" + x-internal: false + type: "object" + x-internal: false + sequenceStepOverrideRelationships: + type: "object" + sequenceStepRelationships: + properties: + callPurpose: + description: "The default call purpose associated with the sequence step. You can use only the attribute id to filter sequenceSteps by callPurpose (e.g. filter[callPurpose][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "callPurpose" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "callPurpose" + type: "string" + title: "links" + title: "callPurpose" + x-internal: false + calls: + description: "\n\nThe calls associated with the sequence step. You can use only the attribute id to filter sequenceSteps by calls (e.g. filter[calls][id]=X)." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "call" + type: "string" + title: "links" + title: "call" + type: "array" + x-internal: false + creator: + description: "\n\nThe creator of the sequence step. You can use only the attribute id to filter sequenceSteps by creator (e.g. filter[creator][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + mailings: + description: "\n\nThe mailings associated with the sequence step. Relationship mailings cannot be used as a filter." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "mailing" + type: "string" + title: "links" + title: "mailing" + type: "array" + x-internal: false + sequence: + description: "The associated sequence. You can use attributes id, enabledAt and name to filter sequenceSteps by sequence (e.g. filter[sequence][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "sequence" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "sequence" + type: "string" + title: "links" + title: "sequence" + x-internal: false + sequenceTemplates: + description: "\n\nThe sequence templates in use by this sequence step. You can use any filterable attribute of sequenceTemplates." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "sequenceTemplate" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "sequenceTemplate" + type: "string" + title: "links" + title: "sequenceTemplate" + type: "array" + x-internal: false + taskPriority: + description: "The associated task priority. You can use only the attribute id to filter sequenceSteps by taskPriority (e.g. filter[taskPriority][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "taskPriority" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "taskPriority" + type: "string" + title: "links" + title: "taskPriority" + x-internal: false + tasks: + description: "\n\nThe tasks associated with the sequence step. You can use only the attribute id to filter sequenceSteps by tasks (e.g. filter[tasks][id]=X)." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "task" + type: "string" + title: "links" + title: "task" + type: "array" + x-internal: false + updater: + description: "\n\nThe most recent updater of the sequence step. You can use only the attribute id to filter sequenceSteps by updater (e.g. filter[updater][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + sequenceStepResponse: + properties: + attributes: + $ref: "#/components/schemas/sequenceStep" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/sequenceStepRelationships" + type: + type: "string" + type: "object" + x-internal: false + sequenceTemplate: + description: "An object used to track which templates are in use by which sequence steps." + properties: + bounceCount: + description: "\n\nThe total count of bounced mailings during this sequence template." + type: "integer" + x-internal: false + clickCount: + description: "\n\nThe total count of clicked mailings from this sequence template." + type: "integer" + x-internal: false + createdAt: + description: "\n\nThe date and time the sequence template was created." + format: "date-time" + type: "string" + x-internal: false + deliverCount: + description: "\n\nThe total count of delivered mailings from this sequence template." + type: "integer" + x-internal: false + enabled: + description: "\n\nBoolean indicating if the sequence template is currently enabled." + type: "boolean" + x-internal: false + enabledAt: + description: "\n\nDatetime for when the sequence template was enabled." + format: "date-time" + type: "string" + x-internal: false + failureCount: + description: "\n\nThe total count of failed mailings from this sequence template." + type: "integer" + x-internal: false + isReply: + description: "\n\nBoolean indicating if the sequence template should be a reply email or a new thread." + type: "boolean" + x-internal: false + negativeReplyCount: + description: "\n\nThe total count of negative reply mailings from this sequence template." + type: "integer" + x-internal: false + neutralReplyCount: + description: "\n\nThe total count of neutral reply mailings from this sequence template." + type: "integer" + x-internal: false + openCount: + description: "\n\nThe total count of opened mailings from this sequence template." + type: "integer" + x-internal: false + optOutCount: + description: "\n\nThe total count of opted out mailings from this sequence template." + type: "integer" + x-internal: false + positiveReplyCount: + description: "\n\nThe total count of positive reply mailings from this sequence template." + type: "integer" + x-internal: false + replyCount: + description: "\n\nThe total count of replied mailings from this sequence template." + type: "integer" + x-internal: false + scheduleCount: + description: "\n\nThe total count of scheduled mailings from this sequence template." + type: "integer" + x-internal: false + updatedAt: + description: "\n\nThe date and time the sequence template was last updated." + format: "date-time" + type: "string" + x-internal: false + type: "object" + x-internal: false + sequenceTemplateRelationships: + properties: + creator: + description: "\n\nUser that created the sequence template. You can use only the attribute id to filter sequenceTemplates by creator (e.g. filter[creator][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + sequenceStep: + description: "The sequence step that uses the sequence template. You can use any filterable attribute of sequenceStep." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "sequenceStep" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "sequenceStep" + type: "string" + title: "links" + title: "sequenceStep" + x-internal: false + template: + description: "The template used for this sequence template. You can use only the attribute id to filter sequenceTemplates by template (e.g. filter[template][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "template" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "template" + type: "string" + title: "links" + title: "template" + x-internal: false + updater: + description: "\n\nUser that last updated the sequence template. You can use only the attribute id to filter sequenceTemplates by updater (e.g. filter[updater][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + sequenceTemplateResponse: + properties: + attributes: + $ref: "#/components/schemas/sequenceTemplate" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/sequenceTemplateRelationships" + type: + type: "string" + type: "object" + x-internal: false + smartViewNotificationRelationships: + properties: + owner: + description: "The owner of the notificiation." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + smartViewRelationships: + properties: + owner: + description: "The owner of the smart view." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + snippet: + description: "A piece of an email to be reused in multiple messages." + properties: + bodyHtml: + description: "\n\nThe HTML of the snippet." + maxLength: 16777215 + type: "string" + x-internal: false + bodyText: + description: "\n\nThe text of the snippet." + maxLength: 16777215 + type: "string" + x-internal: false + createdAt: + description: " \n\nThe date and time the snippet was created." + format: "date-time" + type: "string" + x-internal: false + name: + description: " \n\nThe name of the snippet." + maxLength: 255 + type: "string" + x-internal: false + shareType: + description: " \n\nThe permissions for sharing the snippet; must be \"private\" or \"shared.\"" + maxLength: 255 + type: "string" + x-internal: false + tags: + description: "\n\nA list of tags associated with the snippet (e.g. [\"Useful\", \"Prospecting\"])." + items: + type: "string" + type: "array" + x-internal: false + updatedAt: + description: " \n\nThe date and time the snippet was last updated." + format: "date-time" + type: "string" + x-internal: false + type: "object" + x-internal: false + snippetRelationships: + properties: + contentCategoryMemberships: + description: "The content categories (collections) of the snippet. You can use only the attribute id to filter snippets by contentCategoryMemberships (e.g. filter[contentCategoryMemberships][id]=X)." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "contentCategoryMembership" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "contentCategoryMembership" + type: "string" + title: "links" + title: "contentCategoryMembership" + type: "array" + x-internal: false + creator: + description: "\n\nThe creator of the snippet. You can use only the attribute id to filter snippets by creator (e.g. filter[creator][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + owner: + description: "The owner of the snippet. You can use only the attribute id to filter snippets by owner (e.g. filter[owner][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + updater: + description: "\n\nThe updater of the snippet. You can use only the attribute id to filter snippets by updater (e.g. filter[updater][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + snippetResponse: + properties: + attributes: + $ref: "#/components/schemas/snippet" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/snippetRelationships" + type: + type: "string" + type: "object" + x-internal: false + stage: + description: "A descriptor of the point in the process, used for categorizing Prospects." + properties: + color: + description: "\n\nThe color the stage label will be highlighted in the interface, specified as a hexidecimal value (e.g. \"#5951ff\")." + maxLength: 255 + type: "string" + x-internal: false + createdAt: + description: " \n\nThe date and time the stage was created." + format: "date-time" + type: "string" + x-internal: false + name: + description: " \n\nThe name of the stage (e.g. \"Qualified Lead\")." + maxLength: 255 + type: "string" + x-internal: false + order: + description: " \n\nThe stage's display order within the collection." + type: "integer" + x-internal: false + updatedAt: + description: " \n\nThe date and time the stage was last updated." + format: "date-time" + type: "string" + x-internal: false + type: "object" + x-internal: false + stageRelationships: + properties: + creator: + description: "\n\nThe creator of the stage. Relationship creator cannot be used as a filter." + oneOf: + - + description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + prospects: + description: "\n\nThe prospects associated to the stage. You can use only the attribute id to filter stages by prospects (e.g. filter[prospects][id]=X)." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "prospect" + type: "string" + title: "links" + title: "prospect" + type: "array" + x-internal: false + updater: + description: "\n\nThe most recent updater of the stage. Relationship updater cannot be used as a filter." + oneOf: + - + description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + stageResponse: + properties: + attributes: + $ref: "#/components/schemas/stage" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/stageRelationships" + type: + type: "string" + type: "object" + x-internal: false + surveyQuestionOptionRelationships: + type: "object" + surveyQuestionRelationships: + type: "object" + surveyRelationships: + type: "object" + surveyUserResponseRelationships: + properties: + user: + description: "\n\nThe user who responded." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + tagRelationships: + type: "object" + task: + description: "An item that requires action to complete." + properties: + action: + description: "\n\nThe action type of the task. Can be 'action_item', 'call', 'email', or 'in_person'." + maxLength: 255 + type: "string" + x-internal: false + autoskipAt: + description: " \n\nThe optional date and time when the task will automatically be skipped. Tasks with an empty autoskip_at will never be autoskipped." + format: "date-time" + type: "string" + x-internal: false + compiledSequenceTemplateHtml: + description: "\n\nThe compiled template HTML of incomplete SMS or LinkedIn tasks associated with a sequence." + type: "string" + x-internal: false + completed: + description: "\n\nA boolean value whether the task has been completed." + type: "boolean" + x-internal: false + completedAt: + description: "\n\nThe date and time the task was completed." + format: "date-time" + type: "string" + x-internal: false + createdAt: + description: " \n\nThe date and time the task was created." + format: "date-time" + type: "string" + x-internal: false + dueAt: + description: " \n\nThe date and time the task is due." + format: "date-time" + type: "string" + x-internal: false + note: + description: "\n\nAn optional note for the task." + maxLength: 65535 + type: "string" + x-internal: false + opportunityAssociation: + description: "\n\nThe optional opportunity rule associated with the task. Can be 'recent_created', 'recent_updated', 'noop'." + maxLength: 255 + type: "string" + x-internal: false + scheduledAt: + description: " \n\nThe date and time the pending task is scheduled for." + format: "date-time" + type: "string" + x-internal: false + state: + description: " \n\nThe current state of the task. Can be 'pending', 'incomplete', or 'complete'." + maxLength: 255 + type: "string" + x-internal: false + stateChangedAt: + description: " \n\nThe date and time the state last changed." + format: "date-time" + type: "string" + x-internal: false + taskType: + description: " \n\nThe type of task. Can be 'follow_up', 'manual', 'no_reply', 'sequence_open', 'sequence_click', 'sequence_step_call', 'sequence_step_email', 'sequence_step_linkedin_interact_with_post', 'sequence_step_linkedin_other', 'sequence_step_linkedin_send_connection_request', 'sequence_step_linkedin_send_message', 'sequence_step_linkedin_view_profile', 'sequence_step_sms', 'sequence_step_task', or 'touch'. Tasks created through the API will automatically be 'manual' tasks." + maxLength: 255 + type: "string" + x-internal: false + updatedAt: + description: " \n\nThe date and time the task was last updated." + format: "date-time" + type: "string" + x-internal: false + type: "object" + x-internal: false + taskPriority: + description: "A descriptor of importance used for categorizing Tasks." + properties: + color: + description: "\n\nThe color the task priority label will be highlighted in the interface, specified as a hexadecimal value (e.g. \"0xFF5951FF\")." + type: "integer" + x-internal: false + createdAt: + description: " \n\nThe date and time the task priority was created." + format: "date-time" + type: "string" + x-internal: false + name: + description: " \n\nThe name of the task priority (e.g. \"High\")." + maxLength: 255 + type: "string" + x-internal: false + updatedAt: + description: " \n\nThe date and time the task priority was last updated." + format: "date-time" + type: "string" + x-internal: false + weight: + description: " \n\nA relative value used for display order. Task priorities are listed from lowest to highest weight." + type: "integer" + x-internal: false + type: "object" + x-internal: false + taskPriorityRelationships: + properties: + sequenceSteps: + description: "\n\nThe associated sequence steps. Relationship sequenceSteps cannot be used as a filter." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "sequenceStep" + type: "string" + title: "links" + title: "sequenceStep" + type: "array" + x-internal: false + tasks: + description: "\n\nThe associated tasks. Relationship tasks cannot be used as a filter." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "task" + type: "string" + title: "links" + title: "task" + type: "array" + x-internal: false + type: "object" + taskPriorityResponse: + properties: + attributes: + $ref: "#/components/schemas/taskPriority" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/taskPriorityRelationships" + type: + type: "string" + type: "object" + x-internal: false + taskRelationships: + properties: + account: + description: "\n\nThe associated account. You can use only the attribute id to filter tasks by account (e.g. filter[account][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "account" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "account" + type: "string" + title: "links" + title: "account" + x-internal: false + call: + description: "\n\nThe associated call, if a call task. You can use only the attribute id to filter tasks by call (e.g. filter[call][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "call" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "call" + type: "string" + title: "links" + title: "call" + x-internal: false + calls: + description: "\n\nThe associated calls, if a call task. You can use only the attribute id to filter tasks by calls (e.g. filter[calls][id]=X)." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "call" + type: "string" + title: "links" + title: "call" + type: "array" + x-internal: false + completer: + description: "\n\nThe completer of this task. You can use only the attribute id to filter tasks by completer (e.g. filter[completer][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + creator: + description: "\n\nThe creator of this task. Relationship creator cannot be used as a filter." + oneOf: + - + description: "A descriptor of a single step within an automated sequence." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "stage" + - "user" + - "sequenceStep" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "stage" + - "user" + - "sequenceStep" + type: "string" + title: "links" + title: "sequenceStep" + - + description: "A descriptor of the point in the process, used for categorizing Prospects." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "stage" + - "user" + - "sequenceStep" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "stage" + - "user" + - "sequenceStep" + type: "string" + title: "links" + title: "stage" + - + description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "stage" + - "user" + - "sequenceStep" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "stage" + - "user" + - "sequenceStep" + type: "string" + title: "links" + title: "user" + x-internal: false + mailing: + description: "\n\nThe associated mailing, if a mailing task. You can use only the attribute id to filter tasks by mailing (e.g. filter[mailing][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "mailing" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "mailing" + type: "string" + title: "links" + title: "mailing" + x-internal: false + mailings: + description: "\n\nThe associated mailings, if a mailing task. You can use only the attribute id to filter tasks by mailings (e.g. filter[mailings][id]=X)." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "mailing" + type: "string" + title: "links" + title: "mailing" + type: "array" + x-internal: false + opportunity: + description: "\n\nThe associated opportunity. You can use only the attribute id to filter tasks by opportunity (e.g. filter[opportunity][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "opportunity" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "opportunity" + type: "string" + title: "links" + title: "opportunity" + x-internal: false + owner: + description: "The owner of this task. You can use attributes id, email and firstName to filter tasks by owner (e.g. filter[owner][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + prospect: + description: "\n\nThe associated prospect. You can use attributes id, byPersonaId, byStageId, createdAt, firstName, tags, title and updatedAt to filter tasks by prospect (e.g. filter[prospect][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "prospect" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "prospect" + type: "string" + title: "links" + title: "prospect" + x-internal: false + sequence: + description: "\n\nThe associated sequence. You can use attributes id and tags to filter tasks by sequence (e.g. filter[sequence][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "sequence" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "sequence" + type: "string" + title: "links" + title: "sequence" + x-internal: false + sequenceSequenceSteps: + description: "\n\nThe sequence steps of the associated sequence. You can use only the attribute id to filter tasks by sequenceSequenceSteps (e.g. filter[sequenceSequenceSteps][id]=X)." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "sequenceStep" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "sequenceStep" + type: "string" + title: "links" + title: "sequenceStep" + type: "array" + x-internal: false + sequenceState: + description: "\n\nThe associated sequence state. You can use only the attribute id to filter tasks by sequenceState (e.g. filter[sequenceState][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "sequenceState" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "sequenceState" + type: "string" + title: "links" + title: "sequenceState" + x-internal: false + sequenceStep: + description: "\n\nThe associated sequence step. You can use attributes id and stepType to filter tasks by sequenceStep (e.g. filter[sequenceStep][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "sequenceStep" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "sequenceStep" + type: "string" + title: "links" + title: "sequenceStep" + x-internal: false + sequenceTemplate: + description: "\n\nThe associated sequence template. You can use only the attribute id to filter tasks by sequenceTemplate (e.g. filter[sequenceTemplate][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "sequenceTemplate" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "sequenceTemplate" + type: "string" + title: "links" + title: "sequenceTemplate" + x-internal: false + subject: + description: "The task's subject, either an account or prospect. Relationship subject cannot be used as a filter." + oneOf: + - + description: "A descriptor of a person." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "account" + - "opportunity" + - "prospect" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "account" + - "opportunity" + - "prospect" + type: "string" + title: "links" + title: "prospect" + - + description: "A descriptor of a named company used to categorize prospects within an account-based sales approach." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "account" + - "opportunity" + - "prospect" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "account" + - "opportunity" + - "prospect" + type: "string" + title: "links" + title: "account" + - + description: "An opportunity for a sale or pending deal. Requires the Opportunities SKU to be enabled in order to have access. Please contact support for more assistance." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "account" + - "opportunity" + - "prospect" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "account" + - "opportunity" + - "prospect" + type: "string" + title: "links" + title: "opportunity" + x-internal: false + taskPriority: + description: "The associated task priority. You can use attributes id and name to filter tasks by taskPriority (e.g. filter[taskPriority][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "taskPriority" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "taskPriority" + type: "string" + title: "links" + title: "taskPriority" + x-internal: false + template: + description: "\n\nThe associated template. You can use only the attribute id to filter tasks by template (e.g. filter[template][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "template" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "template" + type: "string" + title: "links" + title: "template" + x-internal: false + type: "object" + taskResponse: + properties: + attributes: + $ref: "#/components/schemas/task" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/taskRelationships" + type: + type: "string" + type: "object" + x-internal: false + taskThemeRelationships: + type: "object" + team: + description: "A descriptor of a group of users." + properties: + color: + description: "\n\nThe color used to label and highlight the team." + maxLength: 255 + type: "string" + x-internal: false + createdAt: + description: " \n\nThe date and time the team was created." + format: "date-time" + type: "string" + x-internal: false + name: + description: " \n\nThe name of the team (e.g. \"SDRs\")." + maxLength: 255 + type: "string" + x-internal: false + scimExternalId: + description: "\n\nThe ID from the SCIM provisioning service used to create the team." + maxLength: 255 + type: "string" + x-internal: false + scimSource: + description: "\n\nThe name of the SCIM provisioning source used to create the team." + maxLength: 255 + type: "string" + x-internal: false + updatedAt: + description: " \n\nThe date and time the team was last updated." + format: "date-time" + type: "string" + x-internal: false + type: "object" + x-internal: false + teamMembershipRelationships: + properties: + team: + description: "The team associated with the team membership." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "team" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "team" + type: "string" + title: "links" + title: "team" + x-internal: false + user: + description: "The user associated with the team membership." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + teamRelationships: + properties: + contentCategories: + description: "The content categories that are assigned to the team. Relationship contentCategories cannot be used as a filter." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "contentCategory" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "contentCategory" + type: "string" + title: "links" + title: "contentCategory" + type: "array" + x-internal: false + creator: + description: "\n\nThe creator of the team. Relationship creator cannot be used as a filter." + oneOf: + - + description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + updater: + description: "\n\nThe most recent updater of the team. Relationship updater cannot be used as a filter." + oneOf: + - + description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + users: + description: "The users associated with the team. You can use only the attribute id to filter teams by users (e.g. filter[users][id]=X)." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + type: "array" + x-internal: false + type: "object" + teamResponse: + properties: + attributes: + $ref: "#/components/schemas/team" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/teamRelationships" + type: + type: "string" + type: "object" + x-internal: false + teamSettingsRelationships: + properties: + profile: + description: "The governance profile that is applied to the team." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "profile" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "profile" + type: "string" + title: "links" + title: "profile" + x-internal: false + team: + description: "The team the settings apply to." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "team" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "team" + type: "string" + title: "links" + title: "team" + x-internal: false + type: "object" + template: + description: "A reusable template for building emails." + properties: + archived: + description: "\n\nBoolean value indicating if the template has been archived." + type: "boolean" + x-internal: false + archivedAt: + description: " \n\nThe date and time the template was archived." + format: "date-time" + type: "string" + x-internal: false + bccRecipients: + description: "\n\nA list of default person and email address pairs to receive this template in the \"bcc\" field (e.g. [Billy Bob ``])" + items: + type: "string" + type: "array" + x-internal: false + bodyHtml: + description: "\n\nThe body HTML of the template." + maxLength: 16777215 + type: "string" + x-internal: false + bodyText: + description: "\n\nThe body text of the template." + maxLength: 16777215 + type: "string" + x-internal: false + bounceCount: + description: "\n\nThe total count of bounced mailings during this template." + type: "integer" + x-internal: false + ccRecipients: + description: "\n\nA list of default person and email address pairs to receive this template in the \"cc\" field (e.g. [Billy Bob ``])" + items: + type: "string" + type: "array" + x-internal: false + clickCount: + description: " \n\nThe total count of clicked mailings from this template." + type: "integer" + x-internal: false + createdAt: + description: " \n\nThe date and time the template was created." + format: "date-time" + type: "string" + x-internal: false + deliverCount: + description: " \n\nThe total count of delivered mailings from this template." + type: "integer" + x-internal: false + failureCount: + description: "\n\nThe total count of failed mailings from this template." + type: "integer" + x-internal: false + lastUsedAt: + description: " \n\nThe last time the template was used." + format: "date-time" + type: "string" + x-internal: false + name: + description: " \n\nThe name of the template." + maxLength: 225 + type: "string" + x-internal: false + negativeReplyCount: + description: "\n\nThe total count of negative reply mailings from this template." + type: "integer" + x-internal: false + neutralReplyCount: + description: "\n\nThe total count of neutral reply mailings from this template." + type: "integer" + x-internal: false + openCount: + description: " \n\nThe total count of opened mailings from this template." + type: "integer" + x-internal: false + optOutCount: + description: "\n\nThe total count of opted out mailings from this template." + type: "integer" + x-internal: false + positiveReplyCount: + description: "\n\nThe total count of positive reply mailings from this template." + type: "integer" + x-internal: false + replyCount: + description: " \n\nThe total count of replied mailings from this template." + type: "integer" + x-internal: false + scheduleCount: + description: "\n\nThe total count of scheduled mailings from this template." + type: "integer" + x-internal: false + shareType: + description: " \n\nThe share type must be one of \"read_only,\" \"private,\" or \"shared\"." + maxLength: 255 + type: "string" + x-internal: false + subject: + description: "\n\nThe subject line for the email to be sent." + type: "string" + x-internal: false + tags: + description: "\n\nA list of tag values associated with the template (e.g. [\"Sequencing\", \"Quick Response\"])." + items: + type: "string" + type: "array" + x-internal: false + toRecipients: + description: "\n\nA list of default person and email address pairs to receive this template in the \"to\" field (e.g. [\"Billy Bob \"])" + items: + type: "string" + type: "array" + x-internal: false + trackLinks: + description: "\n\nBoolean value indicating if link tracking is on for the template." + type: "boolean" + x-internal: false + trackOpens: + description: "\n\nBoolean value indicating if open tracking is on for the template." + type: "boolean" + x-internal: false + updatedAt: + description: " \n\nThe date and time the template was last updated." + format: "date-time" + type: "string" + x-internal: false + type: "object" + x-internal: false + templateRelationships: + properties: + contentCategoryMemberships: + description: "The content cateogories with which this template is associated. Relationship contentCategoryMemberships cannot be used as a filter." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "contentCategoryMembership" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "contentCategoryMembership" + type: "string" + title: "links" + title: "contentCategoryMembership" + type: "array" + x-internal: false + creator: + description: "\n\nThe creator of the template. You can use only the attribute id to filter templates by creator (e.g. filter[creator][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + owner: + description: "The owner of the template. You can use only the attribute id to filter templates by owner (e.g. filter[owner][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + recipients: + description: "\n\nA list of default email addresses to receive this template. You can use only the attribute id to filter templates by recipients (e.g. filter[recipients][id]=X)." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "recipient" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "recipient" + type: "string" + title: "links" + title: "recipient" + type: "array" + x-internal: false + sequenceTemplates: + description: "\n\nThe sequence templates using the template for their content. Relationship sequenceTemplates cannot be used as a filter." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "sequenceTemplate" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "sequenceTemplate" + type: "string" + title: "links" + title: "sequenceTemplate" + type: "array" + x-internal: false + updater: + description: "\n\nThe creator of the template. You can use only the attribute id to filter templates by updater (e.g. filter[updater][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + templateResponse: + properties: + attributes: + $ref: "#/components/schemas/template" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/templateRelationships" + type: + type: "string" + type: "object" + x-internal: false + user: + description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." + properties: + accountsViewId: + description: "\n\nThe default smart view to load on the account index view." + type: "integer" + x-internal: false + activityNotificationsDisabled: + description: "\n\nA boolean value whether the user's activity notifications are disabled." + type: "boolean" + x-internal: false + bounceWarningEmailEnabled: + description: "\n\nA boolean value whether the user's bounce warning emails are enabled." + type: "boolean" + x-internal: false + bridgePhone: + description: "\n\nThe telephone number of the user's outbound bridge phone." + maxLength: 255 + type: "string" + x-internal: false + bridgePhoneExtension: + description: "\n\nThe extension number of the user's outbound bridge phone." + maxLength: 255 + type: "string" + x-internal: false + callsViewId: + description: "\n\nThe default smart view to load on the calls view." + type: "integer" + x-internal: false + controlledTabDefault: + description: "\n\nThe user's preferred default tab to open when in task flow." + maxLength: 255 + type: "string" + x-internal: false + createdAt: + description: " \n\nThe date and time the user was created." + format: "date-time" + type: "string" + x-internal: false + currentSignInAt: + description: " \n\nThe date and time the user most recently signed in." + format: "date-time" + type: "string" + x-internal: false + custom1: + description: "\n\nThe value of the user's first custom field." + maxLength: 225 + type: "string" + x-internal: false + custom2: + description: "\n\nThe value of the user's second custom field." + maxLength: 225 + type: "string" + x-internal: false + custom3: + description: "\n\nThe value of the user's third custom field." + maxLength: 225 + type: "string" + x-internal: false + custom4: + description: "\n\nThe value of the user's fourth custom field." + maxLength: 225 + type: "string" + x-internal: false + custom5: + description: "\n\nThe value of the user's fifth custom field." + maxLength: 225 + type: "string" + x-internal: false + dailyDigestEmailEnabled: + description: "\n\nA boolean value whether the user's daily digest emails are enabled." + type: "boolean" + x-internal: false + defaultRulesetId: + description: "\n\nThe id of the default ruleset assigned to the user." + type: "integer" + x-internal: false + duties: + description: "\n\nA collection of the user's work roles." + type: "object" + x-internal: false + email: + description: " \n\nThe email address of the user. Cannot be updated via the API." + format: "email" + maxLength: 255 + type: "string" + x-internal: false + enableVoiceRecordings: + description: "\n\nA boolean value whether the user has voice recordings enabled." + type: "boolean" + x-internal: false + engagementEmailsEnabled: + description: "\n\nA boolean value whether the user has engagement emails enabled." + type: "boolean" + x-internal: false + firstName: + description: " \n\nThe first name of the user." + maxLength: 255 + type: "string" + x-internal: false + inboundBridgePhone: + description: "\n\nThe telephone number of the user's inbound bridge phone." + maxLength: 255 + type: "string" + x-internal: false + inboundBridgePhoneExtension: + description: "\n\nThe extension number of the user's inbound bridge phone." + maxLength: 255 + type: "string" + x-internal: false + inboundCallBehavior: + description: "\n\nThe behavior of inbound calls. Must be either \"inbound_bridge\" or \"inbound_voicemail\"." + maxLength: 255 + type: "string" + x-internal: false + inboundPhoneType: + description: "\n\nThe user's type of telephone for inbound calls. Must be either \"bridge\", \"voip\" or \"bridge_and_voip\"." + maxLength: 255 + type: "string" + x-internal: false + inboundVoicemailCustomMessageText: + description: "\n\nThe message for inbound voicemails (e.g. \"Please leave a message and I will get back to you as soon I can\")." + maxLength: 1024 + type: "string" + x-internal: false + inboundVoicemailMessageTextVoice: + description: "\n\nThe gender of the voice that reads the voicemail message. Must be either \"man\" or \"woman\"." + maxLength: 255 + type: "string" + x-internal: false + inboundVoicemailPromptType: + description: "\n\nThe type of inbound voicemail to use. Must be either \"automated\", \"recorded\", or \"off\"." + maxLength: 255 + type: "string" + x-internal: false + kaiaRecordingsViewId: + description: "\n\nThe default smart view to load on the kaia recordings view." + type: "integer" + x-internal: false + keepBridgePhoneConnected: + description: "\n\nWhether to keep the user's bridge phone connected in-between outbound calls." + type: "boolean" + x-internal: false + lastName: + description: " \n\nThe last name of the user." + maxLength: 255 + type: "string" + x-internal: false + lastSignInAt: + description: "\n\nThe date and time the user previously signed in." + format: "date-time" + type: "string" + x-internal: false + locked: + description: " \n\nA boolean value whether the user is locked out of the application." + type: "boolean" + x-internal: false + mailboxErrorEmailEnabled: + description: "\n\nA boolean value whether the user's mailbox error emails are enabled." + type: "boolean" + x-internal: false + meetingEngagementNotificationEnabled: + description: "\n\nA boolean value whether the user's meeting engagement notifications are enabled." + type: "boolean" + x-internal: false + name: + description: "\n\nThe full name of the user." + type: "string" + x-internal: false + notificationsEnabled: + description: "\n\nA boolean value whether the user's notifications are enabled." + type: "boolean" + x-internal: false + oceClickToDialEverywhere: + description: "\n\nA boolean value indicating if phone calls will launch a call from Outreach (Salesforce, Github, Gmail, LinkedIn, and Twitter)." + type: "boolean" + x-internal: false + oceGmailToolbar: + description: "\n\nA boolean value indicating whether the Outreach Gmail toolbar is enabled." + type: "boolean" + x-internal: false + oceGmailTrackingState: + description: "\n\nThe user's current email tracking settings when using Outreach Everywhere with GMail." + maxLength: 255 + type: "string" + x-internal: false + oceSalesforceEmailDecorating: + description: "\n\nA boolean value indicating if emails are enabled in Outreach Everywhere with Salesforce." + type: "boolean" + x-internal: false + oceSalesforcePhoneDecorating: + description: "\n\nA boolean value indicating if phone calls are enabled in Outreach Everywhere with Salesforce." + type: "boolean" + x-internal: false + oceUniversalTaskFlow: + description: "\n\nA boolean value indicating whether Outreach Everywhere universal task flow is enabled." + type: "boolean" + x-internal: false + oceWindowMode: + description: "\n\nA boolean value indicating whether Outreach Everywhere window mode is enabled." + type: "boolean" + x-internal: false + opportunitiesViewId: + description: "\n\nThe default smart view to load on the opportunity index view." + type: "integer" + x-internal: false + passwordExpiresAt: + description: "\n\nThe date and time the current password expires." + format: "date-time" + type: "string" + x-internal: false + phoneCountryCode: + description: "\n\nThe country code of the user's phone." + maxLength: 2 + type: "string" + x-internal: false + phoneNumber: + description: "\n\nThe telephone number of the user's phone." + type: "string" + x-internal: false + phoneType: + description: "\n\nThe user's type of telephone for outbound calls. Must be either \"bridge\" or \"voip\"." + maxLength: 255 + type: "string" + x-internal: false + pluginAlertNotificationEnabled: + description: "\n\nA boolean value whether the user's plugin related error notifications are enabled." + type: "boolean" + x-internal: false + preferredVoiceRegion: + description: "\n\nA string that represents Twilio data center used to connect to Twilio." + maxLength: 255 + type: "string" + x-internal: false + prefersLocalPresence: + description: "\n\nA boolean value whether the user prefers that a voice call comes from a local phone number." + type: "boolean" + x-internal: false + primaryTimezone: + description: "\n\nThe primary preferred timezone to use when scheduling meetings." + maxLength: 255 + type: "string" + x-internal: false + prospectsViewId: + description: "\n\nThe default smart view to load on the prospect index view." + type: "integer" + x-internal: false + reportsTeamPerfViewId: + description: "\n\nThe default smart view to load on the team performance reports view." + type: "integer" + x-internal: false + reportsViewId: + description: "\n\nThe default smart view to load on the reports view." + type: "integer" + x-internal: false + scimExternalId: + description: "\n\nThe ID from the SCIM provisioning service used to create the user." + maxLength: 255 + type: "string" + x-internal: false + scimSource: + description: "\n\nThe name of the SCIM provisioning source used to create the user." + maxLength: 255 + type: "string" + x-internal: false + secondaryTimezone: + description: "\n\nThe secondary preferred timezone to use when scheduling meetings." + maxLength: 255 + type: "string" + x-internal: false + senderNotificationsExcluded: + description: "\n\nA boolean value whether the user's sender notifications are excluded." + type: "boolean" + x-internal: false + tasksViewId: + description: "\n\nThe default smart view to load on the tasks index view." + type: "integer" + x-internal: false + teamsViewId: + description: "\n\nThe default smart view to load on the teams index view." + type: "integer" + x-internal: false + tertiaryTimezone: + description: "\n\nThe tertiary preferred timezone to use when scheduling meetings." + maxLength: 255 + type: "string" + x-internal: false + textingEmailNotifications: + description: "\n\nA boolean value whether to send the user email notifications when a text message is missed." + type: "boolean" + x-internal: false + title: + description: "\n\nThe user's job title (e.g. \"Staff Accountant\")." + maxLength: 255 + type: "string" + x-internal: false + unknownReplyEmailEnabled: + description: "\n\nA boolean value whether the user's unknown reply emails are enabled." + type: "boolean" + x-internal: false + updatedAt: + description: " \n\nThe date and time the user was last updated." + format: "date-time" + type: "string" + x-internal: false + userGuid: + description: "\n\nThe globally unique ID (GUID) assigned to the user." + type: "string" + x-internal: false + username: + description: " \n\nA reader friendly unique identifier of the user." + maxLength: 255 + type: "string" + x-internal: false + usersViewId: + description: "\n\nThe default smart view to load on the users index view." + type: "integer" + x-internal: false + voicemailNotificationEnabled: + description: "\n\nA boolean value whether the user's voicemail notifications are enabled." + type: "boolean" + x-internal: false + weeklyDigestEmailEnabled: + description: "\n\nA boolean value whether the user's weekly digest email are enabled." + type: "boolean" + x-internal: false + type: "object" + x-internal: false + userRelationships: + properties: + contentCategories: + description: "The groupings of sequences, snippets and templates that this user has access to. Relationship contentCategories cannot be used as a filter." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "contentCategory" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "contentCategory" + type: "string" + title: "links" + title: "contentCategory" + type: "array" + x-internal: false + creator: + description: "\n\nThe creator of the user. Relationship creator cannot be used as a filter." + oneOf: + - + description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + mailbox: + description: "The default mailbox associated with the user. Relationship mailbox cannot be used as a filter." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "mailbox" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "mailbox" + type: "string" + title: "links" + title: "mailbox" + x-internal: false + mailboxes: + description: "All mailboxes associated with the user. Relationship mailboxes cannot be used as a filter." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "mailbox" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "mailbox" + type: "string" + title: "links" + title: "mailbox" + type: "array" + x-internal: false + profile: + description: "The user's profile in Outreach. You can use only the attribute id to filter users by profile (e.g. filter[profile][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "profile" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "profile" + type: "string" + title: "links" + title: "profile" + x-internal: false + recipients: + description: "Recipients that will be included by default in all emails composed by user. Relationship recipients cannot be used as a filter." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "recipient" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "recipient" + type: "string" + title: "links" + title: "recipient" + type: "array" + x-internal: false + role: + description: "The role associated with the user. You can use only the attribute id to filter users by role (e.g. filter[role][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "role" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "role" + type: "string" + title: "links" + title: "role" + x-internal: false + teams: + description: "The teams the user belongs to. You can use only the attribute id to filter users by teams (e.g. filter[teams][id]=X)." + items: + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "team" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "team" + type: "string" + title: "links" + title: "team" + type: "array" + x-internal: false + updater: + description: "\n\nThe most recent updater of the user. Relationship updater cannot be used as a filter." + oneOf: + - + description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + userResponse: + properties: + attributes: + $ref: "#/components/schemas/user" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/userRelationships" + type: + type: "string" + type: "object" + x-internal: false + voicePluginRelationships: + type: "object" + voicemailPromptRelationships: + properties: + user: + description: "" + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + webhook: + description: "A configurable notification that submits external JSON-API-formatted HTTP requests whenever resources are modified." + properties: + action: + description: " \n\nThe action that will trigger this webhook (e.g. \"*\", \"created\", \"updated\", \"destroyed\"). Webhooks will only execute if both the action and resource match." + maxLength: 255 + type: "string" + x-internal: false + active: + description: " \n\nA boolean value indicating whether the webhook is active." + type: "boolean" + x-internal: false + createdAt: + description: "\n\nThe date and time the webhook was created." + format: "date-time" + type: "string" + x-internal: false + resource: + description: " \n\nThe resource that will trigger this webhook (e.g. \"*\", \"prospect\", \"sequenceState\"). Webhooks will only execute if both the action and resource match." + maxLength: 255 + type: "string" + x-internal: false + secret: + description: "\n\nA private token used to verify the authenticity of incoming webhook payloads." + maxLength: 255 + type: "string" + x-internal: false + updatedAt: + description: "\n\nThe date and time the webhook was last updated." + format: "date-time" + type: "string" + x-internal: false + url: + description: "\n\nThe URL where the webhook will route its POST HTTP request." + maxLength: 1024 + type: "string" + x-internal: false + type: "object" + x-internal: false + webhookRelationships: + properties: + authorizer: + description: "\n\nThe authorizer of the webhook. The webhook will not deliver results if the authorizer does not have permission to read the resource being returned. Relationship authorizer cannot be used as a filter." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + creator: + description: "\n\nThe creator of the webhook. You can use only the attribute id to filter webhooks by creator (e.g. filter[creator][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + updater: + description: "\n\nThe most recent updater of the webhook. You can use only the attribute id to filter webhooks by updater (e.g. filter[updater][id]=X)." + oneOf: + - + description: "This Relationship object may contain one of following properties." + properties: + data: + properties: + id: + type: "integer" + type: + enum: + - "user" + type: "string" + title: "data" + - + description: "This Relationship object may contain one of following properties." + properties: + links: + properties: + related: + enum: + - "user" + type: "string" + title: "links" + title: "user" + x-internal: false + type: "object" + webhookResponse: + properties: + attributes: + $ref: "#/components/schemas/webhook" + id: + type: "integer" + relationships: + $ref: "#/components/schemas/webhookRelationships" + type: + type: "string" + type: "object" + x-internal: false + securitySchemes: + bearerAuth: + bearerFormat: "JWT" + scheme: "bearer" + type: "http" + s2sAuthToken: + bearerFormat: "JWT" + scheme: "bearer" + type: "http" + From 2d57386f0821453581559a9dc39c228723b6ac29 Mon Sep 17 00:00:00 2001 From: Tony Xiao Date: Thu, 16 Nov 2023 14:47:25 -0800 Subject: [PATCH 02/22] feat: Adding salesloft in addition to apollo --- packages/core/package.json | 4 +- packages/core/remotes/impl/outreach/index.ts | 9 + packages/core/remotes/impl/salesloft/index.ts | 4 + .../remotes/impl/salesloft/salesloft.api.ts | 20 + .../impl/salesloft/salesloft.openapi.gen.d.ts | 7784 +++++++++++++ .../impl/salesloft/salesloft.openapi.yaml | 9868 +++++++++++++++++ 6 files changed, 17688 insertions(+), 1 deletion(-) create mode 100644 packages/core/remotes/impl/salesloft/salesloft.api.ts create mode 100644 packages/core/remotes/impl/salesloft/salesloft.openapi.gen.d.ts create mode 100644 packages/core/remotes/impl/salesloft/salesloft.openapi.yaml diff --git a/packages/core/package.json b/packages/core/package.json index d0eebbb09..26e09415e 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -67,7 +67,9 @@ "download": "concurrently 'npm:download:*'", "generate": "concurrently 'npm:generate:*'", "download:outreach": "curl --compressed https://developers.outreach.io/page-data/api/reference/overview/page-data.json | jq -r .result.data.contentItem.data.redocStoreStr | jq .definition.data | yarn json2yaml > ./remotes/impl/outreach/outreach.openapi.yaml", - "generate:outreach": "openapi-typescript ./remotes/impl/outreach/outreach.openapi.yaml --output ./remotes/impl/outreach/outreach.openapi.gen.d.ts" + "download:salesloft": "curl https://api.apis.guru/v2/specs/salesloft.com/v2/openapi.yaml > ./remotes/impl/salesloft/salesloft.openapi.yaml", + "generate:outreach": "openapi-typescript ./remotes/impl/outreach/outreach.openapi.yaml --output ./remotes/impl/outreach/outreach.openapi.gen.d.ts", + "generate:salesloft": "openapi-typescript ./remotes/impl/salesloft/salesloft.openapi.yaml --output ./remotes/impl/salesloft/salesloft.openapi.gen.d.ts" }, "files": [ "dist" diff --git a/packages/core/remotes/impl/outreach/index.ts b/packages/core/remotes/impl/outreach/index.ts index 3735e9891..51696f8c6 100644 --- a/packages/core/remotes/impl/outreach/index.ts +++ b/packages/core/remotes/impl/outreach/index.ts @@ -61,6 +61,8 @@ import { toOutreachSequenceTemplateCreateParams, toOutreachTemplateCreateParams, } from './mappers'; +import type { OutreachApi } from './outreach.api'; +import { createOutreachApi } from './outreach.api'; const OUTREACH_RECORD_LIMIT = 1000; @@ -161,10 +163,13 @@ class OutreachClient extends AbstractEngagementRemoteClient { readonly #credentials: Credentials; readonly #baseURL: string; + readonly #api: OutreachApi; + public constructor(credentials: Credentials) { super('https://api.outreach.io'); this.#baseURL = 'https://api.outreach.io'; this.#credentials = credentials; + this.#api = createOutreachApi(this.#credentials); } protected override getAuthHeadersForPassthroughRequest(): Record { @@ -1348,6 +1353,10 @@ class OutreachClient extends AbstractEngagementRemoteClient { await this.maybeRefreshAccessToken(); switch (commonObjectType) { case 'contact': + // TODO: before we do this gotta handle handle errors in the openapi client + // return await this.#api + // .GET('/prospects/{id}', { params: { path: { id: Number.parseInt(id) } } }) + // .then((response) => fromOutreachProspectToContact(response.data?.data as OutreachRecord)); return await this.#getRecord(id, '/api/v2/prospects', fromOutreachProspectToContact); case 'user': return await this.#getRecord(id, '/api/v2/users', (r: any) => fromOutreachUserToUser(r)); diff --git a/packages/core/remotes/impl/salesloft/index.ts b/packages/core/remotes/impl/salesloft/index.ts index a0c782ffc..c15295ddd 100644 --- a/packages/core/remotes/impl/salesloft/index.ts +++ b/packages/core/remotes/impl/salesloft/index.ts @@ -46,6 +46,8 @@ import { toSalesloftContactCreateParams, toSalesloftSequenceStateCreateParams, } from './mappers'; +import type { SalesloftApi } from './salesloft.api'; +import { createSalesloftApi } from './salesloft.api'; type Credentials = { accessToken: string; @@ -79,12 +81,14 @@ class SalesloftClient extends AbstractEngagementRemoteClient { readonly #credentials: Credentials; #headers: Record; readonly #baseURL: string; + readonly #api: SalesloftApi; public constructor(credentials: Credentials) { super('https://api.salesloft.com'); this.#baseURL = 'https://api.salesloft.com'; this.#credentials = credentials; this.#headers = { Authorization: `Bearer ${this.#credentials.accessToken}` }; + this.#api = createSalesloftApi(this.#credentials); } protected override getAuthHeadersForPassthroughRequest(): Record { diff --git a/packages/core/remotes/impl/salesloft/salesloft.api.ts b/packages/core/remotes/impl/salesloft/salesloft.api.ts new file mode 100644 index 000000000..18a24eb3e --- /dev/null +++ b/packages/core/remotes/impl/salesloft/salesloft.api.ts @@ -0,0 +1,20 @@ +import createClient from 'openapi-fetch'; + +import type { paths } from './salesloft.openapi.gen'; + +interface SalesloftCredentials { + accessToken: string; +} + +export type SalesloftApi = ReturnType; +export function createSalesloftApi(creds: SalesloftCredentials) { + return createClient({ + baseUrl: ' https://api.salesloft.com', + headers: { + // We use a getter here here to interoperate with maybeRefreshAccessToken + get Authorization() { + return `Bearer ${creds.accessToken}`; + }, + }, + }); +} diff --git a/packages/core/remotes/impl/salesloft/salesloft.openapi.gen.d.ts b/packages/core/remotes/impl/salesloft/salesloft.openapi.gen.d.ts new file mode 100644 index 000000000..8d8dd47d2 --- /dev/null +++ b/packages/core/remotes/impl/salesloft/salesloft.openapi.gen.d.ts @@ -0,0 +1,7784 @@ +/** + * This file was auto-generated by openapi-typescript. + * Do not make direct changes to the file. + */ + + +export interface paths { + "/v2/account_stages.json": { + /** + * List account stages + * @description Fetches multiple account stage records. The records can be filtered, paged, and sorted according to + * the respective parameters. + */ + get: { + parameters: { + query?: { + /** @description IDs of account stages to fetch. If a record can't be found, that record won't be returned and your request will be successful */ + ids?: number[]; + /** + * @description Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. + * + * ---CUSTOM--- + * {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + */ + updated_at?: string[]; + /** @description Key to sort on, must be one of: created_at, updated_at, order. Defaults to updated_at */ + sort_by?: string; + /** @description Direction to sort in, must be one of: ASC, DESC. Defaults to DESC */ + sort_direction?: string; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data */ + limit_paging_counts?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["AccountStage"][]; + }; + }; + }; + }; + }; + "/v2/account_stages/{id}.json": { + /** + * Fetch an account stage + * @description Fetches an account stage, by ID only. + */ + get: { + parameters: { + path: { + /** @description Account Stage ID */ + id: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["AccountStage"]; + }; + }; + }; + }; + }; + "/v2/account_tiers.json": { + /** + * List Account Tiers + * @description Fetches multiple account tier records. The records can be filtered, paged, and sorted according to + * the respective parameters. + */ + get: { + parameters: { + query?: { + /** @description IDs of Account Tiers to fetch. If a record can't be found, that record won't be returned and your request will be successful */ + ids?: number[]; + /** @description Filters Account Tiers by name. Multiple names can be applied */ + name?: string[]; + /** @description Key to sort on, must be one of: created_at, updated_at, order. Defaults to updated_at */ + sort_by?: string; + /** @description Direction to sort in, must be one of: ASC, DESC. Defaults to DESC */ + sort_direction?: string; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data */ + limit_paging_counts?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["AccountTier"][]; + }; + }; + }; + }; + }; + "/v2/account_tiers/{id}.json": { + /** + * Fetch an account tier + * @description Fetches an account tier, by ID only. + */ + get: { + parameters: { + path: { + /** @description Account Tier ID */ + id: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["AccountTier"]; + }; + }; + }; + }; + }; + "/v2/account_upserts.json": { + /** + * Upsert an account + * @description Upserts an account record. The upsert_key dictates how the upsert will be performed. The create and update behavior + * is exactly the same as the individual create and update endpoints. + */ + post: { + requestBody?: { + content: { + "application/x-www-form-urlencoded": { + /** @description ID of the Account Tier for this Account */ + account_tier_id?: number; + /** @description City */ + city?: string; + /** @description ID of the CompanyStage assigned to this Account */ + company_stage_id?: number; + /** @description Type of the Account's company */ + company_type?: string; + /** @description Conversational name of the Account */ + conversational_name?: string; + /** @description Country */ + country?: string; + /** + * @description Requires Salesforce. + * + * ID of the person in your external CRM. You must provide a crm_id_type if this is included. + * + * Validations will be applied to the crm_id depending on the crm_id_type. A "salesforce" ID must be exactly 18 characters. A "salesforce" ID must be either an Account (001) object. The type will be validated using the 18 character ID. + * + * This field can only be used if your application or API key has the "account:set_crm_id" scope. + */ + crm_id?: string; + /** @description The CRM that the provided crm_id is for. Must be one of: salesforce */ + crm_id_type?: string; + /** @description Custom fields are defined by the user's team. Only fields with values are presented in the API. */ + custom_fields?: Record[]; + /** @description Description */ + description?: string; + /** @description Whether this company can not be contacted. Values are either true or false. Setting this to true will remove all associated people from all active communications */ + do_not_contact?: boolean; + /** @description Website domain, not a fully qualified URI */ + domain: string; + /** @description Date or year of founding */ + founded?: string; + /** + * @description ID of the account to update. Used if the upsert_key=id. When id and another upsert_key are provided, + * the request will fail if the upsert record id and id parameter don't match. + */ + id?: number; + /** @description Industry */ + industry?: string; + /** @description Full LinkedIn url */ + linkedin_url?: string; + /** @description Time locale */ + locale?: string; + /** @description Account Full Name */ + name: string; + /** @description ID of the User that owns this Account */ + owner_id?: number; + /** @description Phone number without formatting */ + phone?: string; + /** @description Postal code */ + postal_code?: string; + /** @description Estimated revenue range */ + revenue_range?: string; + /** @description Estimated number of people in employment */ + size?: string; + /** @description State */ + state?: string; + /** @description Street name and number */ + street?: string; + /** @description All tags applied to this Account */ + tags?: string[]; + /** @description Twitter handle, with @ */ + twitter_handle?: string; + /** + * @description Name of the parameter to upsert on. The field must be provided in the input parameters, or the request will fail. + * The request will also fail if there are multiple records matched by the upsert field. + * + * If upsert_key is not provided, this endpoint will not update an existing record. + * + * Valid options are: id, crm_id, domain. If crm_id is provided, then a valid crm_id_type must be provided, as documented + * for the account create and update endpoints. + */ + upsert_key?: string; + /** @description Website */ + website?: string; + }; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["AccountUpsert"]; + }; + }; + }; + }; + }; + "/v2/accounts.json": { + /** + * List accounts + * @description Fetches multiple account records. The records can be filtered, paged, and sorted according to + * the respective parameters. + */ + get: { + parameters: { + query?: { + /** @description IDs of accounts to fetch. If a record can't be found, that record won't be returned and your request will be successful */ + ids?: number[]; + /** @description Filters accounts by crm_id. Multiple crm ids can be applied */ + crm_id?: string[]; + /** @description Filters accounts by the tags applied to the account. Multiple tags can be applied */ + tag?: string[]; + /** @description Filters accounts by the tag id's applied to the account. Multiple tag id's can be applied */ + tag_id?: number[]; + /** + * @description Equality filters that are applied to the created_at field. A single filter can be used by itself or combined with other filters to create a range. + * + * ---CUSTOM--- + * {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + */ + created_at?: string[]; + /** + * @description Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. + * + * ---CUSTOM--- + * {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + */ + updated_at?: string[]; + /** @description Domain of the accounts to fetch. Domains are unique and lowercase */ + domain?: string; + /** @description Filters accounts by website. Multiple websites can be applied. An additional value of "_is_null" can be passed to filter accounts that do not have a website. */ + website?: string[]; + /** @description Filters accounts by archived_at status. Returns only accounts where archived_at is not null if this field is true. Returns only accounts where archived_at is null if this field is false. Do not pass this parameter to return both archived and unarchived accounts. This filter is not applied if any value other than "true" or "false" is passed. */ + archived?: boolean; + /** @description Names of accounts to fetch. Name matches are exact and case sensitive. Multiple names can be fetched. */ + name?: string[]; + /** @description Filters accounts by account_stage_id. Multiple account_stage_ids can be applied. An additional value of "_is_null" can be passed to filter accounts that do not have account_stage_id */ + account_stage_id?: number[]; + /** @description Filters accounts by account_tier_id. Multiple account tier ids can be applied */ + account_tier_id?: number[]; + /** @description Filters accounts by owner_id. Multiple owner_ids can be applied. An additional value of "_is_null" can be passed to filter accounts that are unowned */ + owner_id?: string[]; + /** @description Filters accounts by whether the owner is active or not. */ + owner_is_active?: boolean; + /** + * @description Equality filters that are applied to the last_contacted field. A single filter can be used by itself or combined with other filters to create a range. + * Additional values of "_is_null" or "_is_not_null" can be passed to filter records that either have no timestamp value or any timestamp value. + * ---CUSTOM--- + * {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + */ + last_contacted?: Record; + /** @description Filters by accounts matching all given custom fields. The custom field names are case-sensitive, but the provided values are case-insensitive. Example: v2/accounts?custom_fields[custom_field_name]=custom_field_value */ + custom_fields?: Record; + /** @description Filters accounts by industry by exact match. Supports partial matching */ + industry?: string[]; + /** @description Filters accounts by country by exact match. Supports partial matching */ + country?: string[]; + /** @description Filters accounts by state by exact match. Supports partial matching */ + state?: string[]; + /** @description Filters accounts by city by exact match. Supports partial matching */ + city?: string[]; + /** @description Filters accounts by owner_crm_id. Multiple owner_crm_ids can be applied. An additional value of "_is_null" can be passed to filter accounts that are unowned. A "_not_in" modifier can be used to exclude specific owner_crm_ids. Example: v2/accounts?owner_crm_id[_not_in]=id */ + owner_crm_id?: string[]; + /** @description Filters accounts by locale. Multiple locales are allowed */ + locales?: string[]; + /** @description Filters by accounts matching all given user relationship fields, _is_null or _unmapped can be passed to filter accounts with null or unmapped user relationship values. Example: v2/accounts?user_relationships[name]=value */ + user_relationships?: Record; + /** @description Key to sort on, must be one of: created_at, updated_at, last_contacted_at, account_stage, account_stage_name, account_tier, account_tier_name, name, counts_people. Defaults to updated_at */ + sort_by?: string; + /** @description Direction to sort in, must be one of: ASC, DESC. Defaults to DESC */ + sort_direction?: string; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data */ + limit_paging_counts?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Account"][]; + }; + }; + }; + }; + /** + * Create an account + * @description Creates an account. + * + * "domain" must be unique on the current team. + */ + post: { + requestBody: { + content: { + "application/x-www-form-urlencoded": { + /** @description ID of the Account Tier for this Account */ + account_tier_id?: number; + /** @description City */ + city?: string; + /** @description ID of the CompanyStage assigned to this Account */ + company_stage_id?: number; + /** @description Type of the Account's company */ + company_type?: string; + /** @description Conversational name of the Account */ + conversational_name?: string; + /** @description Country */ + country?: string; + /** + * @description Requires Salesforce. + * + * ID of the person in your external CRM. You must provide a crm_id_type if this is included. + * + * Validations will be applied to the crm_id depending on the crm_id_type. A "salesforce" ID must be exactly 18 characters. A "salesforce" ID must be either an Account (001) object. The type will be validated using the 18 character ID. + * + * This field can only be used if your application or API key has the "account:set_crm_id" scope. + */ + crm_id?: string; + /** @description The CRM that the provided crm_id is for. Must be one of: salesforce */ + crm_id_type?: string; + /** @description Custom fields are defined by the user's team. Only fields with values are presented in the API. */ + custom_fields?: Record[]; + /** @description Description */ + description?: string; + /** @description Whether this company can not be contacted. Values are either true or false. Setting this to true will remove all associated people from all active communications */ + do_not_contact?: boolean; + /** @description Website domain, not a fully qualified URI */ + domain: string; + /** @description Date or year of founding */ + founded?: string; + /** @description Industry */ + industry?: string; + /** @description Full LinkedIn url */ + linkedin_url?: string; + /** @description Time locale */ + locale?: string; + /** @description Account Full Name */ + name: string; + /** @description ID of the User that owns this Account */ + owner_id?: number; + /** @description Phone number without formatting */ + phone?: string; + /** @description Postal code */ + postal_code?: string; + /** @description Estimated revenue range */ + revenue_range?: string; + /** @description Estimated number of people in employment */ + size?: string; + /** @description State */ + state?: string; + /** @description Street name and number */ + street?: string; + /** @description All tags applied to this Account */ + tags?: string[]; + /** @description Twitter handle, with @ */ + twitter_handle?: string; + /** @description Website */ + website?: string; + }; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Account"]; + }; + }; + }; + }; + }; + "/v2/accounts/{id}.json": { + /** + * Fetch an account + * @description Fetches an account, by ID only. + */ + get: { + parameters: { + path: { + /** @description Account ID */ + id: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Account"]; + }; + }; + }; + }; + /** + * Update an existing Account + * @description Updates an account. + * + * "domain" must be unique on the current team. + */ + put: { + parameters: { + path: { + /** @description Account ID */ + id: string; + }; + }; + requestBody: { + content: { + "application/x-www-form-urlencoded": { + /** @description ID of the Account Tier for this Account */ + account_tier_id?: number; + /** @description Whether this Account should be archived or not. Setting this to true sets archived_at to the current time if it's not already set. Setting this to false will set archived_at to null */ + archived?: boolean; + /** @description City */ + city?: string; + /** @description ID of the CompanyStage assigned to this Account */ + company_stage_id?: number; + /** @description Type of the Account's company */ + company_type?: string; + /** @description Conversational name of the Account */ + conversational_name?: string; + /** @description Country */ + country?: string; + /** + * @description Requires Salesforce. + * + * ID of the person in your external CRM. You must provide a crm_id_type if this is included. + * + * Validations will be applied to the crm_id depending on the crm_id_type. A "salesforce" ID must be exactly 18 characters. A "salesforce" ID must be either an Account (001) object. The type will be validated using the 18 character ID. + * + * This field can only be used if your application or API key has the "account:set_crm_id" scope. + */ + crm_id?: string; + /** @description The CRM that the provided crm_id is for. Must be one of: salesforce */ + crm_id_type?: string; + /** @description Custom fields are defined by the user's team. Only fields with values are presented in the API. */ + custom_fields?: Record[]; + /** @description Description */ + description?: string; + /** @description Whether this company can not be contacted. Values are either true or false. Setting this to true will remove all associated people from all active communications */ + do_not_contact?: boolean; + /** @description Website domain, not a fully qualified URI */ + domain: string; + /** @description Date or year of founding */ + founded?: string; + /** @description Industry */ + industry?: string; + /** @description Full LinkedIn url */ + linkedin_url?: string; + /** @description Time locale */ + locale?: string; + /** @description Account Full Name */ + name: string; + /** @description ID of the User that owns this Account */ + owner_id?: number; + /** @description Phone number without formatting */ + phone?: string; + /** @description Postal code */ + postal_code?: string; + /** @description Estimated revenue range */ + revenue_range?: string; + /** @description Estimated number of people in employment */ + size?: string; + /** @description State */ + state?: string; + /** @description Street name and number */ + street?: string; + /** @description All tags applied to this Account */ + tags?: string[]; + /** @description Twitter handle, with @ */ + twitter_handle?: string; + /** @description Website */ + website?: string; + }; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Account"]; + }; + }; + }; + }; + /** + * Delete an account + * @description Deletes an account. This operation is not reversible without contacting support. + * This operation can be called multiple times successfully. + * + * Deleting an account will remove all connected people from that account. + */ + delete: { + parameters: { + path: { + /** @description Account ID */ + id: string; + }; + }; + responses: { + /** @description The Account has been deleted successfully */ + 204: { + content: never; + }; + }; + }; + }; + "/v2/action_details/call_instructions.json": { + /** + * List call instructions + * @description Fetches multiple call instruction records. The records can be filtered, paged, and sorted according to + * the respective parameters. + */ + get: { + parameters: { + query?: { + /** @description IDs of call instructions to fetch. */ + ids?: number[]; + /** @description Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at */ + sort_by?: string; + /** @description Direction to sort in, must be one of: ASC, DESC. Defaults to DESC */ + sort_direction?: string; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data */ + limit_paging_counts?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["CallInstruction"][]; + }; + }; + }; + }; + }; + "/v2/action_details/call_instructions/{id}.json": { + /** + * Fetch a call instructions + * @description Fetches a call instruction, by ID only. + */ + get: { + parameters: { + path: { + /** @description Call instructions ID */ + id: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["CallInstruction"]; + }; + }; + }; + }; + }; + "/v2/actions.json": { + /** + * List actions + * @description Fetches multiple action records. The records can be filtered, paged, and sorted according to + * the respective parameters. Only actions that are currently "in_progess" will be returned by + * this endpoint. + * + * If the requester is not an admin, this endpoint will only return actions belonging to the requester. + * If the request is an admin, this endpoint will return actions for the entire team. Additionaly, an admin + * may use the user_guid parameter to request actions that belong to specific users on the team. + */ + get: { + parameters: { + query?: { + /** @description IDs of actions to fetch. */ + ids?: number[]; + /** @description Fetch actions by step ID */ + step_id?: number; + /** @description Filter actions by type */ + type?: string; + /** + * @description Equality filters that are applied to the due_on field. A single filter can be used by itself or combined with other filters to create a range. + * + * ---CUSTOM--- + * {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + */ + due_on?: string[]; + /** @description Filters actions by the user's guid. Multiple user guids can be applied. The user must be a team admin to filter other users' actions */ + user_guid?: string[]; + /** @description Filters actions by person_id. Multiple person ids can be applied */ + person_id?: number[]; + /** @description Filters actions by cadence_id. Multiple cadence ids can be applied */ + cadence_id?: number[]; + /** @description Filters actions by multitouch_group_id. Multiple multitouch group ids can be applied */ + multitouch_group_id?: number[]; + /** + * @description Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. + * + * ---CUSTOM--- + * {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + */ + updated_at?: string[]; + /** @description Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at */ + sort_by?: string; + /** @description Direction to sort in, must be one of: ASC, DESC. Defaults to DESC */ + sort_direction?: string; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data */ + limit_paging_counts?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Action"][]; + }; + }; + }; + }; + }; + "/v2/actions/{id}.json": { + /** + * Fetch an action + * @description Fetches an action, by ID only. + * This endpoint will only return actions that are in_progress or pending_activity. + * Once an action is complete, the request for that action will return a 404 status code. + */ + get: { + parameters: { + path: { + /** @description Action ID */ + id: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Action"]; + }; + }; + }; + }; + }; + "/v2/activities.json": { + /** + * Create an activity + * @description Creates an activity. An activity will mark the associated action as completed. Currently, + * only certain action types can have an activity explicitly created for them. + */ + post: { + requestBody?: { + content: { + "application/x-www-form-urlencoded": { + /** + * @description Action that is being completed. This will validate that the action is still + * valid before completed it. The same action can never be successfully passed twice to this endpoint. + * The action must have a type of 'integration'. + */ + action_id?: number; + /** + * @description Task that is being completed. This will validate that the task is still + * valid before completed it. The same action can never be successfully passed twice to this endpoint. + * The task must have a type of 'integration'. + */ + task_id?: number; + }; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Activity"]; + }; + }; + }; + }; + }; + "/v2/activities/calls.json": { + /** + * List calls + * @description Fetches multiple call records. The records can be filtered, paged, and sorted according to + * the respective parameters. + */ + get: { + parameters: { + query?: { + /** @description IDs of calls to fetch. If a record can't be found, that record won't be returned and your request will be successful */ + ids?: number[]; + /** + * @description Equality filters that are applied to the created_at field. A single filter can be used by itself or combined with other filters to create a range. + * + * ---CUSTOM--- + * {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + */ + created_at?: string[]; + /** + * @description Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. + * + * ---CUSTOM--- + * {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + */ + updated_at?: string[]; + /** @description Filters list to only include guids */ + user_guid?: string[]; + /** @description Filters calls by person_id. Multiple person ids can be applied */ + person_id?: number[]; + /** @description Filters calls by sentiment. Sentiment matches are exact and case sensitive. Multiple sentiments are allowed. */ + sentiment?: string[]; + /** @description Filters calls by disposition. Disposition matches are exact and case sensitive. Multiple dispositions are allowed. */ + disposition?: string[]; + /** @description Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at */ + sort_by?: string; + /** @description Direction to sort in, must be one of: ASC, DESC. Defaults to DESC */ + sort_direction?: string; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data */ + limit_paging_counts?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Call"][]; + }; + }; + }; + }; + /** + * Create a call + * @description Creates a call. The parameters of this endpoint can be used to create an action + * and ensure that the CRM Task is mapped correctly. + */ + post: { + requestBody: { + content: { + "application/x-www-form-urlencoded": { + /** + * @description Action that this call is being logged for. This will validate that the action is still + * valid before completing it. The same action can never be successfully passed twice to this endpoint. The + * action must have a type of 'phone'. + */ + action_id?: number; + /** + * @description CRM specific parameters. Some parameters are required on a per-team basis. Consume the + * CrmActivityFields endpoint to receive a list of valid parameters. The "field" property + * is passed as the key of this object, and the value of this object is the value that you + * would like to set. + * + * If CrmActivityField has a non-null value, then that value must be submitted, or excluded + * from API calls, as these values are automatically applied. + */ + crm_params?: Record; + /** @description The disposition of the call. Can be required on a per-team basis. Must be present in the disposition list. */ + disposition?: string; + /** @description The length of the call, in seconds */ + duration?: number; + /** + * @description CallDataRecord associations that will become linked to the created call. It is possible to pass + * multiple CallDataRecord ids in this field; this can be used to represent multiple phone calls + * that made up a single call. + * + * Any call data record that is used must not already be linked to a call. It is not possible + * to link a call data record to multiple calls, and it is not possible to re-assign a call data + * record to a different call. + */ + linked_call_data_record_ids?: number[]; + /** @description Notes to log for the call. This is similar to the notes endpoint, but ensures that the notes get synced to the user's CRM */ + notes?: string; + /** @description The ID of the person whom this call will be logged for */ + person_id: number; + /** @description The sentiment of the call. Can be required on a per-team basis. Must be present in the sentiment list. */ + sentiment?: string; + /** @description The phone number that was called */ + to?: string; + /** @description Guid of the user whom this call should be logged for. Defaults to the authenticated user. Only team admins can pass another user's guid */ + user_guid?: string; + }; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Call"]; + }; + }; + }; + }; + }; + "/v2/activities/calls/{id}.json": { + /** + * Fetch a call + * @description Fetches a call, by ID only. + */ + get: { + parameters: { + path: { + /** @description Call ID */ + id: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Call"]; + }; + }; + }; + }; + }; + "/v2/activities/emails.json": { + /** + * List emails + * @description Fetches multiple email records. The records can be filtered, paged, and sorted according to + * the respective parameters. + */ + get: { + parameters: { + query?: { + /** @description IDs of emails to fetch. If a record can't be found, that record won't be returned and your request will be successful */ + ids?: number[]; + /** + * @description Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. + * + * ---CUSTOM--- + * {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + */ + updated_at?: string[]; + /** @description Filters emails by whether they have bounced or not */ + bounced?: boolean; + /** @description Filters emails by crm_activity_id. Multiple crm activty ids can be applied */ + crm_activity_id?: number[]; + /** @description Filters emails by action_id. Multiple action ids can be applied */ + action_id?: number[]; + /** @description Filters emails by user_id. Multiple User ids can be applied */ + user_id?: number[]; + /** @description Filters emails by status. Multiple status can be applied, possible values are sent, sent_from_gmail, sent_from_external, pending, pending_reply_check, scheduled, sending, delivering, failed, cancelled, pending_through_gmail, pending_through_external */ + status?: string[]; + /** @description Filters emails by cadence. Multiple cadence ids can be applied */ + cadence_id?: number[]; + /** @description Filters emails by step. Multiple step ids can be applied */ + step_id?: number[]; + /** @description Filters emails by one-off only */ + one_off?: boolean; + /** @description Specify explicit scoped fields desired on the Email Resource. */ + scoped_fields?: string[]; + /** @description Filters emails by person_id. Multiple person ids can be applied */ + person_id?: number[]; + /** @description Filters emails by recipient email address. Multiple emails can be applied. */ + email_addresses?: string[]; + /** @description Filters emails by personalization score */ + personalization?: string[]; + /** + * @description Equality filters that are applied to the sent_at field. A single filter can be used by itself or combined with other filters to create a range. + * + * ---CUSTOM--- + * {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + */ + sent_at?: string[]; + /** @description Key to sort on, must be one of: updated_at, send_time. Defaults to updated_at */ + sort_by?: string; + /** @description Direction to sort in, must be one of: ASC, DESC. Defaults to DESC */ + sort_direction?: string; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data */ + limit_paging_counts?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Email"][]; + }; + }; + }; + }; + }; + "/v2/activities/emails/{id}.json": { + /** + * Fetch an email + * @description Fetches an email, by ID only. + */ + get: { + parameters: { + path: { + /** @description Email ID */ + id: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Email"]; + }; + }; + }; + }; + }; + "/v2/activity_histories": { + /** + * List Past Activities + * @description Fetches all of the customer's past activities for your application. Returns all the Activities that are found on the Salesloft Activity Feed. Visit here for more details. + */ + get: { + parameters: { + query?: { + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Key to sort on, must be one of: occurred_at, updated_at. Defaults to occurred_at */ + sort_by?: string; + /** @description Direction to sort in, must be one of: ASC, DESC. Defaults to DESC */ + sort_direction?: string; + /** @description Filter by the type of activity. Must be one of: added_to_cadence, completed_action, call, requested_email, sent_email, received_email, email_reply, note, success, dnc_event, residency_change, meeting, meeting_held, message_conversation, task, voicemail, opportunity_stage_change, opportunity_amount_change, opportunity_close_date_change. Can be provided as an array, or as an object of type[resource_type][]=type */ + type?: string; + /** @description For internal use only. This field does not comply with our backwards compatibility policies. This filter is for authenticated users of Salesloft only and will not work for OAuth Applications. Filter by the {resource_type, resource_id} of activity. Provide this in the format resource[]=person,1234 */ + _resource?: string; + /** + * @description Equality filters that are applied to the occurred_at field. A single filter can be used by itself or combined with other filters to create a range. + * ---CUSTOM--- + * {"keys":[{"description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"gt","type":"iso8601 string"},{"description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"gte","type":"iso8601 string"},{"description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"lt","type":"iso8601 string"},{"description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"lte","type":"iso8601 string"}],"type":"object"} + */ + occurred_at?: Record; + /** @description Filter by the pinned status of activity. Must be 'true' or 'false' */ + pinned?: boolean; + /** @description Filter by the resource type. A resource is a Salesloft object that the activity is attributed to. A valid resource types must be one of person, account, crm_opportunity. Can be provided as an array */ + resource_type?: string; + /** @description Filter by the resource id. "resource_type" filter is required to use this filter. */ + resource_id?: string[]; + /** + * @description Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. + * ---CUSTOM--- + * {"keys":[{"description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"gt","type":"iso8601 string"},{"description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"gte","type":"iso8601 string"},{"description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"lt","type":"iso8601 string"},{"description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"lte","type":"iso8601 string"}],"type":"object"} + */ + updated_at?: Record; + /** @description Filter activities by a user's guid. */ + user_guid?: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["ActivityHistory"]; + }; + }; + }; + }; + }; + "/v2/bulk_jobs": { + /** + * List bulk jobs + * @description Fetches multiple bulk job records. The records can be filtered, paged, and sorted according to the respective parameters. + */ + get: { + parameters: { + query?: { + /** @description The state of the bulk job. Accepts multiple states. Each state must be one of: open, executing, done */ + state?: string[]; + /** @description Filter by id using comparison operators. Only supports greater than (gt) comparison (i.e. id[gt]=123) */ + id?: Record; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["BulkJob"][]; + }; + }; + }; + }; + /** + * Create a bulk job + * @description Creates a bulk job. The type of the bulk job must be included when created. + * + * For additional information on creating bulk jobs, the types of supported bulk jobs, and examples of the bulk job flow, visit the bulk job details page. + */ + post: { + requestBody?: { + content: { + "application/x-www-form-urlencoded": { + /** @description Name for your bulk job */ + name?: string; + /** @description Type of bulk job. Must be a valid type. Follow link to the bulk job details page above to view supported types. */ + type: string; + }; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["BulkJob"]; + }; + }; + }; + }; + }; + "/v2/bulk_jobs/{bulk_jobs_id}/job_data": { + /** + * List job data for a bulk job + * @description Fetches multiple job data records for a given bulk job. Pagination is not supported, but cursor based polling is via use of the `id[gt]` filter. Pass the last id seen (i.e. `id[gt]=1234`) in order to get the next batch of records. + */ + get: { + parameters: { + query?: { + /** @description Filter by result status. Accepts multiple statuses. Each status must be one of pending, success, error, retrying */ + status?: string[]; + /** @description Filter by id using comparison operators. Only supports greater than (gt) comparison (i.e. id[gt]=123) */ + id?: Record; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + }; + path: { + /** @description The id for the bulk job to which the job data relates */ + bulk_jobs_id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["BulkJobResult"][]; + }; + }; + }; + }; + /** + * Create job data for a bulk job + * @description Upload job data for the specified bulk job. Upload an array of objects, where element contains the parameters necessary to execute the individual calls. Each call to this endpoint can handle up to 5,000 records at a time. There is no limit to how many times you can create job data for a given bulk job. + * + * For additional information on creating bulk jobs, the types of supported bulk jobs, and examples of the bulk job flow, visit the bulk job details page. + */ + post: { + parameters: { + path: { + /** @description The id for the bulk job to which the job data relates */ + bulk_jobs_id: number; + }; + }; + requestBody: { + content: { + "application/x-www-form-urlencoded": { + /** @description Array of objects containing parameters to be used to execute an instance of each. Array must be 5,000 records or less. */ + data: string[]; + }; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["JobDataCreationResult"]; + }; + }; + }; + }; + }; + "/v2/bulk_jobs/{bulk_jobs_id}/results": { + /** + * List job data for a completed bulk job. + * @description Fetches multiple job data records for a completed bulk job. Note that until a bulk job's state is set to `done` the returned `data` will be an empty array. Pagination is not supported, but cursor based polling is via use of the `id[gt]` filter. Pass the last id seen (i.e. `id[gt]=1234`) in order to get the next batch of records. + */ + get: { + parameters: { + query?: { + /** @description Filter by result status. Accepts multiple statuses. Each status must be one of pending, success, error, retrying */ + status?: string[]; + /** @description Filter by id using comparison operators. Only supports greater than (gt) comparison (i.e. id[gt]=123) */ + id?: Record; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + }; + path: { + /** @description The id for the Bulk Job */ + bulk_jobs_id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["BulkJobResult"][]; + }; + }; + }; + }; + }; + "/v2/bulk_jobs/{id}": { + /** + * Fetch a bulk job + * @description Fetches a bulk job, by ID only. + */ + get: { + parameters: { + path: { + /** @description The id for the Bulk Job */ + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["BulkJob"]; + }; + }; + }; + }; + /** + * Update a bulk job + * @description Updates a bulk job's name and / or marks a bulk job as 'ready_to_execute'. May only be updated if the bulk job is still in an "open" state. + * + * For additional information on creating bulk jobs, the types of supported bulk jobs, and examples of the bulk job flow, visit the bulk job details page. + */ + put: { + parameters: { + path: { + /** @description The id for the bulk job to which the job data relates */ + id: number; + }; + }; + requestBody?: { + content: { + "application/x-www-form-urlencoded": { + /** @description Name for your bulk job */ + name?: string; + /** @description Whether the job is ready to be executed. Must be true or false. */ + ready_to_execute?: boolean; + }; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["BulkJob"]; + }; + }; + }; + }; + }; + "/v2/cadence_exports/{id}.json": { + /** + * Export a cadence + * @description Exports a cadence as JSON. + */ + get: { + parameters: { + path: { + /** @description Cadence ID */ + id: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["CadenceExport"]; + }; + }; + }; + }; + }; + "/v2/cadence_imports.json": { + /** + * Import cadences from JSON + * @description New cadences can be created or steps can be imported onto existing cadences which do not have steps. + * Visit here for more details. + */ + post: { + requestBody?: { + content: { + "application/x-www-form-urlencoded": { + /** @description Import data for cadence */ + cadence_content?: Record; + /** @description Settings for a cadence */ + settings?: Record; + /** @description The shared settings for a cadence */ + sharing_settings?: Record; + }; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["CadenceImport"]; + }; + }; + }; + }; + }; + "/v2/cadence_memberships.json": { + /** + * List cadence memberships + * @description Fetches multiple cadence membership records. The records can be filtered, paged, and sorted according to + * the respective parameters. A cadence membership is the association between a person and their current and + * historical time on a cadence. Cadence membership records are mutable and change over time. If a person is + * added to a cadence and re-added to the same cadence in the future, there is a single membership record. + */ + get: { + parameters: { + query?: { + /** @description IDs of cadence memberships to fetch. If a record can't be found, that record won't be returned and your request will be successful */ + ids?: number[]; + /** @description ID of the person to find cadence memberships for */ + person_id?: number; + /** @description ID of the cadence to find cadence memberships for */ + cadence_id?: number; + /** + * @description Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. + * + * ---CUSTOM--- + * {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + */ + updated_at?: string[]; + /** @description If true, return only cadence memberships for people currently on cadences. If false, return cadence memberships for people who have been removed from or have completed a cadence. */ + currently_on_cadence?: boolean; + /** @description Key to sort on, must be one of: added_at, updated_at. Defaults to updated_at */ + sort_by?: string; + /** @description Direction to sort in, must be one of: ASC, DESC. Defaults to DESC */ + sort_direction?: string; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data */ + limit_paging_counts?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["CadenceMembership"][]; + }; + }; + }; + }; + /** + * Create a cadence membership + * @description Adds a person to a cadence. person_id and cadence_id are required, and must be visible to the authenticated user. user_id will + * default to the authenticated user, but can be set to any visible user on the authenticated team. + * + * A person cannot be added to a cadence on behalf of a teammate unless the cadence is a team cadence, the cadence is owned by + * the teammate, or the teammate has the Personal Cadence Admin permission. + */ + post: { + parameters: { + query: { + /** @description ID of the person to create a cadence membership for */ + person_id: number; + /** @description ID of the cadence to create a cadence membership for */ + cadence_id: number; + /** @description ID of the user to create a cadence membership for. The associated cadence must be owned by the user, or it must be a team cadence */ + user_id?: number; + /** @description ID of the step on which the person should start the cadence. Start on first step is the default behavior without this parameter. */ + step_id?: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["CadenceMembership"]; + }; + }; + }; + }; + }; + "/v2/cadence_memberships/{id}.json": { + /** + * Fetch a cadence membership + * @description Fetches a cadence membership, by ID only. + */ + get: { + parameters: { + path: { + /** @description CadenceMembership ID */ + id: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["CadenceMembership"]; + }; + }; + }; + }; + /** + * Delete a cadence membership + * @description Cadence Membership + */ + delete: { + parameters: { + path: { + /** @description CadenceMembership ID */ + id: string; + }; + }; + responses: { + /** @description The person has been removed from the cadence successfully */ + 204: { + content: never; + }; + }; + }; + }; + "/v2/cadences.json": { + /** + * List cadences + * @description Fetches multiple cadence records. The records can be filtered, paged, and sorted according to + * the respective parameters. + */ + get: { + parameters: { + query?: { + /** @description IDs of cadences to fetch. If a record can't be found, that record won't be returned and your request will be successful */ + ids?: number[]; + /** + * @description Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. + * + * ---CUSTOM--- + * {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + */ + updated_at?: string[]; + /** @description Filters cadences by whether they are a team cadence or not */ + team_cadence?: boolean; + /** @description Filters cadences by whether they are shared */ + shared?: boolean; + /** @description Filters cadences by the owner's guid. Multiple owner guids can be applied */ + owned_by_guid?: string[]; + /** @description Filters cadences by whether they are able to have people added to them */ + people_addable?: boolean; + /** @description Filters cadences by name */ + name?: string[]; + /** @description Filters by group ids. Also supports group ids passed in as a JSON array string */ + group_ids?: string; + /** @description Filters by whether the Cadences have been archived. Excluding this field will result in both archived and unarchived Cadences to return. */ + archived?: boolean; + /** @description Key to sort on, must be one of: created_at, updated_at, name. Defaults to updated_at */ + sort_by?: string; + /** @description Direction to sort in, must be one of: ASC, DESC. Defaults to DESC */ + sort_direction?: string; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data */ + limit_paging_counts?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Cadence"][]; + }; + }; + }; + }; + }; + "/v2/cadences/{id}.json": { + /** + * Fetch a cadence + * @description Fetches a cadence, by ID only. + */ + get: { + parameters: { + path: { + /** @description Cadence ID */ + id: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Cadence"]; + }; + }; + }; + }; + }; + "/v2/calendar/events": { + /** + * List calendar events + * @description Returns all calendar events, paginated and filtered by the date. + */ + get: { + parameters: { + query?: { + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Key to sort on, must be one of: start_time. Defaults to start_time */ + sort_by?: string; + /** @description Direction to sort in, must be one of: ASC, DESC. Defaults to DESC */ + sort_direction?: string; + /** + * @description Lower bound (inclusive) for a calendar event's end time to filter by. + * Must be in ISO 8601 format. + * + * Example: `2022-02-14T10:12:59+00:00`. + */ + start_time?: string; + /** + * @description Upper bound (exclusive) for a calendar event's start time to filter by. + * Must be in ISO 8601 format. + * + * Example: `2022-02-14T10:12:59+00:00`. + */ + end_time?: string; + /** @description user_guid of the user who created or included as a guest to the event. */ + user_guid?: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["CalendarEvent"][]; + }; + }; + }; + }; + }; + "/v2/calendar/events/upsert": { + /** + * Upsert a calendar event + * @description Upserts a calendar event object. + * Upsert key is a combination of `id` and `i_cal_uid` scoped to the given `calendar_id`. + * Bulk operations: + * This endpoint is used for bulk operations, see https://developers.salesloft.com/bulk.html for integration instructions. + * Use `calendar/events/upsert` as an event type, and this spec as a data spec. + * This endpoint should be used directly for the time sensitive calendar event updates. + */ + post: { + requestBody: { + content: { + "application/x-www-form-urlencoded": { + /** @description Should be set to `true` for all day calendar events. */ + all_day?: boolean; + /** + * @description List of attendees of the calendar event. + * Example: + * ``` + * { + * ... + * "attendees": [ + * { + * "name": "Alice", + * "email": "alice@example.com", + * "status": "accepted", + * "organizer": true + * }, + * { + * "name": "Bob", + * "email": "bob@example.com", + * "status": "needsAction", + * "organizer": false + * } + * ] + * } + * ``` + * `name`: full name of the attendee + * + * `email`: email address of the attendee + * + * `status`: one of the following - needsAction, accepted, tentative, declined + * + * `organizer`: whether the attendee is the organizer of the calendar event + */ + attendees?: Record; + /** + * @description Calendar ID of the calendar event owner. + * For the External Calendar connection use `external_{salesloft_user_guid}` format. + * Example: `external_00210d1a-df8a-459f-af75-89b953b618b0`. + */ + calendar_id: string; + /** + * @description Cancellation time of the calendar event, as a combined date-time value in the ISO 8601 format with a time zone offset. + * Example: `2022-02-14T10:12:59+00:00`. + */ + canceled_at?: string; + /** @description Description of the calendar event */ + description?: string; + /** + * Format: date + * @description End time of the calendar event, as a combined date-time value in the ISO 8601 format with a time zone offset. + * Example: `2022-02-14T10:12:59+00:00`. + */ + end_time: string; + /** + * @description icalUID of the calendar event. Unique identifier for a calendar event across calendars. + * + * Used as an upsert key. + */ + i_cal_uid: string; + /** + * @description Id of the calendar event, different for each occurrence in a recurring series. + * + * Used as an upsert key. + */ + id: string; + /** @description Location of the calendar event as free-form text. */ + location?: string; + /** @description Email address of the organizer */ + organizer?: string; + /** @description Should be set to `true` if this is one of recurring series calendar event. */ + recurring?: boolean; + /** + * Format: date + * @description Start time of the calendar event, as a combined date-time value in the ISO 8601 format with a time zone offset. + * Example: `2022-02-14T10:12:59+00:00`. + */ + start_time: string; + /** + * @description Status of the calendar event. Depending on the status, the calendar event will or will not impact user's availability. + * Possible values: `confirmed`, `tentative`, `cancelled`. + * Example: `confirmed`. + */ + status?: string; + /** @description Title of the calendar event */ + title?: string; + }; + }; + }; + responses: { + /** @description Success */ + 201: { + content: { + "*/*": components["schemas"]["CalendarEvent"]; + }; + }; + }; + }; + }; + "/v2/call_data_records.json": { + /** + * List call data records + * @description Fetches multiple call data records. The records can be filtered, paged, and sorted according to + * the respective parameters. + * + * Call data records are records of all inbound and outbound calls through Salesloft. A call data record may + * be associated with a call, but does not have to be. + */ + get: { + parameters: { + query?: { + /** @description IDs of call data records to fetch. If a record can't be found, that record won't be returned and your request will be successful */ + ids?: number[]; + /** @description Return only call data records which have or do not have a call logged for them */ + has_call?: boolean; + /** + * @description Equality filters that are applied to the created_at field. A single filter can be used by itself or combined with other filters to create a range. + * + * ---CUSTOM--- + * {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + */ + created_at?: string[]; + /** + * @description Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. + * + * ---CUSTOM--- + * {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + */ + updated_at?: string[]; + /** @description Filters list to only include guids */ + user_guid?: string[]; + /** @description Filters list by person_id. Multiple person ids can be applied */ + person_id?: number[]; + /** @description Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at */ + sort_by?: string; + /** @description Direction to sort in, must be one of: ASC, DESC. Defaults to DESC */ + sort_direction?: string; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data */ + limit_paging_counts?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["CallDataRecord"][]; + }; + }; + }; + }; + }; + "/v2/call_data_records/{id}.json": { + /** + * Fetch a call data record + * @description Fetches a call data record, by ID only. + */ + get: { + parameters: { + path: { + /** @description CallDataRecord ID */ + id: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["CallDataRecord"]; + }; + }; + }; + }; + }; + "/v2/call_dispositions.json": { + /** + * List call dispositions + * @description Fetches multiple call disposition records. The records can be sorted according to + * the respective parameters. Call dispositions must be configured in application. This will + * change in the future, but please contact us if you have a pressing use case. + */ + get: { + parameters: { + query?: { + /** @description Key to sort on, must be one of: name, updated_at. Defaults to name */ + sort_by?: string; + /** @description Direction to sort in, must be one of: ASC, DESC. Defaults to ASC */ + sort_direction?: string; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data */ + limit_paging_counts?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["CallDisposition"][]; + }; + }; + }; + }; + }; + "/v2/call_sentiments.json": { + /** + * List call sentiments + * @description Fetches multiple call sentiment records. The records can be sorted according to + * the respective parameters. Call sentiments must be configured in application. This will + * change in the future, but please contact us if you have a pressing use case. + */ + get: { + parameters: { + query?: { + /** @description Filters call sentiments by name */ + name?: string; + /** @description Key to sort on, must be one of: name, updated_at. Defaults to name */ + sort_by?: string; + /** @description Direction to sort in, must be one of: ASC, DESC. Defaults to ASC */ + sort_direction?: string; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data */ + limit_paging_counts?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["CallSentiment"][]; + }; + }; + }; + }; + }; + "/v2/conversations/calls": { + /** + * Create Conversations Call + * @description Enqueue a Conversations Call for processing + */ + post: { + requestBody: { + content: { + "application/x-www-form-urlencoded": { + /** @description Timestamp for when the call started. If not provided, will default to the time the request was received */ + call_created_at?: string; + /** @description Call direction */ + direction?: string; + /** @description Duration of call in seconds */ + duration: number; + /** @description Phone number that call was made from */ + from: string; + /** @description Object containing recording info including the audio file (.mp3, .wav, .ogg, .m4a) */ + recording: Record; + /** @description Phone number that was called */ + to: string; + /** @description Guid of the Salesloft User to assign the call to. If not provided, will default to the user within the authentication token */ + user_guid?: string; + }; + }; + }; + responses: { + /** @description Success */ + 201: { + content: { + "*/*": components["schemas"]["ConversationsCall"]; + }; + }; + }; + }; + }; + "/v2/crm_activities.json": { + /** + * List crm activities + * @description Fetches multiple crm activity records. The records can be filtered, paged, and sorted according to + * the respective parameters. + */ + get: { + parameters: { + query?: { + /** @description IDs of crm activities to fetch. */ + ids?: number[]; + /** + * @description Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. + * + * ---CUSTOM--- + * {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + */ + updated_at?: string[]; + /** @description Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at */ + sort_by?: string; + /** @description Direction to sort in, must be one of: ASC, DESC. Defaults to DESC */ + sort_direction?: string; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data */ + limit_paging_counts?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["CrmActivity"][]; + }; + }; + }; + }; + }; + "/v2/crm_activities/{id}.json": { + /** + * Fetch a crm activity + * @description Fetches a crm activity, by ID only. + */ + get: { + parameters: { + path: { + /** @description Crm activity ID */ + id: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["CrmActivity"]; + }; + }; + }; + }; + }; + "/v2/crm_activity_fields.json": { + /** + * List crm activity fields + * @description Fetches multiple crm activity field records. The records can be filtered, paged, and sorted according to + * the respective parameters. + */ + get: { + parameters: { + query?: { + /** @description Return only records with this source */ + source?: string; + /** @description Key to sort on, must be one of: title, updated_at. Defaults to title */ + sort_by?: string; + /** @description Direction to sort in, must be one of: ASC, DESC. Defaults to ASC */ + sort_direction?: string; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data */ + limit_paging_counts?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["CrmActivityField"][]; + }; + }; + }; + }; + }; + "/v2/crm_users.json": { + /** + * List crm users + * @description Crm Users + */ + get: { + parameters: { + query?: { + /** @description IDs of crm users to fetch. If a record can't be found, that record won't be returned and your request will be successful */ + ids?: number[]; + /** @description Filters crm users by crm_ids */ + crm_id?: string[]; + /** @description Filters crm users by user_ids */ + user_id?: number[]; + /** @description Filters crm users by user guids */ + user_guid?: string[]; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data */ + limit_paging_counts?: boolean; + /** @description Key to sort on, must be one of: id, updated_at. Defaults to id */ + sort_by?: string; + /** @description Direction to sort in, must be one of: ASC, DESC. Defaults to DESC */ + sort_direction?: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["CrmUser"][]; + }; + }; + }; + }; + }; + "/v2/custom_fields.json": { + /** + * List custom fields + * @description Fetches multiple custom field records. The records can be filtered, paged, and sorted according to + * the respective parameters. + */ + get: { + parameters: { + query?: { + /** @description IDs of custom fields to fetch. */ + ids?: number[]; + /** @description Type of field to fetch. Value must be one of: person, company, opportunity */ + field_type?: string; + /** @description Key to sort on, must be one of: created_at, updated_at, name. Defaults to updated_at */ + sort_by?: string; + /** @description Direction to sort in, must be one of: ASC, DESC. Defaults to DESC */ + sort_direction?: string; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data */ + limit_paging_counts?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["CustomField"][]; + }; + }; + }; + }; + /** + * Create a custom field + * @description Creates a custom field. + */ + post: { + requestBody: { + content: { + "application/x-www-form-urlencoded": { + /** @description The field type of the custom field. Value must be one of: person, company, opportunity */ + field_type?: string; + /** @description The name of the custom field */ + name: string; + }; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["CustomField"]; + }; + }; + }; + }; + }; + "/v2/custom_fields/{id}.json": { + /** + * Fetch a custom field + * @description Fetches a custom field, by ID only. + */ + get: { + parameters: { + path: { + /** @description Custom Field ID */ + id: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["CustomField"]; + }; + }; + }; + }; + /** + * Update a custom field + * @description Update a custom field. + */ + put: { + parameters: { + path: { + /** @description Custom Field ID */ + id: string; + }; + }; + requestBody?: { + content: { + "application/x-www-form-urlencoded": { + /** @description The field type of the custom field. Value must be one of: person, company, opportunity */ + field_type?: string; + /** @description The name of the custom field */ + name?: string; + }; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["CustomField"]; + }; + }; + }; + }; + /** + * Delete a custom field + * @description Deletes a custom field. + */ + delete: { + parameters: { + path: { + /** @description Custom Field ID */ + id: string; + }; + }; + responses: { + /** @description The Custom Field has been deleted successfully */ + 204: { + content: never; + }; + }; + }; + }; + "/v2/email_template_attachments.json": { + /** + * List email template attachments + * @description Fetches multiple email template attachment records. The records can be filtered and paged according to + * the respective parameters. + */ + get: { + parameters: { + query?: { + /** @description IDs of email template attachments to fetch. If a record can't be found, that record won't be returned and your request will be successful */ + ids?: number[]; + /** @description Filters email template attachments by email template IDs */ + email_template_id?: number[]; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data */ + limit_paging_counts?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["EmailTemplateAttachment"][]; + }; + }; + }; + }; + }; + "/v2/email_templates.json": { + /** + * List email templates + * @description Fetches multiple email template records. The records can be filtered, paged, and sorted according to + * the respective parameters. + */ + get: { + parameters: { + query?: { + /** @description IDs of email templates to fetch. If a record can't be found, that record won't be returned and your request will be successful */ + ids?: number[]; + /** + * @description Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. + * + * ---CUSTOM--- + * {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + */ + updated_at?: string[]; + /** @description Filters email templates by whether they are linked to a team template or not */ + linked_to_team_template?: boolean; + /** @description Filters email templates by title or subject */ + search?: string; + /** @description Filters email templates by tags applied to the template by tag ID, not to exceed 100 IDs */ + tag_ids?: number[]; + /** @description Filters email templates by tags applied to the template, not to exceed 100 tags */ + tag?: string[]; + /** @description Filters email templates by current authenticated user */ + filter_by_owner?: boolean; + /** @description Filters email templates by groups applied to the template by group ID. Not to exceed 500 IDs. Returns templates that are assigned to any of the group ids. */ + group_id?: number[]; + /** @description Filters email templates based on whether or not the template has been used on a cadence */ + include_cadence_templates?: boolean; + /** @description Filters email templates to include archived templates or not */ + include_archived_templates?: boolean; + /** @description Filters email templates to those belonging to the cadence. Not to exceed 100 IDs. If a record can't be found, that record won't be returned and your request will be successful */ + cadence_id?: number[]; + /** @description Key to sort on, must be one of: created_at, updated_at, last_used_at. Defaults to updated_at */ + sort_by?: string; + /** @description Direction to sort in, must be one of: ASC, DESC. Defaults to DESC */ + sort_direction?: string; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data */ + limit_paging_counts?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["EmailTemplate"][]; + }; + }; + }; + }; + }; + "/v2/email_templates/{id}.json": { + /** + * Fetch an email template + * @description Fetches an email template, by ID only. + */ + get: { + parameters: { + query?: { + /** @description Optionally will return the templates with the current user's email signature */ + include_signature?: boolean; + }; + path: { + /** @description EmailTemplate ID */ + id: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["EmailTemplate"]; + }; + }; + }; + }; + }; + "/v2/external_emails.json": { + /** + * Create an External Email + * @description Creates an external email object. + */ + post: { + requestBody: { + content: { + "application/x-www-form-urlencoded": { + /** @description Email address of mailbox email was sent to */ + mailbox: string; + /** @description Base64 encoded MIME email content */ + raw: string; + }; + }; + }; + responses: { + /** @description Success */ + 201: { + content: { + "*/*": components["schemas"]["ExternalEmail"]; + }; + }; + }; + }; + }; + "/v2/groups.json": { + /** + * List groups + * @description Fetches multiple group records. The records can be filtered, and sorted according to + * the respective parameters. + */ + get: { + parameters: { + query?: { + /** @description IDs of groups to fetch. */ + ids?: number[]; + /** @description Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at */ + sort_by?: string; + /** @description Direction to sort in, must be one of: ASC, DESC. Defaults to DESC */ + sort_direction?: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Group"][]; + }; + }; + }; + }; + }; + "/v2/groups/{id}.json": { + /** + * Fetch a group + * @description Fetches a group, by ID only. + */ + get: { + parameters: { + path: { + /** @description Group ID */ + id: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Group"]; + }; + }; + }; + }; + }; + "/v2/imports.json": { + /** + * List imports + * @description Fetches multiple imports. + */ + get: { + parameters: { + query?: { + /** @description IDs of imports to fetch. If a record can't be found, that record won't be returned and your request will be successful */ + ids?: number[]; + /** @description ID of users to fetch imports for. Using this filter will return an empty array for non-admin users who request other user's imports */ + user_ids?: number[]; + /** @description Key to sort on, must be one of: created_at, updated_at. Defaults to created_at */ + sort_by?: string; + /** @description Direction to sort in, must be one of: ASC, DESC. Defaults to DESC */ + sort_direction?: string; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data */ + limit_paging_counts?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Import"][]; + }; + }; + }; + }; + /** + * Create an import + * @description Creates an import. + */ + post: { + requestBody: components["requestBodies"]["postV2ImportsJson"]; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Import"]; + }; + }; + }; + }; + }; + "/v2/imports/{id}.json": { + /** + * Fetch an import + * @description Fetches an import, by ID only. + * + * Admin users can access imports for the entire team, but non-admin users can only access their own imports. + */ + get: { + parameters: { + path: { + /** @description Import ID */ + id: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Import"]; + }; + }; + }; + }; + /** + * Update an import + * @description Updates an import, by ID only. + * + * Admin users can access imports for the entire team, but non-admin users can only access their own imports. + */ + put: { + parameters: { + path: { + /** @description Import ID */ + id: string; + }; + }; + requestBody: components["requestBodies"]["postV2ImportsJson"]; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Import"]; + }; + }; + }; + }; + /** + * Delete an import + * @description Deletes an import, by ID only. The associated people can be deleted as part of the deletion process. + * + * Admin users can access imports for the entire team, but non-admin users can only access their own imports. + */ + delete: { + parameters: { + query?: { + /** + * @description Whether to delete people on this Import. Possible values are: [not present], all, single. + * + * 'single' will delete people who are only present in this Import. + * 'all' will delete people even if they are present in other Imports. + * Not specifying this parameter will not delete any people + */ + undo?: string; + }; + path: { + /** @description Import ID */ + id: string; + }; + }; + responses: { + /** @description The import has been deleted successfully */ + 204: { + content: never; + }; + }; + }; + }; + "/v2/live_website_tracking_parameters.json": { + /** + * Create an Live Website Tracking Parameter + * @description Creates a Live Website Tracking parameter to identify a person + */ + post: { + requestBody: { + content: { + "application/x-www-form-urlencoded": { + /** @description The person to create the LiveWebsiteTrackingParameter for */ + person_id: number; + }; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["LiveWebsiteTrackingParameter"]; + }; + }; + }; + }; + }; + "/v2/me.json": { + /** + * Fetch current user + * @description Authenticated user information. This endpoint does not accept any parameters as it is + * represents your authenticated user. The "Users" resource provides user information + * for other users on the team. + */ + get: { + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["User"]; + }; + }; + }; + }; + }; + "/v2/meetings.json": { + /** + * List meetings + * @description Fetches multiple meeting records. The records can be filtered, paged, and sorted according to the respective parameters. + * Meetings resource is responsible for events created via the Salesloft platform using calendaring features. + * These events can relate to cadences, people, and accounts. + */ + get: { + parameters: { + query?: { + /** @description IDs of meetings to fetch. If a record can't be found, that record won't be returned and your request will be successful */ + ids?: number[]; + /** @description Filters meetings by status. Possible values are: pending, booked, failed, retry */ + status?: string; + /** @description Filters meetings by person_id. Multiple person ids can be applied */ + person_id?: string; + /** @description Filters meetings by account_id. Multiple account ids can be applied */ + account_id?: string; + /** @description Filters meetings by person_id. Multiple person ids can be applied */ + person_ids?: number[]; + /** @description Filters meetings by event IDs */ + event_ids?: number[]; + /** @description Filters meetings by UIDs provided by calendar provider */ + i_cal_uids?: string[]; + /** @description Filters meetings by task_id. Multiple task ids can be applied */ + task_ids?: number[]; + /** @description Flag to indicate whether to include owned_by_meetings_settings and booked_by_meetings_settings objects */ + include_meetings_settings?: boolean; + /** + * @description Equality filters that are applied to the start_time field. A single filter can be used by itself or combined with other filters to create a range. + * + * ---CUSTOM--- + * {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + */ + start_time?: string[]; + /** @description Filters meetings by user_guid. Multiple user guids can be applied */ + user_guids?: string[]; + /** @description Whether to include deleted events in the result */ + show_deleted?: boolean; + /** @description Key to sort on, must be one of: start_time, created_at, updated_at. Defaults to start_time */ + sort_by?: string; + /** @description Direction to sort in, must be one of: ASC, DESC. Defaults to DESC */ + sort_direction?: string; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data */ + limit_paging_counts?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Meeting"][]; + }; + }; + }; + }; + }; + "/v2/meetings/settings/searches.json": { + /** + * List meeting settings + * @description Fetches multiple meeting setting records. The records can be filtered, paged, and sorted according to the respective parameters. + */ + post: { + parameters: { + query?: { + /** @description Filters meeting settings by array of user_guids */ + user_guids?: string[]; + /** + * @description Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. + * + * ---CUSTOM--- + * {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + */ + updated_at?: string[]; + /** @description Filters meeting settings by calendar type */ + calendar_type?: string; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data */ + limit_paging_counts?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["MeetingSetting"][]; + }; + }; + /** @description This endpoint is not available without the following permissions: manage_team */ + 403: { + content: never; + }; + }; + }; + }; + "/v2/meetings/settings/{id}.json": { + /** + * Update a meeting setting + * @description Updates a meeting setting, by ID only. + */ + put: { + parameters: { + path: { + /** @description MeetingSetting ID */ + id: string; + }; + }; + requestBody?: { + content: { + "application/x-www-form-urlencoded": { + /** @description Allow other team members to schedule on you behalf. */ + allow_booking_on_behalf?: boolean; + /** @description Allow team members to insert available time outside your working hours. */ + allow_booking_overtime?: boolean; + /** @description Allow team members to double book events on your calendar. */ + allow_event_overlap?: boolean; + /** @description The number of days out the user allows a prospect to schedule a meeting */ + availability_limit?: number; + /** @description If Availability Limits have been turned on */ + availability_limit_enabled?: boolean; + /** @description Default buffer duration in minutes set by a user */ + buffer_time_duration?: number; + /** @description Calendar type */ + calendar_type?: string; + /** @description Default meeting length in minutes set by the user */ + default_meeting_length?: number; + /** @description Default description of the meeting */ + description?: string; + /** @description Determines if a user enabled Calendar Sync feature */ + enable_calendar_sync?: boolean; + /** @description Determines if location will be filled via third-party service (Zoom, GoToMeeting, etc.) */ + enable_dynamic_location?: boolean; + /** @description Default location of the meeting */ + location?: string; + /** @description Determines if the user lost calendar connection */ + primary_calendar_connection_failed?: boolean; + /** @description ID of the primary calendar */ + primary_calendar_id?: string; + /** @description Display name of the primary calendar */ + primary_calendar_name?: string; + /** @description Determines if meetings are scheduled with a 15 minute buffer between them */ + schedule_buffer_enabled?: boolean; + /** @description The number of hours in advance a user requires someone to a book a meeting with them */ + schedule_delay?: number; + /** @description Allow team members to see the details of events on your calendar. */ + share_event_detail?: boolean; + /** @description Time zone for current calendar */ + time_zone?: string; + /** @description Times available set by a user that can be used to book meetings */ + times_available?: Record; + /** @description Default title of the meeting */ + title?: string; + }; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["MeetingSetting"]; + }; + }; + }; + }; + }; + "/v2/meetings/{id}.json": { + /** + * Update a meeting + * @description Updates a meeting, by ID only. + */ + put: { + parameters: { + path: { + /** @description Meeting ID */ + id: string; + }; + }; + requestBody?: { + content: { + "application/x-www-form-urlencoded": { + /** @description Meeting ID from the calendar provider */ + event_id?: string; + /** @description Meeting unique identifier (iCalUID) */ + i_cal_uid?: string; + /** @description Whether the meeting is a No Show meeting */ + no_show?: boolean; + /** @description Status of the meeting creation progress. Possible values are: pending, booked, failed, retry */ + status?: string; + }; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Meeting"]; + }; + }; + }; + }; + }; + "/v2/mime_email_payloads/{id}.json": { + /** + * Fetch the MIME content for email + * @description Fetch the MIME content for email. + */ + get: { + parameters: { + path: { + /** @description ID of Email */ + id: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["MimeEmailPayload"]; + }; + }; + }; + }; + }; + "/v2/notes.json": { + /** + * List notes + * @description Fetches multiple note records. The records can be filtered, paged, and sorted according to + * the respective parameters. + */ + get: { + parameters: { + query?: { + /** @description Case insensitive type of item with which the note is associated. Value must be one of: person, account */ + associated_with_type?: string; + /** @description ID of the item with which the note is associated. The associated_with_type must also be present if this parameter is used */ + associated_with_id?: number; + /** + * @description Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. + * + * ---CUSTOM--- + * {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + */ + updated_at?: string[]; + /** @description IDs of notes to fetch. If a record can't be found, that record won't be returned and your request will be successful */ + ids?: number[]; + /** @description Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at */ + sort_by?: string; + /** @description Direction to sort in, must be one of: ASC, DESC. Defaults to DESC */ + sort_direction?: string; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data */ + limit_paging_counts?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Note"][]; + }; + }; + }; + }; + /** + * Create a note + * @description Creates a note. + */ + post: { + requestBody: { + content: { + "application/x-www-form-urlencoded": { + /** @description ID of the item with which the note is associated */ + associated_with_id: number; + /** @description Case insensitive type of item with which the note is associated. Value must be one of: person, account */ + associated_with_type: string; + /** @description ID of the call with which the note is associated. The call cannot already have a note */ + call_id?: number; + /** @description The content of the note */ + content: string; + /** @description Boolean indicating if the CRM sync should be skipped. No syncing will occur if true */ + skip_crm_sync?: boolean; + /** @description The subject of the note's crm activity, defaults to 'Note' */ + subject?: string; + /** @description The user to create the note for. Only team admins may create notes on behalf of other users. Defaults to the requesting user */ + user_guid?: string; + }; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Note"]; + }; + }; + }; + }; + }; + "/v2/notes/{id}.json": { + /** + * Fetch a note + * @description Fetches a note, by ID only. + */ + get: { + parameters: { + path: { + /** @description Note ID */ + id: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Note"]; + }; + }; + }; + }; + /** + * Update a note + * @description Updates a note. Any changes to the note or associated records will not reflect in your CRM. + */ + put: { + parameters: { + path: { + /** @description Note ID */ + id: string; + }; + }; + requestBody: { + content: { + "application/x-www-form-urlencoded": { + /** @description ID of the call with which the note is associated. The call cannot already have a note. If the note is associated to a call already, it will become associated to the requested call */ + call_id?: number; + /** @description The content of the note */ + content: string; + }; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Person"]; + }; + }; + }; + }; + /** + * Delete a note + * @description Deletes a note owned by authorized account. + * This operation is not reversible without contacting support. + * This operation can be called multiple times successfully. + */ + delete: { + parameters: { + path: { + /** @description Note ID */ + id: string; + }; + }; + responses: { + /** @description The Note has been deleted successfully */ + 204: { + content: never; + }; + }; + }; + }; + "/v2/ongoing_actions.json": { + /** + * Create an ongoing action + * @description Creates an ongoing action. An ongoing action is an action that is not yet completed, + * but progress has been made towards the completion. The user should not need to do + * anything for an ongoing action to be completed. An ongoing action can be later completed + * by creating an activity. + * + * Ongoing actions are marked as status=pending_activity. + */ + post: { + requestBody?: { + content: { + "application/x-www-form-urlencoded": { + /** + * @description Action that is being marked ongoing. This will validate that the action is still + * valid before modifying it. Ongoing actions can not be marked ongoing. + */ + action_id?: number; + }; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Action"]; + }; + }; + }; + }; + }; + "/v2/pending_emails.json": { + /** + * Fetches a list of emails ready to be sent by an external email service. Only emails sent with an External Email Client will appear here. + * @description Fetches a list of emails ready to be sent by an external email service. + */ + get: { + parameters: { + query?: { + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data */ + limit_paging_counts?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["PendingEmail"][]; + }; + }; + }; + }; + }; + "/v2/pending_emails/{id}.json": { + /** + * Updates the status of an email sent by an External Email Client + * @description Updates the status of an email sent by an External Email Client. Does not affect lofted emails. + */ + put: { + parameters: { + path: { + /** @description Email ID */ + id: string; + }; + }; + requestBody: { + content: { + "application/x-www-form-urlencoded": { + /** @description The error message indicating why the email failed to send */ + error_message?: string; + /** @description The message id of the email that was sent */ + message_id: string; + /** @description The time that the email was actually sent in iso8601 format */ + sent_at?: string; + /** @description Delivery status of the email. Valid statuses are 'sent' and 'failed' */ + status: string; + }; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["PendingEmail"]; + }; + }; + }; + }; + }; + "/v2/people.json": { + /** + * List people + * @description Fetches multiple person records. The records can be filtered, paged, and sorted according to + * the respective parameters. + */ + get: { + parameters: { + query?: { + /** @description IDs of people to fetch. If a record can't be found, that record won't be returned and your request will be successful */ + ids?: number[]; + /** + * @description Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. + * + * ---CUSTOM--- + * {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + */ + updated_at?: string[]; + /** @description Filters people by email address. Multiple emails can be applied. An additional value of "_is_null" can be passed to filter people that do not have an email address. */ + email_addresses?: string[]; + /** @description Filters people by the owner's guid. Multiple owner guids can be applied */ + owned_by_guid?: string[]; + /** @description Includes people that have a given person_stage. Multiple person stage ids can be applied. An additional value of "_is_null" can be passed to filter people that do not have a stage set. */ + person_stage_id?: number[]; + /** @description Filters people by crm_id. Multiple crm ids can be applied */ + crm_id?: string[]; + /** @description Filters people by owner_crm_id. Multiple owner_crm_ids can be applied. An additional value of "_is_null" can be passed to filter people that are unowned. A "_not_in" modifier can be used to exclude specific owner_crm_ids. Example: v2/people?owner_crm_id[_not_in]=id */ + owner_crm_id?: string[]; + /** @description Includes people that have a given do_not_contact property */ + do_not_contact?: boolean; + /** @description Includes people that can be emailed given do_not_contact and contact_restrictions property */ + can_email?: boolean; + /** @description Includes people that can be called given do_not_contact and contact_restrictions property */ + can_call?: boolean; + /** @description Includes people that can be sent a text message given do_not_contact and contact_restrictions property */ + can_text?: boolean; + /** @description Filters people by the account they are linked to. Multiple account ids can be applied */ + account_id?: number[]; + /** @description Filters by people matching all given custom fields. The custom field names are case-sensitive, but the provided values are case-insensitive. Example: v2/people?custom_fields[custom_field_name]=custom_field_value */ + custom_fields?: Record; + /** @description Filters people that were imported by the given import ids. Multiple import ids can be applied. An additional value of "_is_null" can be passed to filter people that were not imported. */ + import_id?: number[]; + /** @description Filters people by job seniorty. Multiple job seniorities can be applied. An additional value of "_is_null" can be passed to filter people do not have a job_seniority. */ + job_seniority?: string[]; + /** @description Filters people by the tag ids applied to the person. Multiple tag ids can be applied. */ + tag_id?: number[]; + /** @description Filters people by whether the owner is active or not. */ + owner_is_active?: boolean; + /** @description Filters people by the cadence that they are currently on. Multiple cadence_ids can be applied. An additional value of "_is_null" can be passed to filter people that are not on a cadence. */ + cadence_id?: number[]; + /** @description Filters people who have been starred by the user guids given. */ + starred_by_guid?: string[]; + /** @description Filters people by whether or not they have replied to an email or not. */ + replied?: boolean; + /** @description Filters people by whether an email that was sent to them bounced or not. */ + bounced?: boolean; + /** @description Filters people by whether or not they have been marked as a success or not. */ + success?: boolean; + /** @description Filters people by whether or not they are marked as an European Union Resident or not. */ + eu_resident?: boolean; + /** @description Filters people by their title by exact match. Supports partial matching */ + title?: string[]; + /** @description Filters people by their country by exact match. Supports partial matching */ + country?: string[]; + /** @description Filters people by their state by exact match. Supports partial matching */ + state?: string[]; + /** @description Filters people by their city by exact match. Supports partial matching */ + city?: string[]; + /** + * @description Equality filters that are applied to the last_contacted field. A single filter can be used by itself or combined with other filters to create a range. + * Additional values of "_is_null" or "_is_not_null" can be passed to filter records that either have no timestamp value or any timestamp value. + * ---CUSTOM--- + * {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + */ + last_contacted?: Record; + /** + * @description Equality filters that are applied to the last_contacted field. A single filter can be used by itself or combined with other filters to create a range. + * + * ---CUSTOM--- + * {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + */ + created_at?: Record; + /** @description Filters people by whether or not that person is on a cadence or if they have been contacted in any way. */ + new?: boolean; + /** @description Filter people by whether or not they have a phone number or not */ + phone_number?: boolean; + /** @description Filters people by locales. Multiple locales can be applied. An additional value of "Null" can be passed to filter people that do not have a locale. */ + locales?: string[]; + /** @description Filters people by owner_id. Multiple owner_ids can be applied. */ + owner_id?: number[]; + /** @description For internal use only. This field does not comply with our backwards compatibility policies. This filter is for authenticated users of Salesloft only and will not work for OAuth Applications. Filters people by the string provided. Can search and filter by name, title, industry, email_address and linked account name. */ + _query?: string; + /** @description Key to sort on, must be one of: created_at, updated_at, last_contacted_at, name, title, job_seniority, call_count, sent_emails, clicked_emails, replied_emails, viewed_emails, account, cadence_stage_name. Defaults to updated_at */ + sort_by?: string; + /** @description Direction to sort in, must be one of: ASC, DESC. Defaults to DESC */ + sort_direction?: string; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data */ + limit_paging_counts?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Person"][]; + }; + }; + }; + }; + /** + * Create a person + * @description Creates a person. Either email_address or phone/last_name must be provided as a unique lookup + * on the team. + */ + post: { + requestBody?: { + content: { + "application/x-www-form-urlencoded": { + /** @description ID of the Account to link this person to */ + account_id?: number; + /** @description Whether the date should be added to this person as a tag. Default is false. The tag will be Y-m-d format. */ + autotag_date?: boolean; + /** @description City */ + city?: string; + /** @description Specific methods of communication to prevent for this person. This will prevent individual execution of these communication types as well as automatically skip cadence steps of this communication type for this person in SalesLoft. Values currently accepted: call, email, message */ + contact_restrictions?: string[]; + /** @description Country */ + country?: string; + /** + * @description Requires Salesforce. + * + * ID of the person in your external CRM. You must provide a crm_id_type if this is included. + * + * Validations will be applied to the crm_id depending on the crm_id_type. A "salesforce" ID must be exactly 18 characters. A "salesforce" ID must be either a Lead (00Q) or Contact (003) object. The type will be validated using the 18 character ID. + * + * This field can only be used if your application or API key has the "person:set_crm_id" scope. + */ + crm_id?: string; + /** @description The CRM that the provided crm_id is for. Must be one of: salesforce */ + crm_id_type?: string; + /** @description Custom fields are defined by the user's team. Only fields with values are presented in the API. */ + custom_fields?: Record; + /** @description Whether or not this person has opted out of all communication. Setting this value to true prevents this person from being called, emailed, or added to a cadence in SalesLoft. If this person is currently in a cadence, they will be removed. */ + do_not_contact?: boolean; + /** @description Email address */ + email_address?: string; + /** @description First name */ + first_name?: string; + /** @description Home phone without formatting */ + home_phone?: string; + /** @description ID of the Import this person is a part of. A person can be part of multiple imports, but this ID will always be the most recent Import */ + import_id?: number; + /** @description The Job Seniority of a Person, must be one of director, executive, individual_contributor, manager, vice_president, unknown */ + job_seniority?: string; + /** @description Last name */ + last_name?: string; + /** @description Linkedin URL */ + linkedin_url?: string; + /** @description Time locale of the person */ + locale?: string; + /** @description Mobile phone without formatting */ + mobile_phone?: string; + /** @description ID of the User that owns this person */ + owner_id?: number; + /** @description Company industry. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended */ + person_company_industry?: string; + /** @description Company name. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended */ + person_company_name?: string; + /** @description Company website. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended */ + person_company_website?: string; + /** @description ID of the PersonStage of this person */ + person_stage_id?: number; + /** @description Personal email address */ + personal_email_address?: string; + /** @description The website of this person */ + personal_website?: string; + /** @description Phone without formatting */ + phone?: string; + /** @description Phone extension without formatting */ + phone_extension?: string; + /** @description Alternate email address */ + secondary_email_address?: string; + /** @description State */ + state?: string; + /** @description All tags applied to this person */ + tags?: string[]; + /** @description Job title */ + title?: string; + /** @description The twitter handle of this person */ + twitter_handle?: string; + /** @description Work location - city */ + work_city?: string; + /** @description Work location - country */ + work_country?: string; + /** @description Work location - state */ + work_state?: string; + }; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Person"]; + }; + }; + }; + }; + }; + "/v2/people/{id}.json": { + /** + * Fetch a person + * @description Fetches a person, by ID only. + */ + get: { + parameters: { + path: { + /** @description Person ID */ + id: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Person"]; + }; + }; + }; + }; + /** + * Update a person + * @description Updates a person. + */ + put: { + parameters: { + path: { + /** @description Person id */ + id: string; + }; + }; + requestBody?: { + content: { + "application/x-www-form-urlencoded": { + /** @description ID of the Account to link this person to */ + account_id?: number; + /** @description City */ + city?: string; + /** @description Specific methods of communication to prevent for this person. This will prevent individual execution of these communication types as well as automatically skip cadence steps of this communication type for this person in SalesLoft. Values currently accepted: call, email, message */ + contact_restrictions?: string[]; + /** @description Country */ + country?: string; + /** + * @description Requires Salesforce. + * + * ID of the person in your external CRM. You must provide a crm_id_type if this is included. + * + * Validations will be applied to the crm_id depending on the crm_id_type. A "salesforce" ID must be exactly 18 characters. A "salesforce" ID must be either a Lead (00Q) or Contact (003) object. The type will be validated using the 18 character ID. + * + * This field can only be used if your application or API key has the "person:set_crm_id" scope. + */ + crm_id?: string; + /** @description The CRM that the provided crm_id is for. Must be one of: salesforce */ + crm_id_type?: string; + /** @description Custom fields are defined by the user's team. Only fields with values are presented in the API. */ + custom_fields?: Record; + /** @description Whether or not this person has opted out of all communication. Setting this value to true prevents this person from being called, emailed, or added to a cadence in SalesLoft. If this person is currently in a cadence, they will be removed. */ + do_not_contact?: boolean; + /** @description Email address */ + email_address?: string; + /** @description First name */ + first_name?: string; + /** @description Home phone without formatting */ + home_phone?: string; + /** @description ID of the Import this person is a part of. A person can be part of multiple imports, but this ID will always be the most recent Import */ + import_id?: number; + /** @description The Job Seniority of a Person, must be one of director, executive, individual_contributor, manager, vice_president, unknown */ + job_seniority?: string; + /** @description Last name */ + last_name?: string; + /** @description Linkedin URL */ + linkedin_url?: string; + /** @description Time locale of the person */ + locale?: string; + /** @description Mobile phone without formatting */ + mobile_phone?: string; + /** @description ID of the User that owns this person */ + owner_id?: number; + /** @description Company industry. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended */ + person_company_industry?: string; + /** @description Company name. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended */ + person_company_name?: string; + /** @description Company website. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended */ + person_company_website?: string; + /** @description ID of the PersonStage of this person */ + person_stage_id?: number; + /** @description Personal email address */ + personal_email_address?: string; + /** @description The website of this person */ + personal_website?: string; + /** @description Phone without formatting */ + phone?: string; + /** @description Phone extension without formatting */ + phone_extension?: string; + /** @description Alternate email address */ + secondary_email_address?: string; + /** @description State */ + state?: string; + /** @description All tags applied to this person */ + tags?: string[]; + /** @description Job title */ + title?: string; + /** @description The twitter handle of this person */ + twitter_handle?: string; + /** @description Work location - city */ + work_city?: string; + /** @description Work location - country */ + work_country?: string; + /** @description Work location - state */ + work_state?: string; + }; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Person"]; + }; + }; + }; + }; + /** + * Delete a person + * @description Deletes a person. This operation is not reversible without contacting support. + * This operation can be called multiple times successfully. + */ + delete: { + parameters: { + path: { + /** @description Person id */ + id: string; + }; + }; + responses: { + /** @description The person has been deleted successfully */ + 204: { + content: never; + }; + }; + }; + }; + "/v2/person_stages.json": { + /** + * List person stages + * @description Fetches multiple person stage records. The records can be filtered, paged, and sorted according to + * the respective parameters. + */ + get: { + parameters: { + query?: { + /** @description IDs of person stages to fetch. */ + ids?: number[]; + /** @description Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at */ + sort_by?: string; + /** @description Direction to sort in, must be one of: ASC, DESC. Defaults to DESC */ + sort_direction?: string; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data */ + limit_paging_counts?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["PersonStage"][]; + }; + }; + }; + }; + /** + * Create a person stage + * @description Creates a person stage. + */ + post: { + requestBody: { + content: { + "application/x-www-form-urlencoded": { + /** @description The name of the new stage */ + name: string; + }; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["PersonStage"]; + }; + }; + }; + }; + }; + "/v2/person_stages/{id}.json": { + /** + * Fetch a person stage + * @description Fetches a person stage, by ID only. + */ + get: { + parameters: { + path: { + /** @description Stage ID */ + id: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["PersonStage"]; + }; + }; + }; + }; + /** + * Update a person stage + * @description Updates a person stage. + */ + put: { + parameters: { + path: { + /** @description Stage ID */ + id: string; + }; + }; + requestBody: { + content: { + "application/x-www-form-urlencoded": { + /** @description The name of the stage. */ + name: string; + }; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["PersonStage"]; + }; + }; + }; + }; + /** + * Delete an person stage + * @description Deletes a person stage. This operation is not reversible without contacting support. + * This operation can be called multiple times successfully. + */ + delete: { + parameters: { + path: { + /** @description Stage ID */ + id: string; + }; + }; + responses: { + /** @description The Person Stage has been deleted successfully */ + 204: { + content: never; + }; + }; + }; + }; + "/v2/person_upserts.json": { + /** + * Upsert a person + * @description Upserts a person record. The upsert_key dictates how the upsert will be performed. The create and update behavior + * is exactly the same as the individual create and update endpoints. + */ + post: { + requestBody?: { + content: { + "application/x-www-form-urlencoded": { + /** @description ID of the Account to link this person to */ + account_id?: number; + /** @description City */ + city?: string; + /** @description Specific methods of communication to prevent for this person. This will prevent individual execution of these communication types as well as automatically skip cadence steps of this communication type for this person in SalesLoft. Values currently accepted: call, email, message */ + contact_restrictions?: string[]; + /** @description Country */ + country?: string; + /** + * @description Requires Salesforce. + * + * ID of the person in your external CRM. You must provide a crm_id_type if this is included. + * + * Validations will be applied to the crm_id depending on the crm_id_type. A "salesforce" ID must be exactly 18 characters. A "salesforce" ID must be either a Lead (00Q) or Contact (003) object. The type will be validated using the 18 character ID. + * + * This field can only be used if your application or API key has the "person:set_crm_id" scope. + */ + crm_id?: string; + /** @description The CRM that the provided crm_id is for. Must be one of: salesforce */ + crm_id_type?: string; + /** @description Custom fields are defined by the user's team. Only fields with values are presented in the API. */ + custom_fields?: Record; + /** @description Whether or not this person has opted out of all communication. Setting this value to true prevents this person from being called, emailed, or added to a cadence in SalesLoft. If this person is currently in a cadence, they will be removed. */ + do_not_contact?: boolean; + /** @description Email address */ + email_address?: string; + /** @description First name */ + first_name?: string; + /** @description Home phone without formatting */ + home_phone?: string; + /** + * @description ID of the person to update. Used if the upsert_key=id. When id and another upsert_key are provided, + * the request will fail if the upsert record id and id parameter don't match. + */ + id?: number; + /** @description ID of the Import this person is a part of. A person can be part of multiple imports, but this ID will always be the most recent Import */ + import_id?: number; + /** @description The Job Seniority of a Person, must be one of director, executive, individual_contributor, manager, vice_president, unknown */ + job_seniority?: string; + /** @description Last name */ + last_name?: string; + /** @description Linkedin URL */ + linkedin_url?: string; + /** @description Time locale of the person */ + locale?: string; + /** @description Mobile phone without formatting */ + mobile_phone?: string; + /** @description ID of the User that owns this person */ + owner_id?: number; + /** @description Company industry. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended */ + person_company_industry?: string; + /** @description Company name. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended */ + person_company_name?: string; + /** @description Company website. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended */ + person_company_website?: string; + /** @description ID of the PersonStage of this person */ + person_stage_id?: number; + /** @description Personal email address */ + personal_email_address?: string; + /** @description The website of this person */ + personal_website?: string; + /** @description Phone without formatting */ + phone?: string; + /** @description Phone extension without formatting */ + phone_extension?: string; + /** @description Alternate email address */ + secondary_email_address?: string; + /** @description State */ + state?: string; + /** @description All tags applied to this person */ + tags?: string[]; + /** @description Job title */ + title?: string; + /** @description The twitter handle of this person */ + twitter_handle?: string; + /** + * @description Name of the parameter to upsert on. The field must be provided in the input parameters, or the request will fail. + * The request will also fail if there are multiple records matched by the upsert field. This can occur if intentional duplicates + * by email address is enabled. + * + * If upsert_key is not provided, this endpoint will not update an existing record. + * + * Valid options are: id, crm_id, email_address. If crm_id is provided, then a valid crm_id_type must be provided, as documented + * for the person create and update endpoints. + */ + upsert_key?: string; + /** @description Work location - city */ + work_city?: string; + /** @description Work location - country */ + work_country?: string; + /** @description Work location - state */ + work_state?: string; + }; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["PersonUpsert"]; + }; + }; + }; + }; + }; + "/v2/phone_number_assignments.json": { + /** + * List phone number assignments + * @description Fetches multiple phone number assignment records. The records can be filtered, paged, and sorted according to + * the respective parameters. + */ + get: { + parameters: { + query?: { + /** @description IDs of phone number assignments to fetch */ + ids?: number[]; + /** @description Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at */ + sort_by?: string; + /** @description Direction to sort in, must be one of: ASC, DESC. Defaults to DESC */ + sort_direction?: string; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data */ + limit_paging_counts?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["PhoneNumberAssignment"][]; + }; + }; + }; + }; + }; + "/v2/phone_number_assignments/{id}.json": { + /** + * Fetch a phone number assignment + * @description Fetches a phone number assignment, by ID only. + */ + get: { + parameters: { + path: { + /** @description PhoneNumberAssignment ID */ + id: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["PhoneNumberAssignment"]; + }; + }; + }; + }; + }; + "/v2/phone_numbers/caller_ids.json": { + /** + * List caller ids + * @description Each entry is a possible caller ID match for the number. Multiple + * entries may be returned if the phone number is present on more than one + * person in the system. Phone number should be in E.164 format. + */ + get: { + parameters: { + query: { + /** @description E.164 Phone Number */ + phone_number: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["CallerId"][]; + }; + }; + }; + }; + }; + "/v2/phone_numbers/recording_settings/{id}.json": { + /** + * Fetch recording setting + * @description Fetches the recording status for a given phone number, based on Do Not Record and Recording Governance for your team. + * Phone number should be in E.164 format. + */ + get: { + parameters: { + path: { + /** @description E.164 Phone Number */ + id: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["RecordingSetting"]; + }; + }; + }; + }; + }; + "/v2/saved_list_views.json": { + /** + * List saved list views + * @description Fetches multiple saved list view records. The records can be filtered, paged, and sorted according to + * the respective parameters. + */ + get: { + parameters: { + query?: { + /** @description IDs of saved list views to fetch. If a record can't be found, that record won't be returned and your request will be successful */ + ids?: number[]; + /** @description Type of saved list views to fetch. */ + view?: string; + /** @description Key to sort on, must be one of: name. Defaults to name */ + sort_by?: string; + /** @description Direction to sort in, must be one of: ASC, DESC. Defaults to DESC */ + sort_direction?: string; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data */ + limit_paging_counts?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["SavedListView"][]; + }; + }; + }; + }; + /** + * Create a saved list view + * @description Creates a saved list view. + */ + post: { + requestBody: { + content: { + "application/x-www-form-urlencoded": { + /** @description Whether the saved list view is the default */ + is_default?: boolean; + /** @description The name of the saved list view */ + name: string; + /** @description The type of objects in the saved list view. Value must be one of: people, companies, or recordings */ + view: string; + /** @description JSON object of list view parameters */ + view_params?: string; + }; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["SavedListView"]; + }; + }; + }; + }; + }; + "/v2/saved_list_views/{id}.json": { + /** + * Fetch a saved list view + * @description Fetches a saved list view, by ID only. + */ + get: { + parameters: { + path: { + /** @description Saved List View ID */ + id: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["SavedListView"]; + }; + }; + }; + }; + /** + * Update a saved list view + * @description Updates a saved list view. + */ + put: { + parameters: { + path: { + /** @description Saved List View ID */ + id: string; + }; + }; + requestBody?: { + content: { + "application/x-www-form-urlencoded": { + /** @description Whether the saved list view is the default */ + is_default?: boolean; + /** @description The name of the saved list view */ + name?: string; + /** @description JSON object of list view parameters */ + view_params?: string; + }; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["SavedListView"]; + }; + }; + }; + }; + /** + * Delete a saved list view + * @description Deletes a saved list view. This operation is not reversible without contacting support. + * This operation can be called multiple times successfully. + */ + delete: { + parameters: { + path: { + /** @description Saved List View ID */ + id: string; + }; + }; + responses: { + /** @description The saved list view has been deleted successfully */ + 204: { + content: never; + }; + }; + }; + }; + "/v2/steps.json": { + /** + * List steps + * @description Fetches multiple step records. The records can be filtered, paged, and sorted according to + * the respective parameters. + */ + get: { + parameters: { + query?: { + /** @description IDs of steps to fetch. */ + ids?: number[]; + /** @description Filter by cadence ID */ + cadence_id?: number; + /** @description Filter by step type */ + type?: string; + /** @description Filter by whether a step has due actions */ + has_due_actions?: boolean; + /** @description Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at */ + sort_by?: string; + /** @description Direction to sort in, must be one of: ASC, DESC. Defaults to DESC */ + sort_direction?: string; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data */ + limit_paging_counts?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Step"][]; + }; + }; + }; + }; + }; + "/v2/steps/{id}.json": { + /** + * Fetch a step + * @description Fetches a step, by ID only. + */ + get: { + parameters: { + path: { + /** @description Step ID */ + id: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Step"]; + }; + }; + }; + }; + }; + "/v2/successes.json": { + /** + * List successes + * @description Fetches multiple success records. The records can be filtered, paged, and sorted according to + * the respective parameters. + */ + get: { + parameters: { + query?: { + /** @description IDs of successes to fetch. If a record can't be found, that record won't be returned and your request will be successful */ + ids?: number[]; + /** @description Filters successes by person_id. Multiple person ids can be applied */ + person_id?: number[]; + /** + * @description Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. + * + * ---CUSTOM--- + * {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + */ + updated_at?: string[]; + /** @description Key to sort on, must be one of: created_at, updated_at, succeeded_at. Defaults to updated_at */ + sort_by?: string; + /** @description Direction to sort in, must be one of: ASC, DESC. Defaults to DESC */ + sort_direction?: string; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data */ + limit_paging_counts?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Success"][]; + }; + }; + }; + }; + }; + "/v2/tags.json": { + /** + * List team tags + * @description Fetches a list of the tags used for a team. The records can be filtered, paged, and sorted according to + * the respective parameters. + * + * Tags can be applied to mulitple resource types. + */ + get: { + parameters: { + query?: { + /** @description Filters tags by name */ + search?: string; + /** @description Filters tags by their IDs */ + ids?: number[]; + /** @description Key to sort on, must be one of: name. Defaults to name */ + sort_by?: string; + /** @description Direction to sort in, must be one of: ASC, DESC. Defaults to DESC */ + sort_direction?: string; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data */ + limit_paging_counts?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Tag"][]; + }; + }; + }; + }; + }; + "/v2/tasks.json": { + /** + * List tasks + * @description Fetches multiple task records. The records can be filtered, paged, and sorted according to + * the respective parameters. + */ + get: { + parameters: { + query?: { + /** @description IDs of tasks to fetch. */ + ids?: number[]; + /** @description Filters tasks by the user to which they are assigned. */ + user_id?: number[]; + /** @description Filters tasks by the person to which they are associated. */ + person_id?: number[]; + /** @description Filters tasks by the account to which they are associated. */ + account_id?: number[]; + /** @description Filters tasks by their current state. Valid current_states include: ['scheduled', 'completed']. */ + current_state?: string[]; + /** @description Filters tasks by their task type. Valid task_types include: ['call', 'email', 'general']. */ + task_type?: string[]; + /** @description Filters tasks by time interval. Valid time_intervals include: ['overdue', 'today', 'tomorrow', 'this_week', 'next_week']. */ + time_interval_filter?: string; + /** @description Filters tasks by idempotency key. */ + idempotency_key?: string; + /** @description Filters tasks by locale of the person to which they are associated. */ + locale?: string[]; + /** @description Key to sort on, must be one of: due_date, due_at. Defaults to due_date */ + sort_by?: string; + /** @description Direction to sort in, must be one of: ASC, DESC. Defaults to ASC */ + sort_direction?: string; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data */ + limit_paging_counts?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Task"][]; + }; + }; + }; + }; + /** + * Create a Task + * @description Creates a task. + */ + post: { + requestBody: { + content: { + "application/x-www-form-urlencoded": { + /** @description Current state of the task, valid options are: scheduled */ + current_state: string; + /** @description A description of the task recorded for person at completion time */ + description?: string; + /** @description Date of when the Task is due, ISO-8601 date format required */ + due_date: string; + /** @description Establishes a unique identifier to prevent duplicates from being created */ + idempotency_key?: string; + /** @description ID of the person to be contacted */ + person_id: string; + /** @description Datetime of when the user will be reminded of the task, ISO-8601 datetime format required */ + remind_at?: string; + /** @description Subject line of the task. */ + subject: string; + /** @description Task type, valid options are: call, email, general */ + task_type: string; + /** @description ID of the user linked to the task */ + user_id: number; + }; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Task"]; + }; + }; + }; + }; + }; + "/v2/tasks/{id}.json": { + /** + * Fetch a task + * @description Fetches a task, by ID only. + */ + get: { + parameters: { + path: { + /** @description Task ID */ + id: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Step"]; + }; + }; + }; + }; + /** + * Update a Task + * @description Updates a task. + */ + put: { + parameters: { + path: { + /** @description Task ID */ + id: string; + }; + }; + requestBody?: { + content: { + "application/x-www-form-urlencoded": { + /** @description Current state of the task, valid options are: completed */ + current_state?: string; + /** @description A description of the task recorded for person at completion time */ + description?: string; + /** @description Date of when the Task is due, ISO-8601 date format required */ + due_date?: string; + /** @description A flag to indicate that the task should only be logged */ + is_logged?: boolean; + /** @description Datetime of when the user will be reminded of the task, ISO-8601 datetime format required */ + remind_at?: string; + /** @description Subject line of the task */ + subject?: string; + }; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Task"]; + }; + }; + }; + }; + }; + "/v2/team.json": { + /** + * Fetch current team + * @description Fetches the team of the authenticated user. + */ + get: { + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Team"]; + }; + }; + }; + }; + }; + "/v2/team_template_attachments.json": { + /** + * List team template attachments + * @description Fetches multiple team template attachment records. The records can be filtered and paged according to + * the respective parameters. + */ + get: { + parameters: { + query?: { + /** @description IDs of team template attachments to fetch. If a record can't be found, that record won't be returned and your request will be successful */ + ids?: number[]; + /** @description Filters template attachments by team template IDs */ + team_template_id?: number[]; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data */ + limit_paging_counts?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["TeamTemplateAttachment"][]; + }; + }; + }; + }; + }; + "/v2/team_templates.json": { + /** + * List team templates + * @description Fetches multiple team template records. The records can be filtered, paged, and sorted according to + * the respective parameters. + * + * Team templates are templates that are available team-wide. Admins may use + * team templates to create original content for the entire team, monitor version control to ensure templates are always up to date, + * and track template performance across the entire organization. All metrics on a team template reflect usage across the team; individual metrics can be found with the email_templates API endpoint. + */ + get: { + parameters: { + query?: { + /** @description IDs of team templates to fetch. If a record can't be found, that record won't be returned and your request will be successful */ + ids?: string[]; + /** + * @description Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. + * + * ---CUSTOM--- + * {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + */ + updated_at?: string[]; + /** @description Filters email templates by title or subject */ + search?: string; + /** @description Filters email templates by tags applied to the template by tag ID, not to exceed 100 IDs */ + tag_ids?: number[]; + /** @description Filters team templates by tags applied to the template, not to exceed 100 tags */ + tag?: string[]; + /** @description Filters email templates to include archived templates or not */ + include_archived_templates?: boolean; + /** @description Key to sort on, must be one of: created_at, updated_at, last_used_at. Defaults to updated_at */ + sort_by?: string; + /** @description Direction to sort in, must be one of: ASC, DESC. Defaults to DESC */ + sort_direction?: string; + /** @description How many records to show per page in the range [1, 100]. Defaults to 25 */ + per_page?: number; + /** @description The current page to fetch results from. Defaults to 1 */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data */ + limit_paging_counts?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["TeamTemplate"][]; + }; + }; + }; + }; + }; + "/v2/team_templates/{id}.json": { + /** + * Fetch a team template + * @description Fetches a team template, by ID only. + */ + get: { + parameters: { + query?: { + /** @description Optionally will return the templates with the current user's email signature */ + include_signature?: boolean; + }; + path: { + /** @description Team Template ID */ + id: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["TeamTemplate"]; + }; + }; + }; + }; + }; + "/v2/third_party_live_feed_items": { + /** + * Create a live feed item + * @description Creates a live feed item that can be sent to users. May only be used by whitelisted Frontend Integrations. Reference the Salesloft App Directory and Frontend Integrations sections for additional details. + */ + post: { + requestBody: { + content: { + "application/x-www-form-urlencoded": { + /** + * @description Equality filters that are applied to the event_occurred_at field. A single filter can be used by itself or combined with other filters to create a range. + * ---CUSTOM--- + * {"keys":[{"description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"gt","type":"iso8601 string"},{"description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"gte","type":"iso8601 string"},{"description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"lt","type":"iso8601 string"},{"description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"lte","type":"iso8601 string"}],"type":"object"} + */ + event_occurred_at: string; + /** @description Uniquely provided string specific to this event. This should be a value which can't be duplicated between external systems, meaning that an id is not sufficient. */ + idempotency_key: string; + /** @description The message that relates to the subject. This message should start with a lower-case past-tense verb and end with a period (e.g. "received a package."). When live feed items are displayed to users, the subject's name is concatenated with the message and a joining space. Only HTML tags with an "href" attribute are allowed. Other attributes and tags will be stripped. */ + message: string; + /** @description The ID of the subject of the live feed item (i.e. the "person" id). */ + subject_id: number; + /** @description The type of the subject of the live feed item. Currently only "person" is supported. */ + subject_type: string; + /** @description The guid for the user that this live feed item should be shown to. */ + user_guid: string; + }; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["LiveFeedItem"][]; + }; + }; + }; + }; + }; + "/v2/users.json": { + /** + * List users + * @description Non Admin: Lists only your user, or all on team depending on group visibility policy + * Team Admin: Lists users associated with your team + */ + get: { + parameters: { + query?: { + /** @description IDs of users to fetch. If a record can't be found, that record won't be returned and your request will be successful */ + ids?: number[]; + /** @description Filters list to only include guids */ + guid?: string[]; + /** @description Filters users by group_id. An additional value of "_is_null" can be passed to filter users that are not in a group */ + group_id?: string[]; + /** @description Filters users by role_id */ + role_id?: string[]; + /** @description Space-separated list of keywords used to find case-insensitive substring matches against First Name, Last Name, or Email */ + search?: string; + /** @description Filters users based on active attribute. Defaults to not applied */ + active?: boolean; + /** + * @description Defaults to true. + * + * When true, only shows users that are actionable based on the team's privacy settings. + * When false, shows all users on the team, even if you can't take action on that user. Deactivated users are also included when false. + */ + visible_only?: boolean; + /** @description How many users to show per page in the range [1, 100]. Defaults to 25. Results are only paginated if the page parameter is defined */ + per_page?: number; + /** @description The current page to fetch users from. Defaults to returning all users */ + page?: number; + /** @description Whether to include total_pages and total_count in the metadata. Defaults to false */ + include_paging_counts?: boolean; + /** @description Filters users based on if they have a crm user mapped or not. */ + has_crm_user?: boolean; + /** @description Filters users based on assigned work_country. */ + work_country?: string[]; + /** @description Key to sort on, must be one of: id, email, name, group, role. Defaults to id */ + sort_by?: string; + /** @description Direction to sort in, must be one of: ASC, DESC. Defaults to DESC */ + sort_direction?: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["User"][]; + }; + }; + }; + }; + }; + "/v2/users/{id}.json": { + /** + * Fetch a user + * @description Fetches a user, by ID only. + */ + get: { + parameters: { + path: { + /** @description User ID */ + id: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["User"]; + }; + }; + }; + }; + }; + "/v2/webhook_subscriptions": { + /** + * List webhook subscriptions + * @description Fetches all of the customer's webhook subscriptions for your application. + */ + get: { + parameters: { + query?: { + /** @description Filters webhook subscriptions by whether is enabled or not. */ + enabled?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Subscription"][]; + }; + }; + }; + }; + /** + * Create a webhook subscription + * @description Creates a webhook subscription. Visit the webhooks page for additional details and a list of available webhooks. + * Request must be made with a valid Oauth token or API key. + */ + post: { + requestBody: { + content: { + "application/x-www-form-urlencoded": { + /** @description Any string to be used as a shared secret when subscription events are published. SalesLoft will send the value of this callback_token in the payload of each event so the receiver may verify it matches the original value. This ensures webhook events are being delivered by SalesLoft. */ + callback_token: string; + /** @description URL for your callback handler */ + callback_url: string; + /** @description Type of event the subscription is for. Visit the "Event Types" section of the webhooks page to find a list of supported event types. */ + event_type: string; + }; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Subscription"]; + }; + }; + }; + }; + }; + "/v2/webhook_subscriptions/{id}": { + /** + * Fetch a webhook subscription + * @description Fetches a webhook subscription, by ID only. + */ + get: { + parameters: { + path: { + /** @description The id for the Webhook Subscription */ + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Subscription"]; + }; + }; + }; + }; + /** + * Update a webhook subscription + * @description Updates a webhook subscription. + * Request must be made with a valid Oauth token or API key. + */ + put: { + parameters: { + path: { + /** @description The Webhook Suscription id to update */ + id: number; + }; + }; + requestBody?: { + content: { + "application/x-www-form-urlencoded": { + /** @description Enable or disable the webhook subscription */ + enabled?: boolean; + }; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "*/*": components["schemas"]["Subscription"]; + }; + }; + }; + }; + /** + * Delete a webhook subscription + * @description Deletes a webhook subscription. This operation is not reversible without contacting support. This operation can be called multiple times successfully. + */ + delete: { + parameters: { + path: { + /** @description The id of the Webhook Subscription to delete */ + id: number; + }; + }; + responses: { + /** @description This webhook subscription has been deleted successfully */ + 204: { + content: never; + }; + }; + }; + }; +} + +export type webhooks = Record; + +export interface components { + schemas: { + Account: { + account_tier?: components["schemas"]["EmbeddedResource"]; + /** + * Format: date-time + * @description Datetime of when the Account was archived, if archived + * @example "2023-01-01T05:00:00.000Z" + */ + archived_at?: string; + /** + * @description City + * @example Dufftown + */ + city?: string; + company_stage?: components["schemas"]["EmbeddedResource"]; + /** + * @description Type of the Account's company + * @example Private + */ + company_type?: string; + /** + * @description Conversational name of the Account + * @example Hogwarts + */ + conversational_name?: string; + /** + * @description Country + * @example Scotland + */ + country?: string; + counts?: components["schemas"]["EmbeddedAccountCounts"]; + /** + * Format: date-time + * @description Datetime of when the Account was created + * @example "2023-01-01T05:00:00.000Z" + */ + created_at?: string; + creator?: components["schemas"]["EmbeddedResource"]; + /** + * @description CRM ID + * @example 003i000001mnhpD + */ + crm_id?: string; + /** + * @description CRM object type + * @example account + */ + crm_object_type?: string; + /** + * @description CRM url + * @example https://na15.salesforce.com/003i000001mnhpD + */ + crm_url?: string; + /** + * @description Custom fields are defined by the user's team. Only fields with values are presented in the API. + * @example { + * "MyField": "A Value", + * "Other": "Field" + * } + */ + custom_fields?: Record; + /** + * @description Description + * @example British school of magic for students + */ + description?: string; + /** + * @description Whether this company has opted out of communications. Do not contact someone at this company when this is set to true + * @example true + */ + do_not_contact?: boolean; + /** + * @description Website domain, not a fully qualified URI + * @example salesloft.com + */ + domain?: string; + /** + * @description Date or year of founding + * @example March 1st, 1820 + */ + founded?: string; + /** + * @description ID of Account + * @example 1 + */ + id?: number; + /** + * @description Industry + * @example Education + */ + industry?: string; + /** + * Format: date-time + * @description Datetime this Account was last contacted + * @example "2023-01-01T05:00:00.000Z" + */ + last_contacted_at?: string; + last_contacted_by?: components["schemas"]["EmbeddedResource"]; + last_contacted_person?: components["schemas"]["EmbeddedResource"]; + /** + * @description The type of the last touch to this Account. Can be call, email, other + * @example call + */ + last_contacted_type?: string; + /** + * @description Full LinkedIn url + * @example https://www.linkedin.com/company/2296178/ + */ + linkedin_url?: string; + /** + * @description Time locale + * @example Europe/London + */ + locale?: string; + /** + * @description Account Full Name + * @example Hogwarts School of Witchcraft and Wizardry + */ + name?: string; + owner?: components["schemas"]["EmbeddedResource"]; + /** + * @description Mapped owner field from the CRM + * @example 003i000001mnhpD + */ + owner_crm_id?: string; + /** + * @description Phone number without formatting + * @example +1 444 555 6666 + */ + phone?: string; + /** + * @description Postal code + * @example 55555 + */ + postal_code?: string; + /** + * @description Estimated revenue range + * @example 1,000,000-2,000,000 + */ + revenue_range?: string; + /** + * @description Estimated number of people in employment + * @example 1500 + */ + size?: string; + /** + * @description State + * @example Mortlach + */ + state?: string; + /** + * @description Street name and number + * @example 4 Picket Drive + */ + street?: string; + /** + * @description All tags applied to this Account + * @example [ + * "7-23-2017", + * "dreamforce" + * ] + */ + tags?: string[]; + /** + * @description Twitter handle, with @ + * @example @kyleporter + */ + twitter_handle?: string; + /** + * Format: date-time + * @description Datetime of when the Account was last updated + * @example "2023-01-01T05:00:00.000Z" + */ + updated_at?: string; + /** + * @description Filters by accounts matching all given user relationship fields, _is_null or _unmapped can be passed to filter accounts with null or unmapped user relationship values + * @example { + * "Other": "_is_null", + * "bff": "0037h00000d78aAAAQ" + * } + */ + user_relationships?: Record; + /** + * @description Website + * @example https://salesloft.com + */ + website?: string; + }; + AccountStage: { + /** + * Format: date-time + * @description Datetime of when the Account Stage was created + * @example "2023-01-01T05:00:00.000Z" + */ + created_at?: string; + /** + * @description ID of Account Stage + * @example 1 + */ + id?: number; + /** + * @description Name of Account Stage + * @example In Progress + */ + name?: string; + /** + * @description Order of Account Stage + * @example 3 + */ + order?: number; + /** + * Format: date-time + * @description Datetime of when the Account Stage was last updated + * @example "2023-01-01T05:00:00.000Z" + */ + updated_at?: string; + }; + AccountTier: { + /** + * Format: date-time + * @description Datetime of when the Account Tier was created + * @example "2023-01-01T05:00:00.000Z" + */ + created_at?: string; + /** + * @description ID of Account Tier + * @example 1 + */ + id?: number; + /** + * @description Name of the Account Tier + * @example High Priority + */ + name?: string; + /** + * @description The order of the account tier + * @example 2 + */ + order?: number; + /** + * Format: date-time + * @description Datetime of when the Account Tier was last updated + * @example "2023-01-01T05:00:00.000Z" + */ + updated_at?: string; + }; + AccountUpsert: { + account?: components["schemas"]["Account"]; + /** @description The type of upsert. One of: create, update */ + upsert_type?: string; + }; + Action: { + action_details?: components["schemas"]["EmbeddedResource"]; + cadence?: components["schemas"]["EmbeddedResource"]; + /** + * Format: date-time + * @description Datetime of when the Action was created + * @example "2023-01-01T05:00:00.000Z" + */ + created_at?: string; + /** + * @description Whether this step is due + * @example true + */ + due?: boolean; + /** + * Format: date-time + * @description When action is due + * @example "2023-01-01T05:00:00.000Z" + */ + due_on?: string; + /** + * @description ID of Action + * @example 1 + */ + id?: number; + /** + * @description ID of the multitouch group + * @example 1 + */ + multitouch_group_id?: number; + person?: components["schemas"]["EmbeddedResource"]; + /** + * @description The current state of the person on the cadence. Possible values are: + * + * in_progress: this action has not been completed + * + * pending_activity: this action has been acted upon, but the action has not been completed. + * (i.e. the email is scheduled to send, but has not been delivered yet) + * + * @example in_progress + */ + status?: string; + step?: components["schemas"]["EmbeddedResource"]; + /** + * @description The type of this action. Valid types are: email, phone, other. New types may be added in the future. + * + * @example phone + */ + type?: string; + /** + * Format: date-time + * @description Datetime of when the Action was last updated + * @example "2023-01-01T05:00:00.000Z" + */ + updated_at?: string; + user?: components["schemas"]["EmbeddedResource"]; + }; + Activity: { + /** + * Format: date-time + * @description Datetime of when the Activity was last updated + * @example "2023-01-01T05:00:00.000Z" + */ + updated_at?: string; + }; + ActivityHistory: { + /** + * Format: date-time + * @description When this record was created + * @example "2019-01-01T00:00:00.000Z" + */ + created_at?: string; + /** + * @description Attributes from associated records. This is specific to the type of activity and may change over time. Not returned for create requests + * @example { + * "counts": { + * "clicks": 2, + * "replies": 1, + * "views": 3 + * }, + * "status": "sent", + * "subject": "Welcome to SalesLoft" + * } + */ + dynamic_data?: Record; + /** + * @description A list of remote resource names that failed to load. This is specific to the type of activity and may change over time. Not returned for create requests + * @example [ + * "email" + * ] + */ + failed_dynamic_resources?: Record; + /** + * @description ID of this activity + * @example 1 + */ + id?: number; + /** + * Format: date-time + * @description When this activity occurred + * @example "2019-01-01T00:00:00.000Z" + */ + occurred_at?: string; + /** + * Format: date-time + * @description When this record was pinned + * @example "2019-01-01T00:00:00.000Z" + */ + pinned_at?: string; + /** + * @description ID of the resource this activity is for. It will be a string for the following resource types: crm_opportunity + * @example 1 + */ + resource_id?: number; + /** + * @description Type of the resource this activity is for. One of: account, person + * @example person + */ + resource_type?: number; + /** + * @description The static data for this activity + * @example { + * "email_id": 2 + * } + */ + static_data?: Record; + /** + * @description The type of activity + * @example email + */ + type?: string; + /** + * Format: date-time + * @description When this record was updated + * @example "2019-01-01T00:00:00.000Z" + */ + updated_at?: string; + /** + * @description UUID of the user this activity is for + * @example 51398ccd-309e-467f-aae2-4b0f66b5c11d + */ + user_guid?: string; + }; + BulkJob: { + /** + * Format: date-time + * @description When this bulk job was created + * @example "2019-01-01T05:00:00.000Z" + */ + created_at?: string; + /** + * @description Number of errored records at the time of request for this Bulk Job + * @example 23 + */ + errors?: number; + /** + * Format: date-time + * @description When this bulk job finished processing + * @example "2019-01-02T05:00:00.000Z" + */ + finished_at?: string; + /** + * @description ID of this Bulk Job + * @example 1 + */ + id?: number; + /** + * Format: date-time + * @description When this bulk job was marked as ready to execute + * @example "2019-01-02T05:00:00.000Z" + */ + marked_ready_at?: string; + /** + * @description Name of this Bulk Job + * @example Job Name + */ + name?: string; + /** + * @description Number of processed records at the time of request for this Bulk Job + * @example 50 + */ + processed?: number; + /** + * @description Whether the Bulk Job is ready to be executed + * @example false + */ + ready_to_execute?: boolean; + /** + * @description Scopes + * @example [ + * "person:set_crm_id" + * ] + */ + scopes?: unknown[]; + /** + * Format: date-time + * @description When this bulk job started processing. null until bulk job is done + * @example "2019-01-02T05:00:00.000Z" + */ + started_at?: string; + /** + * @description State of the Bulk Job. Must be one of: open, executing, done. + * @example open + */ + state?: string; + /** + * @description Number of total records for this Bulk Job + * @example 1234 + */ + total?: number; + /** + * @description Type of the Bulk Job. + * @example person/upsert + */ + type?: string; + /** + * Format: date-time + * @description When this bulk job was updated + * @example "2019-01-02T05:00:00.000Z" + */ + updated_at?: string; + }; + BulkJobResult: { + /** + * @description Error message for the record that was processed. Will be null if there was no error. + * @example Missing required field: email address + */ + error?: string; + /** + * @description ID of the record that was processed + * @example 1 + */ + id?: number; + /** + * @description The data that was used to process the operation + * @example {first_name: "John", last_name: "Smith"} + */ + record?: Record; + /** + * @description The object containing the resulting resource from performing the bulk action on this record + * @example {person: {...}, upsert_type: "create"} + */ + resource?: Record; + /** + * @description Status of the record that was processed. Will be one of: success, error + * @example error + */ + status?: string; + }; + Cadence: { + added_stage?: components["schemas"]["EmbeddedResource"]; + /** + * Format: date-time + * @description Datetime of when the cadence was archived, if archived + * @example "2023-01-01T05:00:00.000Z" + */ + archived_at?: string; + bounced_stage?: components["schemas"]["EmbeddedResource"]; + /** + * @description ID of the cadence framework used to create steps for the cadence + * @example 1 + */ + cadence_framework_id?: number; + /** + * @description The use case of the cadence. Possible values are: + * + * outbound: Denotes an outbound cadence, typically for sales purposes + * + * inbound: Denotes an inbound sales cadence + * + * event: Denotes a cadence used for an upcoming event + * + * other: Denotes a cadence outside of the standard process + * + * @example outbound + */ + cadence_function?: string; + cadence_priority?: components["schemas"]["EmbeddedResource"]; + counts?: components["schemas"]["CadenceCounts"]; + /** + * Format: date-time + * @description Datetime of when the cadence was created + * @example "2023-01-01T05:00:00.000Z" + */ + created_at?: string; + creator?: components["schemas"]["EmbeddedResource"]; + /** + * @description Whether this cadence is in draft mode + * @example false + */ + draft?: boolean; + /** + * @description Cadence External ID + * @example This is my external id + */ + external_identifier?: string; + finished_stage?: components["schemas"]["EmbeddedResource"]; + /** + * @description Groups to which this cadence is assigned, if any + * @example [ + * { + * "_href": "https://api.salesloft.com/v2/groups/921", + * "id": 921 + * } + * ] + */ + groups?: components["schemas"]["EmbeddedResource"][]; + /** + * @description ID of cadence + * @example 1 + */ + id?: number; + /** + * @description Cadence name + * @example Prospecting - VP of Sales + */ + name?: string; + /** + * @description Whether this cadence is configured to include an opt-out link by default + * @example true + */ + opt_out_link_included?: boolean; + owner?: components["schemas"]["EmbeddedResource"]; + /** + * @description Whether this cadence is configured to automatically remove people who have bounced + * @example true + */ + remove_bounces_enabled?: boolean; + /** + * @description Whether this cadence is configured to automatically remove people who have replied + * @example true + */ + remove_replies_enabled?: boolean; + replied_stage?: components["schemas"]["EmbeddedResource"]; + /** + * @description Whether this cadence is visible to team members (shared) + * @example false + */ + shared?: boolean; + /** + * @description All tags applied to this cadence + * @example [ + * "7-23-2017", + * "dreamforce" + * ] + */ + tags?: string[]; + /** + * @description Whether this cadence is a team cadence. A team cadence is created by an admin and can be run by all users + * @example false + */ + team_cadence?: boolean; + /** + * Format: date-time + * @description Datetime of when the cadence was last updated + * @example "2023-01-01T05:00:00.000Z" + */ + updated_at?: string; + }; + CadenceCounts: { + /** + * @description The number of people that have ever been added to the cadence + * @example 59 + */ + cadence_people?: number; + /** + * @description The number of meetings booked and attributed to the cadence + * @example 10 + */ + meetings_booked?: number; + /** + * @description The number of opportunities created and attributed to the cadence + * @example 10 + */ + opportunities_created?: number; + /** + * @description The number of people that have been skipped, scheduled, or advanced in a cadence + * @example 1 + */ + people_acted_on_count?: number; + /** + * @description The user defined target for number of people to add to the cadence each day + * @example 10 + */ + target_daily_people?: number; + }; + CadenceExport: { + /** + * @description The content of the cadence + * @example {} + */ + cadence_content?: Record; + }; + CadenceImport: { + cadence?: components["schemas"]["EmbeddedResource"]; + }; + CadenceMembership: { + /** + * Format: date-time + * @description Datetime of when the person was last added to this cadence + * @example "2023-01-01T05:00:00.000Z" + */ + added_at?: string; + cadence?: components["schemas"]["EmbeddedResource"]; + counts?: components["schemas"]["CadenceMembershipCounts"]; + /** + * Format: date-time + * @description Datetime of when the person was first added to this cadence + * @example "2023-01-01T05:00:00.000Z" + */ + created_at?: string; + /** + * @description The current state of the person on the cadence. Possible values are: + * + * processing: The person is being processed on a cadence. Cadence-related changes cannot be made at this time + * + * staged: The person is waiting for the first step in the cadence to occur + * + * active: The cadence has begun processing this person and is still in the process, but idle + * + * scheduled: The cadence has begun processing this person and is still in the process, with an activity scheduled to occur + * + * completed: The cadence has been completed for this person + * + * removed: The person was manually or automatically removed from the cadence + * + * removed_no_action: The person was removed from the cadence before any action occurred + * + * reassigned: The person's cadence execution was transferred to a different user, ending this user's interaction + * + * @example staged + */ + current_state?: string; + /** + * @description Whether the person is currently on the cadence + * @example false + */ + currently_on_cadence?: boolean; + /** + * @description Cadence membership ID + * @example 1 + */ + id?: number; + latest_action?: components["schemas"]["EmbeddedResource"]; + person?: components["schemas"]["EmbeddedResource"]; + /** + * @description Whether the associated person has since been deleted + * @example false + */ + person_deleted?: boolean; + /** + * Format: date-time + * @description Datetime of when the record was last updated + * @example "2023-01-01T05:00:00.000Z" + */ + updated_at?: string; + user?: components["schemas"]["EmbeddedResource"]; + }; + CadenceMembershipCounts: { + /** + * @description The number of times emails sent from the cadence to the person bounced + * @example 0 + */ + bounces?: number; + /** + * @description The number of times a call was logged from the cadence to the person + * @example 2 + */ + calls?: number; + /** + * @description The number of times emails sent from the cadence to the person were clicked + * @example 5 + */ + clicks?: number; + /** + * @description The number of times emails sent from the cadence to the person were replied to + * @example 2 + */ + replies?: number; + /** + * @description The number of times emails were sent from the cadence to the person + * @example 4 + */ + sent_emails?: number; + /** + * @description The number of times emails sent from the cadence to the person were opened + * @example 10 + */ + views?: number; + }; + CalendarEvent: { + /** + * @description Whether the calendar event is an all-day event. + * @example false + */ + all_day?: string; + /** + * @description The attendees of the calendar event. + * @example [ + * { + * "deleted_at": null, + * "email": "alice@example.com", + * "name": "Alice", + * "organizer": true, + * "status": "accepted", + * "status_changed": false + * }, + * { + * "deleted_at": null, + * "email": "bob@example.com", + * "name": "Bob", + * "organizer": false, + * "status": "accepted", + * "status_changed": false + * } + * ] + */ + attendees?: Record; + /** + * @description Raw body content from Microsoft calendar events + * @example some html text + */ + body_html?: string; + /** + * @description Busy/free status of the calendar event + * @example false + */ + busy?: boolean; + /** + * @description Calendar ID of the user calendar. + * @example test@example.com + */ + calendar_id?: string; + /** + * @description The canceled date of the calendar event. + * @example iso8601_now + */ + canceled_at?: string; + /** + * @description The conference-related information, such as details of a Google Meet conference. + * @example {} + */ + conference_data?: Record; + /** + * @description Creation time of the calendar event. + * @example iso8601_now + */ + created_at?: string; + /** + * @description The creator email of the calendar event. + * @example creator@example.com + */ + creator?: Record; + /** + * @description Description of the calendar event + * @example Calendar event description + */ + description?: string; + /** + * Format: date-time + * @description The (exclusive) end time of the calendar event. + * @example "2022-08-23T08:18:47.853Z" + */ + end_time?: string; + /** + * @description Extended properties of the calendar event. + * @example {} + */ + extended_properties?: Record; + /** + * @description An absolute link to this calendar event in the Google Calendar Web UI. + * @example https://www.google.com/calendar/event?eid=Y2N + */ + html_link?: string; + /** + * @description Calendar event unique identifier (iCalUID) + * @example 1p1oilmc4mt3m6ah6rmf6ik8mm@google.com + */ + i_cal_uid?: string; + /** + * @description The calendar event original ID from calendar provider + * @example AAMkADQ0NjE4YmY5LTc3ZDYtNDc5NC1-UlgAAAAAAENAAB3eGoN5TIDTp8dXXDpxUlgAACQlfLuAAA= + */ + id?: string; + /** + * @description Location of the calendar event + * @example Event location + */ + location?: string; + /** + * @description The organizer email of the calendar event. + * @example organizer@example.com + */ + organizer?: string; + /** + * @description The provider of the calendar event. + * @example google + */ + provider?: string; + /** + * @description Whether the calendar event is a recurring event. + * @example false + */ + recurring?: string; + /** + * Format: date-time + * @description The (inclusive) start time of the calendar event. + * @example "2022-08-23T08:18:47.832Z" + */ + start_time?: string; + /** + * @description The status of the calendar event. It can be empty for non-google events. + * @example confirmed + */ + status?: string; + /** + * @description Tenant ID of the user calendar + * @example 1 + */ + tenant_id?: number; + /** + * @description Title of the calendar event + * @example Calendar event title + */ + title?: string; + /** + * @description Last modification time of the calendar event. + * @example iso8601_now + */ + updated_at?: string; + /** + * @description User GUID of the user calendar. + * @example 9ccb7701-52e7-4d3e-91b0-b142a2fef2ec + */ + user_guid?: string; + }; + Call: { + action?: components["schemas"]["EmbeddedResource"]; + cadence?: components["schemas"]["EmbeddedResource"]; + called_person?: components["schemas"]["EmbeddedResource"]; + /** + * Format: date-time + * @description Datetime of when the call was created + * @example "2023-01-01T05:00:00.000Z" + */ + created_at?: string; + crm_activity?: components["schemas"]["EmbeddedResource"]; + /** + * @description Result of the call + * @example Connected + */ + disposition?: string; + /** + * @description Length of the call in seconds + * @example 60 + */ + duration?: number; + /** + * @description ID of Call + * @example 1 + */ + id?: number; + note?: components["schemas"]["EmbeddedResource"]; + /** + * @description The recordings for this this call and their status + * @example [ + * { + * "recording_status": "completed", + * "status": "completed", + * "url": "https://example.com/recording1" + * } + * ] + */ + recordings?: components["schemas"]["EmbeddedRecordingResource"][]; + /** + * @description Outcome of the conversation + * @example Demo Scheduled + */ + sentiment?: string; + step?: components["schemas"]["EmbeddedResource"]; + /** + * @description Phone number that received the call + * @example 7705551234 + */ + to?: string; + /** + * Format: date-time + * @description Datetime of when the call was last updated + * @example "2023-01-01T05:00:00.000Z" + */ + updated_at?: string; + user?: components["schemas"]["EmbeddedResource"]; + }; + CallDataRecord: { + call?: components["schemas"]["EmbeddedResource"]; + /** + * @description Type of the call. Can be one of: call, bridge, collaboration. Though exact values may change over time + * @example call + */ + call_type?: string; + /** + * @description UUID of the call. Legs of the same call will have the same call_uuid. + * @example 5c5c1f32-bff1-4b7c-8f2a-bd650b829c67 + */ + call_uuid?: string; + called_person?: components["schemas"]["EmbeddedResource"]; + /** + * Format: date-time + * @description Datetime of when the call was created + * @example "2023-01-01T05:00:00.000Z" + */ + created_at?: string; + /** + * @description Direction of the call. Can be one of: inbound, outbound + * @example outbound + */ + direction?: string; + /** + * @description Length of the call in seconds + * @example 60 + */ + duration?: number; + /** + * @description Phone number that placed the call + * @example 7705551234 + */ + from?: string; + /** + * @description ID of CallDataRecord + * @example 1 + */ + id?: number; + recording?: components["schemas"]["EmbeddedRecordingResource"]; + /** + * @description The outcome of the call. Can be one of: queued, initiated, ringing, in-progress, completed, busy, no-answer, canceled, failed + * @example completed + */ + status?: string; + /** + * @description Phone number that received the call + * @example 7705551234 + */ + to?: string; + /** + * Format: date-time + * @description Datetime of when the call was last updated + * @example "2023-01-01T05:00:00.000Z" + */ + updated_at?: string; + user?: components["schemas"]["EmbeddedResource"]; + }; + CallDisposition: { + /** + * Format: date-time + * @description Datetime of when the call disposition was created + * @example "2023-01-01T05:00:00.000Z" + */ + created_at?: string; + /** + * @description ID of CallDisposition + * @example 1 + */ + id?: number; + /** + * @description An available call disposition text + * @example Connected + */ + name?: string; + /** + * Format: date-time + * @description Datetime of when the call disposition was last updated + * @example "2023-01-01T05:00:00.000Z" + */ + updated_at?: string; + }; + CallInstruction: { + /** + * Format: date-time + * @description Datetime of when the call instructions were created + * @example "2023-01-01T05:00:00.000Z" + */ + created_at?: string; + /** + * @description ID of call instructions + * @example 1 + */ + id?: number; + /** + * @description The instructions + * @example Call once, leave voicemail if not answered. Conference conversation. + */ + instructions?: string; + /** + * Format: date-time + * @description Datetime of when the call instructions were last updated + * @example "2023-01-01T05:00:00.000Z" + */ + updated_at?: string; + }; + CallSentiment: { + /** + * Format: date-time + * @description Datetime of when the call sentiment was created + * @example "2023-01-01T05:00:00.000Z" + */ + created_at?: string; + /** + * @description ID of CallSentiment + * @example 1 + */ + id?: number; + /** + * @description An available call sentiment text + * @example Interested + */ + name?: string; + /** + * Format: date-time + * @description Datetime of when the call sentiment was last updated + * @example "2023-01-01T05:00:00.000Z" + */ + updated_at?: string; + }; + CallerId: { + /** + * @description The account of the person calling + * @example Bunty Soap Company + */ + account_name?: string; + /** + * @description The name of the person calling + * @example Frank Galikanokus + */ + display_name?: string; + person?: components["schemas"]["EmbeddedResource"]; + /** + * @description The title of the person calling + * @example Transportation Coordinator + */ + title?: string; + }; + ConversationsCall: { + /** + * @description Timestamp for when the call started. If not provided, will default to the time the request was received + * @example "2022-07-22T01:00:00.000Z" + */ + call_created_at?: string; + /** + * @description Call direction + * @example Outbound + */ + direction?: string; + /** + * @description Duration of call in seconds + * @example 120 + */ + duration?: number; + /** + * @description Phone number that call was made from + * @example 123-456-7890 + */ + from?: string; + /** + * @description Object containing recording info including the audio file (.mp3, .wav, .ogg, .m4a) + * @example { + * "url": "www.example.com/audio.mp3" + * } + */ + recording?: Record; + /** + * @description Phone number that was called + * @example 123-456-7890 + */ + to?: string; + /** + * @description Guid of the Salesloft User to assign the call to. If not provided, will default to the user within the authentication token + * @example aa111111-11aa-1111-a1a1-11aa11a1a1a1 + */ + user_guid?: string; + }; + CrmActivity: { + /** + * @description The type of activity that is being recorded, if available. The values can change over time, but could be one of: email, phone, email reminder, inmail + * @example phone + */ + activity_type?: string; + /** + * Format: date-time + * @description Datetime of when the crm activity was created + * @example "2023-01-01T05:00:00.000Z" + */ + created_at?: string; + /** + * @description The ID of the activity in your CRM, if written to your CRM + * @example 00T0H00003w2FBhUAM + */ + crm_id?: string; + /** + * @description Additional fields that are logged to your CRM, if mapped by the team at the time of writing to your CRM + * @example { + * "ecorp__Call_Type__c": "inbound follow up" + * } + */ + custom_crm_fields?: Record; + /** + * @description The description field of the activity in your CRM + * @example Timeline is 2 weeks for demo, set with Kate + */ + description?: string; + /** + * @description Information about why this crm activity failed to sync, if it did fail to sync. Failed activities will be automatically retried and may become successful in the future + * @example Could not find a CRM account link. + */ + error?: string; + /** + * @description CrmActivity ID + * @example 1 + */ + id?: number; + person?: components["schemas"]["EmbeddedResource"]; + /** + * @description The subject field of the activity in your CRM + * @example Call: Connected | Interested + */ + subject?: string; + /** + * Format: date-time + * @description Datetime of when the crm activity was last updated + * @example "2023-01-01T05:00:00.000Z" + */ + updated_at?: string; + user?: components["schemas"]["EmbeddedResource"]; + }; + CrmActivityField: { + /** + * Format: date-time + * @description Datetime of when the CrmActivityField was created + * @example "2023-01-01T05:00:00.000Z" + */ + created_at?: string; + /** + * @description The CRM object type that this field maps to. Valid object types are CRM dependent: Task, Phonecall, Email. + * + * @example Task + */ + crm_object_type?: string; + /** + * @description The CRM field name + * @example orgName__Field_Name__c + */ + field?: string; + /** + * @description The type of this field in your CRM. Certain field types can only accept structured input. + * @example boolean + */ + field_type?: string; + /** + * @description ID of CrmActivityField + * @example 1 + */ + id?: number; + /** + * @description Valid picklist values, if present for this field. The format is {label => value}. If present, only + * values in the picklist structure can be used as a crm param. + * + * @example { + * "High": "High", + * "Low": "Low" + * } + */ + picklist_values?: Record; + /** + * @description The Salesforce object type that this field maps to. Valid object types are: Task. + * More object types may be added in the future. + * + * @example Task + */ + salesforce_object_type?: string; + /** + * @description SalesLoft object that this field is mapped for. Valid sources are: email, phone + * @example phone + */ + source?: string; + /** + * @description A human friendly title for this field + * @example Field Name + */ + title?: string; + /** + * Format: date-time + * @description Datetime of when the CrmActivityField was last updated + * @example "2023-01-01T05:00:00.000Z" + */ + updated_at?: string; + /** + * @description A value to always be written. This value does not need to be sent to other endpoints' crm params, + * but must be the exact value if sent. Email source fields will always have a value present. + * + * @example Email + */ + value?: string; + }; + CrmUser: { + /** + * Format: date-time + * @description Datetime of when the crm user was created + * @example "2023-01-01T05:00:00.000Z" + */ + created_at?: string; + /** + * @description CRM ID + * @example 5003000000D8cuIQAA + */ + crm_id?: string; + /** + * @description Crm User ID + * @example 1 + */ + id?: number; + /** + * Format: date-time + * @description Datetime of when the crm user was last updated + * @example "2023-01-01T05:00:00.000Z" + */ + updated_at?: string; + user?: components["schemas"]["EmbeddedResource"]; + }; + CustomField: { + /** + * Format: date-time + * @description Datetime of when the Custom Field was created + * @example "2023-01-01T05:00:00.000Z" + */ + created_at?: string; + /** + * @description Type of the Custom Field. Value must be one of: person, company, opportunity. + * @example person + */ + field_type?: string; + /** + * @description ID of Custom Field + * @example 1 + */ + id?: number; + /** + * @description Name of the Custom Field + * @example My Custom Field + */ + name?: string; + /** + * Format: date-time + * @description Datetime of when the Custom Field was last updated + * @example "2023-01-01T05:00:00.000Z" + */ + updated_at?: string; + /** + * @description Value Type of the Custom Field. Value must be one of: text, date. + * @example text + */ + value_type?: string; + }; + Email: { + action?: components["schemas"]["EmbeddedResource"]; + /** + * @description Whether this email bounced + * @example false + */ + bounced?: boolean; + cadence?: components["schemas"]["EmbeddedResource"]; + /** + * @description Whether this email had click tracking enabled + * @example true + */ + click_tracking?: boolean; + counts?: components["schemas"]["EmailCounts"]; + /** + * Format: date-time + * @description Datetime of when the email was created + * @example "2023-01-01T05:00:00.000Z" + */ + created_at?: string; + crm_activity?: components["schemas"]["EmbeddedResource"]; + email_template?: components["schemas"]["EmbeddedResource"]; + /** @description Error message of the email. This field has been determined sensitive and requires a specific scope to access it. */ + error_message?: string; + /** + * @description Selected headers that are included if this email used them. Available keys are: cc, bcc + * @example { + * "bcc": "track@salesforce.com", + * "cc": "sb@salesloft.com" + * } + */ + headers?: Record; + /** + * @description ID of Email + * @example 1 + */ + id?: number; + mailing?: components["schemas"]["EmbeddedResource"]; + /** + * @description Percentage of this email that has been personalized + * @example 13.4 + */ + personalization?: string; + recipient?: components["schemas"]["EmbeddedResource"]; + /** + * @description Email address of the recipient + * @example bob.smith@example.com + */ + recipient_email_address?: string; + /** + * Format: date-time + * @description When this email will be sent, or null if already sent + * @example "2023-01-01T05:00:00.000Z" + */ + send_after?: string; + /** + * Format: date-time + * @description When this email was sent, or null if it was not sent + * @example "2023-01-01T05:00:00.000Z" + */ + sent_at?: string; + /** + * @description Status of this email through the sending process. Possible values are: sent, sent_from_gmail, sent_from_external, pending, pending_reply_check, scheduled, sending, delivering, failed, cancelled, pending_through_gmail, pending_through_external + * @example sent + */ + status?: string; + step?: components["schemas"]["EmbeddedResource"]; + /** @description Subject of the email. This field has been determined sensitive and requires a specific scope to access it. */ + subject?: string; + task?: components["schemas"]["EmbeddedResource"]; + /** + * Format: date-time + * @description Datetime of when the email was last updated + * @example "2023-01-01T05:00:00.000Z" + */ + updated_at?: string; + user?: components["schemas"]["EmbeddedResource"]; + /** + * @description Whether this email had view tracking enabled + * @example true + */ + view_tracking?: boolean; + }; + EmailCounts: { + /** + * @description The number of attachments on the email + * @example 0 + */ + attachments?: number; + /** + * @description The number of times links in the email were clicked + * @example 2 + */ + clicks?: number; + /** + * @description The number of replies the email received + * @example 1 + */ + replies?: number; + /** + * @description The number of unique devices that opened the email + * @example 4 + */ + unique_devices?: number; + /** + * @description The number of unique locations that opened the email + * @example 3 + */ + unique_locations?: number; + /** + * @description The number of times the email was opened + * @example 3 + */ + views?: number; + }; + EmailTemplate: { + /** + * @description Links to attachments and tags resources for this email template. + * @example { + * "attachments": "https://api.salesloft.com/v2/email_template_attachments?email_template_id[]=1" + * } + */ + _links?: Record; + /** + * Format: date-time + * @description Datetime of when the email template was archived, if archived + * @example "2023-01-01T05:00:00.000Z" + */ + archived_at?: string; + /** + * @description Sanitized body of the email template without email signature + * @example
Welcome to the SalesLoft family! My name is Sarah and I’m your implementation consultant. I’m here to get you up and running. It's my job to help you configure your team's SalesLoft access, provide customized training for your specific goals, and make sure that you and your team are ready to crush your goals.

Thank you,
+ */ + body?: string; + /** + * @description A plain text version of the first 100 characters of the body of the email template + * @example hello + * + * hey sounds good + * + * ok + * + * ok + * + * with an edit + * + * ok now i'm comic sans 14 + */ + body_preview?: string; + /** + * @description Whether this email template is only used on a cadence step. These templates are not visible in the SalesLoft application template list. If false, this email template is visible in the SalesLoft application, and may be used when composing an email or creating a cadence step. + * @example true + */ + cadence_template?: boolean; + /** + * @description Whether click tracking is enabled for this email template + * @example true + */ + click_tracking_enabled?: boolean; + counts?: components["schemas"]["EmailTemplateCounts"]; + /** + * Format: date-time + * @description Datetime of when the email template was created + * @example "2023-01-01T05:00:00.000Z" + */ + created_at?: string; + /** + * @description Groups to which this template is assigned, if any + * @example [ + * { + * "_href": "https://api.salesloft.com/v2/groups/921", + * "id": 921 + * } + * ] + */ + groups?: components["schemas"]["EmbeddedResource"][]; + /** + * @description ID of email template + * @example 5 + */ + id?: number; + /** + * Format: date-time + * @description Datetime of when the email template was last used + * @example "2023-01-01T05:00:00.000Z" + */ + last_used_at?: string; + /** + * @description Whether open tracking is enabled for this email template + * @example true + */ + open_tracking_enabled?: boolean; + /** + * @description Whether this email template is visible to team members (shared) + * @example false + */ + shared?: boolean; + /** + * @description Subject of the email template + * @example Welcome to SalesLoft! + */ + subject?: string; + /** + * @description All tags applied to this email template + * @example [ + * "7-23-2017", + * "internal" + * ] + */ + tags?: string[]; + team_template?: components["schemas"]["EmbeddedResource"]; + template_owner?: components["schemas"]["EmbeddedResource"]; + /** + * @description Title of the email template + * @example Welcome email + */ + title?: string; + /** + * Format: date-time + * @description Datetime of when the email template was last updated + * @example "2023-01-01T05:00:00.000Z" + */ + updated_at?: string; + }; + EmailTemplateAttachment: { + /** + * @description Content type of the attachment + * @example pdf, jpeg + */ + attachment_content_type?: string; + /** + * @description The size of the attachment + * @example 2 + */ + attachment_file_size?: number; + /** + * @description Unique attachment Identifier + * @example 13231232 + */ + attachment_fingerprint?: number; + /** + * @description ID of the email template attachment + * @example 10 + */ + attachment_id?: number; + /** + * @description Download url of the attachment + * @example https://path/to/example_attachment.gif + */ + download_url?: string; + email_template?: components["schemas"]["EmbeddedResource"]; + /** + * @description ID of email template attachment association + * @example 5 + */ + id?: number; + /** + * @description Name of the attachment + * @example example_attachment.gif + */ + name?: string; + /** + * @description Checks if attachment has been scanned + * @example true + */ + scanned?: boolean; + }; + EmailTemplateCounts: { + /** + * @description The number of bounces the email template received + * @example 10 + */ + bounces?: number; + /** + * @description The number of times links in the email template were clicked + * @example 20 + */ + clicks?: number; + /** + * @description The number of replies the email template received + * @example 1 + */ + replies?: number; + /** + * @description The number of times the email template was sent out + * @example 59 + */ + sent_emails?: number; + /** + * @description The number of times the email template was opened + * @example 3 + */ + views?: number; + }; + EmbeddedAccountCounts: { + /** + * @description Number of people in SalesLoft associated with this Account + * @example 15 + */ + people?: number; + }; + EmbeddedAttendeeResource: { + /** + * Format: date + * @description Datetime of when the attendee was deleted + * @example "2022-12-19T14:49:17.930Z" + */ + deleted_at?: string; + /** + * @description Email of the attendee + * @example calendar@example.com + */ + email?: string; + /** + * @description Name of the attendee + * @example John + */ + name?: string; + /** + * @description Whether the attendee is the organizer of the event. + * @example false + */ + organizer?: boolean; + /** + * @description The attendee's response status. Possible values are: needsAction, accepted, tentative, declined + * @example accepted + */ + status?: string; + /** + * @description Whether the attendee changed response status + * @example false + */ + status_changed?: boolean; + }; + EmbeddedRecordingResource: { + /** + * @description The processing status of the recording. Possible values are (but not limited to): + * + * not_recorded: there is no recording available, and there will not be one becoming available + * + * pending: the recording is currently being processed by the system + * + * processing: the recording is currently being processed by the system + * + * completed: the recording processing has been completed + * + * @example completed + */ + recording_status?: string; + /** + * @description The status of the call that produced this recording. Possible values are (but not limited to): + * + * no-answer: The call was not answered + * + * failed: The call was not able to be placed + * + * busy: The call was busy + * + * ringing: The call is ringing + * + * in-progress: The call is ongoing + * + * completed: The call is finished + * + * @example completed + */ + status?: string; + /** + * @description The url of the recording + * @example http://example.com/recording/1 + */ + url?: string; + }; + EmbeddedResource: { + /** + * @description Resource URL, pointed at your API version, present if this resource is available in the API + * @example https://api.salesloft.com/v2/widgets/10 + */ + _href?: string; + /** + * @description ID of the resource + * @example 10 + */ + id?: number; + }; + EventMeetingSetting: { + /** + * @description Calendar owner's email address + * @example calendar.owner@example.com + */ + email_address?: string; + }; + ExternalEmail: { + /** + * @description Message id present in the External Email header + * @example CAKseEdbTMcU-U0CeTkUSo5X4jyW8QPReVTyPA6CrUCf0ggZwHQ@mail.salesloft.com + */ + message_id?: string; + }; + Group: { + /** + * @description Groups accessible if any + * @example [ + * { + * "_href": "https://api.salesloft.com/v2/groups/921", + * "id": 921 + * } + * ] + */ + accessible_groups?: components["schemas"]["EmbeddedResource"][]; + /** + * @description ID of the Group + * @example 1 + */ + id?: number; + /** + * @description Name of the Group + * @example Test name + */ + name?: string; + /** + * @description ID of the parent Group + * @example 2 + */ + parent_id?: number; + }; + Import: { + /** + * Format: date-time + * @description Datetime of when the import was created + * @example "2023-01-01T05:00:00.000Z" + */ + created_at?: string; + /** + * @description Count of People that have not been deleted + * @example 5 + */ + current_people_count?: number; + /** + * @description Import ID + * @example 1 + */ + id?: number; + /** + * @description Count of People that have ever been on this Import + * @example 7 + */ + imported_people_count?: number; + /** + * @description Name of Import + * @example DataProvider -> SalesLoft 9/1/17 + */ + name?: string; + /** + * Format: date-time + * @description Datetime of when the import was last updated, ignoring relationship changes + * @example "2023-01-01T05:00:00.000Z" + */ + updated_at?: string; + }; + JobData: { + /** + * @description Associated bulk job + * @example {"id": 123, "_href": "https://api.salesloft.com/v2/bulk_jobs/123" + */ + bulk_job?: Record; + /** + * Format: date-time + * @description When this job data record was created + * @example "2019-01-01T05:00:00.000Z" + */ + created_at?: string; + /** + * @description Error associated with this record + * @example Not found + */ + error?: string; + /** + * Format: date-time + * @description When this job data record finished processing + * @example "2019-01-01T05:00:00.000Z" + */ + finished_at?: string; + /** + * @description ID of this Job Data + * @example 1 + */ + id?: number; + /** + * @description The data that was used to process the operation + * @example {first_name: "John", last_name: "Smith"} + */ + record?: Record; + /** + * @description The object containing the resulting resource from performing the bulk action on this record + * @example {person: {...}, upsert_type: "create"} + */ + resource?: Record; + /** + * Format: date-time + * @description When this job data record started processing + * @example "2019-01-01T05:00:00.000Z" + */ + started_at?: string; + /** + * @description Status of this job data. Must be one of: pending, success, error, retrying + * @example success + */ + status?: string; + }; + JobDataCreationResult: { + /** + * @description Number of records created + * @example 100 + */ + records?: number; + }; + LiveFeedItem: { + /** + * @description Information about whether this event should trigger an alert + * @example { + * "should_alert": true, + * "should_alert_until": "2019-01-01T05:00:00.000Z" + * } + */ + alert_metadata?: Record; + /** + * Format: date-time + * @description When this event occurred + * @example "2019-01-01T05:00:00.000Z" + */ + event_occurred_at?: string; + /** + * @description The type of event + * @example email_click + */ + event_type?: string; + /** + * @description ID of this item + * @example 1 + */ + id?: number; + /** + * @description A plaintext message for this event + * @example Steve is visiting your website. + */ + message?: string; + /** + * @description The metadata created for this event + * @example { + * "email_id": 2, + * "email_subject": "Come join us at Rainmaker, Jon!", + * "mailing_id": 3, + * "person_id": 1 + * } + */ + metadata?: Record; + /** + * @description The path to the application that should be followed + * @example /app/emails/detail/1 + */ + path?: string; + /** + * @description The key that should be used to rollup events client side. null or empty values should not be rolled up + * @example email_click:10 + */ + rollup_key?: string; + /** + * @description A plaintext title for this event + * @example Website Visit + */ + title?: string; + /** + * @description UUID of the user this item is for + * @example 51398ccd-309e-467f-aae2-4b0f66b5c11d + */ + user_guid?: string; + }; + LiveWebsiteTrackingParameter: { + /** + * @description A SalesLoft identifier + * @example [ + * { + * "name": "sbrc", + * "value": "tracking parameter" + * } + * ] + */ + parameters?: Record[]; + }; + Meeting: { + /** + * @description ID of the account the recipient associated to + * @example 1 + */ + account_id?: string; + /** + * @description Whether the meeting is an all-day meeting + * @example false + */ + all_day?: boolean; + /** + * @description The attendees of the meeting. Each attendee includes the following fields: status, email, name, organizer + * @example [ + * { + * "deleted_at": null, + * "email": "john@example.com", + * "name": "John", + * "organizer": true, + * "status": "accepted" + * } + * ] + */ + attendees?: components["schemas"]["EmbeddedAttendeeResource"][]; + booked_by_meetings_settings?: components["schemas"]["EventMeetingSetting"]; + booked_by_user?: components["schemas"]["EmbeddedResource"]; + cadence?: components["schemas"]["EmbeddedResource"]; + /** + * @description Calendar ID of the meeting owner + * @example calendar-id-google.com + */ + calendar_id?: string; + /** + * @description Calendar type of the meeting owner. Possible values are: gmail, azure, nylas, linkedin_azure, cerebro, external + * @example gmail + */ + calendar_type?: string; + /** + * Format: date + * @description Datetime of when the meeting was canceled + * @example "2022-12-19T14:49:17.931Z" + */ + canceled_at?: string; + /** + * Format: date + * @description Datetime of when the meeting was created + * @example "2022-12-19T14:49:17.930Z" + */ + created_at?: string; + /** + * @description List of crm custom fields which will be logged to SFDC + * @example { + * "Event_Calendar_Type__c": "Google" + * } + */ + crm_custom_fields?: Record; + /** + * @description List of crm references associated with the meeting + * @example { + * "what": { + * "crm_id": "0063X000018fDmMQAU", + * "crm_object_label": "Opportunity", + * "crm_object_type": "Opportunity", + * "crm_url": "link_to_salesforce", + * "description1": "Title of the opportunity", + * "description2": "2032-01-10T00:00:00.000Z", + * "description3": "Prospecting" + * }, + * "who": { + * "crm_id": "0033X00004GOywtQAD", + * "crm_object_label": "Contact", + * "crm_object_type": "Contact", + * "crm_url": "link_to_salesforce", + * "description1": "John Doe", + * "description2": "john.doe@example.com", + * "description3": null + * } + * } + */ + crm_references?: Record; + /** + * @description Description of the meeting + * @example Introducing interview + */ + description?: string; + /** + * Format: date + * @description End time of the meeting + * @example "2022-12-19T14:49:17.917Z" + */ + end_time?: string; + /** + * @description ID of the meeting created by target calendar + * @example 123468796 + */ + event_id?: string; + /** + * @description Source of the meeting. Possible values are: 'external' - The event was synced to Salesloft platform via Calendar Sync, 'internal' - The event was created via Salesloft platform + * @example external + */ + event_source?: string; + /** + * @description The list of attendees emails of the meeting + * @example [ + * "email1@sloft.com", + * "email2@sloft.com" + * ] + */ + guests?: string[]; + /** + * @description UID of the meeting provided by target calendar provider + * @example 040P00B08200E00074C5B7101A82EF + */ + i_cal_uid?: string; + /** + * @description ID of the meeting + * @example 1 + */ + id?: number; + /** + * @description Location of the meeting + * @example Atlanta, GA + */ + location?: string; + /** + * @description Meeting type + * @example Demo call + */ + meeting_type?: string; + /** + * @description Whether the meeting is a No Show meeting + * @example false + */ + no_show?: boolean; + owned_by_meetings_settings?: components["schemas"]["EventMeetingSetting"]; + person?: components["schemas"]["EmbeddedResource"]; + /** + * @description Email of the meeting invite recipient + * @example email@sloft.com + */ + recipient_email?: string; + /** + * @description Name of the meeting invite recipient + * @example John Doe + */ + recipient_name?: string; + /** + * Format: date + * @description Start time of the meeting + * @example "2022-12-19T14:49:17.917Z" + */ + start_time?: string; + /** + * @description Status of the meeting. Possible values are: pending, booked, failed, retry + * @example booked + */ + status?: string; + step?: components["schemas"]["EmbeddedResource"]; + /** + * @description Strict attribution means that we 100% sure which cadence generate the meeting + * @example false + */ + strict_attribution?: boolean; + /** + * @description ID of the created task + * @example 123 + */ + task_id?: string; + /** + * @description Title of the meeting + * @example Meeting with John + */ + title?: string; + /** + * Format: date + * @description Datetime of when the meeting was last updated + * @example "2022-12-19T14:49:17.930Z" + */ + updated_at?: string; + }; + MeetingSetting: { + active_meeting_url?: components["schemas"]["MeetingUrl"]; + /** + * @description Allow other team members to schedule on you behalf. + * @example true + */ + allow_booking_on_behalf?: boolean; + /** + * @description Allow team members to insert available time outside your working hours. + * @example true + */ + allow_booking_overtime?: boolean; + /** + * @description Allow team members to double book events on your calendar. + * @example false + */ + allow_event_overlap?: boolean; + /** + * @description The number of days out the user allows a prospect to schedule a meeting + * @example 14 + */ + availability_limit?: number; + /** + * @description If Availability Limits have been turned on + * @example true + */ + availability_limit_enabled?: boolean; + /** + * @description Default buffer duration in minutes set by a user + * @example 15 + */ + buffer_time_duration?: number; + /** + * @description Calendar type + * @example gmail + */ + calendar_type?: string; + /** + * Format: date + * @description Datetime of when the MeetingSetting was created + * @example "2022-09-15T08:40:59.055Z" + */ + created_at?: string; + /** + * @description Default meeting length in minutes set by the user + * @example 30 + */ + default_meeting_length?: number; + /** + * @description Default description of the meeting + * @example This meeting is held on a daily basis + */ + description?: string; + /** + * @description Calendar owner's email address + * @example calendar.owner@example.com + */ + email_address?: string; + /** + * @description Determines if a user enabled Calendar Sync feature + * @example false + */ + enable_calendar_sync?: boolean; + /** + * @description Determines if location will be filled via third-party service (Zoom, GoToMeeting, etc.) + * @example false + */ + enable_dynamic_location?: boolean; + /** + * @description ID of the MeetingSetting + * @example 1 + */ + id?: number; + /** + * @description Default location of the meeting + * @example Atlanta, GA + */ + location?: string; + /** + * @description Gets true when any issue with fetching calendar occurs + * @example false + */ + primary_calendar_connection_failed?: boolean; + /** + * @description ID of the primary calendar + * @example a98iu0@group.calendar.google.com + */ + primary_calendar_id?: string; + /** + * @description Display name of the primary calendar + * @example My Meetings Calendar + */ + primary_calendar_name?: string; + /** + * @description Determines if meetings are scheduled with a 15 minute buffer between them + * @example true + */ + schedule_buffer_enabled?: boolean; + /** + * @description The number of hours in advance a user requires someone to a book a meeting with them + * @example 2 + */ + schedule_delay?: number; + /** + * @description Allow team members to see the details of events on your calendar. + * @example false + */ + share_event_detail?: boolean; + /** + * @description Time zone for current calendar + * @example US/Eastern + */ + time_zone?: string; + /** + * @description Times available set by a user that can be used to book meetings + * @example { + * "monday": { + * "enabled": true, + * "end_time": "17:00", + * "start_time": "09:00" + * } + * } + */ + times_available?: Record; + /** + * @description Default title of the meeting + * @example Daily stand-up + */ + title?: string; + /** + * Format: date + * @description Datetime of when the MeetingSetting was last updated + * @example "2022-09-15T08:40:59.055Z" + */ + updated_at?: string; + user?: components["schemas"]["EmbeddedResource"]; + /** + * @description User details + * @example { + * "email": "john.doe@salesloft.com", + * "name": "John Doe" + * } + */ + user_details?: Record; + /** + * @description User slug generated with a full name of the user + * @example john-doe + */ + user_slug?: string; + }; + MeetingUrl: { + /** + * Format: date + * @description Datetime of when MeetingUrl was created + * @example "2022-09-15T08:40:59.056Z" + */ + created_at?: string; + /** + * Format: date + * @description Datetime of when MeetingUrl was last updated + * @example "2022-09-15T08:40:59.056Z" + */ + updated_at?: string; + /** + * @description Full url of the meeting + * @example https://example.com/team/user + */ + url?: string; + }; + MimeEmailPayload: { + /** + * @description Email ID + * @example 1 + */ + id?: number; + /** + * @description Email Address of Sender's mailbox + * @example example@salesloft.com + */ + mailbox?: string; + /** + * @description Unique Message ID + * @example CAKseEdbTMcU-U0CeTkUSo5X4jyW8QPReVTyPA6CrUCf0ggZwHQ@mail.salesloft.com + */ + message_id?: string; + /** + * @description Base64 encoded MIME email content + * @example ZW1haWwgZXhhbXBsZQ== + */ + raw?: string; + }; + Note: { + /** + * @description Type of associated resource ('person' or 'account') + * @example person + */ + associated_type?: string; + associated_with?: components["schemas"]["EmbeddedResource"]; + call?: components["schemas"]["EmbeddedResource"]; + /** + * @description The content of the note + * @example Was very interested in a demo at a later time + */ + content?: string; + /** + * Format: date-time + * @description Datetime of when the note was created + * @example "2023-01-01T05:00:00.000Z" + */ + created_at?: string; + /** + * @description Note ID + * @example 1 + */ + id?: number; + /** + * Format: date-time + * @description Datetime of when the note was last updated + * @example "2023-01-01T05:00:00.000Z" + */ + updated_at?: string; + user?: components["schemas"]["EmbeddedResource"]; + }; + PendingEmail: { + /** + * @description ID of the email + * @example 1 + */ + id?: number; + /** + * @description Email Address of the pending email + * @example example@salesloft.com + */ + mailbox?: string; + mime_email_payload?: components["schemas"]["EmbeddedResource"]; + }; + Person: { + account?: components["schemas"]["EmbeddedResource"]; + /** + * @description Whether this person's current email address has bounced + * @example false + */ + bouncing?: boolean; + /** + * @description The list of active cadences person is added to + * @example [ + * { + * "_href": "https://api.salesloft.com/v2/cadences/1", + * "id": 1 + * } + * ] + */ + cadences?: components["schemas"]["EmbeddedResource"][]; + /** + * @description City + * @example Atlanta + */ + city?: string; + /** + * @description Specific methods of communication to prevent for this person. This will prevent individual execution of these communication types as well as automatically skip cadence steps of this communication type for this person in SalesLoft. Values currently accepted: call, email, message + * @example [ + * "call", + * "email", + * "message" + * ] + */ + contact_restrictions?: string[]; + /** + * @description Country + * @example United States + */ + country?: string; + counts?: components["schemas"]["PersonCounts"]; + /** + * Format: date-time + * @description Datetime of when the person was created + * @example "2023-01-01T05:00:00.000Z" + */ + created_at?: string; + /** + * @description CRM ID + * @example 003i000001mnhpD + */ + crm_id?: string; + /** + * @description CRM object type + * @example Lead + */ + crm_object_type?: string; + /** + * @description CRM url + * @example https://na15.salesforce.com/003i000001mnhpD + */ + crm_url?: string; + /** + * @description Custom fields are defined by the user's team. Only fields with values are presented in the API. + * @example { + * "MyField": "A Value", + * "Other": "Field" + * } + */ + custom_fields?: Record; + /** + * @description Either the full name or the email address. Use this when showing a person's name + * @example Pat Johnson + */ + display_name?: string; + /** + * @description Whether or not this person has opted out of all communication. Setting this value to true prevents this person from being called, emailed, or added to a cadence in SalesLoft. If this person is currently in a cadence, they will be removed. + * @example true + */ + do_not_contact?: boolean; + /** + * @description Email address + * @example pat.johnson@example.com + */ + email_address?: string; + /** + * @description Whether this person is marked as a European Union Resident or not + * @example false + */ + eu_resident?: boolean; + /** + * @description First name + * @example Pat + */ + first_name?: string; + /** + * @description Full email address with name + * @example Pat Johnson + */ + full_email_address?: string; + /** + * @description Home phone without formatting + * @example +1 444 555 6666 + */ + home_phone?: string; + /** + * @description Person ID + * @example 1 + */ + id?: number; + import?: components["schemas"]["EmbeddedResource"]; + /** + * @description The Job Seniority of a Person, must be one of director, executive, individual_contributor, manager, vice_president, unknown + * @example vice_president + */ + job_seniority?: string; + last_completed_step?: components["schemas"]["EmbeddedResource"]; + last_completed_step_cadence?: components["schemas"]["EmbeddedResource"]; + /** + * Format: date-time + * @description Last datetime this person was contacted + * @example "2023-01-01T05:00:00.000Z" + */ + last_contacted_at?: string; + last_contacted_by?: components["schemas"]["EmbeddedResource"]; + /** + * @description The type of the last touch to this person. Can be call, email, other + * @example call + */ + last_contacted_type?: string; + /** + * @description Last name + * @example Johnson + */ + last_name?: string; + /** + * Format: date-time + * @description Last datetime this person replied to an email + * @example "2023-01-01T05:00:00.000Z" + */ + last_replied_at?: string; + /** + * @description Linkedin URL + * @example https://www.linkedin.com/in/username + */ + linkedin_url?: string; + /** + * @description Time locale of the person + * @example US/Eastern + */ + locale?: string; + /** + * @description The locale's timezone offset from UTC in minutes + * @example -480 + */ + locale_utc_offset?: number; + /** + * @description Mobile phone without formatting + * @example +1 444 555 6666 + */ + mobile_phone?: string; + most_recent_cadence?: components["schemas"]["EmbeddedResource"]; + owner?: components["schemas"]["EmbeddedResource"]; + /** + * @description Mapped owner field from your CRM + * @example 003i000001mnhpD + */ + owner_crm_id?: string; + /** + * @description Company industry. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended + * @example Information Technology + */ + person_company_industry?: string; + /** + * @description Company name. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended + * @example SalesLoft + */ + person_company_name?: string; + /** + * @description Company website. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended + * @example https://salesloft.com + */ + person_company_website?: string; + person_stage?: components["schemas"]["EmbeddedResource"]; + /** + * @description Personal email address + * @example pat.johnson@example.com + */ + personal_email_address?: string; + /** + * @description The website of this person + * @example https://salesloft.com + */ + personal_website?: string; + /** + * @description Phone without formatting + * @example +1 444 555 6666 + */ + phone?: string; + /** + * @description Phone extension without formatting + * @example x123 + */ + phone_extension?: string; + /** + * @description Alternate email address + * @example pat.johnson@example.com + */ + secondary_email_address?: string; + /** + * @description Whether this person is starred by the current user + * @example true + */ + starred?: boolean; + /** + * @description State + * @example Georgia + */ + state?: string; + /** + * @description The person's success count. 1 if person has any active successes, 0 otherwise. + * @example 1 + */ + success_count?: number; + /** + * @description All tags applied to this person + * @example [ + * "7-23-2017", + * "dreamforce" + * ] + */ + tags?: string[]; + /** + * @description Job title + * @example Sales Development Representative + */ + title?: string; + /** + * @description The twitter handle of this person + * @example @kyleporter + */ + twitter_handle?: string; + /** + * @description The person's untouched status + * @example false + */ + untouched?: boolean; + /** + * Format: date-time + * @description Datetime of when the person was last updated + * @example "2023-01-01T05:00:00.000Z" + */ + updated_at?: string; + /** + * @description Work location - city + * @example Atlanta + */ + work_city?: string; + /** + * @description Work location - country + * @example United States + */ + work_country?: string; + /** + * @description Work location - state + * @example Georgia + */ + work_state?: string; + }; + PersonCounts: { + /** + * @description The number of calls logged to this person + * @example 4 + */ + calls?: number; + /** + * @description The number of unique emails sent to this person that bounced + * @example 0 + */ + emails_bounced?: number; + /** + * @description The number of unique emails clicked by this person + * @example 1 + */ + emails_clicked?: number; + /** + * @description The number of unique emails replied to by this person + * @example 0 + */ + emails_replied_to?: number; + /** + * @description The number of emails sent to this person + * @example 3 + */ + emails_sent?: number; + /** + * @description The number of unique emails viewed by this person + * @example 2 + */ + emails_viewed?: number; + }; + PersonStage: { + /** + * Format: date-time + * @description Datetime of when the Person Stage was created + * @example "2023-01-01T05:00:00.000Z" + */ + created_at?: string; + /** + * @description ID of Person Stage + * @example 1 + */ + id?: number; + /** + * @description Name of Person Stage + * @example Entry Stage + */ + name?: string; + /** + * @description Sortable value of Person Stage order + * @example 16 + */ + order?: number; + /** + * Format: date-time + * @description Datetime of when the Person Stage was last updated + * @example "2023-01-01T05:00:00.000Z" + */ + updated_at?: string; + }; + PersonUpsert: { + person?: components["schemas"]["Person"]; + /** @description The type of upsert. One of: create, update */ + upsert_type?: string; + }; + PhoneNumberAssignment: { + /** + * @description PhoneNumberAssignment ID + * @example 1 + */ + id?: number; + /** + * @description The phone number associated with this assignment + * @example +12223334444 + */ + number?: string; + user?: components["schemas"]["EmbeddedResource"]; + }; + RecordingSetting: { + /** + * @description Whether this phone number should record by default + * @example true + */ + recording_default?: boolean; + }; + SavedListView: { + /** + * @description ID of Ssaved list view + * @example 1 + */ + id?: number; + /** + * @description Whether the saved list view is the default view + * @example true + */ + is_default?: boolean; + /** + * @description Name of saved list view + * @example Tom's Prospects + */ + name?: string; + /** + * @description Type of saved list view + * @example companies + */ + view?: string; + /** + * @description List of set filters in saved list view + * @example { + * "owner": "unowned", + * "stage": "28865", + * "unowned": true + * } + */ + view_params?: Record; + }; + Step: { + cadence?: components["schemas"]["EmbeddedResource"]; + /** + * Format: date-time + * @description Datetime of when the Step was created + * @example "2023-01-01T05:00:00.000Z" + */ + created_at?: string; + /** + * @description Day this step is associated with up + * @example 1 + */ + day?: number; + details?: components["schemas"]["EmbeddedResource"]; + /** + * @description Whether this step is currently active + * @example true + */ + disabled?: boolean; + /** + * @description Display name of the step + * @example Day 1: Step 2 - Phone + */ + display_name?: string; + /** + * @description ID of Step + * @example 1 + */ + id?: number; + /** + * @description Whether this step is a multitouch cadence step + * @example false + */ + multitouch_enabled?: boolean; + /** + * @description Name of the step + * @example VP Email Short + */ + name?: string; + /** + * @description The number of the step for this day + * @example 1 + */ + step_number?: number; + /** + * @description The type of the action scheduled by this step. Valid types are: email, phone, integration, other. New types may be added in the future. + * + * @example phone + */ + type?: string; + /** + * Format: date-time + * @description Datetime of when the Step was last updated + * @example "2023-01-01T05:00:00.000Z" + */ + updated_at?: string; + }; + Subscription: { + /** + * @description SalesLoft will include this token in the webhook event payload when calling your callback_url. It is strongly encouraged for your handler to verify this value in order to ensure the request came from SalesLoft. + * @example xT7/Buu0Vz2ffiIPuMlBGu+cwku1dr7G5jeiM0iyfYIT0l4z3azNGjiXWTOX/8OT + */ + callback_token?: string; + /** + * @description URL for your callback handler + * @example https://mycompany.com/api/person_called_handler + */ + callback_url?: string; + /** + * @description Is the Webhook Subscription enabled or not + * @example true + */ + enabled?: boolean; + /** + * @description Type of event the subscription is for + * @example link_swap + */ + event_type?: string; + /** + * @description ID for the Webhook Subscription + * @example 1 + */ + id?: number; + /** + * @description ID for the tenant to which user is assigned + * @example 16 + */ + tenant_id?: number; + /** + * @description UUID of the user the token is associated with + * @example 51398ccd-309e-467f-aae2-4b0f66b5c11d + */ + user_guid?: string; + }; + Success: { + counts?: components["schemas"]["SuccessCounts"]; + /** + * Format: date-time + * @description Datetime of when the success was created + * @example "2023-01-01T05:00:00.000Z" + */ + created_at?: string; + /** + * @description ID of success + * @example 1 + */ + id?: number; + latest_action?: components["schemas"]["EmbeddedResource"]; + latest_cadence?: components["schemas"]["EmbeddedResource"]; + latest_call?: components["schemas"]["EmbeddedResource"]; + latest_email?: components["schemas"]["EmbeddedResource"]; + latest_step?: components["schemas"]["EmbeddedResource"]; + person?: components["schemas"]["EmbeddedResource"]; + /** + * Format: date-time + * @description Datetime of when the success was recorded + * @example "2023-01-01T05:00:00.000Z" + */ + succeeded_at?: string; + /** + * Format: date-time + * @description Datetime of when this person was first worked, leading up to the success + * @example "2023-01-01T05:00:00.000Z" + */ + success_window_started_at?: string; + /** + * Format: date-time + * @description Datetime of when the success was last updated + * @example "2023-01-01T05:00:00.000Z" + */ + updated_at?: string; + user?: components["schemas"]["EmbeddedResource"]; + }; + SuccessCounts: { + /** + * @description The total number of calls made in this success window + * @example 5 + */ + total_calls?: number; + /** + * @description The total number of emails made in this success window + * @example 2 + */ + total_emails?: number; + /** + * @description The total number of other touches made in this success window + * @example 3 + */ + total_other_touches?: number; + }; + Tag: { + /** + * @description ID of Tag + * @example 1 + */ + id?: number; + /** + * @description Name of the tag + * @example marketing + */ + name?: string; + }; + Task: { + /** + * Format: date-time + * @description Datetime of when the task was completed, ISO-8601 datetime format required + * @example "2023-01-01T05:00:00.000Z" + */ + completed_at?: string; + completed_by?: components["schemas"]["EmbeddedResource"]; + /** + * Format: date-time + * @description Datetime of when the Task was created + * @example "2023-01-01T05:00:00.000Z" + */ + created_at?: string; + created_by_user?: components["schemas"]["EmbeddedResource"]; + /** + * @description The state of the task. Valid states are: scheduled, completed + * @example scheduled + */ + current_state?: string; + /** + * @description A description of the task recorded for person at completion time + * @example Ask John Wick about his dog. + */ + description?: string; + /** + * Format: date-time + * @description Datetime of when the Task is due, can be null. ISO-8601 datetime format required + * @example "2023-01-01T05:00:00.000Z" + */ + due_at?: string; + /** + * Format: date + * @description Date of when the Task is due, ISO-8601 date format required + * @example "2024-01-01T00:00:00.000Z" + */ + due_date?: string; + /** + * @description ID of Task + * @example 1 + */ + id?: number; + person?: components["schemas"]["EmbeddedResource"]; + /** + * Format: date-time + * @description Datetime of when the user will be reminded of the task, ISO-8601 datetime format required + * @example "2023-01-01T05:00:00.000Z" + */ + remind_at?: string; + /** + * @description Subject line of the task + * @example Call John Wick + */ + subject?: string; + /** + * @description The type of the task. Valid types are: call, email, general + * @example call + */ + task_type?: string; + /** + * Format: date-time + * @description Datetime of when the Task was last updated + * @example "2023-01-01T05:00:00.000Z" + */ + updated_at?: string; + user?: components["schemas"]["EmbeddedResource"]; + }; + Team: { + /** + * @description For internal use only. This field does not comply with our backwards compatability policies. + * @example {} + */ + _private_fields?: Record; + /** + * @description Whether team members are allowed to have automated email steps + * @example true + */ + allow_automated_email_steps?: boolean; + /** + * @description Whether all call recording is disabled + * @example false + */ + call_recording_disabled?: boolean; + /** + * @description The team default for click tracking when composing emails + * @example true + */ + click_tracking_default?: boolean; + /** + * Format: date-time + * @description Datetime of when the team was created + * @example "2023-01-01T05:00:00.000Z" + */ + created_at?: string; + /** + * @description The domain click and open tracking will be proxied through + * @example examplecompany.com + */ + custom_tracking_domain?: string; + /** + * @description Indicates if the team has been deactivated + * @example true + */ + deactivated?: boolean; + /** + * @description Whether team members are required to mark disposition at the end of calls + * @example false + */ + dispositions_required?: boolean; + /** + * @description Daily email limit for each member on the team + * @example 1000 + */ + email_daily_limit?: number; + /** + * @description Visibility setting for resources across the team. Possible values are: group_public, all_public. + * When the value is group_public, certain resources will only be visible to members of the same group. + * When the value is all_public, all resources are visible to all users on this team. + * + * @example all_public + */ + group_privacy_setting?: string; + /** + * @description Team ID + * @example 1 + */ + id?: number; + /** + * @description Count of seats that this team has licensed + * @example 100 + */ + license_limit?: number; + /** + * @description Whether this team has local dial enabled + * @example true + */ + local_dial_enabled?: boolean; + /** + * @description Team name + * @example The A-Team + */ + name?: string; + /** + * @description Plan type of the team, Possible values are: group, professional, enterprise + * @example professional + */ + plan?: string; + /** + * @description Add on features for this team + * @example { + * "opportunity_management": "Opportunity Management" + * } + */ + plan_features?: Record; + /** + * @description Whether calls will record by default + * @example true + */ + record_by_default?: boolean; + /** + * @description Whether team members are required to log sentiments + * @example false + */ + sentiments_required?: boolean; + /** + * @description The default visibility of resources on the team, in the UI only. The API does not utilize this default. + * Possible values are: public, private. + * + * @example public + */ + team_visibility_default?: string; + /** + * Format: date-time + * @description Datetime of when the team was last updated + * @example "2023-01-01T05:00:00.000Z" + */ + updated_at?: string; + }; + TeamTemplate: { + /** + * @description Links to attachments resource for this template + * @example { + * "attachments": "https://api.salesloft.com/v2/team_template_attachments?team_template_id[]=1" + * } + */ + _links?: Record; + /** + * Format: date-time + * @description Datetime of when the team template was archived, if archived + * @example "2023-01-01T05:00:00.000Z" + */ + archived_at?: string; + /** + * @description Body of the team template + * @example
Do you know about birds?
+ */ + body?: string; + /** + * @description A plain text version of the first 100 characters of the body of the team template + * @example hello + * + * hey sounds good + * + * ok + * + * ok + * + * with an edit + * + * ok now i'm comic sans 14 + */ + body_preview?: string; + /** + * @description Whether click tracking is enabled for this team template + * @example true + */ + click_tracking_enabled?: boolean; + counts?: components["schemas"]["TeamTemplateCounts"]; + /** + * Format: date-time + * @description Datetime of when the team template was created + * @example "2023-01-01T05:00:00.000Z" + */ + created_at?: string; + /** + * @description ID of team template + * @example 51226150-3108-4dea-883b-0c0d7388f456 + */ + id?: string; + /** + * Format: date-time + * @description Datetime of when the team template was last modified + * @example "2023-01-01T05:00:00.000Z" + */ + last_modified_at?: string; + last_modified_user?: components["schemas"]["EmbeddedResource"]; + /** + * Format: date-time + * @description Datetime of when the team template was last used + * @example "2023-01-01T05:00:00.000Z" + */ + last_used_at?: string; + /** + * @description Whether open tracking is enabled for this team template + * @example true + */ + open_tracking_enabled?: boolean; + /** + * @description Subject of the team template + * @example It’s time to say goodbye + */ + subject?: string; + /** + * @description All tags applied to this team template + * @example [ + * "7-23-2017", + * "internal" + * ] + */ + tags?: string[]; + /** + * @description Title of the team template + * @example VP Breakup Email + */ + title?: string; + /** + * Format: date-time + * @description Datetime of when the team template was last updated + * @example "2023-01-01T05:00:00.000Z" + */ + updated_at?: string; + }; + TeamTemplateAttachment: { + /** + * @description The size of the attachment + * @example 2 + */ + attachment_file_size?: number; + /** @description ID of the team template attachment */ + attachment_id?: number; + /** + * @description Download url of the attachment + * @example https://path/to/example_attachment.gif + */ + download_url?: string; + /** + * @description ID of team template attachment association + * @example 5 + */ + id?: number; + /** + * @description Name of the attachment + * @example example_attachment.gif + */ + name?: string; + team_template?: components["schemas"]["EmbeddedResource"]; + }; + TeamTemplateCounts: { + /** + * @description The number of bounces the team template received + * @example 10 + */ + bounces?: number; + /** + * @description The number of times links in the team template were clicked + * @example 20 + */ + clicks?: number; + /** + * @description The number of replies the team template received + * @example 1 + */ + replies?: number; + /** + * @description The number of times the team template was sent out + * @example 59 + */ + sent_emails?: number; + /** + * @description The number of times the team template was opened + * @example 3 + */ + views?: number; + }; + User: { + /** + * @description For internal use only. This field does not comply with our backwards compatability policies. + * @example {} + */ + _private_fields?: Record; + /** + * @description Whether an user is currently active in SalesLoft + * @example true + */ + active?: boolean; + /** + * @description Address that will be BBC'd on all emails from this user + * @example fake@salesloft.com + */ + bcc_email_address?: string; + /** + * @description Whether this user has click to call enabled + * @example true + */ + click_to_call_enabled?: boolean; + /** + * Format: date-time + * @description Datetime of when the user was created + * @example "2023-01-01T05:00:00.000Z" + */ + created_at?: string; + /** + * @description Whether the user has a crm connected + * @example true + */ + crm_connected?: boolean; + /** + * @description Email address provided to accounts.salesloft.com + * @example fake@salesloft.com + */ + email?: string; + /** + * @description Whether this user has a email client configured + * @example true + */ + email_client_configured?: boolean; + /** + * @description Email address associated with the email client of the user + * @example fake@salesloft.com + */ + email_client_email_address?: string; + /** + * @description Email signature + * @example Benjamin Franklin
+ */ + email_signature?: string; + /** + * @description Whether this user has click tracking disabled in email signature + * @example false + */ + email_signature_click_tracking_disabled?: boolean; + /** + * @description Email signature type + * @example html + */ + email_signature_type?: string; + /** + * @description Feature flags that are for this user. New flags may appear or disappear at any time + * @example {} + */ + external_feature_flags?: Record; + /** + * @description First name of user + * @example Benjamin + */ + first_name?: string; + /** + * @description The from address of this user + * @example fake@salesloft.com + */ + from_address?: string; + /** + * @description RFC 5322 compliant email address + * @example "Benjamin Franklin" + */ + full_email_address?: string; + group?: components["schemas"]["EmbeddedResource"]; + /** + * @description Globally unique user ID. New endpoints will explicitly accept this over id + * @example 9cc6da15-d403-4f5b-aeed-c4b8463cf9ae + */ + guid?: string; + /** + * @description User ID + * @example 1 + */ + id?: number; + /** + * @description Job role of user + * @example SDR / BDR + */ + job_role?: string; + /** + * @description Last name of user + * @example Franklin + */ + last_name?: string; + /** + * @description Whether this user has Local Dial enabled + * @example true + */ + local_dial_enabled?: boolean; + /** + * @description Display name of user + * @example Benjamin Franklin + */ + name?: string; + phone_client?: components["schemas"]["EmbeddedResource"]; + phone_number_assignment?: components["schemas"]["EmbeddedResource"]; + role?: components["schemas"]["EmbeddedResource"]; + /** + * @description The email address that email of the user will be sent from, resolved in the following resolution order: from_user, email_client_email_address, email + * @example fake@salesloft.com + */ + sending_email_address?: string; + /** + * @description Slack username + * @example benjamin-franklin + */ + slack_username?: string; + team?: components["schemas"]["EmbeddedResource"]; + /** + * @description Team Admin + * @example true + */ + team_admin?: boolean; + /** + * @description User Time Zone + * @example US/Eastern + */ + time_zone?: string; + /** + * @description Twitter handle + * @example @benjamin-franklin + */ + twitter_handle?: string; + /** + * Format: date-time + * @description Datetime of when the user was last updated + * @example "2023-01-01T05:00:00.000Z" + */ + updated_at?: string; + /** + * @description Work Country + * @example PE + */ + work_country?: string; + }; + }; + responses: never; + parameters: never; + requestBodies: { + postV2ImportsJson?: { + content: { + "application/x-www-form-urlencoded": { + /** @description Name, recommended to be easily identifiable to a user */ + name?: string; + /** @description ID of the User that owns this Import */ + user_id?: number; + }; + }; + }; + }; + headers: never; + pathItems: never; +} + +export type $defs = Record; + +export type external = Record; + +export type operations = Record; diff --git a/packages/core/remotes/impl/salesloft/salesloft.openapi.yaml b/packages/core/remotes/impl/salesloft/salesloft.openapi.yaml new file mode 100644 index 000000000..aa2832c9b --- /dev/null +++ b/packages/core/remotes/impl/salesloft/salesloft.openapi.yaml @@ -0,0 +1,9868 @@ +openapi: 3.0.0 +servers: + - url: https://api.salesloft.com +info: + contact: + email: integrations@salesloft.com + x-twitter: SalesLoft + description: | + SalesLoft helps transform sales teams into modern sales organizations - converting more target accounts into customer accounts + title: SalesLoft Platform + version: v2 + x-apisguru-categories: + - customer_relation + x-logo: + url: https://api.apis.guru/v2/cache/logo/https_twitter.com_SalesLoft_profile_image.jpeg + x-origin: + - format: openapi + url: https://developers.salesloft.com/v2_api_def.json + version: "3.0" + x-providerName: salesloft.com +tags: + - description: User Information + name: Me + - description: Team Information + name: Team + - description: Account Management + name: Accounts + - description: Account Stage Management + name: Account Stages + - description: Account Tier Information + name: Account Tiers + - description: Account Upsert + name: Account Upsert + - description: Actions + name: Actions + - description: Actions - Call Instructions + name: Action Details - Call Instructions + - description: Activities + name: Activities + - description: Activity Histories + name: Activity Histories + - description: Bulk Jobs + name: Bulk Jobs + - description: Bulk Jobs - Job Data + name: Bulk Jobs - Job Data + - description: Bulk Jobs - Results + name: Bulk Jobs - Results + - description: Cadence Exports + name: Cadence Exports + - description: Cadence Importing + name: Cadence Imports + - description: Cadence Management + name: Cadences + - description: Cadence Membership + name: Cadence Memberships + - description: Calendar Events + name: Calendar Events + - description: Call Data Record Management + name: Call Data Records + - description: Call Dispositions + name: Call Dispositions + - description: Call Management + name: Calls + - description: Call Sentiments + name: Call Sentiments + - description: Caller ID Information + name: Caller IDs + - description: Conversations Calls + name: Conversations Calls + - description: CRM Activity Fields + name: CRM Activity Fields + - description: CRM Activity Management + name: CRM Activities + - description: Crm Users + name: Crm Users + - description: Custom Field Management + name: Custom Fields + - description: Email Management + name: Emails + - description: Email Template Attachments + name: Email Template Attachments + - description: Email Templates Management + name: Email Templates + - description: External Emails + name: External Emails + - description: Group Management + name: Groups + - description: Import Management + name: Imports + - description: Live Feed Items + name: Live Feed Items + - description: Live Website Tracking Parameters + name: Live Website Tracking Parameters + - description: Meetings + name: Meetings + - description: Meetings Settings + name: Meeting Settings + - description: Meetings Settings - Searches + name: Meetings Settings - Searches + - description: MIME content for email + name: Mime Email Payloads + - description: Note Management + name: Notes + - description: Ongoing Actions + name: Ongoing Actions + - description: Pending Emails + name: Pending Emails + - description: Person Management + name: People + - description: Person Stage Management + name: Person Stages + - description: Person Upsert + name: Person Upsert + - description: Phone Number Assignments + name: Phone Number Assignments + - description: Recording Settings Information + name: Recording Settings + - description: Saved List Views + name: Saved List Views + - description: Steps + name: Steps + - description: Success Management + name: Successes + - description: Tags + name: Tags + - description: Tasks + name: Tasks + - description: Team Template Attachments + name: Team Template Attachments + - description: Team Template Management + name: Team Templates + - description: User Management + name: Users + - description: Webhook Subscriptions + name: Webhook Subscriptions +paths: + /v2/account_stages.json: + get: + description: | + Fetches multiple account stage records. The records can be filtered, paged, and sorted according to + the respective parameters. + parameters: + - description: IDs of account stages to fetch. If a record can't be found, that record won't be returned and your request will be successful + explode: false + in: query + name: ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: | + Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. + + ---CUSTOM--- + {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + explode: false + in: query + name: updated_at + required: false + schema: + items: + type: string + type: array + style: form + - description: "Key to sort on, must be one of: created_at, updated_at, order. Defaults to updated_at" + in: query + name: sort_by + required: false + schema: + type: string + - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" + in: query + name: sort_direction + required: false + schema: + type: string + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data + in: query + name: limit_paging_counts + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/AccountStage" + type: array + description: Success + summary: List account stages + tags: + - Account Stages + "/v2/account_stages/{id}.json": + get: + description: | + Fetches an account stage, by ID only. + parameters: + - description: Account Stage ID + in: path + name: id + required: true + schema: + type: string + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/AccountStage" + description: Success + summary: Fetch an account stage + tags: + - Account Stages + /v2/account_tiers.json: + get: + description: | + Fetches multiple account tier records. The records can be filtered, paged, and sorted according to + the respective parameters. + parameters: + - description: IDs of Account Tiers to fetch. If a record can't be found, that record won't be returned and your request will be successful + explode: false + in: query + name: ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: Filters Account Tiers by name. Multiple names can be applied + explode: false + in: query + name: name + required: false + schema: + items: + type: string + type: array + style: form + - description: "Key to sort on, must be one of: created_at, updated_at, order. Defaults to updated_at" + in: query + name: sort_by + required: false + schema: + type: string + - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" + in: query + name: sort_direction + required: false + schema: + type: string + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data + in: query + name: limit_paging_counts + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/AccountTier" + type: array + description: Success + summary: List Account Tiers + tags: + - Account Tiers + "/v2/account_tiers/{id}.json": + get: + description: | + Fetches an account tier, by ID only. + parameters: + - description: Account Tier ID + in: path + name: id + required: true + schema: + type: string + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/AccountTier" + description: Success + summary: Fetch an account tier + tags: + - Account Tiers + /v2/account_upserts.json: + post: + description: | + Upserts an account record. The upsert_key dictates how the upsert will be performed. The create and update behavior + is exactly the same as the individual create and update endpoints. + requestBody: + content: + application/x-www-form-urlencoded: + schema: + properties: + account_tier_id: + description: ID of the Account Tier for this Account + type: integer + city: + description: City + type: string + company_stage_id: + description: ID of the CompanyStage assigned to this Account + type: integer + company_type: + description: Type of the Account's company + type: string + conversational_name: + description: Conversational name of the Account + type: string + country: + description: Country + type: string + crm_id: + description: |+ + Requires Salesforce. + + ID of the person in your external CRM. You must provide a crm_id_type if this is included. + + Validations will be applied to the crm_id depending on the crm_id_type. A "salesforce" ID must be exactly 18 characters. A "salesforce" ID must be either an Account (001) object. The type will be validated using the 18 character ID. + + This field can only be used if your application or API key has the "account:set_crm_id" scope. + + type: string + crm_id_type: + description: "The CRM that the provided crm_id is for. Must be one of: salesforce" + type: string + custom_fields: + description: Custom fields are defined by the user's team. Only fields with values are presented in the API. + items: + type: object + type: array + description: + description: Description + type: string + do_not_contact: + description: Whether this company can not be contacted. Values are either true or false. Setting this to true will remove all associated people from all active communications + type: boolean + domain: + description: Website domain, not a fully qualified URI + type: string + founded: + description: Date or year of founding + type: string + id: + description: | + ID of the account to update. Used if the upsert_key=id. When id and another upsert_key are provided, + the request will fail if the upsert record id and id parameter don't match. + type: integer + industry: + description: Industry + type: string + linkedin_url: + description: Full LinkedIn url + type: string + locale: + description: Time locale + type: string + name: + description: Account Full Name + type: string + owner_id: + description: ID of the User that owns this Account + type: integer + phone: + description: Phone number without formatting + type: string + postal_code: + description: Postal code + type: string + revenue_range: + description: Estimated revenue range + type: string + size: + description: Estimated number of people in employment + type: string + state: + description: State + type: string + street: + description: Street name and number + type: string + tags: + description: All tags applied to this Account + items: + type: string + type: array + twitter_handle: + description: Twitter handle, with @ + type: string + upsert_key: + description: | + Name of the parameter to upsert on. The field must be provided in the input parameters, or the request will fail. + The request will also fail if there are multiple records matched by the upsert field. + + If upsert_key is not provided, this endpoint will not update an existing record. + + Valid options are: id, crm_id, domain. If crm_id is provided, then a valid crm_id_type must be provided, as documented + for the account create and update endpoints. + type: string + website: + description: Website + type: string + required: + - name + - domain + type: object + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/AccountUpsert" + description: Success + summary: Upsert an account + tags: + - Account Upsert + /v2/accounts.json: + get: + description: | + Fetches multiple account records. The records can be filtered, paged, and sorted according to + the respective parameters. + parameters: + - description: IDs of accounts to fetch. If a record can't be found, that record won't be returned and your request will be successful + explode: false + in: query + name: ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: Filters accounts by crm_id. Multiple crm ids can be applied + explode: false + in: query + name: crm_id + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters accounts by the tags applied to the account. Multiple tags can be applied + explode: false + in: query + name: tag + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters accounts by the tag id's applied to the account. Multiple tag id's can be applied + explode: false + in: query + name: tag_id + required: false + schema: + items: + type: integer + type: array + style: form + - description: | + Equality filters that are applied to the created_at field. A single filter can be used by itself or combined with other filters to create a range. + + ---CUSTOM--- + {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + explode: false + in: query + name: created_at + required: false + schema: + items: + type: string + type: array + style: form + - description: | + Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. + + ---CUSTOM--- + {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + explode: false + in: query + name: updated_at + required: false + schema: + items: + type: string + type: array + style: form + - description: Domain of the accounts to fetch. Domains are unique and lowercase + in: query + name: domain + required: false + schema: + type: string + - description: Filters accounts by website. Multiple websites can be applied. An additional value of "_is_null" can be passed to filter accounts that do not have a website. + explode: false + in: query + name: website + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters accounts by archived_at status. Returns only accounts where archived_at is not null if this field is true. Returns only accounts where archived_at is null if this field is false. Do not pass this parameter to return both archived and unarchived accounts. This filter is not applied if any value other than "true" or "false" is passed. + in: query + name: archived + required: false + schema: + type: boolean + - description: Names of accounts to fetch. Name matches are exact and case sensitive. Multiple names can be fetched. + explode: false + in: query + name: name + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters accounts by account_stage_id. Multiple account_stage_ids can be applied. An additional value of "_is_null" can be passed to filter accounts that do not have account_stage_id + explode: false + in: query + name: account_stage_id + required: false + schema: + items: + type: integer + type: array + style: form + - description: Filters accounts by account_tier_id. Multiple account tier ids can be applied + explode: false + in: query + name: account_tier_id + required: false + schema: + items: + type: integer + type: array + style: form + - description: Filters accounts by owner_id. Multiple owner_ids can be applied. An additional value of "_is_null" can be passed to filter accounts that are unowned + explode: false + in: query + name: owner_id + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters accounts by whether the owner is active or not. + in: query + name: owner_is_active + required: false + schema: + type: boolean + - description: | + Equality filters that are applied to the last_contacted field. A single filter can be used by itself or combined with other filters to create a range. + Additional values of "_is_null" or "_is_not_null" can be passed to filter records that either have no timestamp value or any timestamp value. + ---CUSTOM--- + {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + in: query + name: last_contacted + required: false + schema: + type: object + - description: "Filters by accounts matching all given custom fields. The custom field names are case-sensitive, but the provided values are case-insensitive. Example: v2/accounts?custom_fields[custom_field_name]=custom_field_value" + in: query + name: custom_fields + required: false + schema: + type: object + - description: Filters accounts by industry by exact match. Supports partial matching + explode: false + in: query + name: industry + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters accounts by country by exact match. Supports partial matching + explode: false + in: query + name: country + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters accounts by state by exact match. Supports partial matching + explode: false + in: query + name: state + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters accounts by city by exact match. Supports partial matching + explode: false + in: query + name: city + required: false + schema: + items: + type: string + type: array + style: form + - description: 'Filters accounts by owner_crm_id. Multiple owner_crm_ids can be applied. An additional value of "_is_null" can be passed to filter accounts that are unowned. A "_not_in" modifier can be used to exclude specific owner_crm_ids. Example: v2/accounts?owner_crm_id[_not_in]=id' + explode: false + in: query + name: owner_crm_id + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters accounts by locale. Multiple locales are allowed + explode: false + in: query + name: locales + required: false + schema: + items: + type: string + type: array + style: form + - description: "Filters by accounts matching all given user relationship fields, _is_null or _unmapped can be passed to filter accounts with null or unmapped user relationship values. Example: v2/accounts?user_relationships[name]=value" + in: query + name: user_relationships + required: false + schema: + type: object + - description: "Key to sort on, must be one of: created_at, updated_at, last_contacted_at, account_stage, account_stage_name, account_tier, account_tier_name, name, counts_people. Defaults to updated_at" + in: query + name: sort_by + required: false + schema: + type: string + - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" + in: query + name: sort_direction + required: false + schema: + type: string + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data + in: query + name: limit_paging_counts + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/Account" + type: array + description: Success + summary: List accounts + tags: + - Accounts + post: + description: | + Creates an account. + + "domain" must be unique on the current team. + requestBody: + content: + application/x-www-form-urlencoded: + schema: + properties: + account_tier_id: + description: ID of the Account Tier for this Account + type: integer + city: + description: City + type: string + company_stage_id: + description: ID of the CompanyStage assigned to this Account + type: integer + company_type: + description: Type of the Account's company + type: string + conversational_name: + description: Conversational name of the Account + type: string + country: + description: Country + type: string + crm_id: + description: |+ + Requires Salesforce. + + ID of the person in your external CRM. You must provide a crm_id_type if this is included. + + Validations will be applied to the crm_id depending on the crm_id_type. A "salesforce" ID must be exactly 18 characters. A "salesforce" ID must be either an Account (001) object. The type will be validated using the 18 character ID. + + This field can only be used if your application or API key has the "account:set_crm_id" scope. + + type: string + crm_id_type: + description: "The CRM that the provided crm_id is for. Must be one of: salesforce" + type: string + custom_fields: + description: Custom fields are defined by the user's team. Only fields with values are presented in the API. + items: + type: object + type: array + description: + description: Description + type: string + do_not_contact: + description: Whether this company can not be contacted. Values are either true or false. Setting this to true will remove all associated people from all active communications + type: boolean + domain: + description: Website domain, not a fully qualified URI + type: string + founded: + description: Date or year of founding + type: string + industry: + description: Industry + type: string + linkedin_url: + description: Full LinkedIn url + type: string + locale: + description: Time locale + type: string + name: + description: Account Full Name + type: string + owner_id: + description: ID of the User that owns this Account + type: integer + phone: + description: Phone number without formatting + type: string + postal_code: + description: Postal code + type: string + revenue_range: + description: Estimated revenue range + type: string + size: + description: Estimated number of people in employment + type: string + state: + description: State + type: string + street: + description: Street name and number + type: string + tags: + description: All tags applied to this Account + items: + type: string + type: array + twitter_handle: + description: Twitter handle, with @ + type: string + website: + description: Website + type: string + required: + - name + - domain + type: object + required: true + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/Account" + description: Success + summary: Create an account + tags: + - Accounts + "/v2/accounts/{id}.json": + delete: + description: | + Deletes an account. This operation is not reversible without contacting support. + This operation can be called multiple times successfully. + + Deleting an account will remove all connected people from that account. + parameters: + - description: Account ID + in: path + name: id + required: true + schema: + type: string + responses: + "204": + description: The Account has been deleted successfully + summary: Delete an account + tags: + - Accounts + get: + description: | + Fetches an account, by ID only. + parameters: + - description: Account ID + in: path + name: id + required: true + schema: + type: string + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/Account" + description: Success + summary: Fetch an account + tags: + - Accounts + put: + description: | + Updates an account. + + "domain" must be unique on the current team. + parameters: + - description: Account ID + in: path + name: id + required: true + schema: + type: string + requestBody: + content: + application/x-www-form-urlencoded: + schema: + properties: + account_tier_id: + description: ID of the Account Tier for this Account + type: integer + archived: + description: Whether this Account should be archived or not. Setting this to true sets archived_at to the current time if it's not already set. Setting this to false will set archived_at to null + type: boolean + city: + description: City + type: string + company_stage_id: + description: ID of the CompanyStage assigned to this Account + type: integer + company_type: + description: Type of the Account's company + type: string + conversational_name: + description: Conversational name of the Account + type: string + country: + description: Country + type: string + crm_id: + description: |+ + Requires Salesforce. + + ID of the person in your external CRM. You must provide a crm_id_type if this is included. + + Validations will be applied to the crm_id depending on the crm_id_type. A "salesforce" ID must be exactly 18 characters. A "salesforce" ID must be either an Account (001) object. The type will be validated using the 18 character ID. + + This field can only be used if your application or API key has the "account:set_crm_id" scope. + + type: string + crm_id_type: + description: "The CRM that the provided crm_id is for. Must be one of: salesforce" + type: string + custom_fields: + description: Custom fields are defined by the user's team. Only fields with values are presented in the API. + items: + type: object + type: array + description: + description: Description + type: string + do_not_contact: + description: Whether this company can not be contacted. Values are either true or false. Setting this to true will remove all associated people from all active communications + type: boolean + domain: + description: Website domain, not a fully qualified URI + type: string + founded: + description: Date or year of founding + type: string + industry: + description: Industry + type: string + linkedin_url: + description: Full LinkedIn url + type: string + locale: + description: Time locale + type: string + name: + description: Account Full Name + type: string + owner_id: + description: ID of the User that owns this Account + type: integer + phone: + description: Phone number without formatting + type: string + postal_code: + description: Postal code + type: string + revenue_range: + description: Estimated revenue range + type: string + size: + description: Estimated number of people in employment + type: string + state: + description: State + type: string + street: + description: Street name and number + type: string + tags: + description: All tags applied to this Account + items: + type: string + type: array + twitter_handle: + description: Twitter handle, with @ + type: string + website: + description: Website + type: string + required: + - name + - domain + type: object + required: true + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/Account" + description: Success + summary: Update an existing Account + tags: + - Accounts + /v2/action_details/call_instructions.json: + get: + description: | + Fetches multiple call instruction records. The records can be filtered, paged, and sorted according to + the respective parameters. + parameters: + - description: IDs of call instructions to fetch. + explode: false + in: query + name: ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: "Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at" + in: query + name: sort_by + required: false + schema: + type: string + - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" + in: query + name: sort_direction + required: false + schema: + type: string + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data + in: query + name: limit_paging_counts + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/CallInstruction" + type: array + description: Success + summary: List call instructions + tags: + - Action Details - Call Instructions + "/v2/action_details/call_instructions/{id}.json": + get: + description: | + Fetches a call instruction, by ID only. + parameters: + - description: Call instructions ID + in: path + name: id + required: true + schema: + type: string + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/CallInstruction" + description: Success + summary: Fetch a call instructions + tags: + - Action Details - Call Instructions + /v2/actions.json: + get: + description: | + Fetches multiple action records. The records can be filtered, paged, and sorted according to + the respective parameters. Only actions that are currently "in_progess" will be returned by + this endpoint. + + If the requester is not an admin, this endpoint will only return actions belonging to the requester. + If the request is an admin, this endpoint will return actions for the entire team. Additionaly, an admin + may use the user_guid parameter to request actions that belong to specific users on the team. + parameters: + - description: IDs of actions to fetch. + explode: false + in: query + name: ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: Fetch actions by step ID + in: query + name: step_id + required: false + schema: + type: integer + - description: Filter actions by type + in: query + name: type + required: false + schema: + type: string + - description: | + Equality filters that are applied to the due_on field. A single filter can be used by itself or combined with other filters to create a range. + + ---CUSTOM--- + {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + explode: false + in: query + name: due_on + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters actions by the user's guid. Multiple user guids can be applied. The user must be a team admin to filter other users' actions + explode: false + in: query + name: user_guid + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters actions by person_id. Multiple person ids can be applied + explode: false + in: query + name: person_id + required: false + schema: + items: + type: integer + type: array + style: form + - description: Filters actions by cadence_id. Multiple cadence ids can be applied + explode: false + in: query + name: cadence_id + required: false + schema: + items: + type: integer + type: array + style: form + - description: Filters actions by multitouch_group_id. Multiple multitouch group ids can be applied + explode: false + in: query + name: multitouch_group_id + required: false + schema: + items: + type: integer + type: array + style: form + - description: | + Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. + + ---CUSTOM--- + {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + explode: false + in: query + name: updated_at + required: false + schema: + items: + type: string + type: array + style: form + - description: "Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at" + in: query + name: sort_by + required: false + schema: + type: string + - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" + in: query + name: sort_direction + required: false + schema: + type: string + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data + in: query + name: limit_paging_counts + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/Action" + type: array + description: Success + summary: List actions + tags: + - Actions + "/v2/actions/{id}.json": + get: + description: | + Fetches an action, by ID only. + This endpoint will only return actions that are in_progress or pending_activity. + Once an action is complete, the request for that action will return a 404 status code. + parameters: + - description: Action ID + in: path + name: id + required: true + schema: + type: string + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/Action" + description: Success + summary: Fetch an action + tags: + - Actions + /v2/activities.json: + post: + description: | + Creates an activity. An activity will mark the associated action as completed. Currently, + only certain action types can have an activity explicitly created for them. + requestBody: + content: + application/x-www-form-urlencoded: + schema: + properties: + action_id: + description: | + Action that is being completed. This will validate that the action is still + valid before completed it. The same action can never be successfully passed twice to this endpoint. + The action must have a type of 'integration'. + type: integer + task_id: + description: | + Task that is being completed. This will validate that the task is still + valid before completed it. The same action can never be successfully passed twice to this endpoint. + The task must have a type of 'integration'. + type: integer + type: object + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/Activity" + description: Success + summary: Create an activity + tags: + - Activities + /v2/activities/calls.json: + get: + description: | + Fetches multiple call records. The records can be filtered, paged, and sorted according to + the respective parameters. + parameters: + - description: IDs of calls to fetch. If a record can't be found, that record won't be returned and your request will be successful + explode: false + in: query + name: ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: | + Equality filters that are applied to the created_at field. A single filter can be used by itself or combined with other filters to create a range. + + ---CUSTOM--- + {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + explode: false + in: query + name: created_at + required: false + schema: + items: + type: string + type: array + style: form + - description: | + Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. + + ---CUSTOM--- + {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + explode: false + in: query + name: updated_at + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters list to only include guids + explode: false + in: query + name: user_guid + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters calls by person_id. Multiple person ids can be applied + explode: false + in: query + name: person_id + required: false + schema: + items: + type: integer + type: array + style: form + - description: Filters calls by sentiment. Sentiment matches are exact and case sensitive. Multiple sentiments are allowed. + explode: false + in: query + name: sentiment + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters calls by disposition. Disposition matches are exact and case sensitive. Multiple dispositions are allowed. + explode: false + in: query + name: disposition + required: false + schema: + items: + type: string + type: array + style: form + - description: "Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at" + in: query + name: sort_by + required: false + schema: + type: string + - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" + in: query + name: sort_direction + required: false + schema: + type: string + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data + in: query + name: limit_paging_counts + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/Call" + type: array + description: Success + summary: List calls + tags: + - Calls + post: + description: | + Creates a call. The parameters of this endpoint can be used to create an action + and ensure that the CRM Task is mapped correctly. + requestBody: + content: + application/x-www-form-urlencoded: + schema: + properties: + action_id: + description: | + Action that this call is being logged for. This will validate that the action is still + valid before completing it. The same action can never be successfully passed twice to this endpoint. The + action must have a type of 'phone'. + type: integer + crm_params: + description: | + CRM specific parameters. Some parameters are required on a per-team basis. Consume the + CrmActivityFields endpoint to receive a list of valid parameters. The "field" property + is passed as the key of this object, and the value of this object is the value that you + would like to set. + + If CrmActivityField has a non-null value, then that value must be submitted, or excluded + from API calls, as these values are automatically applied. + type: object + disposition: + description: The disposition of the call. Can be required on a per-team basis. Must be present in the disposition list. + type: string + duration: + description: The length of the call, in seconds + type: integer + linked_call_data_record_ids: + description: | + CallDataRecord associations that will become linked to the created call. It is possible to pass + multiple CallDataRecord ids in this field; this can be used to represent multiple phone calls + that made up a single call. + + Any call data record that is used must not already be linked to a call. It is not possible + to link a call data record to multiple calls, and it is not possible to re-assign a call data + record to a different call. + items: + type: integer + type: array + notes: + description: Notes to log for the call. This is similar to the notes endpoint, but ensures that the notes get synced to the user's CRM + type: string + person_id: + description: The ID of the person whom this call will be logged for + type: integer + sentiment: + description: The sentiment of the call. Can be required on a per-team basis. Must be present in the sentiment list. + type: string + to: + description: The phone number that was called + type: string + user_guid: + description: Guid of the user whom this call should be logged for. Defaults to the authenticated user. Only team admins can pass another user's guid + type: string + required: + - person_id + type: object + required: true + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/Call" + description: Success + summary: Create a call + tags: + - Calls + "/v2/activities/calls/{id}.json": + get: + description: | + Fetches a call, by ID only. + parameters: + - description: Call ID + in: path + name: id + required: true + schema: + type: string + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/Call" + description: Success + summary: Fetch a call + tags: + - Calls + /v2/activities/emails.json: + get: + description: | + Fetches multiple email records. The records can be filtered, paged, and sorted according to + the respective parameters. + parameters: + - description: IDs of emails to fetch. If a record can't be found, that record won't be returned and your request will be successful + explode: false + in: query + name: ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: | + Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. + + ---CUSTOM--- + {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + explode: false + in: query + name: updated_at + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters emails by whether they have bounced or not + in: query + name: bounced + required: false + schema: + type: boolean + - description: Filters emails by crm_activity_id. Multiple crm activty ids can be applied + explode: false + in: query + name: crm_activity_id + required: false + schema: + items: + type: integer + type: array + style: form + - description: Filters emails by action_id. Multiple action ids can be applied + explode: false + in: query + name: action_id + required: false + schema: + items: + type: integer + type: array + style: form + - description: Filters emails by user_id. Multiple User ids can be applied + explode: false + in: query + name: user_id + required: false + schema: + items: + type: integer + type: array + style: form + - description: Filters emails by status. Multiple status can be applied, possible values are sent, sent_from_gmail, sent_from_external, pending, pending_reply_check, scheduled, sending, delivering, failed, cancelled, pending_through_gmail, pending_through_external + explode: false + in: query + name: status + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters emails by cadence. Multiple cadence ids can be applied + explode: false + in: query + name: cadence_id + required: false + schema: + items: + type: integer + type: array + style: form + - description: Filters emails by step. Multiple step ids can be applied + explode: false + in: query + name: step_id + required: false + schema: + items: + type: integer + type: array + style: form + - description: Filters emails by one-off only + in: query + name: one_off + required: false + schema: + type: boolean + - description: Specify explicit scoped fields desired on the Email Resource. + explode: false + in: query + name: scoped_fields + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters emails by person_id. Multiple person ids can be applied + explode: false + in: query + name: person_id + required: false + schema: + items: + type: integer + type: array + style: form + - description: Filters emails by recipient email address. Multiple emails can be applied. + explode: false + in: query + name: email_addresses + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters emails by personalization score + explode: false + in: query + name: personalization + required: false + schema: + items: + type: string + type: array + style: form + - description: | + Equality filters that are applied to the sent_at field. A single filter can be used by itself or combined with other filters to create a range. + + ---CUSTOM--- + {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + explode: false + in: query + name: sent_at + required: false + schema: + items: + type: string + type: array + style: form + - description: "Key to sort on, must be one of: updated_at, send_time. Defaults to updated_at" + in: query + name: sort_by + required: false + schema: + type: string + - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" + in: query + name: sort_direction + required: false + schema: + type: string + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data + in: query + name: limit_paging_counts + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/Email" + type: array + description: Success + summary: List emails + tags: + - Emails + "/v2/activities/emails/{id}.json": + get: + description: | + Fetches an email, by ID only. + parameters: + - description: Email ID + in: path + name: id + required: true + schema: + type: string + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/Email" + description: Success + summary: Fetch an email + tags: + - Emails + /v2/activity_histories: + get: + description: Fetches all of the customer's past activities for your application. Returns all the Activities that are found on the Salesloft Activity Feed. Visit here for more details. + parameters: + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: "Key to sort on, must be one of: occurred_at, updated_at. Defaults to occurred_at" + in: query + name: sort_by + required: false + schema: + type: string + - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" + in: query + name: sort_direction + required: false + schema: + type: string + - description: "Filter by the type of activity. Must be one of: added_to_cadence, completed_action, call, requested_email, sent_email, received_email, email_reply, note, success, dnc_event, residency_change, meeting, meeting_held, message_conversation, task, voicemail, opportunity_stage_change, opportunity_amount_change, opportunity_close_date_change. Can be provided as an array, or as an object of type[resource_type][]=type" + in: query + name: type + required: false + schema: + type: string + - description: For internal use only. This field does not comply with our backwards compatibility policies. This filter is for authenticated users of Salesloft only and will not work for OAuth Applications. Filter by the {resource_type, resource_id} of activity. Provide this in the format resource[]=person,1234 + in: query + name: _resource + required: false + schema: + type: string + - description: | + Equality filters that are applied to the occurred_at field. A single filter can be used by itself or combined with other filters to create a range. + ---CUSTOM--- + {"keys":[{"description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"gt","type":"iso8601 string"},{"description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"gte","type":"iso8601 string"},{"description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"lt","type":"iso8601 string"},{"description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"lte","type":"iso8601 string"}],"type":"object"} + in: query + name: occurred_at + required: false + schema: + type: object + - description: Filter by the pinned status of activity. Must be 'true' or 'false' + in: query + name: pinned + required: false + schema: + type: boolean + - description: Filter by the resource type. A resource is a Salesloft object that the activity is attributed to. A valid resource types must be one of person, account, crm_opportunity. Can be provided as an array + in: query + name: resource_type + required: false + schema: + type: string + - description: Filter by the resource id. "resource_type" filter is required to use this filter. + explode: false + in: query + name: resource_id + required: false + schema: + items: + type: string + type: array + style: form + - description: | + Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. + ---CUSTOM--- + {"keys":[{"description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"gt","type":"iso8601 string"},{"description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"gte","type":"iso8601 string"},{"description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"lt","type":"iso8601 string"},{"description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"lte","type":"iso8601 string"}],"type":"object"} + in: query + name: updated_at + required: false + schema: + type: object + - description: Filter activities by a user's guid. + in: query + name: user_guid + required: false + schema: + type: string + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/ActivityHistory" + description: Success + summary: List Past Activities + tags: + - Activity Histories + /v2/bulk_jobs: + get: + description: Fetches multiple bulk job records. The records can be filtered, paged, and sorted according to the respective parameters. + parameters: + - description: "The state of the bulk job. Accepts multiple states. Each state must be one of: open, executing, done" + explode: false + in: query + name: state + required: false + schema: + items: + type: string + type: array + style: form + - description: Filter by id using comparison operators. Only supports greater than (gt) comparison (i.e. id[gt]=123) + in: query + name: id + required: false + schema: + type: object + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/BulkJob" + type: array + description: Success + summary: List bulk jobs + tags: + - Bulk Jobs + post: + description: | + Creates a bulk job. The type of the bulk job must be included when created. + + For additional information on creating bulk jobs, the types of supported bulk jobs, and examples of the bulk job flow, visit the bulk job details page. + requestBody: + content: + application/x-www-form-urlencoded: + schema: + properties: + name: + description: Name for your bulk job + type: string + type: + description: Type of bulk job. Must be a valid type. Follow link to the bulk job details page above to view supported types. + type: string + required: + - type + type: object + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/BulkJob" + description: Success + summary: Create a bulk job + tags: + - Bulk Jobs + "/v2/bulk_jobs/{bulk_jobs_id}/job_data": + get: + description: Fetches multiple job data records for a given bulk job. Pagination is not supported, but cursor based polling is via use of the `id[gt]` filter. Pass the last id seen (i.e. `id[gt]=1234`) in order to get the next batch of records. + parameters: + - description: The id for the bulk job to which the job data relates + in: path + name: bulk_jobs_id + required: true + schema: + type: integer + - description: Filter by result status. Accepts multiple statuses. Each status must be one of pending, success, error, retrying + explode: false + in: query + name: status + required: false + schema: + items: + type: string + type: array + style: form + - description: Filter by id using comparison operators. Only supports greater than (gt) comparison (i.e. id[gt]=123) + in: query + name: id + required: false + schema: + type: object + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/BulkJobResult" + type: array + description: Success + summary: List job data for a bulk job + tags: + - Bulk Jobs - Job Data + post: + description: | + Upload job data for the specified bulk job. Upload an array of objects, where element contains the parameters necessary to execute the individual calls. Each call to this endpoint can handle up to 5,000 records at a time. There is no limit to how many times you can create job data for a given bulk job. + + For additional information on creating bulk jobs, the types of supported bulk jobs, and examples of the bulk job flow, visit the bulk job details page. + parameters: + - description: The id for the bulk job to which the job data relates + in: path + name: bulk_jobs_id + required: true + schema: + type: integer + requestBody: + content: + application/x-www-form-urlencoded: + schema: + properties: + data: + description: Array of objects containing parameters to be used to execute an instance of each. Array must be 5,000 records or less. + items: + type: string + type: array + required: + - data + type: object + required: true + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/JobDataCreationResult" + description: Success + summary: Create job data for a bulk job + tags: + - Bulk Jobs - Job Data + "/v2/bulk_jobs/{bulk_jobs_id}/results": + get: + description: Fetches multiple job data records for a completed bulk job. Note that until a bulk job's state is set to `done` the returned `data` will be an empty array. Pagination is not supported, but cursor based polling is via use of the `id[gt]` filter. Pass the last id seen (i.e. `id[gt]=1234`) in order to get the next batch of records. + parameters: + - description: The id for the Bulk Job + in: path + name: bulk_jobs_id + required: true + schema: + type: integer + - description: Filter by result status. Accepts multiple statuses. Each status must be one of pending, success, error, retrying + explode: false + in: query + name: status + required: false + schema: + items: + type: string + type: array + style: form + - description: Filter by id using comparison operators. Only supports greater than (gt) comparison (i.e. id[gt]=123) + in: query + name: id + required: false + schema: + type: object + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/BulkJobResult" + type: array + description: Success + summary: List job data for a completed bulk job. + tags: + - Bulk Jobs - Results + "/v2/bulk_jobs/{id}": + get: + description: Fetches a bulk job, by ID only. + parameters: + - description: The id for the Bulk Job + in: path + name: id + required: true + schema: + type: integer + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/BulkJob" + description: Success + summary: Fetch a bulk job + tags: + - Bulk Jobs + put: + description: | + Updates a bulk job's name and / or marks a bulk job as 'ready_to_execute'. May only be updated if the bulk job is still in an "open" state. + + For additional information on creating bulk jobs, the types of supported bulk jobs, and examples of the bulk job flow, visit the bulk job details page. + parameters: + - description: The id for the bulk job to which the job data relates + in: path + name: id + required: true + schema: + type: integer + requestBody: + content: + application/x-www-form-urlencoded: + schema: + properties: + name: + description: Name for your bulk job + type: string + ready_to_execute: + description: Whether the job is ready to be executed. Must be true or false. + type: boolean + type: object + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/BulkJob" + description: Success + summary: Update a bulk job + tags: + - Bulk Jobs + "/v2/cadence_exports/{id}.json": + get: + description: | + Exports a cadence as JSON. + parameters: + - description: Cadence ID + in: path + name: id + required: true + schema: + type: string + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/CadenceExport" + description: Success + summary: Export a cadence + tags: + - Cadence Exports + /v2/cadence_imports.json: + post: + description: | + New cadences can be created or steps can be imported onto existing cadences which do not have steps. + Visit here for more details. + requestBody: + content: + application/x-www-form-urlencoded: + schema: + properties: + cadence_content: + description: Import data for cadence + type: object + settings: + description: Settings for a cadence + type: object + sharing_settings: + description: The shared settings for a cadence + type: object + type: object + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/CadenceImport" + description: Success + summary: Import cadences from JSON + tags: + - Cadence Imports + /v2/cadence_memberships.json: + get: + description: | + Fetches multiple cadence membership records. The records can be filtered, paged, and sorted according to + the respective parameters. A cadence membership is the association between a person and their current and + historical time on a cadence. Cadence membership records are mutable and change over time. If a person is + added to a cadence and re-added to the same cadence in the future, there is a single membership record. + parameters: + - description: IDs of cadence memberships to fetch. If a record can't be found, that record won't be returned and your request will be successful + explode: false + in: query + name: ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: ID of the person to find cadence memberships for + in: query + name: person_id + required: false + schema: + type: integer + - description: ID of the cadence to find cadence memberships for + in: query + name: cadence_id + required: false + schema: + type: integer + - description: | + Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. + + ---CUSTOM--- + {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + explode: false + in: query + name: updated_at + required: false + schema: + items: + type: string + type: array + style: form + - description: If true, return only cadence memberships for people currently on cadences. If false, return cadence memberships for people who have been removed from or have completed a cadence. + in: query + name: currently_on_cadence + required: false + schema: + type: boolean + - description: "Key to sort on, must be one of: added_at, updated_at. Defaults to updated_at" + in: query + name: sort_by + required: false + schema: + type: string + - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" + in: query + name: sort_direction + required: false + schema: + type: string + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data + in: query + name: limit_paging_counts + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/CadenceMembership" + type: array + description: Success + summary: List cadence memberships + tags: + - Cadence Memberships + post: + description: | + Adds a person to a cadence. person_id and cadence_id are required, and must be visible to the authenticated user. user_id will + default to the authenticated user, but can be set to any visible user on the authenticated team. + + A person cannot be added to a cadence on behalf of a teammate unless the cadence is a team cadence, the cadence is owned by + the teammate, or the teammate has the Personal Cadence Admin permission. + parameters: + - description: ID of the person to create a cadence membership for + in: query + name: person_id + required: true + schema: + type: integer + - description: ID of the cadence to create a cadence membership for + in: query + name: cadence_id + required: true + schema: + type: integer + - description: ID of the user to create a cadence membership for. The associated cadence must be owned by the user, or it must be a team cadence + in: query + name: user_id + required: false + schema: + type: integer + - description: ID of the step on which the person should start the cadence. Start on first step is the default behavior without this parameter. + in: query + name: step_id + required: false + schema: + type: integer + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/CadenceMembership" + description: Success + summary: Create a cadence membership + tags: + - Cadence Memberships + "/v2/cadence_memberships/{id}.json": + delete: + description: | + Cadence Membership + parameters: + - description: CadenceMembership ID + in: path + name: id + required: true + schema: + type: string + responses: + "204": + description: The person has been removed from the cadence successfully + summary: Delete a cadence membership + tags: + - Cadence Memberships + get: + description: | + Fetches a cadence membership, by ID only. + parameters: + - description: CadenceMembership ID + in: path + name: id + required: true + schema: + type: string + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/CadenceMembership" + description: Success + summary: Fetch a cadence membership + tags: + - Cadence Memberships + /v2/cadences.json: + get: + description: | + Fetches multiple cadence records. The records can be filtered, paged, and sorted according to + the respective parameters. + parameters: + - description: IDs of cadences to fetch. If a record can't be found, that record won't be returned and your request will be successful + explode: false + in: query + name: ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: | + Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. + + ---CUSTOM--- + {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + explode: false + in: query + name: updated_at + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters cadences by whether they are a team cadence or not + in: query + name: team_cadence + required: false + schema: + type: boolean + - description: Filters cadences by whether they are shared + in: query + name: shared + required: false + schema: + type: boolean + - description: Filters cadences by the owner's guid. Multiple owner guids can be applied + explode: false + in: query + name: owned_by_guid + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters cadences by whether they are able to have people added to them + in: query + name: people_addable + required: false + schema: + type: boolean + - description: Filters cadences by name + explode: false + in: query + name: name + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters by group ids. Also supports group ids passed in as a JSON array string + in: query + name: group_ids + required: false + schema: + type: string + - description: Filters by whether the Cadences have been archived. Excluding this field will result in both archived and unarchived Cadences to return. + in: query + name: archived + required: false + schema: + type: boolean + - description: "Key to sort on, must be one of: created_at, updated_at, name. Defaults to updated_at" + in: query + name: sort_by + required: false + schema: + type: string + - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" + in: query + name: sort_direction + required: false + schema: + type: string + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data + in: query + name: limit_paging_counts + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/Cadence" + type: array + description: Success + summary: List cadences + tags: + - Cadences + "/v2/cadences/{id}.json": + get: + description: | + Fetches a cadence, by ID only. + parameters: + - description: Cadence ID + in: path + name: id + required: true + schema: + type: string + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/Cadence" + description: Success + summary: Fetch a cadence + tags: + - Cadences + /v2/calendar/events: + get: + description: Returns all calendar events, paginated and filtered by the date. + parameters: + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: "Key to sort on, must be one of: start_time. Defaults to start_time" + in: query + name: sort_by + required: false + schema: + type: string + - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" + in: query + name: sort_direction + required: false + schema: + type: string + - description: | + Lower bound (inclusive) for a calendar event's end time to filter by. + Must be in ISO 8601 format. + + Example: `2022-02-14T10:12:59+00:00`. + in: query + name: start_time + required: false + schema: + type: string + - description: | + Upper bound (exclusive) for a calendar event's start time to filter by. + Must be in ISO 8601 format. + + Example: `2022-02-14T10:12:59+00:00`. + in: query + name: end_time + required: false + schema: + type: string + - description: | + user_guid of the user who created or included as a guest to the event. + in: query + name: user_guid + required: false + schema: + type: string + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/CalendarEvent" + type: array + description: Success + summary: List calendar events + tags: + - Calendar Events + /v2/calendar/events/upsert: + post: + description: |2 + Upserts a calendar event object. + Upsert key is a combination of `id` and `i_cal_uid` scoped to the given `calendar_id`. + Bulk operations: + This endpoint is used for bulk operations, see https://developers.salesloft.com/bulk.html for integration instructions. + Use `calendar/events/upsert` as an event type, and this spec as a data spec. + This endpoint should be used directly for the time sensitive calendar event updates. + requestBody: + content: + application/x-www-form-urlencoded: + schema: + properties: + all_day: + description: Should be set to `true` for all day calendar events. + type: boolean + attendees: + description: |2 + List of attendees of the calendar event. + Example: + ``` + { + ... + "attendees": [ + { + "name": "Alice", + "email": "alice@example.com", + "status": "accepted", + "organizer": true + }, + { + "name": "Bob", + "email": "bob@example.com", + "status": "needsAction", + "organizer": false + } + ] + } + ``` + `name`: full name of the attendee + + `email`: email address of the attendee + + `status`: one of the following - needsAction, accepted, tentative, declined + + `organizer`: whether the attendee is the organizer of the calendar event + type: object + calendar_id: + description: |2 + Calendar ID of the calendar event owner. + For the External Calendar connection use `external_{salesloft_user_guid}` format. + Example: `external_00210d1a-df8a-459f-af75-89b953b618b0`. + type: string + canceled_at: + description: |2 + Cancellation time of the calendar event, as a combined date-time value in the ISO 8601 format with a time zone offset. + Example: `2022-02-14T10:12:59+00:00`. + type: string + description: + description: Description of the calendar event + type: string + end_time: + description: |2 + End time of the calendar event, as a combined date-time value in the ISO 8601 format with a time zone offset. + Example: `2022-02-14T10:12:59+00:00`. + format: date + type: string + i_cal_uid: + description: |2 + icalUID of the calendar event. Unique identifier for a calendar event across calendars. + + Used as an upsert key. + type: string + id: + description: |2 + Id of the calendar event, different for each occurrence in a recurring series. + + Used as an upsert key. + type: string + location: + description: Location of the calendar event as free-form text. + type: string + organizer: + description: |2 + Email address of the organizer + type: string + recurring: + description: Should be set to `true` if this is one of recurring series calendar event. + type: boolean + start_time: + description: |2 + Start time of the calendar event, as a combined date-time value in the ISO 8601 format with a time zone offset. + Example: `2022-02-14T10:12:59+00:00`. + format: date + type: string + status: + description: |2 + Status of the calendar event. Depending on the status, the calendar event will or will not impact user's availability. + Possible values: `confirmed`, `tentative`, `cancelled`. + Example: `confirmed`. + type: string + title: + description: Title of the calendar event + type: string + required: + - id + - i_cal_uid + - start_time + - end_time + - calendar_id + type: object + required: true + responses: + "201": + content: + "*/*": + schema: + $ref: "#/components/schemas/CalendarEvent" + description: Success + summary: Upsert a calendar event + tags: + - Calendar Events + /v2/call_data_records.json: + get: + description: | + Fetches multiple call data records. The records can be filtered, paged, and sorted according to + the respective parameters. + + Call data records are records of all inbound and outbound calls through Salesloft. A call data record may + be associated with a call, but does not have to be. + parameters: + - description: IDs of call data records to fetch. If a record can't be found, that record won't be returned and your request will be successful + explode: false + in: query + name: ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: Return only call data records which have or do not have a call logged for them + in: query + name: has_call + required: false + schema: + type: boolean + - description: | + Equality filters that are applied to the created_at field. A single filter can be used by itself or combined with other filters to create a range. + + ---CUSTOM--- + {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + explode: false + in: query + name: created_at + required: false + schema: + items: + type: string + type: array + style: form + - description: | + Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. + + ---CUSTOM--- + {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + explode: false + in: query + name: updated_at + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters list to only include guids + explode: false + in: query + name: user_guid + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters list by person_id. Multiple person ids can be applied + explode: false + in: query + name: person_id + required: false + schema: + items: + type: integer + type: array + style: form + - description: "Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at" + in: query + name: sort_by + required: false + schema: + type: string + - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" + in: query + name: sort_direction + required: false + schema: + type: string + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data + in: query + name: limit_paging_counts + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/CallDataRecord" + type: array + description: Success + summary: List call data records + tags: + - Call Data Records + "/v2/call_data_records/{id}.json": + get: + description: | + Fetches a call data record, by ID only. + parameters: + - description: CallDataRecord ID + in: path + name: id + required: true + schema: + type: string + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/CallDataRecord" + description: Success + summary: Fetch a call data record + tags: + - Call Data Records + /v2/call_dispositions.json: + get: + description: | + Fetches multiple call disposition records. The records can be sorted according to + the respective parameters. Call dispositions must be configured in application. This will + change in the future, but please contact us if you have a pressing use case. + parameters: + - description: "Key to sort on, must be one of: name, updated_at. Defaults to name" + in: query + name: sort_by + required: false + schema: + type: string + - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to ASC" + in: query + name: sort_direction + required: false + schema: + type: string + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data + in: query + name: limit_paging_counts + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/CallDisposition" + type: array + description: Success + summary: List call dispositions + tags: + - Call Dispositions + /v2/call_sentiments.json: + get: + description: | + Fetches multiple call sentiment records. The records can be sorted according to + the respective parameters. Call sentiments must be configured in application. This will + change in the future, but please contact us if you have a pressing use case. + parameters: + - description: Filters call sentiments by name + in: query + name: name + required: false + schema: + type: string + - description: "Key to sort on, must be one of: name, updated_at. Defaults to name" + in: query + name: sort_by + required: false + schema: + type: string + - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to ASC" + in: query + name: sort_direction + required: false + schema: + type: string + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data + in: query + name: limit_paging_counts + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/CallSentiment" + type: array + description: Success + summary: List call sentiments + tags: + - Call Sentiments + /v2/conversations/calls: + post: + description: Enqueue a Conversations Call for processing + requestBody: + content: + application/x-www-form-urlencoded: + schema: + properties: + call_created_at: + description: Timestamp for when the call started. If not provided, will default to the time the request was received + type: string + direction: + description: Call direction + type: string + duration: + description: Duration of call in seconds + type: number + from: + description: Phone number that call was made from + type: string + recording: + description: Object containing recording info including the audio file (.mp3, .wav, .ogg, .m4a) + type: object + to: + description: " Phone number that was called" + type: string + user_guid: + description: Guid of the Salesloft User to assign the call to. If not provided, will default to the user within the authentication token + type: string + required: + - to + - from + - duration + - recording + type: object + required: true + responses: + "201": + content: + "*/*": + schema: + $ref: "#/components/schemas/ConversationsCall" + description: Success + summary: Create Conversations Call + tags: + - Conversations Calls + /v2/crm_activities.json: + get: + description: | + Fetches multiple crm activity records. The records can be filtered, paged, and sorted according to + the respective parameters. + parameters: + - description: IDs of crm activities to fetch. + explode: false + in: query + name: ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: | + Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. + + ---CUSTOM--- + {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + explode: false + in: query + name: updated_at + required: false + schema: + items: + type: string + type: array + style: form + - description: "Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at" + in: query + name: sort_by + required: false + schema: + type: string + - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" + in: query + name: sort_direction + required: false + schema: + type: string + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data + in: query + name: limit_paging_counts + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/CrmActivity" + type: array + description: Success + summary: List crm activities + tags: + - CRM Activities + "/v2/crm_activities/{id}.json": + get: + description: | + Fetches a crm activity, by ID only. + parameters: + - description: Crm activity ID + in: path + name: id + required: true + schema: + type: string + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/CrmActivity" + description: Success + summary: Fetch a crm activity + tags: + - CRM Activities + /v2/crm_activity_fields.json: + get: + description: | + Fetches multiple crm activity field records. The records can be filtered, paged, and sorted according to + the respective parameters. + parameters: + - description: Return only records with this source + in: query + name: source + required: false + schema: + type: string + - description: "Key to sort on, must be one of: title, updated_at. Defaults to title" + in: query + name: sort_by + required: false + schema: + type: string + - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to ASC" + in: query + name: sort_direction + required: false + schema: + type: string + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data + in: query + name: limit_paging_counts + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/CrmActivityField" + type: array + description: Success + summary: List crm activity fields + tags: + - CRM Activity Fields + /v2/crm_users.json: + get: + description: | + Crm Users + parameters: + - description: IDs of crm users to fetch. If a record can't be found, that record won't be returned and your request will be successful + explode: false + in: query + name: ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: Filters crm users by crm_ids + explode: false + in: query + name: crm_id + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters crm users by user_ids + explode: false + in: query + name: user_id + required: false + schema: + items: + type: integer + type: array + style: form + - description: Filters crm users by user guids + explode: false + in: query + name: user_guid + required: false + schema: + items: + type: string + type: array + style: form + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data + in: query + name: limit_paging_counts + required: false + schema: + type: boolean + - description: "Key to sort on, must be one of: id, updated_at. Defaults to id" + in: query + name: sort_by + required: false + schema: + type: string + - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" + in: query + name: sort_direction + required: false + schema: + type: string + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/CrmUser" + type: array + description: Success + summary: List crm users + tags: + - Crm Users + /v2/custom_fields.json: + get: + description: | + Fetches multiple custom field records. The records can be filtered, paged, and sorted according to + the respective parameters. + parameters: + - description: IDs of custom fields to fetch. + explode: false + in: query + name: ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: "Type of field to fetch. Value must be one of: person, company, opportunity" + in: query + name: field_type + required: false + schema: + type: string + - description: "Key to sort on, must be one of: created_at, updated_at, name. Defaults to updated_at" + in: query + name: sort_by + required: false + schema: + type: string + - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" + in: query + name: sort_direction + required: false + schema: + type: string + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data + in: query + name: limit_paging_counts + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/CustomField" + type: array + description: Success + summary: List custom fields + tags: + - Custom Fields + post: + description: | + Creates a custom field. + requestBody: + content: + application/x-www-form-urlencoded: + schema: + properties: + field_type: + description: "The field type of the custom field. Value must be one of: person, company, opportunity" + type: string + name: + description: The name of the custom field + type: string + required: + - name + type: object + required: true + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/CustomField" + description: Success + summary: Create a custom field + tags: + - Custom Fields + "/v2/custom_fields/{id}.json": + delete: + description: | + Deletes a custom field. + parameters: + - description: Custom Field ID + in: path + name: id + required: true + schema: + type: string + responses: + "204": + description: The Custom Field has been deleted successfully + summary: Delete a custom field + tags: + - Custom Fields + get: + description: | + Fetches a custom field, by ID only. + parameters: + - description: Custom Field ID + in: path + name: id + required: true + schema: + type: string + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/CustomField" + description: Success + summary: Fetch a custom field + tags: + - Custom Fields + put: + description: | + Update a custom field. + parameters: + - description: Custom Field ID + in: path + name: id + required: true + schema: + type: string + requestBody: + content: + application/x-www-form-urlencoded: + schema: + properties: + field_type: + description: "The field type of the custom field. Value must be one of: person, company, opportunity" + type: string + name: + description: The name of the custom field + type: string + type: object + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/CustomField" + description: Success + summary: Update a custom field + tags: + - Custom Fields + /v2/email_template_attachments.json: + get: + description: | + Fetches multiple email template attachment records. The records can be filtered and paged according to + the respective parameters. + parameters: + - description: IDs of email template attachments to fetch. If a record can't be found, that record won't be returned and your request will be successful + explode: false + in: query + name: ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: Filters email template attachments by email template IDs + explode: false + in: query + name: email_template_id + required: false + schema: + items: + type: integer + type: array + style: form + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data + in: query + name: limit_paging_counts + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/EmailTemplateAttachment" + type: array + description: Success + summary: List email template attachments + tags: + - Email Template Attachments + /v2/email_templates.json: + get: + description: | + Fetches multiple email template records. The records can be filtered, paged, and sorted according to + the respective parameters. + parameters: + - description: IDs of email templates to fetch. If a record can't be found, that record won't be returned and your request will be successful + explode: false + in: query + name: ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: | + Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. + + ---CUSTOM--- + {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + explode: false + in: query + name: updated_at + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters email templates by whether they are linked to a team template or not + in: query + name: linked_to_team_template + required: false + schema: + type: boolean + - description: Filters email templates by title or subject + in: query + name: search + required: false + schema: + type: string + - description: Filters email templates by tags applied to the template by tag ID, not to exceed 100 IDs + explode: false + in: query + name: tag_ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: Filters email templates by tags applied to the template, not to exceed 100 tags + explode: false + in: query + name: tag + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters email templates by current authenticated user + in: query + name: filter_by_owner + required: false + schema: + type: boolean + - description: Filters email templates by groups applied to the template by group ID. Not to exceed 500 IDs. Returns templates that are assigned to any of the group ids. + explode: false + in: query + name: group_id + required: false + schema: + items: + type: integer + type: array + style: form + - description: Filters email templates based on whether or not the template has been used on a cadence + in: query + name: include_cadence_templates + required: false + schema: + type: boolean + - description: Filters email templates to include archived templates or not + in: query + name: include_archived_templates + required: false + schema: + type: boolean + - description: Filters email templates to those belonging to the cadence. Not to exceed 100 IDs. If a record can't be found, that record won't be returned and your request will be successful + explode: false + in: query + name: cadence_id + required: false + schema: + items: + type: integer + type: array + style: form + - description: "Key to sort on, must be one of: created_at, updated_at, last_used_at. Defaults to updated_at" + in: query + name: sort_by + required: false + schema: + type: string + - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" + in: query + name: sort_direction + required: false + schema: + type: string + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data + in: query + name: limit_paging_counts + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/EmailTemplate" + type: array + description: Success + summary: List email templates + tags: + - Email Templates + "/v2/email_templates/{id}.json": + get: + description: | + Fetches an email template, by ID only. + parameters: + - description: EmailTemplate ID + in: path + name: id + required: true + schema: + type: string + - description: Optionally will return the templates with the current user's email signature + in: query + name: include_signature + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/EmailTemplate" + description: Success + summary: Fetch an email template + tags: + - Email Templates + /v2/external_emails.json: + post: + description: | + Creates an external email object. + requestBody: + content: + application/x-www-form-urlencoded: + schema: + properties: + mailbox: + description: Email address of mailbox email was sent to + type: string + raw: + description: Base64 encoded MIME email content + type: string + required: + - mailbox + - raw + type: object + required: true + responses: + "201": + content: + "*/*": + schema: + $ref: "#/components/schemas/ExternalEmail" + description: Success + summary: Create an External Email + tags: + - External Emails + /v2/groups.json: + get: + description: | + Fetches multiple group records. The records can be filtered, and sorted according to + the respective parameters. + parameters: + - description: IDs of groups to fetch. + explode: false + in: query + name: ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: "Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at" + in: query + name: sort_by + required: false + schema: + type: string + - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" + in: query + name: sort_direction + required: false + schema: + type: string + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/Group" + type: array + description: Success + summary: List groups + tags: + - Groups + "/v2/groups/{id}.json": + get: + description: | + Fetches a group, by ID only. + parameters: + - description: Group ID + in: path + name: id + required: true + schema: + type: string + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/Group" + description: Success + summary: Fetch a group + tags: + - Groups + /v2/imports.json: + get: + description: | + Fetches multiple imports. + parameters: + - description: IDs of imports to fetch. If a record can't be found, that record won't be returned and your request will be successful + explode: false + in: query + name: ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: ID of users to fetch imports for. Using this filter will return an empty array for non-admin users who request other user's imports + explode: false + in: query + name: user_ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: "Key to sort on, must be one of: created_at, updated_at. Defaults to created_at" + in: query + name: sort_by + required: false + schema: + type: string + - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" + in: query + name: sort_direction + required: false + schema: + type: string + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data + in: query + name: limit_paging_counts + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/Import" + type: array + description: Success + summary: List imports + tags: + - Imports + post: + description: | + Creates an import. + requestBody: + $ref: "#/components/requestBodies/postV2ImportsJson" + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/Import" + description: Success + summary: Create an import + tags: + - Imports + "/v2/imports/{id}.json": + delete: + description: | + Deletes an import, by ID only. The associated people can be deleted as part of the deletion process. + + Admin users can access imports for the entire team, but non-admin users can only access their own imports. + parameters: + - description: Import ID + in: path + name: id + required: true + schema: + type: string + - description: | + Whether to delete people on this Import. Possible values are: [not present], all, single. + + 'single' will delete people who are only present in this Import. + 'all' will delete people even if they are present in other Imports. + Not specifying this parameter will not delete any people + in: query + name: undo + required: false + schema: + type: string + responses: + "204": + description: The import has been deleted successfully + summary: Delete an import + tags: + - Imports + get: + description: | + Fetches an import, by ID only. + + Admin users can access imports for the entire team, but non-admin users can only access their own imports. + parameters: + - description: Import ID + in: path + name: id + required: true + schema: + type: string + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/Import" + description: Success + summary: Fetch an import + tags: + - Imports + put: + description: | + Updates an import, by ID only. + + Admin users can access imports for the entire team, but non-admin users can only access their own imports. + parameters: + - description: Import ID + in: path + name: id + required: true + schema: + type: string + requestBody: + $ref: "#/components/requestBodies/postV2ImportsJson" + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/Import" + description: Success + summary: Update an import + tags: + - Imports + /v2/live_website_tracking_parameters.json: + post: + description: | + Creates a Live Website Tracking parameter to identify a person + requestBody: + content: + application/x-www-form-urlencoded: + schema: + properties: + person_id: + description: The person to create the LiveWebsiteTrackingParameter for + type: integer + required: + - person_id + type: object + required: true + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/LiveWebsiteTrackingParameter" + description: Success + summary: Create an Live Website Tracking Parameter + tags: + - Live Website Tracking Parameters + /v2/me.json: + get: + description: | + Authenticated user information. This endpoint does not accept any parameters as it is + represents your authenticated user. The "Users" resource provides user information + for other users on the team. + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/User" + description: Success + summary: Fetch current user + tags: + - Me + /v2/meetings.json: + get: + description: | + Fetches multiple meeting records. The records can be filtered, paged, and sorted according to the respective parameters. + Meetings resource is responsible for events created via the Salesloft platform using calendaring features. + These events can relate to cadences, people, and accounts. + parameters: + - description: IDs of meetings to fetch. If a record can't be found, that record won't be returned and your request will be successful + explode: false + in: query + name: ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: "Filters meetings by status. Possible values are: pending, booked, failed, retry" + in: query + name: status + required: false + schema: + type: string + - description: Filters meetings by person_id. Multiple person ids can be applied + in: query + name: person_id + required: false + schema: + type: string + - description: Filters meetings by account_id. Multiple account ids can be applied + in: query + name: account_id + required: false + schema: + type: string + - description: Filters meetings by person_id. Multiple person ids can be applied + explode: false + in: query + name: person_ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: Filters meetings by event IDs + explode: false + in: query + name: event_ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: Filters meetings by UIDs provided by calendar provider + explode: false + in: query + name: i_cal_uids + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters meetings by task_id. Multiple task ids can be applied + explode: false + in: query + name: task_ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: Flag to indicate whether to include owned_by_meetings_settings and booked_by_meetings_settings objects + in: query + name: include_meetings_settings + required: false + schema: + type: boolean + - description: | + Equality filters that are applied to the start_time field. A single filter can be used by itself or combined with other filters to create a range. + + ---CUSTOM--- + {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + explode: false + in: query + name: start_time + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters meetings by user_guid. Multiple user guids can be applied + explode: false + in: query + name: user_guids + required: false + schema: + items: + type: string + type: array + style: form + - description: Whether to include deleted events in the result + in: query + name: show_deleted + required: false + schema: + type: boolean + - description: "Key to sort on, must be one of: start_time, created_at, updated_at. Defaults to start_time" + in: query + name: sort_by + required: false + schema: + type: string + - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" + in: query + name: sort_direction + required: false + schema: + type: string + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data + in: query + name: limit_paging_counts + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/Meeting" + type: array + description: Success + summary: List meetings + tags: + - Meetings + /v2/meetings/settings/searches.json: + post: + description: | + Fetches multiple meeting setting records. The records can be filtered, paged, and sorted according to the respective parameters. + parameters: + - description: Filters meeting settings by array of user_guids + explode: false + in: query + name: user_guids + required: false + schema: + items: + type: string + type: array + style: form + - description: | + Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. + + ---CUSTOM--- + {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + explode: false + in: query + name: updated_at + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters meeting settings by calendar type + in: query + name: calendar_type + required: false + schema: + type: string + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data + in: query + name: limit_paging_counts + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/MeetingSetting" + type: array + description: Success + "403": + description: "This endpoint is not available without the following permissions: manage_team" + summary: List meeting settings + tags: + - Meetings Settings - Searches + "/v2/meetings/settings/{id}.json": + put: + description: | + Updates a meeting setting, by ID only. + parameters: + - description: MeetingSetting ID + in: path + name: id + required: true + schema: + type: string + requestBody: + content: + application/x-www-form-urlencoded: + schema: + properties: + allow_booking_on_behalf: + description: Allow other team members to schedule on you behalf. + type: boolean + allow_booking_overtime: + description: Allow team members to insert available time outside your working hours. + type: boolean + allow_event_overlap: + description: Allow team members to double book events on your calendar. + type: boolean + availability_limit: + description: The number of days out the user allows a prospect to schedule a meeting + type: integer + availability_limit_enabled: + description: If Availability Limits have been turned on + type: boolean + buffer_time_duration: + description: Default buffer duration in minutes set by a user + type: integer + calendar_type: + description: Calendar type + type: string + default_meeting_length: + description: Default meeting length in minutes set by the user + type: integer + description: + description: Default description of the meeting + type: string + enable_calendar_sync: + description: Determines if a user enabled Calendar Sync feature + type: boolean + enable_dynamic_location: + description: Determines if location will be filled via third-party service (Zoom, GoToMeeting, etc.) + type: boolean + location: + description: Default location of the meeting + type: string + primary_calendar_connection_failed: + description: Determines if the user lost calendar connection + type: boolean + primary_calendar_id: + description: ID of the primary calendar + type: string + primary_calendar_name: + description: Display name of the primary calendar + type: string + schedule_buffer_enabled: + description: Determines if meetings are scheduled with a 15 minute buffer between them + type: boolean + schedule_delay: + description: The number of hours in advance a user requires someone to a book a meeting with them + type: integer + share_event_detail: + description: Allow team members to see the details of events on your calendar. + type: boolean + time_zone: + description: Time zone for current calendar + type: string + times_available: + description: Times available set by a user that can be used to book meetings + type: object + title: + description: Default title of the meeting + type: string + type: object + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/MeetingSetting" + description: Success + summary: Update a meeting setting + tags: + - Meeting Settings + "/v2/meetings/{id}.json": + put: + description: | + Updates a meeting, by ID only. + parameters: + - description: Meeting ID + in: path + name: id + required: true + schema: + type: string + requestBody: + content: + application/x-www-form-urlencoded: + schema: + properties: + event_id: + description: Meeting ID from the calendar provider + type: string + i_cal_uid: + description: Meeting unique identifier (iCalUID) + type: string + no_show: + description: Whether the meeting is a No Show meeting + type: boolean + status: + description: "Status of the meeting creation progress. Possible values are: pending, booked, failed, retry" + type: string + type: object + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/Meeting" + description: Success + summary: Update a meeting + tags: + - Meetings + "/v2/mime_email_payloads/{id}.json": + get: + description: | + Fetch the MIME content for email. + parameters: + - description: ID of Email + in: path + name: id + required: true + schema: + type: string + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/MimeEmailPayload" + description: Success + summary: Fetch the MIME content for email + tags: + - Mime Email Payloads + /v2/notes.json: + get: + description: | + Fetches multiple note records. The records can be filtered, paged, and sorted according to + the respective parameters. + parameters: + - description: "Case insensitive type of item with which the note is associated. Value must be one of: person, account" + in: query + name: associated_with_type + required: false + schema: + type: string + - description: ID of the item with which the note is associated. The associated_with_type must also be present if this parameter is used + in: query + name: associated_with_id + required: false + schema: + type: integer + - description: | + Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. + + ---CUSTOM--- + {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + explode: false + in: query + name: updated_at + required: false + schema: + items: + type: string + type: array + style: form + - description: IDs of notes to fetch. If a record can't be found, that record won't be returned and your request will be successful + explode: false + in: query + name: ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: "Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at" + in: query + name: sort_by + required: false + schema: + type: string + - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" + in: query + name: sort_direction + required: false + schema: + type: string + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data + in: query + name: limit_paging_counts + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/Note" + type: array + description: Success + summary: List notes + tags: + - Notes + post: + description: | + Creates a note. + requestBody: + content: + application/x-www-form-urlencoded: + schema: + properties: + associated_with_id: + description: ID of the item with which the note is associated + type: integer + associated_with_type: + description: "Case insensitive type of item with which the note is associated. Value must be one of: person, account" + type: string + call_id: + description: ID of the call with which the note is associated. The call cannot already have a note + type: integer + content: + description: The content of the note + type: string + skip_crm_sync: + description: Boolean indicating if the CRM sync should be skipped. No syncing will occur if true + type: boolean + subject: + description: The subject of the note's crm activity, defaults to 'Note' + type: string + user_guid: + description: The user to create the note for. Only team admins may create notes on behalf of other users. Defaults to the requesting user + type: string + required: + - content + - associated_with_type + - associated_with_id + type: object + required: true + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/Note" + description: Success + summary: Create a note + tags: + - Notes + "/v2/notes/{id}.json": + delete: + description: | + Deletes a note owned by authorized account. + This operation is not reversible without contacting support. + This operation can be called multiple times successfully. + parameters: + - description: Note ID + in: path + name: id + required: true + schema: + type: string + responses: + "204": + description: The Note has been deleted successfully + summary: Delete a note + tags: + - Notes + get: + description: | + Fetches a note, by ID only. + parameters: + - description: Note ID + in: path + name: id + required: true + schema: + type: string + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/Note" + description: Success + summary: Fetch a note + tags: + - Notes + put: + description: | + Updates a note. Any changes to the note or associated records will not reflect in your CRM. + parameters: + - description: Note ID + in: path + name: id + required: true + schema: + type: string + requestBody: + content: + application/x-www-form-urlencoded: + schema: + properties: + call_id: + description: ID of the call with which the note is associated. The call cannot already have a note. If the note is associated to a call already, it will become associated to the requested call + type: integer + content: + description: The content of the note + type: string + required: + - content + type: object + required: true + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/Person" + description: Success + summary: Update a note + tags: + - Notes + /v2/ongoing_actions.json: + post: + description: | + Creates an ongoing action. An ongoing action is an action that is not yet completed, + but progress has been made towards the completion. The user should not need to do + anything for an ongoing action to be completed. An ongoing action can be later completed + by creating an activity. + + Ongoing actions are marked as status=pending_activity. + requestBody: + content: + application/x-www-form-urlencoded: + schema: + properties: + action_id: + description: | + Action that is being marked ongoing. This will validate that the action is still + valid before modifying it. Ongoing actions can not be marked ongoing. + type: integer + type: object + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/Action" + description: Success + summary: Create an ongoing action + tags: + - Ongoing Actions + /v2/pending_emails.json: + get: + description: | + Fetches a list of emails ready to be sent by an external email service. + parameters: + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data + in: query + name: limit_paging_counts + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/PendingEmail" + type: array + description: Success + summary: Fetches a list of emails ready to be sent by an external email service. Only emails sent with an External Email Client will appear here. + tags: + - Pending Emails + "/v2/pending_emails/{id}.json": + put: + description: | + Updates the status of an email sent by an External Email Client. Does not affect lofted emails. + parameters: + - description: Email ID + in: path + name: id + required: true + schema: + type: string + requestBody: + content: + application/x-www-form-urlencoded: + schema: + properties: + error_message: + description: The error message indicating why the email failed to send + type: string + message_id: + description: The message id of the email that was sent + type: string + sent_at: + description: The time that the email was actually sent in iso8601 format + type: string + status: + description: Delivery status of the email. Valid statuses are 'sent' and 'failed' + type: string + required: + - message_id + - status + type: object + required: true + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/PendingEmail" + description: Success + summary: Updates the status of an email sent by an External Email Client + tags: + - Pending Emails + /v2/people.json: + get: + description: | + Fetches multiple person records. The records can be filtered, paged, and sorted according to + the respective parameters. + parameters: + - description: IDs of people to fetch. If a record can't be found, that record won't be returned and your request will be successful + explode: false + in: query + name: ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: | + Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. + + ---CUSTOM--- + {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + explode: false + in: query + name: updated_at + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters people by email address. Multiple emails can be applied. An additional value of "_is_null" can be passed to filter people that do not have an email address. + explode: false + in: query + name: email_addresses + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters people by the owner's guid. Multiple owner guids can be applied + explode: false + in: query + name: owned_by_guid + required: false + schema: + items: + type: string + type: array + style: form + - description: Includes people that have a given person_stage. Multiple person stage ids can be applied. An additional value of "_is_null" can be passed to filter people that do not have a stage set. + explode: false + in: query + name: person_stage_id + required: false + schema: + items: + type: integer + type: array + style: form + - description: Filters people by crm_id. Multiple crm ids can be applied + explode: false + in: query + name: crm_id + required: false + schema: + items: + type: string + type: array + style: form + - description: 'Filters people by owner_crm_id. Multiple owner_crm_ids can be applied. An additional value of "_is_null" can be passed to filter people that are unowned. A "_not_in" modifier can be used to exclude specific owner_crm_ids. Example: v2/people?owner_crm_id[_not_in]=id' + explode: false + in: query + name: owner_crm_id + required: false + schema: + items: + type: string + type: array + style: form + - description: Includes people that have a given do_not_contact property + in: query + name: do_not_contact + required: false + schema: + type: boolean + - description: Includes people that can be emailed given do_not_contact and contact_restrictions property + in: query + name: can_email + required: false + schema: + type: boolean + - description: Includes people that can be called given do_not_contact and contact_restrictions property + in: query + name: can_call + required: false + schema: + type: boolean + - description: Includes people that can be sent a text message given do_not_contact and contact_restrictions property + in: query + name: can_text + required: false + schema: + type: boolean + - description: Filters people by the account they are linked to. Multiple account ids can be applied + explode: false + in: query + name: account_id + required: false + schema: + items: + type: integer + type: array + style: form + - description: "Filters by people matching all given custom fields. The custom field names are case-sensitive, but the provided values are case-insensitive. Example: v2/people?custom_fields[custom_field_name]=custom_field_value" + in: query + name: custom_fields + required: false + schema: + type: object + - description: Filters people that were imported by the given import ids. Multiple import ids can be applied. An additional value of "_is_null" can be passed to filter people that were not imported. + explode: false + in: query + name: import_id + required: false + schema: + items: + type: integer + type: array + style: form + - description: Filters people by job seniorty. Multiple job seniorities can be applied. An additional value of "_is_null" can be passed to filter people do not have a job_seniority. + explode: false + in: query + name: job_seniority + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters people by the tag ids applied to the person. Multiple tag ids can be applied. + explode: false + in: query + name: tag_id + required: false + schema: + items: + type: integer + type: array + style: form + - description: Filters people by whether the owner is active or not. + in: query + name: owner_is_active + required: false + schema: + type: boolean + - description: Filters people by the cadence that they are currently on. Multiple cadence_ids can be applied. An additional value of "_is_null" can be passed to filter people that are not on a cadence. + explode: false + in: query + name: cadence_id + required: false + schema: + items: + type: integer + type: array + style: form + - description: Filters people who have been starred by the user guids given. + explode: false + in: query + name: starred_by_guid + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters people by whether or not they have replied to an email or not. + in: query + name: replied + required: false + schema: + type: boolean + - description: Filters people by whether an email that was sent to them bounced or not. + in: query + name: bounced + required: false + schema: + type: boolean + - description: Filters people by whether or not they have been marked as a success or not. + in: query + name: success + required: false + schema: + type: boolean + - description: Filters people by whether or not they are marked as an European Union Resident or not. + in: query + name: eu_resident + required: false + schema: + type: boolean + - description: Filters people by their title by exact match. Supports partial matching + explode: false + in: query + name: title + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters people by their country by exact match. Supports partial matching + explode: false + in: query + name: country + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters people by their state by exact match. Supports partial matching + explode: false + in: query + name: state + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters people by their city by exact match. Supports partial matching + explode: false + in: query + name: city + required: false + schema: + items: + type: string + type: array + style: form + - description: | + Equality filters that are applied to the last_contacted field. A single filter can be used by itself or combined with other filters to create a range. + Additional values of "_is_null" or "_is_not_null" can be passed to filter records that either have no timestamp value or any timestamp value. + ---CUSTOM--- + {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + in: query + name: last_contacted + required: false + schema: + type: object + - description: | + Equality filters that are applied to the last_contacted field. A single filter can be used by itself or combined with other filters to create a range. + + ---CUSTOM--- + {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + in: query + name: created_at + required: false + schema: + type: object + - description: Filters people by whether or not that person is on a cadence or if they have been contacted in any way. + in: query + name: new + required: false + schema: + type: boolean + - description: Filter people by whether or not they have a phone number or not + in: query + name: phone_number + required: false + schema: + type: boolean + - description: Filters people by locales. Multiple locales can be applied. An additional value of "Null" can be passed to filter people that do not have a locale. + explode: false + in: query + name: locales + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters people by owner_id. Multiple owner_ids can be applied. + explode: false + in: query + name: owner_id + required: false + schema: + items: + type: integer + type: array + style: form + - description: For internal use only. This field does not comply with our backwards compatibility policies. This filter is for authenticated users of Salesloft only and will not work for OAuth Applications. Filters people by the string provided. Can search and filter by name, title, industry, email_address and linked account name. + in: query + name: _query + required: false + schema: + type: string + - description: "Key to sort on, must be one of: created_at, updated_at, last_contacted_at, name, title, job_seniority, call_count, sent_emails, clicked_emails, replied_emails, viewed_emails, account, cadence_stage_name. Defaults to updated_at" + in: query + name: sort_by + required: false + schema: + type: string + - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" + in: query + name: sort_direction + required: false + schema: + type: string + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data + in: query + name: limit_paging_counts + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/Person" + type: array + description: Success + summary: List people + tags: + - People + post: + description: | + Creates a person. Either email_address or phone/last_name must be provided as a unique lookup + on the team. + requestBody: + content: + application/x-www-form-urlencoded: + schema: + properties: + account_id: + description: ID of the Account to link this person to + type: integer + autotag_date: + description: Whether the date should be added to this person as a tag. Default is false. The tag will be Y-m-d format. + type: boolean + city: + description: City + type: string + contact_restrictions: + description: "Specific methods of communication to prevent for this person. This will prevent individual execution of these communication types as well as automatically skip cadence steps of this communication type for this person in SalesLoft. Values currently accepted: call, email, message" + items: + type: string + type: array + country: + description: Country + type: string + crm_id: + description: |+ + Requires Salesforce. + + ID of the person in your external CRM. You must provide a crm_id_type if this is included. + + Validations will be applied to the crm_id depending on the crm_id_type. A "salesforce" ID must be exactly 18 characters. A "salesforce" ID must be either a Lead (00Q) or Contact (003) object. The type will be validated using the 18 character ID. + + This field can only be used if your application or API key has the "person:set_crm_id" scope. + + type: string + crm_id_type: + description: "The CRM that the provided crm_id is for. Must be one of: salesforce" + type: string + custom_fields: + description: Custom fields are defined by the user's team. Only fields with values are presented in the API. + type: object + do_not_contact: + description: Whether or not this person has opted out of all communication. Setting this value to true prevents this person from being called, emailed, or added to a cadence in SalesLoft. If this person is currently in a cadence, they will be removed. + type: boolean + email_address: + description: Email address + type: string + first_name: + description: First name + type: string + home_phone: + description: Home phone without formatting + type: string + import_id: + description: ID of the Import this person is a part of. A person can be part of multiple imports, but this ID will always be the most recent Import + type: integer + job_seniority: + description: The Job Seniority of a Person, must be one of director, executive, individual_contributor, manager, vice_president, unknown + type: string + last_name: + description: Last name + type: string + linkedin_url: + description: Linkedin URL + type: string + locale: + description: Time locale of the person + type: string + mobile_phone: + description: Mobile phone without formatting + type: string + owner_id: + description: ID of the User that owns this person + type: integer + person_company_industry: + description: Company industry. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended + type: string + person_company_name: + description: Company name. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended + type: string + person_company_website: + description: Company website. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended + type: string + person_stage_id: + description: ID of the PersonStage of this person + type: integer + personal_email_address: + description: Personal email address + type: string + personal_website: + description: The website of this person + type: string + phone: + description: Phone without formatting + type: string + phone_extension: + description: Phone extension without formatting + type: string + secondary_email_address: + description: Alternate email address + type: string + state: + description: State + type: string + tags: + description: All tags applied to this person + items: + type: string + type: array + title: + description: Job title + type: string + twitter_handle: + description: The twitter handle of this person + type: string + work_city: + description: Work location - city + type: string + work_country: + description: Work location - country + type: string + work_state: + description: Work location - state + type: string + type: object + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/Person" + description: Success + summary: Create a person + tags: + - People + "/v2/people/{id}.json": + delete: + description: | + Deletes a person. This operation is not reversible without contacting support. + This operation can be called multiple times successfully. + parameters: + - description: Person id + in: path + name: id + required: true + schema: + type: string + responses: + "204": + description: The person has been deleted successfully + summary: Delete a person + tags: + - People + get: + description: | + Fetches a person, by ID only. + parameters: + - description: Person ID + in: path + name: id + required: true + schema: + type: string + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/Person" + description: Success + summary: Fetch a person + tags: + - People + put: + description: | + Updates a person. + parameters: + - description: Person id + in: path + name: id + required: true + schema: + type: string + requestBody: + content: + application/x-www-form-urlencoded: + schema: + properties: + account_id: + description: ID of the Account to link this person to + type: integer + city: + description: City + type: string + contact_restrictions: + description: "Specific methods of communication to prevent for this person. This will prevent individual execution of these communication types as well as automatically skip cadence steps of this communication type for this person in SalesLoft. Values currently accepted: call, email, message" + items: + type: string + type: array + country: + description: Country + type: string + crm_id: + description: |+ + Requires Salesforce. + + ID of the person in your external CRM. You must provide a crm_id_type if this is included. + + Validations will be applied to the crm_id depending on the crm_id_type. A "salesforce" ID must be exactly 18 characters. A "salesforce" ID must be either a Lead (00Q) or Contact (003) object. The type will be validated using the 18 character ID. + + This field can only be used if your application or API key has the "person:set_crm_id" scope. + + type: string + crm_id_type: + description: "The CRM that the provided crm_id is for. Must be one of: salesforce" + type: string + custom_fields: + description: Custom fields are defined by the user's team. Only fields with values are presented in the API. + type: object + do_not_contact: + description: Whether or not this person has opted out of all communication. Setting this value to true prevents this person from being called, emailed, or added to a cadence in SalesLoft. If this person is currently in a cadence, they will be removed. + type: boolean + email_address: + description: Email address + type: string + first_name: + description: First name + type: string + home_phone: + description: Home phone without formatting + type: string + import_id: + description: ID of the Import this person is a part of. A person can be part of multiple imports, but this ID will always be the most recent Import + type: integer + job_seniority: + description: The Job Seniority of a Person, must be one of director, executive, individual_contributor, manager, vice_president, unknown + type: string + last_name: + description: Last name + type: string + linkedin_url: + description: Linkedin URL + type: string + locale: + description: Time locale of the person + type: string + mobile_phone: + description: Mobile phone without formatting + type: string + owner_id: + description: ID of the User that owns this person + type: integer + person_company_industry: + description: Company industry. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended + type: string + person_company_name: + description: Company name. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended + type: string + person_company_website: + description: Company website. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended + type: string + person_stage_id: + description: ID of the PersonStage of this person + type: integer + personal_email_address: + description: Personal email address + type: string + personal_website: + description: The website of this person + type: string + phone: + description: Phone without formatting + type: string + phone_extension: + description: Phone extension without formatting + type: string + secondary_email_address: + description: Alternate email address + type: string + state: + description: State + type: string + tags: + description: All tags applied to this person + items: + type: string + type: array + title: + description: Job title + type: string + twitter_handle: + description: The twitter handle of this person + type: string + work_city: + description: Work location - city + type: string + work_country: + description: Work location - country + type: string + work_state: + description: Work location - state + type: string + type: object + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/Person" + description: Success + summary: Update a person + tags: + - People + /v2/person_stages.json: + get: + description: | + Fetches multiple person stage records. The records can be filtered, paged, and sorted according to + the respective parameters. + parameters: + - description: IDs of person stages to fetch. + explode: false + in: query + name: ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: "Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at" + in: query + name: sort_by + required: false + schema: + type: string + - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" + in: query + name: sort_direction + required: false + schema: + type: string + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data + in: query + name: limit_paging_counts + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/PersonStage" + type: array + description: Success + summary: List person stages + tags: + - Person Stages + post: + description: | + Creates a person stage. + requestBody: + content: + application/x-www-form-urlencoded: + schema: + properties: + name: + description: The name of the new stage + type: string + required: + - name + type: object + required: true + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/PersonStage" + description: Success + summary: Create a person stage + tags: + - Person Stages + "/v2/person_stages/{id}.json": + delete: + description: | + Deletes a person stage. This operation is not reversible without contacting support. + This operation can be called multiple times successfully. + parameters: + - description: Stage ID + in: path + name: id + required: true + schema: + type: string + responses: + "204": + description: The Person Stage has been deleted successfully + summary: Delete an person stage + tags: + - Person Stages + get: + description: | + Fetches a person stage, by ID only. + parameters: + - description: Stage ID + in: path + name: id + required: true + schema: + type: string + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/PersonStage" + description: Success + summary: Fetch a person stage + tags: + - Person Stages + put: + description: | + Updates a person stage. + parameters: + - description: Stage ID + in: path + name: id + required: true + schema: + type: string + requestBody: + content: + application/x-www-form-urlencoded: + schema: + properties: + name: + description: The name of the stage. + type: string + required: + - name + type: object + required: true + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/PersonStage" + description: Success + summary: Update a person stage + tags: + - Person Stages + /v2/person_upserts.json: + post: + description: | + Upserts a person record. The upsert_key dictates how the upsert will be performed. The create and update behavior + is exactly the same as the individual create and update endpoints. + requestBody: + content: + application/x-www-form-urlencoded: + schema: + properties: + account_id: + description: ID of the Account to link this person to + type: integer + city: + description: City + type: string + contact_restrictions: + description: "Specific methods of communication to prevent for this person. This will prevent individual execution of these communication types as well as automatically skip cadence steps of this communication type for this person in SalesLoft. Values currently accepted: call, email, message" + items: + type: string + type: array + country: + description: Country + type: string + crm_id: + description: |+ + Requires Salesforce. + + ID of the person in your external CRM. You must provide a crm_id_type if this is included. + + Validations will be applied to the crm_id depending on the crm_id_type. A "salesforce" ID must be exactly 18 characters. A "salesforce" ID must be either a Lead (00Q) or Contact (003) object. The type will be validated using the 18 character ID. + + This field can only be used if your application or API key has the "person:set_crm_id" scope. + + type: string + crm_id_type: + description: "The CRM that the provided crm_id is for. Must be one of: salesforce" + type: string + custom_fields: + description: Custom fields are defined by the user's team. Only fields with values are presented in the API. + type: object + do_not_contact: + description: Whether or not this person has opted out of all communication. Setting this value to true prevents this person from being called, emailed, or added to a cadence in SalesLoft. If this person is currently in a cadence, they will be removed. + type: boolean + email_address: + description: Email address + type: string + first_name: + description: First name + type: string + home_phone: + description: Home phone without formatting + type: string + id: + description: | + ID of the person to update. Used if the upsert_key=id. When id and another upsert_key are provided, + the request will fail if the upsert record id and id parameter don't match. + type: integer + import_id: + description: ID of the Import this person is a part of. A person can be part of multiple imports, but this ID will always be the most recent Import + type: integer + job_seniority: + description: The Job Seniority of a Person, must be one of director, executive, individual_contributor, manager, vice_president, unknown + type: string + last_name: + description: Last name + type: string + linkedin_url: + description: Linkedin URL + type: string + locale: + description: Time locale of the person + type: string + mobile_phone: + description: Mobile phone without formatting + type: string + owner_id: + description: ID of the User that owns this person + type: integer + person_company_industry: + description: Company industry. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended + type: string + person_company_name: + description: Company name. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended + type: string + person_company_website: + description: Company website. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended + type: string + person_stage_id: + description: ID of the PersonStage of this person + type: integer + personal_email_address: + description: Personal email address + type: string + personal_website: + description: The website of this person + type: string + phone: + description: Phone without formatting + type: string + phone_extension: + description: Phone extension without formatting + type: string + secondary_email_address: + description: Alternate email address + type: string + state: + description: State + type: string + tags: + description: All tags applied to this person + items: + type: string + type: array + title: + description: Job title + type: string + twitter_handle: + description: The twitter handle of this person + type: string + upsert_key: + description: | + Name of the parameter to upsert on. The field must be provided in the input parameters, or the request will fail. + The request will also fail if there are multiple records matched by the upsert field. This can occur if intentional duplicates + by email address is enabled. + + If upsert_key is not provided, this endpoint will not update an existing record. + + Valid options are: id, crm_id, email_address. If crm_id is provided, then a valid crm_id_type must be provided, as documented + for the person create and update endpoints. + type: string + work_city: + description: Work location - city + type: string + work_country: + description: Work location - country + type: string + work_state: + description: Work location - state + type: string + type: object + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/PersonUpsert" + description: Success + summary: Upsert a person + tags: + - Person Upsert + /v2/phone_number_assignments.json: + get: + description: | + Fetches multiple phone number assignment records. The records can be filtered, paged, and sorted according to + the respective parameters. + parameters: + - description: IDs of phone number assignments to fetch + explode: false + in: query + name: ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: "Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at" + in: query + name: sort_by + required: false + schema: + type: string + - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" + in: query + name: sort_direction + required: false + schema: + type: string + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data + in: query + name: limit_paging_counts + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/PhoneNumberAssignment" + type: array + description: Success + summary: List phone number assignments + tags: + - Phone Number Assignments + "/v2/phone_number_assignments/{id}.json": + get: + description: | + Fetches a phone number assignment, by ID only. + parameters: + - description: PhoneNumberAssignment ID + in: path + name: id + required: true + schema: + type: string + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/PhoneNumberAssignment" + description: Success + summary: Fetch a phone number assignment + tags: + - Phone Number Assignments + /v2/phone_numbers/caller_ids.json: + get: + description: | + Each entry is a possible caller ID match for the number. Multiple + entries may be returned if the phone number is present on more than one + person in the system. Phone number should be in E.164 format. + parameters: + - description: E.164 Phone Number + in: query + name: phone_number + required: true + schema: + type: string + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/CallerId" + type: array + description: Success + summary: List caller ids + tags: + - Caller IDs + "/v2/phone_numbers/recording_settings/{id}.json": + get: + description: | + Fetches the recording status for a given phone number, based on Do Not Record and Recording Governance for your team. + Phone number should be in E.164 format. + parameters: + - description: E.164 Phone Number + in: path + name: id + required: true + schema: + type: string + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/RecordingSetting" + description: Success + summary: Fetch recording setting + tags: + - Recording Settings + /v2/saved_list_views.json: + get: + description: | + Fetches multiple saved list view records. The records can be filtered, paged, and sorted according to + the respective parameters. + parameters: + - description: IDs of saved list views to fetch. If a record can't be found, that record won't be returned and your request will be successful + explode: false + in: query + name: ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: Type of saved list views to fetch. + in: query + name: view + required: false + schema: + type: string + - description: "Key to sort on, must be one of: name. Defaults to name" + in: query + name: sort_by + required: false + schema: + type: string + - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" + in: query + name: sort_direction + required: false + schema: + type: string + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data + in: query + name: limit_paging_counts + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/SavedListView" + type: array + description: Success + summary: List saved list views + tags: + - Saved List Views + post: + description: | + Creates a saved list view. + requestBody: + content: + application/x-www-form-urlencoded: + schema: + properties: + is_default: + description: Whether the saved list view is the default + type: boolean + name: + description: The name of the saved list view + type: string + view: + description: "The type of objects in the saved list view. Value must be one of: people, companies, or recordings" + type: string + view_params: + description: JSON object of list view parameters + type: string + required: + - name + - view + type: object + required: true + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/SavedListView" + description: Success + summary: Create a saved list view + tags: + - Saved List Views + "/v2/saved_list_views/{id}.json": + delete: + description: | + Deletes a saved list view. This operation is not reversible without contacting support. + This operation can be called multiple times successfully. + parameters: + - description: Saved List View ID + in: path + name: id + required: true + schema: + type: string + responses: + "204": + description: The saved list view has been deleted successfully + summary: Delete a saved list view + tags: + - Saved List Views + get: + description: | + Fetches a saved list view, by ID only. + parameters: + - description: Saved List View ID + in: path + name: id + required: true + schema: + type: string + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/SavedListView" + description: Success + summary: Fetch a saved list view + tags: + - Saved List Views + put: + description: | + Updates a saved list view. + parameters: + - description: Saved List View ID + in: path + name: id + required: true + schema: + type: string + requestBody: + content: + application/x-www-form-urlencoded: + schema: + properties: + is_default: + description: Whether the saved list view is the default + type: boolean + name: + description: The name of the saved list view + type: string + view_params: + description: JSON object of list view parameters + type: string + type: object + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/SavedListView" + description: Success + summary: Update a saved list view + tags: + - Saved List Views + /v2/steps.json: + get: + description: | + Fetches multiple step records. The records can be filtered, paged, and sorted according to + the respective parameters. + parameters: + - description: IDs of steps to fetch. + explode: false + in: query + name: ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: Filter by cadence ID + in: query + name: cadence_id + required: false + schema: + type: integer + - description: Filter by step type + in: query + name: type + required: false + schema: + type: string + - description: Filter by whether a step has due actions + in: query + name: has_due_actions + required: false + schema: + type: boolean + - description: "Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at" + in: query + name: sort_by + required: false + schema: + type: string + - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" + in: query + name: sort_direction + required: false + schema: + type: string + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data + in: query + name: limit_paging_counts + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/Step" + type: array + description: Success + summary: List steps + tags: + - Steps + "/v2/steps/{id}.json": + get: + description: | + Fetches a step, by ID only. + parameters: + - description: Step ID + in: path + name: id + required: true + schema: + type: string + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/Step" + description: Success + summary: Fetch a step + tags: + - Steps + /v2/successes.json: + get: + description: | + Fetches multiple success records. The records can be filtered, paged, and sorted according to + the respective parameters. + parameters: + - description: IDs of successes to fetch. If a record can't be found, that record won't be returned and your request will be successful + explode: false + in: query + name: ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: Filters successes by person_id. Multiple person ids can be applied + explode: false + in: query + name: person_id + required: false + schema: + items: + type: integer + type: array + style: form + - description: | + Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. + + ---CUSTOM--- + {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + explode: false + in: query + name: updated_at + required: false + schema: + items: + type: string + type: array + style: form + - description: "Key to sort on, must be one of: created_at, updated_at, succeeded_at. Defaults to updated_at" + in: query + name: sort_by + required: false + schema: + type: string + - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" + in: query + name: sort_direction + required: false + schema: + type: string + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data + in: query + name: limit_paging_counts + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/Success" + type: array + description: Success + summary: List successes + tags: + - Successes + /v2/tags.json: + get: + description: | + Fetches a list of the tags used for a team. The records can be filtered, paged, and sorted according to + the respective parameters. + + Tags can be applied to mulitple resource types. + parameters: + - description: Filters tags by name + in: query + name: search + required: false + schema: + type: string + - description: Filters tags by their IDs + explode: false + in: query + name: ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: "Key to sort on, must be one of: name. Defaults to name" + in: query + name: sort_by + required: false + schema: + type: string + - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" + in: query + name: sort_direction + required: false + schema: + type: string + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data + in: query + name: limit_paging_counts + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/Tag" + type: array + description: Success + summary: List team tags + tags: + - Tags + /v2/tasks.json: + get: + description: | + Fetches multiple task records. The records can be filtered, paged, and sorted according to + the respective parameters. + parameters: + - description: IDs of tasks to fetch. + explode: false + in: query + name: ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: Filters tasks by the user to which they are assigned. + explode: false + in: query + name: user_id + required: false + schema: + items: + type: integer + type: array + style: form + - description: Filters tasks by the person to which they are associated. + explode: false + in: query + name: person_id + required: false + schema: + items: + type: integer + type: array + style: form + - description: Filters tasks by the account to which they are associated. + explode: false + in: query + name: account_id + required: false + schema: + items: + type: integer + type: array + style: form + - description: "Filters tasks by their current state. Valid current_states include: ['scheduled', 'completed']." + explode: false + in: query + name: current_state + required: false + schema: + items: + type: string + type: array + style: form + - description: "Filters tasks by their task type. Valid task_types include: ['call', 'email', 'general']." + explode: false + in: query + name: task_type + required: false + schema: + items: + type: string + type: array + style: form + - description: "Filters tasks by time interval. Valid time_intervals include: ['overdue', 'today', 'tomorrow', 'this_week', 'next_week']." + in: query + name: time_interval_filter + required: false + schema: + type: string + - description: Filters tasks by idempotency key. + in: query + name: idempotency_key + required: false + schema: + type: string + - description: Filters tasks by locale of the person to which they are associated. + explode: false + in: query + name: locale + required: false + schema: + items: + type: string + type: array + style: form + - description: "Key to sort on, must be one of: due_date, due_at. Defaults to due_date" + in: query + name: sort_by + required: false + schema: + type: string + - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to ASC" + in: query + name: sort_direction + required: false + schema: + type: string + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data + in: query + name: limit_paging_counts + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/Task" + type: array + description: Success + summary: List tasks + tags: + - Tasks + post: + description: | + Creates a task. + requestBody: + content: + application/x-www-form-urlencoded: + schema: + properties: + current_state: + description: "Current state of the task, valid options are: scheduled" + type: string + description: + description: A description of the task recorded for person at completion time + type: string + due_date: + description: Date of when the Task is due, ISO-8601 date format required + type: string + idempotency_key: + description: Establishes a unique identifier to prevent duplicates from being created + type: string + person_id: + description: ID of the person to be contacted + type: string + remind_at: + description: Datetime of when the user will be reminded of the task, ISO-8601 datetime format required + type: string + subject: + description: Subject line of the task. + type: string + task_type: + description: "Task type, valid options are: call, email, general" + type: string + user_id: + description: ID of the user linked to the task + type: integer + required: + - subject + - person_id + - user_id + - task_type + - due_date + - current_state + type: object + required: true + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/Task" + description: Success + summary: Create a Task + tags: + - Tasks + "/v2/tasks/{id}.json": + get: + description: | + Fetches a task, by ID only. + parameters: + - description: Task ID + in: path + name: id + required: true + schema: + type: string + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/Step" + description: Success + summary: Fetch a task + tags: + - Tasks + put: + description: | + Updates a task. + parameters: + - description: Task ID + in: path + name: id + required: true + schema: + type: string + requestBody: + content: + application/x-www-form-urlencoded: + schema: + properties: + current_state: + description: "Current state of the task, valid options are: completed" + type: string + description: + description: A description of the task recorded for person at completion time + type: string + due_date: + description: Date of when the Task is due, ISO-8601 date format required + type: string + is_logged: + description: A flag to indicate that the task should only be logged + type: boolean + remind_at: + description: Datetime of when the user will be reminded of the task, ISO-8601 datetime format required + type: string + subject: + description: Subject line of the task + type: string + type: object + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/Task" + description: Success + summary: Update a Task + tags: + - Tasks + /v2/team.json: + get: + description: | + Fetches the team of the authenticated user. + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/Team" + description: Success + summary: Fetch current team + tags: + - Team + /v2/team_template_attachments.json: + get: + description: | + Fetches multiple team template attachment records. The records can be filtered and paged according to + the respective parameters. + parameters: + - description: IDs of team template attachments to fetch. If a record can't be found, that record won't be returned and your request will be successful + explode: false + in: query + name: ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: Filters template attachments by team template IDs + explode: false + in: query + name: team_template_id + required: false + schema: + items: + type: integer + type: array + style: form + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data + in: query + name: limit_paging_counts + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/TeamTemplateAttachment" + type: array + description: Success + summary: List team template attachments + tags: + - Team Template Attachments + /v2/team_templates.json: + get: + description: | + Fetches multiple team template records. The records can be filtered, paged, and sorted according to + the respective parameters. + + Team templates are templates that are available team-wide. Admins may use + team templates to create original content for the entire team, monitor version control to ensure templates are always up to date, + and track template performance across the entire organization. All metrics on a team template reflect usage across the team; individual metrics can be found with the email_templates API endpoint. + parameters: + - description: IDs of team templates to fetch. If a record can't be found, that record won't be returned and your request will be successful + explode: false + in: query + name: ids + required: false + schema: + items: + type: string + type: array + style: form + - description: | + Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. + + ---CUSTOM--- + {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} + explode: false + in: query + name: updated_at + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters email templates by title or subject + in: query + name: search + required: false + schema: + type: string + - description: Filters email templates by tags applied to the template by tag ID, not to exceed 100 IDs + explode: false + in: query + name: tag_ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: Filters team templates by tags applied to the template, not to exceed 100 tags + explode: false + in: query + name: tag + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters email templates to include archived templates or not + in: query + name: include_archived_templates + required: false + schema: + type: boolean + - description: "Key to sort on, must be one of: created_at, updated_at, last_used_at. Defaults to updated_at" + in: query + name: sort_by + required: false + schema: + type: string + - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" + in: query + name: sort_direction + required: false + schema: + type: string + - description: How many records to show per page in the range [1, 100]. Defaults to 25 + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch results from. Defaults to 1 + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data + in: query + name: limit_paging_counts + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/TeamTemplate" + type: array + description: Success + summary: List team templates + tags: + - Team Templates + "/v2/team_templates/{id}.json": + get: + description: | + Fetches a team template, by ID only. + parameters: + - description: Team Template ID + in: path + name: id + required: true + schema: + type: string + - description: Optionally will return the templates with the current user's email signature + in: query + name: include_signature + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/TeamTemplate" + description: Success + summary: Fetch a team template + tags: + - Team Templates + /v2/third_party_live_feed_items: + post: + description: Creates a live feed item that can be sent to users. May only be used by whitelisted Frontend Integrations. Reference the Salesloft App Directory and Frontend Integrations sections for additional details. + requestBody: + content: + application/x-www-form-urlencoded: + schema: + properties: + event_occurred_at: + description: | + Equality filters that are applied to the event_occurred_at field. A single filter can be used by itself or combined with other filters to create a range. + ---CUSTOM--- + {"keys":[{"description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"gt","type":"iso8601 string"},{"description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"gte","type":"iso8601 string"},{"description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"lt","type":"iso8601 string"},{"description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"lte","type":"iso8601 string"}],"type":"object"} + type: string + idempotency_key: + description: Uniquely provided string specific to this event. This should be a value which can't be duplicated between external systems, meaning that an id is not sufficient. + type: string + message: + description: The message that relates to the subject. This message should start with a lower-case past-tense verb and end with a period (e.g. "received a package."). When live feed items are displayed to users, the subject's name is concatenated with the message and a joining space. Only HTML tags with an "href" attribute are allowed. Other attributes and tags will be stripped. + type: string + subject_id: + description: The ID of the subject of the live feed item (i.e. the "person" id). + type: integer + subject_type: + description: The type of the subject of the live feed item. Currently only "person" is supported. + type: string + user_guid: + description: The guid for the user that this live feed item should be shown to. + type: string + required: + - subject_type + - subject_id + - event_occurred_at + - user_guid + - message + - idempotency_key + type: object + required: true + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/LiveFeedItem" + type: array + description: Success + summary: Create a live feed item + tags: + - Live Feed Items + /v2/users.json: + get: + description: | + Non Admin: Lists only your user, or all on team depending on group visibility policy + Team Admin: Lists users associated with your team + parameters: + - description: IDs of users to fetch. If a record can't be found, that record won't be returned and your request will be successful + explode: false + in: query + name: ids + required: false + schema: + items: + type: integer + type: array + style: form + - description: Filters list to only include guids + explode: false + in: query + name: guid + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters users by group_id. An additional value of "_is_null" can be passed to filter users that are not in a group + explode: false + in: query + name: group_id + required: false + schema: + items: + type: string + type: array + style: form + - description: Filters users by role_id + explode: false + in: query + name: role_id + required: false + schema: + items: + type: string + type: array + style: form + - description: Space-separated list of keywords used to find case-insensitive substring matches against First Name, Last Name, or Email + in: query + name: search + required: false + schema: + type: string + - description: Filters users based on active attribute. Defaults to not applied + in: query + name: active + required: false + schema: + type: boolean + - description: | + Defaults to true. + + When true, only shows users that are actionable based on the team's privacy settings. + When false, shows all users on the team, even if you can't take action on that user. Deactivated users are also included when false. + in: query + name: visible_only + required: false + schema: + type: boolean + - description: How many users to show per page in the range [1, 100]. Defaults to 25. Results are only paginated if the page parameter is defined + in: query + name: per_page + required: false + schema: + type: integer + - description: The current page to fetch users from. Defaults to returning all users + in: query + name: page + required: false + schema: + type: integer + - description: Whether to include total_pages and total_count in the metadata. Defaults to false + in: query + name: include_paging_counts + required: false + schema: + type: boolean + - description: Filters users based on if they have a crm user mapped or not. + in: query + name: has_crm_user + required: false + schema: + type: boolean + - description: Filters users based on assigned work_country. + explode: false + in: query + name: work_country + required: false + schema: + items: + type: string + type: array + style: form + - description: "Key to sort on, must be one of: id, email, name, group, role. Defaults to id" + in: query + name: sort_by + required: false + schema: + type: string + - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" + in: query + name: sort_direction + required: false + schema: + type: string + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/User" + type: array + description: Success + summary: List users + tags: + - Users + "/v2/users/{id}.json": + get: + description: | + Fetches a user, by ID only. + parameters: + - description: User ID + in: path + name: id + required: true + schema: + type: string + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/User" + description: Success + summary: Fetch a user + tags: + - Users + /v2/webhook_subscriptions: + get: + description: Fetches all of the customer's webhook subscriptions for your application. + parameters: + - description: Filters webhook subscriptions by whether is enabled or not. + in: query + name: enabled + required: false + schema: + type: boolean + responses: + "200": + content: + "*/*": + schema: + items: + $ref: "#/components/schemas/Subscription" + type: array + description: Success + summary: List webhook subscriptions + tags: + - Webhook Subscriptions + post: + description: |- + Creates a webhook subscription. Visit the webhooks page for additional details and a list of available webhooks. + Request must be made with a valid Oauth token or API key. + requestBody: + content: + application/x-www-form-urlencoded: + schema: + properties: + callback_token: + description: Any string to be used as a shared secret when subscription events are published. SalesLoft will send the value of this callback_token in the payload of each event so the receiver may verify it matches the original value. This ensures webhook events are being delivered by SalesLoft. + type: string + callback_url: + description: URL for your callback handler + type: string + event_type: + description: Type of event the subscription is for. Visit the "Event Types" section of the webhooks page to find a list of supported event types. + type: string + required: + - callback_url + - callback_token + - event_type + type: object + required: true + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/Subscription" + description: Success + summary: Create a webhook subscription + tags: + - Webhook Subscriptions + "/v2/webhook_subscriptions/{id}": + delete: + description: Deletes a webhook subscription. This operation is not reversible without contacting support. This operation can be called multiple times successfully. + parameters: + - description: The id of the Webhook Subscription to delete + in: path + name: id + required: true + schema: + type: integer + responses: + "204": + description: This webhook subscription has been deleted successfully + summary: Delete a webhook subscription + tags: + - Webhook Subscriptions + get: + description: Fetches a webhook subscription, by ID only. + parameters: + - description: The id for the Webhook Subscription + in: path + name: id + required: true + schema: + type: integer + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/Subscription" + description: Success + summary: Fetch a webhook subscription + tags: + - Webhook Subscriptions + put: + description: |- + Updates a webhook subscription. + Request must be made with a valid Oauth token or API key. + parameters: + - description: The Webhook Suscription id to update + in: path + name: id + required: true + schema: + type: integer + requestBody: + content: + application/x-www-form-urlencoded: + schema: + properties: + enabled: + description: Enable or disable the webhook subscription + type: boolean + type: object + responses: + "200": + content: + "*/*": + schema: + $ref: "#/components/schemas/Subscription" + description: Success + summary: Update a webhook subscription + tags: + - Webhook Subscriptions +components: + requestBodies: + postV2ImportsJson: + content: + application/x-www-form-urlencoded: + schema: + properties: + name: + description: Name, recommended to be easily identifiable to a user + type: string + user_id: + description: ID of the User that owns this Import + type: integer + type: object + schemas: + Account: + properties: + account_tier: + $ref: "#/components/schemas/EmbeddedResource" + archived_at: + description: Datetime of when the Account was archived, if archived + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + city: + description: City + example: Dufftown + type: string + company_stage: + $ref: "#/components/schemas/EmbeddedResource" + company_type: + description: Type of the Account's company + example: Private + type: string + conversational_name: + description: Conversational name of the Account + example: Hogwarts + type: string + country: + description: Country + example: Scotland + type: string + counts: + $ref: "#/components/schemas/EmbeddedAccountCounts" + created_at: + description: Datetime of when the Account was created + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + creator: + $ref: "#/components/schemas/EmbeddedResource" + crm_id: + description: CRM ID + example: 003i000001mnhpD + type: string + crm_object_type: + description: CRM object type + example: account + type: string + crm_url: + description: CRM url + example: https://na15.salesforce.com/003i000001mnhpD + type: string + custom_fields: + description: Custom fields are defined by the user's team. Only fields with values are presented in the API. + example: + MyField: A Value + Other: Field + type: object + description: + description: Description + example: British school of magic for students + type: string + do_not_contact: + description: Whether this company has opted out of communications. Do not contact someone at this company when this is set to true + example: true + type: boolean + domain: + description: Website domain, not a fully qualified URI + example: salesloft.com + type: string + founded: + description: Date or year of founding + example: March 1st, 1820 + type: string + id: + description: ID of Account + example: 1 + type: integer + industry: + description: Industry + example: Education + type: string + last_contacted_at: + description: Datetime this Account was last contacted + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + last_contacted_by: + $ref: "#/components/schemas/EmbeddedResource" + last_contacted_person: + $ref: "#/components/schemas/EmbeddedResource" + last_contacted_type: + description: The type of the last touch to this Account. Can be call, email, other + example: call + type: string + linkedin_url: + description: Full LinkedIn url + example: https://www.linkedin.com/company/2296178/ + type: string + locale: + description: Time locale + example: Europe/London + type: string + name: + description: Account Full Name + example: Hogwarts School of Witchcraft and Wizardry + type: string + owner: + $ref: "#/components/schemas/EmbeddedResource" + owner_crm_id: + description: Mapped owner field from the CRM + example: 003i000001mnhpD + type: string + phone: + description: Phone number without formatting + example: +1 444 555 6666 + type: string + postal_code: + description: Postal code + example: "55555" + type: string + revenue_range: + description: Estimated revenue range + example: 1,000,000-2,000,000 + type: string + size: + description: Estimated number of people in employment + example: "1500" + type: string + state: + description: State + example: Mortlach + type: string + street: + description: Street name and number + example: 4 Picket Drive + type: string + tags: + description: All tags applied to this Account + example: + - 7-23-2017 + - dreamforce + items: + type: string + type: array + twitter_handle: + description: Twitter handle, with @ + example: "@kyleporter" + type: string + updated_at: + description: Datetime of when the Account was last updated + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + user_relationships: + description: Filters by accounts matching all given user relationship fields, _is_null or _unmapped can be passed to filter accounts with null or unmapped user relationship values + example: + Other: _is_null + bff: 0037h00000d78aAAAQ + type: object + website: + description: Website + example: https://salesloft.com + type: string + AccountStage: + properties: + created_at: + description: Datetime of when the Account Stage was created + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + id: + description: ID of Account Stage + example: 1 + type: integer + name: + description: Name of Account Stage + example: In Progress + type: string + order: + description: Order of Account Stage + example: 3 + type: integer + updated_at: + description: Datetime of when the Account Stage was last updated + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + AccountTier: + properties: + created_at: + description: Datetime of when the Account Tier was created + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + id: + description: ID of Account Tier + example: 1 + type: integer + name: + description: Name of the Account Tier + example: High Priority + type: string + order: + description: The order of the account tier + example: 2 + type: integer + updated_at: + description: Datetime of when the Account Tier was last updated + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + AccountUpsert: + properties: + account: + $ref: "#/components/schemas/Account" + upsert_type: + description: "The type of upsert. One of: create, update" + type: string + Action: + properties: + action_details: + $ref: "#/components/schemas/EmbeddedResource" + cadence: + $ref: "#/components/schemas/EmbeddedResource" + created_at: + description: Datetime of when the Action was created + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + due: + description: Whether this step is due + example: true + type: boolean + due_on: + description: When action is due + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + id: + description: ID of Action + example: 1 + type: integer + multitouch_group_id: + description: ID of the multitouch group + example: 1 + type: integer + person: + $ref: "#/components/schemas/EmbeddedResource" + status: + description: | + The current state of the person on the cadence. Possible values are: + + in_progress: this action has not been completed + + pending_activity: this action has been acted upon, but the action has not been completed. + (i.e. the email is scheduled to send, but has not been delivered yet) + example: in_progress + type: string + step: + $ref: "#/components/schemas/EmbeddedResource" + type: + description: | + The type of this action. Valid types are: email, phone, other. New types may be added in the future. + example: phone + type: string + updated_at: + description: Datetime of when the Action was last updated + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + user: + $ref: "#/components/schemas/EmbeddedResource" + Activity: + properties: + updated_at: + description: Datetime of when the Activity was last updated + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + ActivityHistory: + properties: + created_at: + description: When this record was created + example: 2019-01-01T00:00:00.000000Z + format: date-time + type: string + dynamic_data: + description: Attributes from associated records. This is specific to the type of activity and may change over time. Not returned for create requests + example: + counts: + clicks: 2 + replies: 1 + views: 3 + status: sent + subject: Welcome to SalesLoft + type: object + failed_dynamic_resources: + description: A list of remote resource names that failed to load. This is specific to the type of activity and may change over time. Not returned for create requests + example: + - email + type: object + id: + description: ID of this activity + example: 1 + type: integer + occurred_at: + description: When this activity occurred + example: 2019-01-01T00:00:00.000000Z + format: date-time + type: string + pinned_at: + description: When this record was pinned + example: 2019-01-01T00:00:00.000000Z + format: date-time + type: string + resource_id: + description: "ID of the resource this activity is for. It will be a string for the following resource types: crm_opportunity" + example: 1 + type: integer + resource_type: + description: "Type of the resource this activity is for. One of: account, person" + example: person + type: integer + static_data: + description: The static data for this activity + example: + email_id: 2 + type: object + type: + description: The type of activity + example: email + type: string + updated_at: + description: When this record was updated + example: 2019-01-01T00:00:00.000000Z + format: date-time + type: string + user_guid: + description: UUID of the user this activity is for + example: 51398ccd-309e-467f-aae2-4b0f66b5c11d + type: string + BulkJob: + properties: + created_at: + description: When this bulk job was created + example: 2019-01-01T00:00:00-05:00 + format: date-time + type: string + errors: + description: Number of errored records at the time of request for this Bulk Job + example: 23 + type: integer + finished_at: + description: When this bulk job finished processing + example: 2019-01-02T00:00:00-05:00 + format: date-time + type: string + id: + description: ID of this Bulk Job + example: 1 + type: integer + marked_ready_at: + description: When this bulk job was marked as ready to execute + example: 2019-01-02T00:00:00-05:00 + format: date-time + type: string + name: + description: Name of this Bulk Job + example: Job Name + type: string + processed: + description: Number of processed records at the time of request for this Bulk Job + example: 50 + type: integer + ready_to_execute: + description: Whether the Bulk Job is ready to be executed + example: false + type: boolean + scopes: + description: Scopes + example: + - person:set_crm_id + items: {} + type: array + started_at: + description: When this bulk job started processing. null until bulk job is done + example: 2019-01-02T00:00:00-05:00 + format: date-time + type: string + state: + description: "State of the Bulk Job. Must be one of: open, executing, done." + example: open + type: string + total: + description: Number of total records for this Bulk Job + example: 1234 + type: integer + type: + description: Type of the Bulk Job. + example: person/upsert + type: string + updated_at: + description: When this bulk job was updated + example: 2019-01-02T00:00:00-05:00 + format: date-time + type: string + BulkJobResult: + properties: + error: + description: Error message for the record that was processed. Will be null if there was no error. + example: "Missing required field: email address" + type: string + id: + description: ID of the record that was processed + example: 1 + type: integer + record: + description: The data that was used to process the operation + example: '{first_name: "John", last_name: "Smith"}' + type: object + resource: + description: The object containing the resulting resource from performing the bulk action on this record + example: '{person: {...}, upsert_type: "create"}' + type: object + status: + description: "Status of the record that was processed. Will be one of: success, error" + example: error + type: string + Cadence: + properties: + added_stage: + $ref: "#/components/schemas/EmbeddedResource" + archived_at: + description: Datetime of when the cadence was archived, if archived + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + bounced_stage: + $ref: "#/components/schemas/EmbeddedResource" + cadence_framework_id: + description: ID of the cadence framework used to create steps for the cadence + example: 1 + type: integer + cadence_function: + description: | + The use case of the cadence. Possible values are: + + outbound: Denotes an outbound cadence, typically for sales purposes + + inbound: Denotes an inbound sales cadence + + event: Denotes a cadence used for an upcoming event + + other: Denotes a cadence outside of the standard process + example: outbound + type: string + cadence_priority: + $ref: "#/components/schemas/EmbeddedResource" + counts: + $ref: "#/components/schemas/CadenceCounts" + created_at: + description: Datetime of when the cadence was created + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + creator: + $ref: "#/components/schemas/EmbeddedResource" + draft: + description: Whether this cadence is in draft mode + example: false + type: boolean + external_identifier: + description: Cadence External ID + example: This is my external id + type: string + finished_stage: + $ref: "#/components/schemas/EmbeddedResource" + groups: + description: Groups to which this cadence is assigned, if any + example: + - _href: https://api.salesloft.com/v2/groups/921 + id: 921 + items: + $ref: "#/components/schemas/EmbeddedResource" + type: array + id: + description: ID of cadence + example: 1 + type: integer + name: + description: Cadence name + example: Prospecting - VP of Sales + type: string + opt_out_link_included: + description: Whether this cadence is configured to include an opt-out link by default + example: true + type: boolean + owner: + $ref: "#/components/schemas/EmbeddedResource" + remove_bounces_enabled: + description: Whether this cadence is configured to automatically remove people who have bounced + example: true + type: boolean + remove_replies_enabled: + description: Whether this cadence is configured to automatically remove people who have replied + example: true + type: boolean + replied_stage: + $ref: "#/components/schemas/EmbeddedResource" + shared: + description: Whether this cadence is visible to team members (shared) + example: false + type: boolean + tags: + description: All tags applied to this cadence + example: + - 7-23-2017 + - dreamforce + items: + type: string + type: array + team_cadence: + description: Whether this cadence is a team cadence. A team cadence is created by an admin and can be run by all users + example: false + type: boolean + updated_at: + description: Datetime of when the cadence was last updated + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + CadenceCounts: + properties: + cadence_people: + description: The number of people that have ever been added to the cadence + example: 59 + type: integer + meetings_booked: + description: The number of meetings booked and attributed to the cadence + example: 10 + type: integer + opportunities_created: + description: The number of opportunities created and attributed to the cadence + example: 10 + type: integer + people_acted_on_count: + description: The number of people that have been skipped, scheduled, or advanced in a cadence + example: 1 + type: integer + target_daily_people: + description: The user defined target for number of people to add to the cadence each day + example: 10 + type: integer + CadenceExport: + properties: + cadence_content: + description: The content of the cadence + example: {} + type: object + CadenceImport: + properties: + cadence: + $ref: "#/components/schemas/EmbeddedResource" + CadenceMembership: + properties: + added_at: + description: Datetime of when the person was last added to this cadence + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + cadence: + $ref: "#/components/schemas/EmbeddedResource" + counts: + $ref: "#/components/schemas/CadenceMembershipCounts" + created_at: + description: Datetime of when the person was first added to this cadence + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + current_state: + description: | + The current state of the person on the cadence. Possible values are: + + processing: The person is being processed on a cadence. Cadence-related changes cannot be made at this time + + staged: The person is waiting for the first step in the cadence to occur + + active: The cadence has begun processing this person and is still in the process, but idle + + scheduled: The cadence has begun processing this person and is still in the process, with an activity scheduled to occur + + completed: The cadence has been completed for this person + + removed: The person was manually or automatically removed from the cadence + + removed_no_action: The person was removed from the cadence before any action occurred + + reassigned: The person's cadence execution was transferred to a different user, ending this user's interaction + example: staged + type: string + currently_on_cadence: + description: Whether the person is currently on the cadence + example: false + type: boolean + id: + description: Cadence membership ID + example: 1 + type: integer + latest_action: + $ref: "#/components/schemas/EmbeddedResource" + person: + $ref: "#/components/schemas/EmbeddedResource" + person_deleted: + description: Whether the associated person has since been deleted + example: false + type: boolean + updated_at: + description: Datetime of when the record was last updated + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + user: + $ref: "#/components/schemas/EmbeddedResource" + CadenceMembershipCounts: + properties: + bounces: + description: The number of times emails sent from the cadence to the person bounced + example: 0 + type: integer + calls: + description: The number of times a call was logged from the cadence to the person + example: 2 + type: integer + clicks: + description: The number of times emails sent from the cadence to the person were clicked + example: 5 + type: integer + replies: + description: The number of times emails sent from the cadence to the person were replied to + example: 2 + type: integer + sent_emails: + description: The number of times emails were sent from the cadence to the person + example: 4 + type: integer + views: + description: The number of times emails sent from the cadence to the person were opened + example: 10 + type: integer + CalendarEvent: + properties: + all_day: + description: Whether the calendar event is an all-day event. + example: false + type: string + attendees: + description: The attendees of the calendar event. + example: + - deleted_at: null + email: alice@example.com + name: Alice + organizer: true + status: accepted + status_changed: false + - deleted_at: null + email: bob@example.com + name: Bob + organizer: false + status: accepted + status_changed: false + type: object + body_html: + description: Raw body content from Microsoft calendar events + example: some html text + type: string + busy: + description: Busy/free status of the calendar event + example: false + type: boolean + calendar_id: + description: Calendar ID of the user calendar. + example: test@example.com + type: string + canceled_at: + description: The canceled date of the calendar event. + example: iso8601_now + type: string + conference_data: + description: The conference-related information, such as details of a Google Meet conference. + example: {} + type: object + created_at: + description: Creation time of the calendar event. + example: iso8601_now + type: string + creator: + description: The creator email of the calendar event. + example: creator@example.com + type: object + description: + description: Description of the calendar event + example: Calendar event description + type: string + end_time: + description: The (exclusive) end time of the calendar event. + example: 2022-08-23T08:18:47.853983Z + format: date-time + type: string + extended_properties: + description: Extended properties of the calendar event. + example: {} + type: object + html_link: + description: An absolute link to this calendar event in the Google Calendar Web UI. + example: https://www.google.com/calendar/event?eid=Y2N + type: string + i_cal_uid: + description: Calendar event unique identifier (iCalUID) + example: 1p1oilmc4mt3m6ah6rmf6ik8mm@google.com + type: string + id: + description: The calendar event original ID from calendar provider + example: AAMkADQ0NjE4YmY5LTc3ZDYtNDc5NC1-UlgAAAAAAENAAB3eGoN5TIDTp8dXXDpxUlgAACQlfLuAAA= + type: string + location: + description: Location of the calendar event + example: Event location + type: string + organizer: + description: The organizer email of the calendar event. + example: organizer@example.com + type: string + provider: + description: The provider of the calendar event. + example: google + type: string + recurring: + description: Whether the calendar event is a recurring event. + example: false + type: string + start_time: + description: The (inclusive) start time of the calendar event. + example: 2022-08-23T08:18:47.832113Z + format: date-time + type: string + status: + description: The status of the calendar event. It can be empty for non-google events. + example: confirmed + type: string + tenant_id: + description: Tenant ID of the user calendar + example: 1 + type: integer + title: + description: Title of the calendar event + example: Calendar event title + type: string + updated_at: + description: Last modification time of the calendar event. + example: iso8601_now + type: string + user_guid: + description: User GUID of the user calendar. + example: 9ccb7701-52e7-4d3e-91b0-b142a2fef2ec + type: string + Call: + properties: + action: + $ref: "#/components/schemas/EmbeddedResource" + cadence: + $ref: "#/components/schemas/EmbeddedResource" + called_person: + $ref: "#/components/schemas/EmbeddedResource" + created_at: + description: Datetime of when the call was created + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + crm_activity: + $ref: "#/components/schemas/EmbeddedResource" + disposition: + description: Result of the call + example: Connected + type: string + duration: + description: Length of the call in seconds + example: 60 + type: integer + id: + description: ID of Call + example: 1 + type: integer + note: + $ref: "#/components/schemas/EmbeddedResource" + recordings: + description: The recordings for this this call and their status + example: + - recording_status: completed + status: completed + url: https://example.com/recording1 + items: + $ref: "#/components/schemas/EmbeddedRecordingResource" + type: array + sentiment: + description: Outcome of the conversation + example: Demo Scheduled + type: string + step: + $ref: "#/components/schemas/EmbeddedResource" + to: + description: Phone number that received the call + example: "7705551234" + type: string + updated_at: + description: Datetime of when the call was last updated + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + user: + $ref: "#/components/schemas/EmbeddedResource" + CallDataRecord: + properties: + call: + $ref: "#/components/schemas/EmbeddedResource" + call_type: + description: "Type of the call. Can be one of: call, bridge, collaboration. Though exact values may change over time" + example: call + type: string + call_uuid: + description: UUID of the call. Legs of the same call will have the same call_uuid. + example: 5c5c1f32-bff1-4b7c-8f2a-bd650b829c67 + type: string + called_person: + $ref: "#/components/schemas/EmbeddedResource" + created_at: + description: Datetime of when the call was created + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + direction: + description: "Direction of the call. Can be one of: inbound, outbound" + example: outbound + type: string + duration: + description: Length of the call in seconds + example: 60 + type: integer + from: + description: Phone number that placed the call + example: "7705551234" + type: string + id: + description: ID of CallDataRecord + example: 1 + type: integer + recording: + $ref: "#/components/schemas/EmbeddedRecordingResource" + status: + description: "The outcome of the call. Can be one of: queued, initiated, ringing, in-progress, completed, busy, no-answer, canceled, failed" + example: completed + type: string + to: + description: Phone number that received the call + example: "7705551234" + type: string + updated_at: + description: Datetime of when the call was last updated + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + user: + $ref: "#/components/schemas/EmbeddedResource" + CallDisposition: + properties: + created_at: + description: Datetime of when the call disposition was created + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + id: + description: ID of CallDisposition + example: 1 + type: integer + name: + description: An available call disposition text + example: Connected + type: string + updated_at: + description: Datetime of when the call disposition was last updated + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + CallInstruction: + properties: + created_at: + description: Datetime of when the call instructions were created + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + id: + description: ID of call instructions + example: 1 + type: integer + instructions: + description: The instructions + example: Call once, leave voicemail if not answered. Conference conversation. + type: string + updated_at: + description: Datetime of when the call instructions were last updated + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + CallSentiment: + properties: + created_at: + description: Datetime of when the call sentiment was created + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + id: + description: ID of CallSentiment + example: 1 + type: integer + name: + description: An available call sentiment text + example: Interested + type: string + updated_at: + description: Datetime of when the call sentiment was last updated + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + CallerId: + properties: + account_name: + description: The account of the person calling + example: Bunty Soap Company + type: string + display_name: + description: The name of the person calling + example: Frank Galikanokus + type: string + person: + $ref: "#/components/schemas/EmbeddedResource" + title: + description: The title of the person calling + example: Transportation Coordinator + type: string + ConversationsCall: + properties: + call_created_at: + description: Timestamp for when the call started. If not provided, will default to the time the request was received + example: 2022-07-22 01:00:00 + type: string + direction: + description: Call direction + example: Outbound + type: string + duration: + description: Duration of call in seconds + example: 120 + type: number + from: + description: Phone number that call was made from + example: 123-456-7890 + type: string + recording: + description: Object containing recording info including the audio file (.mp3, .wav, .ogg, .m4a) + example: + url: www.example.com/audio.mp3 + type: object + to: + description: Phone number that was called + example: 123-456-7890 + type: string + user_guid: + description: Guid of the Salesloft User to assign the call to. If not provided, will default to the user within the authentication token + example: aa111111-11aa-1111-a1a1-11aa11a1a1a1 + type: string + CrmActivity: + properties: + activity_type: + description: "The type of activity that is being recorded, if available. The values can change over time, but could be one of: email, phone, email reminder, inmail" + example: phone + type: string + created_at: + description: Datetime of when the crm activity was created + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + crm_id: + description: The ID of the activity in your CRM, if written to your CRM + example: 00T0H00003w2FBhUAM + type: string + custom_crm_fields: + description: Additional fields that are logged to your CRM, if mapped by the team at the time of writing to your CRM + example: + ecorp__Call_Type__c: inbound follow up + type: object + description: + description: The description field of the activity in your CRM + example: Timeline is 2 weeks for demo, set with Kate + type: string + error: + description: Information about why this crm activity failed to sync, if it did fail to sync. Failed activities will be automatically retried and may become successful in the future + example: Could not find a CRM account link. + type: string + id: + description: CrmActivity ID + example: 1 + type: integer + person: + $ref: "#/components/schemas/EmbeddedResource" + subject: + description: The subject field of the activity in your CRM + example: "Call: Connected | Interested" + type: string + updated_at: + description: Datetime of when the crm activity was last updated + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + user: + $ref: "#/components/schemas/EmbeddedResource" + CrmActivityField: + properties: + created_at: + description: Datetime of when the CrmActivityField was created + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + crm_object_type: + description: | + The CRM object type that this field maps to. Valid object types are CRM dependent: Task, Phonecall, Email. + example: Task + type: string + field: + description: The CRM field name + example: orgName__Field_Name__c + type: string + field_type: + description: The type of this field in your CRM. Certain field types can only accept structured input. + example: boolean + type: string + id: + description: ID of CrmActivityField + example: 1 + type: integer + picklist_values: + description: | + Valid picklist values, if present for this field. The format is {label => value}. If present, only + values in the picklist structure can be used as a crm param. + example: + High: High + Low: Low + type: object + salesforce_object_type: + description: | + The Salesforce object type that this field maps to. Valid object types are: Task. + More object types may be added in the future. + example: Task + type: string + source: + description: "SalesLoft object that this field is mapped for. Valid sources are: email, phone" + example: phone + type: string + title: + description: A human friendly title for this field + example: Field Name + type: string + updated_at: + description: Datetime of when the CrmActivityField was last updated + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + value: + description: | + A value to always be written. This value does not need to be sent to other endpoints' crm params, + but must be the exact value if sent. Email source fields will always have a value present. + example: Email + type: string + CrmUser: + properties: + created_at: + description: Datetime of when the crm user was created + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + crm_id: + description: CRM ID + example: 5003000000D8cuIQAA + type: string + id: + description: Crm User ID + example: 1 + type: integer + updated_at: + description: Datetime of when the crm user was last updated + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + user: + $ref: "#/components/schemas/EmbeddedResource" + CustomField: + properties: + created_at: + description: Datetime of when the Custom Field was created + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + field_type: + description: "Type of the Custom Field. Value must be one of: person, company, opportunity." + example: person + type: string + id: + description: ID of Custom Field + example: 1 + type: integer + name: + description: Name of the Custom Field + example: My Custom Field + type: string + updated_at: + description: Datetime of when the Custom Field was last updated + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + value_type: + description: "Value Type of the Custom Field. Value must be one of: text, date." + example: text + type: string + Email: + properties: + action: + $ref: "#/components/schemas/EmbeddedResource" + bounced: + description: Whether this email bounced + example: false + type: boolean + cadence: + $ref: "#/components/schemas/EmbeddedResource" + click_tracking: + description: Whether this email had click tracking enabled + example: true + type: boolean + counts: + $ref: "#/components/schemas/EmailCounts" + created_at: + description: Datetime of when the email was created + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + crm_activity: + $ref: "#/components/schemas/EmbeddedResource" + email_template: + $ref: "#/components/schemas/EmbeddedResource" + error_message: + description: Error message of the email. This field has been determined sensitive and requires a specific scope to access it. + type: string + headers: + description: "Selected headers that are included if this email used them. Available keys are: cc, bcc" + example: + bcc: track@salesforce.com + cc: sb@salesloft.com + type: object + id: + description: ID of Email + example: 1 + type: integer + mailing: + $ref: "#/components/schemas/EmbeddedResource" + personalization: + description: Percentage of this email that has been personalized + example: "13.4" + type: string + recipient: + $ref: "#/components/schemas/EmbeddedResource" + recipient_email_address: + description: Email address of the recipient + example: bob.smith@example.com + type: string + send_after: + description: When this email will be sent, or null if already sent + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + sent_at: + description: When this email was sent, or null if it was not sent + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + status: + description: "Status of this email through the sending process. Possible values are: sent, sent_from_gmail, sent_from_external, pending, pending_reply_check, scheduled, sending, delivering, failed, cancelled, pending_through_gmail, pending_through_external" + example: sent + type: string + step: + $ref: "#/components/schemas/EmbeddedResource" + subject: + description: Subject of the email. This field has been determined sensitive and requires a specific scope to access it. + type: string + task: + $ref: "#/components/schemas/EmbeddedResource" + updated_at: + description: Datetime of when the email was last updated + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + user: + $ref: "#/components/schemas/EmbeddedResource" + view_tracking: + description: Whether this email had view tracking enabled + example: true + type: boolean + EmailCounts: + properties: + attachments: + description: The number of attachments on the email + example: 0 + type: integer + clicks: + description: The number of times links in the email were clicked + example: 2 + type: integer + replies: + description: The number of replies the email received + example: 1 + type: integer + unique_devices: + description: The number of unique devices that opened the email + example: 4 + type: integer + unique_locations: + description: The number of unique locations that opened the email + example: 3 + type: integer + views: + description: The number of times the email was opened + example: 3 + type: integer + EmailTemplate: + properties: + _links: + description: Links to attachments and tags resources for this email template. + example: + attachments: https://api.salesloft.com/v2/email_template_attachments?email_template_id[]=1 + type: object + archived_at: + description: Datetime of when the email template was archived, if archived + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + body: + description: Sanitized body of the email template without email signature + example:
Welcome to the SalesLoft family! My name is Sarah and I’m your implementation consultant. I’m here to get you up and running. It's my job to help you configure your team's SalesLoft access, provide customized training for your specific goals, and make sure that you and your team are ready to crush your goals.

Thank you,
+ type: string + body_preview: + description: A plain text version of the first 100 characters of the body of the email template + example: |- + hello + + hey sounds good + + ok + + ok + + with an edit + + ok now i'm comic sans 14 + type: string + cadence_template: + description: Whether this email template is only used on a cadence step. These templates are not visible in the SalesLoft application template list. If false, this email template is visible in the SalesLoft application, and may be used when composing an email or creating a cadence step. + example: true + type: boolean + click_tracking_enabled: + description: Whether click tracking is enabled for this email template + example: true + type: boolean + counts: + $ref: "#/components/schemas/EmailTemplateCounts" + created_at: + description: Datetime of when the email template was created + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + groups: + description: Groups to which this template is assigned, if any + example: + - _href: https://api.salesloft.com/v2/groups/921 + id: 921 + items: + $ref: "#/components/schemas/EmbeddedResource" + type: array + id: + description: ID of email template + example: 5 + type: integer + last_used_at: + description: Datetime of when the email template was last used + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + open_tracking_enabled: + description: Whether open tracking is enabled for this email template + example: true + type: boolean + shared: + description: Whether this email template is visible to team members (shared) + example: false + type: boolean + subject: + description: Subject of the email template + example: Welcome to SalesLoft! + type: string + tags: + description: All tags applied to this email template + example: + - 7-23-2017 + - internal + items: + type: string + type: array + team_template: + $ref: "#/components/schemas/EmbeddedResource" + template_owner: + $ref: "#/components/schemas/EmbeddedResource" + title: + description: Title of the email template + example: Welcome email + type: string + updated_at: + description: Datetime of when the email template was last updated + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + EmailTemplateAttachment: + properties: + attachment_content_type: + description: Content type of the attachment + example: pdf, jpeg + type: string + attachment_file_size: + description: The size of the attachment + example: 2 + type: integer + attachment_fingerprint: + description: Unique attachment Identifier + example: 13231232 + type: integer + attachment_id: + description: ID of the email template attachment + example: 10 + type: integer + download_url: + description: Download url of the attachment + example: https://path/to/example_attachment.gif + type: string + email_template: + $ref: "#/components/schemas/EmbeddedResource" + id: + description: ID of email template attachment association + example: 5 + type: integer + name: + description: Name of the attachment + example: example_attachment.gif + type: string + scanned: + description: Checks if attachment has been scanned + example: true + type: boolean + EmailTemplateCounts: + properties: + bounces: + description: The number of bounces the email template received + example: 10 + type: integer + clicks: + description: The number of times links in the email template were clicked + example: 20 + type: integer + replies: + description: The number of replies the email template received + example: 1 + type: integer + sent_emails: + description: The number of times the email template was sent out + example: 59 + type: integer + views: + description: The number of times the email template was opened + example: 3 + type: integer + EmbeddedAccountCounts: + properties: + people: + description: Number of people in SalesLoft associated with this Account + example: 15 + type: integer + EmbeddedAttendeeResource: + properties: + deleted_at: + description: Datetime of when the attendee was deleted + example: 2022-12-19T16:49:17.930926+02:00 + format: date + type: string + email: + description: Email of the attendee + example: calendar@example.com + type: string + name: + description: Name of the attendee + example: John + type: string + organizer: + description: Whether the attendee is the organizer of the event. + example: false + type: boolean + status: + description: "The attendee's response status. Possible values are: needsAction, accepted, tentative, declined" + example: accepted + type: string + status_changed: + description: Whether the attendee changed response status + example: false + type: boolean + EmbeddedRecordingResource: + properties: + recording_status: + description: | + The processing status of the recording. Possible values are (but not limited to): + + not_recorded: there is no recording available, and there will not be one becoming available + + pending: the recording is currently being processed by the system + + processing: the recording is currently being processed by the system + + completed: the recording processing has been completed + example: completed + type: string + status: + description: | + The status of the call that produced this recording. Possible values are (but not limited to): + + no-answer: The call was not answered + + failed: The call was not able to be placed + + busy: The call was busy + + ringing: The call is ringing + + in-progress: The call is ongoing + + completed: The call is finished + example: completed + type: string + url: + description: The url of the recording + example: http://example.com/recording/1 + type: string + EmbeddedResource: + properties: + _href: + description: Resource URL, pointed at your API version, present if this resource is available in the API + example: https://api.salesloft.com/v2/widgets/10 + type: string + id: + description: ID of the resource + example: 10 + type: integer + EventMeetingSetting: + properties: + email_address: + description: Calendar owner's email address + example: calendar.owner@example.com + type: string + ExternalEmail: + properties: + message_id: + description: Message id present in the External Email header + example: CAKseEdbTMcU-U0CeTkUSo5X4jyW8QPReVTyPA6CrUCf0ggZwHQ@mail.salesloft.com + type: string + Group: + properties: + accessible_groups: + description: Groups accessible if any + example: + - _href: https://api.salesloft.com/v2/groups/921 + id: 921 + items: + $ref: "#/components/schemas/EmbeddedResource" + type: array + id: + description: ID of the Group + example: 1 + type: integer + name: + description: Name of the Group + example: Test name + type: string + parent_id: + description: ID of the parent Group + example: 2 + type: integer + Import: + properties: + created_at: + description: Datetime of when the import was created + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + current_people_count: + description: Count of People that have not been deleted + example: 5 + type: integer + id: + description: Import ID + example: 1 + type: integer + imported_people_count: + description: Count of People that have ever been on this Import + example: 7 + type: integer + name: + description: Name of Import + example: DataProvider -> SalesLoft 9/1/17 + type: string + updated_at: + description: Datetime of when the import was last updated, ignoring relationship changes + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + JobData: + properties: + bulk_job: + description: Associated bulk job + example: '{"id": 123, "_href": "https://api.salesloft.com/v2/bulk_jobs/123"' + type: object + created_at: + description: When this job data record was created + example: 2019-01-01T00:00:00-05:00 + format: date-time + type: string + error: + description: Error associated with this record + example: Not found + type: string + finished_at: + description: When this job data record finished processing + example: 2019-01-01T00:00:00-05:00 + format: date-time + type: string + id: + description: ID of this Job Data + example: 1 + type: integer + record: + description: The data that was used to process the operation + example: '{first_name: "John", last_name: "Smith"}' + type: object + resource: + description: The object containing the resulting resource from performing the bulk action on this record + example: '{person: {...}, upsert_type: "create"}' + type: object + started_at: + description: When this job data record started processing + example: 2019-01-01T00:00:00-05:00 + format: date-time + type: string + status: + description: "Status of this job data. Must be one of: pending, success, error, retrying" + example: success + type: string + JobDataCreationResult: + properties: + records: + description: Number of records created + example: 100 + type: integer + LiveFeedItem: + properties: + alert_metadata: + description: Information about whether this event should trigger an alert + example: + should_alert: true + should_alert_until: 2019-01-01T00:00:00-05:00 + type: object + event_occurred_at: + description: When this event occurred + example: 2019-01-01T00:00:00-05:00 + format: date-time + type: string + event_type: + description: The type of event + example: email_click + type: string + id: + description: ID of this item + example: 1 + type: integer + message: + description: A plaintext message for this event + example: Steve is visiting your website. + type: string + metadata: + description: The metadata created for this event + example: + email_id: 2 + email_subject: Come join us at Rainmaker, Jon! + mailing_id: 3 + person_id: 1 + type: object + path: + description: The path to the application that should be followed + example: /app/emails/detail/1 + type: string + rollup_key: + description: The key that should be used to rollup events client side. null or empty values should not be rolled up + example: email_click:10 + type: string + title: + description: A plaintext title for this event + example: Website Visit + type: string + user_guid: + description: UUID of the user this item is for + example: 51398ccd-309e-467f-aae2-4b0f66b5c11d + type: string + LiveWebsiteTrackingParameter: + properties: + parameters: + description: A SalesLoft identifier + example: + - name: sbrc + value: tracking parameter + items: + type: object + type: array + Meeting: + properties: + account_id: + description: ID of the account the recipient associated to + example: "1" + type: string + all_day: + description: Whether the meeting is an all-day meeting + example: false + type: boolean + attendees: + description: "The attendees of the meeting. Each attendee includes the following fields: status, email, name, organizer" + example: + - deleted_at: null + email: john@example.com + name: John + organizer: true + status: accepted + items: + $ref: "#/components/schemas/EmbeddedAttendeeResource" + type: array + booked_by_meetings_settings: + $ref: "#/components/schemas/EventMeetingSetting" + booked_by_user: + $ref: "#/components/schemas/EmbeddedResource" + cadence: + $ref: "#/components/schemas/EmbeddedResource" + calendar_id: + description: Calendar ID of the meeting owner + example: calendar-id-google.com + type: string + calendar_type: + description: "Calendar type of the meeting owner. Possible values are: gmail, azure, nylas, linkedin_azure, cerebro, external" + example: gmail + type: string + canceled_at: + description: Datetime of when the meeting was canceled + example: 2022-12-19T16:49:17.931396+02:00 + format: date + type: string + created_at: + description: Datetime of when the meeting was created + example: 2022-12-19T16:49:17.930298+02:00 + format: date + type: string + crm_custom_fields: + description: List of crm custom fields which will be logged to SFDC + example: + Event_Calendar_Type__c: Google + type: object + crm_references: + description: List of crm references associated with the meeting + example: + what: + crm_id: 0063X000018fDmMQAU + crm_object_label: Opportunity + crm_object_type: Opportunity + crm_url: link_to_salesforce + description1: Title of the opportunity + description2: 2032-01-10 + description3: Prospecting + who: + crm_id: 0033X00004GOywtQAD + crm_object_label: Contact + crm_object_type: Contact + crm_url: link_to_salesforce + description1: John Doe + description2: john.doe@example.com + description3: null + type: object + description: + description: Description of the meeting + example: Introducing interview + type: string + end_time: + description: End time of the meeting + example: 2022-12-19T16:49:17.917861+02:00 + format: date + type: string + event_id: + description: ID of the meeting created by target calendar + example: "123468796" + type: string + event_source: + description: "Source of the meeting. Possible values are: 'external' - The event was synced to Salesloft platform via Calendar Sync, 'internal' - The event was created via Salesloft platform" + example: external + type: string + guests: + description: The list of attendees emails of the meeting + example: + - email1@sloft.com + - email2@sloft.com + items: + type: string + type: array + i_cal_uid: + description: UID of the meeting provided by target calendar provider + example: 040P00B08200E00074C5B7101A82EF + type: string + id: + description: ID of the meeting + example: 1 + type: integer + location: + description: Location of the meeting + example: Atlanta, GA + type: string + meeting_type: + description: Meeting type + example: Demo call + type: string + no_show: + description: Whether the meeting is a No Show meeting + example: false + type: boolean + owned_by_meetings_settings: + $ref: "#/components/schemas/EventMeetingSetting" + person: + $ref: "#/components/schemas/EmbeddedResource" + recipient_email: + description: Email of the meeting invite recipient + example: email@sloft.com + type: string + recipient_name: + description: Name of the meeting invite recipient + example: John Doe + type: string + start_time: + description: Start time of the meeting + example: 2022-12-19T16:49:17.917818+02:00 + format: date + type: string + status: + description: "Status of the meeting. Possible values are: pending, booked, failed, retry" + example: booked + type: string + step: + $ref: "#/components/schemas/EmbeddedResource" + strict_attribution: + description: Strict attribution means that we 100% sure which cadence generate the meeting + example: false + type: boolean + task_id: + description: ID of the created task + example: "123" + type: string + title: + description: Title of the meeting + example: Meeting with John + type: string + updated_at: + description: Datetime of when the meeting was last updated + example: 2022-12-19T16:49:17.930340+02:00 + format: date + type: string + MeetingSetting: + properties: + active_meeting_url: + $ref: "#/components/schemas/MeetingUrl" + allow_booking_on_behalf: + description: Allow other team members to schedule on you behalf. + example: true + type: boolean + allow_booking_overtime: + description: Allow team members to insert available time outside your working hours. + example: true + type: boolean + allow_event_overlap: + description: Allow team members to double book events on your calendar. + example: false + type: boolean + availability_limit: + description: The number of days out the user allows a prospect to schedule a meeting + example: 14 + type: integer + availability_limit_enabled: + description: If Availability Limits have been turned on + example: true + type: boolean + buffer_time_duration: + description: Default buffer duration in minutes set by a user + example: "15" + type: integer + calendar_type: + description: Calendar type + example: gmail + type: string + created_at: + description: Datetime of when the MeetingSetting was created + example: 2022-09-15T11:40:59.055583+03:00 + format: date + type: string + default_meeting_length: + description: Default meeting length in minutes set by the user + example: "30" + type: integer + description: + description: Default description of the meeting + example: This meeting is held on a daily basis + type: string + email_address: + description: Calendar owner's email address + example: calendar.owner@example.com + type: string + enable_calendar_sync: + description: Determines if a user enabled Calendar Sync feature + example: false + type: boolean + enable_dynamic_location: + description: Determines if location will be filled via third-party service (Zoom, GoToMeeting, etc.) + example: false + type: boolean + id: + description: ID of the MeetingSetting + example: 1 + type: integer + location: + description: Default location of the meeting + example: Atlanta, GA + type: string + primary_calendar_connection_failed: + description: Gets true when any issue with fetching calendar occurs + example: false + type: boolean + primary_calendar_id: + description: ID of the primary calendar + example: a98iu0@group.calendar.google.com + type: string + primary_calendar_name: + description: Display name of the primary calendar + example: My Meetings Calendar + type: string + schedule_buffer_enabled: + description: Determines if meetings are scheduled with a 15 minute buffer between them + example: true + type: boolean + schedule_delay: + description: The number of hours in advance a user requires someone to a book a meeting with them + example: 2 + type: integer + share_event_detail: + description: Allow team members to see the details of events on your calendar. + example: false + type: boolean + time_zone: + description: Time zone for current calendar + example: US/Eastern + type: string + times_available: + description: Times available set by a user that can be used to book meetings + example: + monday: + enabled: true + end_time: 17:00 + start_time: 09:00 + type: object + title: + description: Default title of the meeting + example: Daily stand-up + type: string + updated_at: + description: Datetime of when the MeetingSetting was last updated + example: 2022-09-15T11:40:59.055628+03:00 + format: date + type: string + user: + $ref: "#/components/schemas/EmbeddedResource" + user_details: + description: User details + example: + email: john.doe@salesloft.com + name: John Doe + type: object + user_slug: + description: User slug generated with a full name of the user + example: john-doe + type: string + MeetingUrl: + properties: + created_at: + description: Datetime of when MeetingUrl was created + example: 2022-09-15T11:40:59.056237+03:00 + format: date + type: string + updated_at: + description: Datetime of when MeetingUrl was last updated + example: 2022-09-15T11:40:59.056272+03:00 + format: date + type: string + url: + description: Full url of the meeting + example: https://example.com/team/user + type: string + MimeEmailPayload: + properties: + id: + description: Email ID + example: 1 + type: integer + mailbox: + description: Email Address of Sender's mailbox + example: example@salesloft.com + type: string + message_id: + description: Unique Message ID + example: CAKseEdbTMcU-U0CeTkUSo5X4jyW8QPReVTyPA6CrUCf0ggZwHQ@mail.salesloft.com + type: string + raw: + description: Base64 encoded MIME email content + example: | + ZW1haWwgZXhhbXBsZQ== + type: string + Note: + properties: + associated_type: + description: Type of associated resource ('person' or 'account') + example: person + type: string + associated_with: + $ref: "#/components/schemas/EmbeddedResource" + call: + $ref: "#/components/schemas/EmbeddedResource" + content: + description: The content of the note + example: Was very interested in a demo at a later time + type: string + created_at: + description: Datetime of when the note was created + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + id: + description: Note ID + example: 1 + type: integer + updated_at: + description: Datetime of when the note was last updated + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + user: + $ref: "#/components/schemas/EmbeddedResource" + PendingEmail: + properties: + id: + description: ID of the email + example: 1 + type: integer + mailbox: + description: Email Address of the pending email + example: example@salesloft.com + type: string + mime_email_payload: + $ref: "#/components/schemas/EmbeddedResource" + Person: + properties: + account: + $ref: "#/components/schemas/EmbeddedResource" + bouncing: + description: Whether this person's current email address has bounced + example: false + type: boolean + cadences: + description: The list of active cadences person is added to + example: + - _href: https://api.salesloft.com/v2/cadences/1 + id: 1 + items: + $ref: "#/components/schemas/EmbeddedResource" + type: array + city: + description: City + example: Atlanta + type: string + contact_restrictions: + description: "Specific methods of communication to prevent for this person. This will prevent individual execution of these communication types as well as automatically skip cadence steps of this communication type for this person in SalesLoft. Values currently accepted: call, email, message" + example: + - call + - email + - message + items: + type: string + type: array + country: + description: Country + example: United States + type: string + counts: + $ref: "#/components/schemas/PersonCounts" + created_at: + description: Datetime of when the person was created + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + crm_id: + description: CRM ID + example: 003i000001mnhpD + type: string + crm_object_type: + description: CRM object type + example: Lead + type: string + crm_url: + description: CRM url + example: https://na15.salesforce.com/003i000001mnhpD + type: string + custom_fields: + description: Custom fields are defined by the user's team. Only fields with values are presented in the API. + example: + MyField: A Value + Other: Field + type: object + display_name: + description: Either the full name or the email address. Use this when showing a person's name + example: Pat Johnson + type: string + do_not_contact: + description: Whether or not this person has opted out of all communication. Setting this value to true prevents this person from being called, emailed, or added to a cadence in SalesLoft. If this person is currently in a cadence, they will be removed. + example: true + type: boolean + email_address: + description: Email address + example: pat.johnson@example.com + type: string + eu_resident: + description: Whether this person is marked as a European Union Resident or not + example: false + type: boolean + first_name: + description: First name + example: Pat + type: string + full_email_address: + description: Full email address with name + example: Pat Johnson + type: string + home_phone: + description: Home phone without formatting + example: +1 444 555 6666 + type: string + id: + description: Person ID + example: 1 + type: integer + import: + $ref: "#/components/schemas/EmbeddedResource" + job_seniority: + description: The Job Seniority of a Person, must be one of director, executive, individual_contributor, manager, vice_president, unknown + example: vice_president + type: string + last_completed_step: + $ref: "#/components/schemas/EmbeddedResource" + last_completed_step_cadence: + $ref: "#/components/schemas/EmbeddedResource" + last_contacted_at: + description: Last datetime this person was contacted + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + last_contacted_by: + $ref: "#/components/schemas/EmbeddedResource" + last_contacted_type: + description: The type of the last touch to this person. Can be call, email, other + example: call + type: string + last_name: + description: Last name + example: Johnson + type: string + last_replied_at: + description: Last datetime this person replied to an email + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + linkedin_url: + description: Linkedin URL + example: https://www.linkedin.com/in/username + type: string + locale: + description: Time locale of the person + example: US/Eastern + type: string + locale_utc_offset: + description: The locale's timezone offset from UTC in minutes + example: -480 + type: integer + mobile_phone: + description: Mobile phone without formatting + example: +1 444 555 6666 + type: string + most_recent_cadence: + $ref: "#/components/schemas/EmbeddedResource" + owner: + $ref: "#/components/schemas/EmbeddedResource" + owner_crm_id: + description: Mapped owner field from your CRM + example: 003i000001mnhpD + type: string + person_company_industry: + description: Company industry. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended + example: Information Technology + type: string + person_company_name: + description: Company name. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended + example: SalesLoft + type: string + person_company_website: + description: Company website. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended + example: https://salesloft.com + type: string + person_stage: + $ref: "#/components/schemas/EmbeddedResource" + personal_email_address: + description: Personal email address + example: pat.johnson@example.com + type: string + personal_website: + description: The website of this person + example: https://salesloft.com + type: string + phone: + description: Phone without formatting + example: +1 444 555 6666 + type: string + phone_extension: + description: Phone extension without formatting + example: x123 + type: string + secondary_email_address: + description: Alternate email address + example: pat.johnson@example.com + type: string + starred: + description: Whether this person is starred by the current user + example: true + type: boolean + state: + description: State + example: Georgia + type: string + success_count: + description: The person's success count. 1 if person has any active successes, 0 otherwise. + example: 1 + type: integer + tags: + description: All tags applied to this person + example: + - 7-23-2017 + - dreamforce + items: + type: string + type: array + title: + description: Job title + example: Sales Development Representative + type: string + twitter_handle: + description: The twitter handle of this person + example: "@kyleporter" + type: string + untouched: + description: The person's untouched status + example: false + type: boolean + updated_at: + description: Datetime of when the person was last updated + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + work_city: + description: Work location - city + example: Atlanta + type: string + work_country: + description: Work location - country + example: United States + type: string + work_state: + description: Work location - state + example: Georgia + type: string + PersonCounts: + properties: + calls: + description: The number of calls logged to this person + example: 4 + type: integer + emails_bounced: + description: The number of unique emails sent to this person that bounced + example: 0 + type: integer + emails_clicked: + description: The number of unique emails clicked by this person + example: 1 + type: integer + emails_replied_to: + description: The number of unique emails replied to by this person + example: 0 + type: integer + emails_sent: + description: The number of emails sent to this person + example: 3 + type: integer + emails_viewed: + description: The number of unique emails viewed by this person + example: 2 + type: integer + PersonStage: + properties: + created_at: + description: Datetime of when the Person Stage was created + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + id: + description: ID of Person Stage + example: 1 + type: integer + name: + description: Name of Person Stage + example: Entry Stage + type: string + order: + description: Sortable value of Person Stage order + example: 16 + type: integer + updated_at: + description: Datetime of when the Person Stage was last updated + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + PersonUpsert: + properties: + person: + $ref: "#/components/schemas/Person" + upsert_type: + description: "The type of upsert. One of: create, update" + type: string + PhoneNumberAssignment: + properties: + id: + description: PhoneNumberAssignment ID + example: 1 + type: integer + number: + description: The phone number associated with this assignment + example: "+12223334444" + type: string + user: + $ref: "#/components/schemas/EmbeddedResource" + RecordingSetting: + properties: + recording_default: + description: Whether this phone number should record by default + example: true + type: boolean + SavedListView: + properties: + id: + description: ID of Ssaved list view + example: 1 + type: integer + is_default: + description: Whether the saved list view is the default view + example: true + type: boolean + name: + description: Name of saved list view + example: Tom's Prospects + type: string + view: + description: Type of saved list view + example: companies + type: string + view_params: + description: List of set filters in saved list view + example: + owner: unowned + stage: "28865" + unowned: true + type: object + Step: + properties: + cadence: + $ref: "#/components/schemas/EmbeddedResource" + created_at: + description: Datetime of when the Step was created + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + day: + description: Day this step is associated with up + example: 1 + type: integer + details: + $ref: "#/components/schemas/EmbeddedResource" + disabled: + description: Whether this step is currently active + example: true + type: boolean + display_name: + description: Display name of the step + example: "Day 1: Step 2 - Phone" + type: string + id: + description: ID of Step + example: 1 + type: integer + multitouch_enabled: + description: Whether this step is a multitouch cadence step + example: false + type: boolean + name: + description: Name of the step + example: VP Email Short + type: string + step_number: + description: The number of the step for this day + example: 1 + type: integer + type: + description: | + The type of the action scheduled by this step. Valid types are: email, phone, integration, other. New types may be added in the future. + example: phone + type: string + updated_at: + description: Datetime of when the Step was last updated + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + Subscription: + properties: + callback_token: + description: SalesLoft will include this token in the webhook event payload when calling your callback_url. It is strongly encouraged for your handler to verify this value in order to ensure the request came from SalesLoft. + example: xT7/Buu0Vz2ffiIPuMlBGu+cwku1dr7G5jeiM0iyfYIT0l4z3azNGjiXWTOX/8OT + type: string + callback_url: + description: URL for your callback handler + example: https://mycompany.com/api/person_called_handler + type: string + enabled: + description: Is the Webhook Subscription enabled or not + example: true + type: boolean + event_type: + description: Type of event the subscription is for + example: link_swap + type: string + id: + description: ID for the Webhook Subscription + example: 1 + type: integer + tenant_id: + description: ID for the tenant to which user is assigned + example: 16 + type: integer + user_guid: + description: UUID of the user the token is associated with + example: 51398ccd-309e-467f-aae2-4b0f66b5c11d + type: string + Success: + properties: + counts: + $ref: "#/components/schemas/SuccessCounts" + created_at: + description: Datetime of when the success was created + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + id: + description: ID of success + example: 1 + type: integer + latest_action: + $ref: "#/components/schemas/EmbeddedResource" + latest_cadence: + $ref: "#/components/schemas/EmbeddedResource" + latest_call: + $ref: "#/components/schemas/EmbeddedResource" + latest_email: + $ref: "#/components/schemas/EmbeddedResource" + latest_step: + $ref: "#/components/schemas/EmbeddedResource" + person: + $ref: "#/components/schemas/EmbeddedResource" + succeeded_at: + description: Datetime of when the success was recorded + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + success_window_started_at: + description: Datetime of when this person was first worked, leading up to the success + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + updated_at: + description: Datetime of when the success was last updated + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + user: + $ref: "#/components/schemas/EmbeddedResource" + SuccessCounts: + properties: + total_calls: + description: The total number of calls made in this success window + example: 5 + type: integer + total_emails: + description: The total number of emails made in this success window + example: 2 + type: integer + total_other_touches: + description: The total number of other touches made in this success window + example: 3 + type: integer + Tag: + properties: + id: + description: ID of Tag + example: 1 + type: integer + name: + description: Name of the tag + example: marketing + type: string + Task: + properties: + completed_at: + description: Datetime of when the task was completed, ISO-8601 datetime format required + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + completed_by: + $ref: "#/components/schemas/EmbeddedResource" + created_at: + description: Datetime of when the Task was created + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + created_by_user: + $ref: "#/components/schemas/EmbeddedResource" + current_state: + description: "The state of the task. Valid states are: scheduled, completed" + example: scheduled + type: string + description: + description: A description of the task recorded for person at completion time + example: Ask John Wick about his dog. + type: string + due_at: + description: Datetime of when the Task is due, can be null. ISO-8601 datetime format required + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + due_date: + description: Date of when the Task is due, ISO-8601 date format required + example: 2024-01-01 + format: date + type: string + id: + description: ID of Task + example: 1 + type: integer + person: + $ref: "#/components/schemas/EmbeddedResource" + remind_at: + description: Datetime of when the user will be reminded of the task, ISO-8601 datetime format required + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + subject: + description: Subject line of the task + example: Call John Wick + type: string + task_type: + description: "The type of the task. Valid types are: call, email, general" + example: call + type: string + updated_at: + description: Datetime of when the Task was last updated + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + user: + $ref: "#/components/schemas/EmbeddedResource" + Team: + properties: + _private_fields: + description: For internal use only. This field does not comply with our backwards compatability policies. + example: {} + type: object + allow_automated_email_steps: + description: Whether team members are allowed to have automated email steps + example: true + type: boolean + call_recording_disabled: + description: Whether all call recording is disabled + example: false + type: boolean + click_tracking_default: + description: The team default for click tracking when composing emails + example: true + type: boolean + created_at: + description: Datetime of when the team was created + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + custom_tracking_domain: + description: The domain click and open tracking will be proxied through + example: examplecompany.com + type: string + deactivated: + description: Indicates if the team has been deactivated + example: true + type: boolean + dispositions_required: + description: Whether team members are required to mark disposition at the end of calls + example: false + type: boolean + email_daily_limit: + description: Daily email limit for each member on the team + example: 1000 + type: integer + group_privacy_setting: + description: | + Visibility setting for resources across the team. Possible values are: group_public, all_public. + When the value is group_public, certain resources will only be visible to members of the same group. + When the value is all_public, all resources are visible to all users on this team. + example: all_public + type: string + id: + description: Team ID + example: 1 + type: integer + license_limit: + description: Count of seats that this team has licensed + example: 100 + type: integer + local_dial_enabled: + description: Whether this team has local dial enabled + example: true + type: boolean + name: + description: Team name + example: The A-Team + type: string + plan: + description: "Plan type of the team, Possible values are: group, professional, enterprise" + example: professional + type: string + plan_features: + description: Add on features for this team + example: + opportunity_management: Opportunity Management + type: object + record_by_default: + description: Whether calls will record by default + example: true + type: boolean + sentiments_required: + description: Whether team members are required to log sentiments + example: false + type: boolean + team_visibility_default: + description: | + The default visibility of resources on the team, in the UI only. The API does not utilize this default. + Possible values are: public, private. + example: public + type: string + updated_at: + description: Datetime of when the team was last updated + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + TeamTemplate: + properties: + _links: + description: "Links to attachments resource for this template " + example: + attachments: https://api.salesloft.com/v2/team_template_attachments?team_template_id[]=1 + type: object + archived_at: + description: Datetime of when the team template was archived, if archived + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + body: + description: Body of the team template + example:
Do you know about birds?
+ type: string + body_preview: + description: A plain text version of the first 100 characters of the body of the team template + example: |- + hello + + hey sounds good + + ok + + ok + + with an edit + + ok now i'm comic sans 14 + type: string + click_tracking_enabled: + description: Whether click tracking is enabled for this team template + example: true + type: boolean + counts: + $ref: "#/components/schemas/TeamTemplateCounts" + created_at: + description: Datetime of when the team template was created + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + id: + description: ID of team template + example: 51226150-3108-4dea-883b-0c0d7388f456 + type: string + last_modified_at: + description: Datetime of when the team template was last modified + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + last_modified_user: + $ref: "#/components/schemas/EmbeddedResource" + last_used_at: + description: Datetime of when the team template was last used + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + open_tracking_enabled: + description: Whether open tracking is enabled for this team template + example: true + type: boolean + subject: + description: Subject of the team template + example: It’s time to say goodbye + type: string + tags: + description: All tags applied to this team template + example: + - 7-23-2017 + - internal + items: + type: string + type: array + title: + description: Title of the team template + example: VP Breakup Email + type: string + updated_at: + description: Datetime of when the team template was last updated + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + TeamTemplateAttachment: + properties: + attachment_file_size: + description: The size of the attachment + example: 2 + type: integer + attachment_id: + description: ID of the team template attachment + type: integer + download_url: + description: Download url of the attachment + example: https://path/to/example_attachment.gif + type: string + id: + description: ID of team template attachment association + example: 5 + type: integer + name: + description: Name of the attachment + example: example_attachment.gif + type: string + team_template: + $ref: "#/components/schemas/EmbeddedResource" + TeamTemplateCounts: + properties: + bounces: + description: The number of bounces the team template received + example: 10 + type: integer + clicks: + description: The number of times links in the team template were clicked + example: 20 + type: integer + replies: + description: The number of replies the team template received + example: 1 + type: integer + sent_emails: + description: The number of times the team template was sent out + example: 59 + type: integer + views: + description: The number of times the team template was opened + example: 3 + type: integer + User: + properties: + _private_fields: + description: For internal use only. This field does not comply with our backwards compatability policies. + example: {} + type: object + active: + description: Whether an user is currently active in SalesLoft + example: true + type: boolean + bcc_email_address: + description: Address that will be BBC'd on all emails from this user + example: fake@salesloft.com + type: string + click_to_call_enabled: + description: Whether this user has click to call enabled + example: true + type: boolean + created_at: + description: Datetime of when the user was created + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + crm_connected: + description: Whether the user has a crm connected + example: true + type: boolean + email: + description: Email address provided to accounts.salesloft.com + example: fake@salesloft.com + type: string + email_client_configured: + description: Whether this user has a email client configured + example: true + type: boolean + email_client_email_address: + description: Email address associated with the email client of the user + example: fake@salesloft.com + type: string + email_signature: + description: Email signature + example: Benjamin Franklin
+ type: string + email_signature_click_tracking_disabled: + description: Whether this user has click tracking disabled in email signature + example: false + type: boolean + email_signature_type: + description: Email signature type + example: html + type: string + external_feature_flags: + description: Feature flags that are for this user. New flags may appear or disappear at any time + example: {} + type: object + first_name: + description: First name of user + example: Benjamin + type: string + from_address: + description: The from address of this user + example: fake@salesloft.com + type: string + full_email_address: + description: RFC 5322 compliant email address + example: '"Benjamin Franklin" ' + type: string + group: + $ref: "#/components/schemas/EmbeddedResource" + guid: + description: Globally unique user ID. New endpoints will explicitly accept this over id + example: 9cc6da15-d403-4f5b-aeed-c4b8463cf9ae + type: string + id: + description: User ID + example: 1 + type: integer + job_role: + description: Job role of user + example: SDR / BDR + type: string + last_name: + description: Last name of user + example: Franklin + type: string + local_dial_enabled: + description: Whether this user has Local Dial enabled + example: true + type: boolean + name: + description: Display name of user + example: Benjamin Franklin + type: string + phone_client: + $ref: "#/components/schemas/EmbeddedResource" + phone_number_assignment: + $ref: "#/components/schemas/EmbeddedResource" + role: + $ref: "#/components/schemas/EmbeddedResource" + sending_email_address: + description: "The email address that email of the user will be sent from, resolved in the following resolution order: from_user, email_client_email_address, email" + example: fake@salesloft.com + type: string + slack_username: + description: Slack username + example: benjamin-franklin + type: string + team: + $ref: "#/components/schemas/EmbeddedResource" + team_admin: + description: Team Admin + example: true + type: boolean + time_zone: + description: User Time Zone + example: US/Eastern + type: string + twitter_handle: + description: Twitter handle + example: "@benjamin-franklin" + type: string + updated_at: + description: Datetime of when the user was last updated + example: 2023-01-01T00:00:00.000000-05:00 + format: date-time + type: string + work_country: + description: Work Country + example: PE + type: string + securitySchemes: + OAuth2: + flows: + clientCredentials: + scopes: {} + tokenUrl: https://accounts.salesloft.com/oauth/token + type: oauth2 From a4100a6fade8f8a3b4e1cc2f7a2d501138b94d40 Mon Sep 17 00:00:00 2001 From: Tony Xiao Date: Thu, 16 Nov 2023 20:02:32 -0800 Subject: [PATCH 03/22] feat: Generate openapi spec for apollo also --- packages/core/package.json | 5 +- .../impl/apollo/apollo.openapi.gen.d.ts | 584 +++++ .../apollo/{client.ts => apollo.openapi.ts} | 16 + .../remotes/impl/apollo/apollo.openapi.yaml | 2102 +++++++++++++++++ packages/core/remotes/impl/apollo/index.ts | 2 +- yarn.lock | 25 +- 6 files changed, 2731 insertions(+), 3 deletions(-) create mode 100644 packages/core/remotes/impl/apollo/apollo.openapi.gen.d.ts rename packages/core/remotes/impl/apollo/{client.ts => apollo.openapi.ts} (95%) create mode 100644 packages/core/remotes/impl/apollo/apollo.openapi.yaml diff --git a/packages/core/package.json b/packages/core/package.json index 26e09415e..3889395f8 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -17,6 +17,7 @@ "@supaglue/utils": "workspace:*", "@temporalio/proto": "^1.8.6", "@zodios/core": "^10.9.6", + "@zodios/openapi": "^10.5.0", "async-retry": "^1.3.3", "axios": "^1.6.0", "csv-parse": "^5.3.5", @@ -68,8 +69,10 @@ "generate": "concurrently 'npm:generate:*'", "download:outreach": "curl --compressed https://developers.outreach.io/page-data/api/reference/overview/page-data.json | jq -r .result.data.contentItem.data.redocStoreStr | jq .definition.data | yarn json2yaml > ./remotes/impl/outreach/outreach.openapi.yaml", "download:salesloft": "curl https://api.apis.guru/v2/specs/salesloft.com/v2/openapi.yaml > ./remotes/impl/salesloft/salesloft.openapi.yaml", + "download:apollo": "node --loader tsx remotes/impl/apollo/apollo.openapi.ts | json2yaml > ./remotes/impl/apollo/apollo.openapi.yaml", "generate:outreach": "openapi-typescript ./remotes/impl/outreach/outreach.openapi.yaml --output ./remotes/impl/outreach/outreach.openapi.gen.d.ts", - "generate:salesloft": "openapi-typescript ./remotes/impl/salesloft/salesloft.openapi.yaml --output ./remotes/impl/salesloft/salesloft.openapi.gen.d.ts" + "generate:salesloft": "openapi-typescript ./remotes/impl/salesloft/salesloft.openapi.yaml --output ./remotes/impl/salesloft/salesloft.openapi.gen.d.ts", + "generate:apollo": "openapi-typescript ./remotes/impl/apollo/apollo.openapi.yaml --output ./remotes/impl/apollo/apollo.openapi.gen.d.ts" }, "files": [ "dist" diff --git a/packages/core/remotes/impl/apollo/apollo.openapi.gen.d.ts b/packages/core/remotes/impl/apollo/apollo.openapi.gen.d.ts new file mode 100644 index 000000000..26b97aee8 --- /dev/null +++ b/packages/core/remotes/impl/apollo/apollo.openapi.gen.d.ts @@ -0,0 +1,584 @@ +/** + * This file was auto-generated by openapi-typescript. + * Do not make direct changes to the file. + */ + + +export interface paths { + "/v1/emailer_campaigns/{id}": { + get: operations["getEmailerCampaign"]; + }; + "/v1/emailer_campaigns": { + post: operations["postEmailerCampaign"]; + }; + "/v1/emailer_campaigns/{id}/add_contact_ids": { + post: operations["postEmailerCampaignAddContactIds"]; + }; + "/v1/emailer_steps": { + post: operations["postEmailerStep"]; + }; + "/v1/emailer_steps/{id}": { + delete: operations["deleteEmailerStep"]; + }; + "/v1/emailer_touches/{id}": { + put: operations["putEmailerTouch"]; + }; + "/v1/contacts/{id}": { + get: operations["getContact"]; + }; +} + +export type webhooks = Record; + +export type components = Record; + +export type $defs = Record; + +export type external = Record; + +export interface operations { + + getEmailerCampaign: { + parameters: { + path: { + id: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": { + emailer_campaign: { + id: string; + name?: string | null; + created_at: string; + /** @enum {string} */ + permissions?: "team_can_use" | "team_can_view" | "private"; + active: boolean; + archived: boolean; + label_ids: string[]; + num_steps?: number | null; + user_id?: string | null; + unique_scheduled?: (number | "loading") | null; + unique_delivered?: (number | "loading") | null; + unique_bounced?: (number | "loading") | null; + unique_opened?: (number | "loading") | null; + unique_replied?: (number | "loading") | null; + unique_demoed?: (number | "loading") | null; + unique_clicked?: (number | "loading") | null; + unique_unsubscribed?: (number | "loading") | null; + bounce_rate?: (number | "loading") | null; + open_rate?: (number | "loading") | null; + click_rate?: (number | "loading") | null; + reply_rate?: (number | "loading") | null; + spam_blocked_rate?: (number | "loading") | null; + opt_out_rate?: (number | "loading") | null; + demo_rate?: (number | "loading") | null; + }; + emailer_steps?: (({ + id: string; + emailer_campaign_id: string; + position?: number | null; + wait_time?: number | null; + /** @enum {string} */ + type: "auto_email" | "manual_email" | "call" | "action_item" | "linkedin_step_message" | "linkedin_step_connect" | "linkedin_step_view_profile" | "linkedin_step_interact_post"; + /** @enum {string} */ + wait_mode: "second" | "minute" | "hour" | "day"; + note?: string | null; + max_emails_per_day?: number | null; + exact_datetime?: string | null; + priority?: string | null; + auto_skip_in_x_days?: number | null; + counts?: ({ + active?: number | null; + paused?: number | null; + finished?: number | null; + bounced?: number | null; + spam_blocked?: number | null; + hard_bounced?: number | null; + not_sent?: number | null; + }) | null; + })[]) | null; + emailer_touches?: (({ + id: string; + emailer_step_id?: string | null; + emailer_template_id?: string | null; + emailer_template?: ({ + id: string; + name?: string | null; + user_id?: string | null; + subject?: string | null; + archived?: boolean | null; + created_at?: string | null; + global?: boolean | null; + body_text?: string | null; + folder_id?: string | null; + body_html?: string | null; + creation_type?: string | null; + label_ids?: string[] | null; + prompt_id?: string | null; + }) | null; + status?: string | null; + /** @enum {string|null} */ + type?: "reply_to_thread" | "new_thread" | null; + include_signature?: boolean | null; + has_personalized_opener?: boolean | null; + personalized_opener_fallback_option?: string | null; + generic_personalized_opener?: string | null; + unique_scheduled?: (number | "loading") | null; + unique_delivered?: (number | "loading") | null; + unique_bounced?: (number | "loading") | null; + unique_opened?: (number | "loading") | null; + unique_replied?: (number | "loading") | null; + bounce_rate?: (number | "loading") | null; + open_rate?: (number | "loading") | null; + reply_rate?: (number | "loading") | null; + demo_rate?: (number | "loading") | null; + unique_demoed?: (number | "loading") | null; + unique_clicked?: (number | "loading") | null; + click_rate?: (number | "loading") | null; + unique_unsubscribed?: (number | "loading") | null; + opt_out_rate?: (number | "loading") | null; + unique_hard_bounced?: (number | "loading") | null; + unique_spam_blocked?: (number | "loading") | null; + hard_bounce_rate?: (number | "loading") | null; + spam_block_rate?: (number | "loading") | null; + })[]) | null; + emailer_templates?: (({ + id: string; + name?: string | null; + user_id?: string | null; + subject?: string | null; + archived?: boolean | null; + created_at?: string | null; + global?: boolean | null; + body_text?: string | null; + folder_id?: string | null; + body_html?: string | null; + creation_type?: string | null; + label_ids?: string[] | null; + prompt_id?: string | null; + })[]) | null; + }; + }; + }; + }; + }; + postEmailerCampaign: { + requestBody?: { + content: { + "application/json": { + name?: string | null; + /** @enum {string} */ + permissions?: "team_can_use" | "team_can_view" | "private"; + user_id?: string | null; + label_ids?: string[]; + active?: boolean; + }; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": { + emailer_campaign: { + id: string; + name?: string | null; + created_at: string; + /** @enum {string} */ + permissions?: "team_can_use" | "team_can_view" | "private"; + active: boolean; + archived: boolean; + label_ids: string[]; + num_steps?: number | null; + user_id?: string | null; + unique_scheduled?: (number | "loading") | null; + unique_delivered?: (number | "loading") | null; + unique_bounced?: (number | "loading") | null; + unique_opened?: (number | "loading") | null; + unique_replied?: (number | "loading") | null; + unique_demoed?: (number | "loading") | null; + unique_clicked?: (number | "loading") | null; + unique_unsubscribed?: (number | "loading") | null; + bounce_rate?: (number | "loading") | null; + open_rate?: (number | "loading") | null; + click_rate?: (number | "loading") | null; + reply_rate?: (number | "loading") | null; + spam_blocked_rate?: (number | "loading") | null; + opt_out_rate?: (number | "loading") | null; + demo_rate?: (number | "loading") | null; + }; + emailer_steps?: (({ + id: string; + emailer_campaign_id: string; + position?: number | null; + wait_time?: number | null; + /** @enum {string} */ + type: "auto_email" | "manual_email" | "call" | "action_item" | "linkedin_step_message" | "linkedin_step_connect" | "linkedin_step_view_profile" | "linkedin_step_interact_post"; + /** @enum {string} */ + wait_mode: "second" | "minute" | "hour" | "day"; + note?: string | null; + max_emails_per_day?: number | null; + exact_datetime?: string | null; + priority?: string | null; + auto_skip_in_x_days?: number | null; + counts?: ({ + active?: number | null; + paused?: number | null; + finished?: number | null; + bounced?: number | null; + spam_blocked?: number | null; + hard_bounced?: number | null; + not_sent?: number | null; + }) | null; + })[]) | null; + emailer_touches?: (({ + id: string; + emailer_step_id?: string | null; + emailer_template_id?: string | null; + emailer_template?: ({ + id: string; + name?: string | null; + user_id?: string | null; + subject?: string | null; + archived?: boolean | null; + created_at?: string | null; + global?: boolean | null; + body_text?: string | null; + folder_id?: string | null; + body_html?: string | null; + creation_type?: string | null; + label_ids?: string[] | null; + prompt_id?: string | null; + }) | null; + status?: string | null; + /** @enum {string|null} */ + type?: "reply_to_thread" | "new_thread" | null; + include_signature?: boolean | null; + has_personalized_opener?: boolean | null; + personalized_opener_fallback_option?: string | null; + generic_personalized_opener?: string | null; + unique_scheduled?: (number | "loading") | null; + unique_delivered?: (number | "loading") | null; + unique_bounced?: (number | "loading") | null; + unique_opened?: (number | "loading") | null; + unique_replied?: (number | "loading") | null; + bounce_rate?: (number | "loading") | null; + open_rate?: (number | "loading") | null; + reply_rate?: (number | "loading") | null; + demo_rate?: (number | "loading") | null; + unique_demoed?: (number | "loading") | null; + unique_clicked?: (number | "loading") | null; + click_rate?: (number | "loading") | null; + unique_unsubscribed?: (number | "loading") | null; + opt_out_rate?: (number | "loading") | null; + unique_hard_bounced?: (number | "loading") | null; + unique_spam_blocked?: (number | "loading") | null; + hard_bounce_rate?: (number | "loading") | null; + spam_block_rate?: (number | "loading") | null; + })[]) | null; + emailer_templates?: (({ + id: string; + name?: string | null; + user_id?: string | null; + subject?: string | null; + archived?: boolean | null; + created_at?: string | null; + global?: boolean | null; + body_text?: string | null; + folder_id?: string | null; + body_html?: string | null; + creation_type?: string | null; + label_ids?: string[] | null; + prompt_id?: string | null; + })[]) | null; + }; + }; + }; + }; + }; + postEmailerCampaignAddContactIds: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": { + contact_ids: string[]; + emailer_campaign_id: string; + send_email_from_email_account_id?: string | null; + userId?: string | null; + }; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": { + contacts: { + id: string; + emailer_campaign_ids?: string[]; + contact_campaign_statuses: { + id: string; + send_email_from_email_account_id: string; + emailer_campaign_id: string; + [key: string]: unknown; + }[]; + [key: string]: unknown; + }[]; + [key: string]: unknown; + }; + }; + }; + }; + }; + postEmailerStep: { + requestBody?: { + content: { + "application/json": { + emailer_campaign_id: string; + priority?: string | null; + position?: number | null; + /** @enum {string} */ + type: "auto_email" | "manual_email" | "call" | "action_item" | "linkedin_step_message" | "linkedin_step_connect" | "linkedin_step_view_profile" | "linkedin_step_interact_post"; + /** @enum {string} */ + wait_mode: "second" | "minute" | "hour" | "day"; + wait_time?: number | null; + exact_datetime?: string | null; + note?: string | null; + }; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": { + emailer_step: { + id: string; + emailer_campaign_id: string; + position?: number | null; + wait_time?: number | null; + /** @enum {string} */ + type: "auto_email" | "manual_email" | "call" | "action_item" | "linkedin_step_message" | "linkedin_step_connect" | "linkedin_step_view_profile" | "linkedin_step_interact_post"; + /** @enum {string} */ + wait_mode: "second" | "minute" | "hour" | "day"; + note?: string | null; + max_emails_per_day?: number | null; + exact_datetime?: string | null; + priority?: string | null; + auto_skip_in_x_days?: number | null; + counts?: ({ + active?: number | null; + paused?: number | null; + finished?: number | null; + bounced?: number | null; + spam_blocked?: number | null; + hard_bounced?: number | null; + not_sent?: number | null; + }) | null; + }; + emailer_touch?: ({ + id: string; + emailer_step_id?: string | null; + emailer_template_id?: string | null; + emailer_template?: ({ + id: string; + name?: string | null; + user_id?: string | null; + subject?: string | null; + archived?: boolean | null; + created_at?: string | null; + global?: boolean | null; + body_text?: string | null; + folder_id?: string | null; + body_html?: string | null; + creation_type?: string | null; + label_ids?: string[] | null; + prompt_id?: string | null; + }) | null; + status?: string | null; + /** @enum {string|null} */ + type?: "reply_to_thread" | "new_thread" | null; + include_signature?: boolean | null; + has_personalized_opener?: boolean | null; + personalized_opener_fallback_option?: string | null; + generic_personalized_opener?: string | null; + unique_scheduled?: (number | "loading") | null; + unique_delivered?: (number | "loading") | null; + unique_bounced?: (number | "loading") | null; + unique_opened?: (number | "loading") | null; + unique_replied?: (number | "loading") | null; + bounce_rate?: (number | "loading") | null; + open_rate?: (number | "loading") | null; + reply_rate?: (number | "loading") | null; + demo_rate?: (number | "loading") | null; + unique_demoed?: (number | "loading") | null; + unique_clicked?: (number | "loading") | null; + click_rate?: (number | "loading") | null; + unique_unsubscribed?: (number | "loading") | null; + opt_out_rate?: (number | "loading") | null; + unique_hard_bounced?: (number | "loading") | null; + unique_spam_blocked?: (number | "loading") | null; + hard_bounce_rate?: (number | "loading") | null; + spam_block_rate?: (number | "loading") | null; + }) | null; + emailer_template?: ({ + id: string; + name?: string | null; + user_id?: string | null; + subject?: string | null; + archived?: boolean | null; + created_at?: string | null; + global?: boolean | null; + body_text?: string | null; + folder_id?: string | null; + body_html?: string | null; + creation_type?: string | null; + label_ids?: string[] | null; + prompt_id?: string | null; + }) | null; + }; + }; + }; + }; + }; + deleteEmailerStep: { + parameters: { + path: { + id: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": { + emailer_step: { + id: string; + deleted: boolean; + }; + }; + }; + }; + }; + }; + putEmailerTouch: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": { + id: string; + emailer_step_id?: string | null; + emailer_template?: ({ + id: string; + name?: string | null; + user_id?: string | null; + subject?: string | null; + archived?: boolean | null; + created_at?: string | null; + global?: boolean | null; + body_text?: string | null; + folder_id?: string | null; + body_html?: string | null; + creation_type?: string | null; + label_ids?: string[] | null; + prompt_id?: string | null; + }) | null; + /** @enum {string|null} */ + type?: "reply_to_thread" | "new_thread" | null; + }; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": { + emailer_touch: { + id: string; + emailer_step_id?: string | null; + emailer_template_id?: string | null; + emailer_template?: ({ + id: string; + name?: string | null; + user_id?: string | null; + subject?: string | null; + archived?: boolean | null; + created_at?: string | null; + global?: boolean | null; + body_text?: string | null; + folder_id?: string | null; + body_html?: string | null; + creation_type?: string | null; + label_ids?: string[] | null; + prompt_id?: string | null; + }) | null; + status?: string | null; + /** @enum {string|null} */ + type?: "reply_to_thread" | "new_thread" | null; + include_signature?: boolean | null; + has_personalized_opener?: boolean | null; + personalized_opener_fallback_option?: string | null; + generic_personalized_opener?: string | null; + unique_scheduled?: (number | "loading") | null; + unique_delivered?: (number | "loading") | null; + unique_bounced?: (number | "loading") | null; + unique_opened?: (number | "loading") | null; + unique_replied?: (number | "loading") | null; + bounce_rate?: (number | "loading") | null; + open_rate?: (number | "loading") | null; + reply_rate?: (number | "loading") | null; + demo_rate?: (number | "loading") | null; + unique_demoed?: (number | "loading") | null; + unique_clicked?: (number | "loading") | null; + click_rate?: (number | "loading") | null; + unique_unsubscribed?: (number | "loading") | null; + opt_out_rate?: (number | "loading") | null; + unique_hard_bounced?: (number | "loading") | null; + unique_spam_blocked?: (number | "loading") | null; + hard_bounce_rate?: (number | "loading") | null; + spam_block_rate?: (number | "loading") | null; + }; + }; + }; + }; + }; + }; + getContact: { + parameters: { + path: { + id: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": { + contact: { + id: string; + emailer_campaign_ids?: string[]; + contact_campaign_statuses: { + id: string; + send_email_from_email_account_id: string; + emailer_campaign_id: string; + [key: string]: unknown; + }[]; + [key: string]: unknown; + }; + }; + }; + }; + }; + }; +} diff --git a/packages/core/remotes/impl/apollo/client.ts b/packages/core/remotes/impl/apollo/apollo.openapi.ts similarity index 95% rename from packages/core/remotes/impl/apollo/client.ts rename to packages/core/remotes/impl/apollo/apollo.openapi.ts index 9f44c9ab7..fadf71497 100644 --- a/packages/core/remotes/impl/apollo/client.ts +++ b/packages/core/remotes/impl/apollo/apollo.openapi.ts @@ -1,5 +1,6 @@ import { extendApi } from '@anatine/zod-openapi'; import { Zodios } from '@zodios/core'; +import { openApiBuilder } from '@zodios/openapi'; import type { AxiosRequestConfig } from 'axios'; import z from 'zod'; import { defineApi } from '../../utils/zodios-api-shorthand'; @@ -246,3 +247,18 @@ export function createApolloClient(cfg: { apiKey: string; axiosConfig?: AxiosReq }, }); } + +export function outputOpenApi() { + return openApiBuilder({ + title: 'Apollo API', + version: '0.0.0', + }) + .addServer({ url: 'https://app.apollo.io/api' }) + .addPublicApi(apolloApi) + .build(); +} + +if (require.main === module) { + // eslint-disable-next-line no-console + console.log(JSON.stringify(outputOpenApi(), null, 2)); +} diff --git a/packages/core/remotes/impl/apollo/apollo.openapi.yaml b/packages/core/remotes/impl/apollo/apollo.openapi.yaml new file mode 100644 index 000000000..79e6343c8 --- /dev/null +++ b/packages/core/remotes/impl/apollo/apollo.openapi.yaml @@ -0,0 +1,2102 @@ +--- + openapi: "3.0.0" + info: + title: "Apollo API" + version: "0.0.0" + servers: + - + url: "https://app.apollo.io/api" + paths: + /v1/emailer_campaigns/{id}: + get: + operationId: "getEmailerCampaign" + tags: + - "emailer_campaigns" + parameters: + - + name: "id" + in: "path" + schema: + type: "string" + required: true + responses: + 200: + description: "Success" + content: + application/json: + schema: + type: "object" + properties: + emailer_campaign: + type: "object" + properties: + id: + type: "string" + name: + type: "string" + nullable: true + created_at: + type: "string" + permissions: + type: "string" + enum: + - "team_can_use" + - "team_can_view" + - "private" + active: + type: "boolean" + archived: + type: "boolean" + label_ids: + type: "array" + items: + type: "string" + num_steps: + type: "number" + nullable: true + user_id: + type: "string" + nullable: true + unique_scheduled: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_delivered: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_bounced: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_opened: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_replied: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_demoed: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_clicked: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_unsubscribed: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + bounce_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + open_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + click_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + reply_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + spam_blocked_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + opt_out_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + demo_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + required: + - "id" + - "created_at" + - "active" + - "archived" + - "label_ids" + additionalProperties: false + emailer_steps: + type: "array" + items: + type: "object" + properties: + id: + type: "string" + emailer_campaign_id: + type: "string" + position: + type: "number" + nullable: true + wait_time: + type: "number" + nullable: true + type: + type: "string" + enum: + - "auto_email" + - "manual_email" + - "call" + - "action_item" + - "linkedin_step_message" + - "linkedin_step_connect" + - "linkedin_step_view_profile" + - "linkedin_step_interact_post" + wait_mode: + type: "string" + enum: + - "second" + - "minute" + - "hour" + - "day" + note: + type: "string" + nullable: true + max_emails_per_day: + type: "number" + nullable: true + exact_datetime: + type: "string" + nullable: true + priority: + type: "string" + nullable: true + auto_skip_in_x_days: + type: "number" + nullable: true + counts: + type: "object" + properties: + active: + type: "number" + nullable: true + paused: + type: "number" + nullable: true + finished: + type: "number" + nullable: true + bounced: + type: "number" + nullable: true + spam_blocked: + type: "number" + nullable: true + hard_bounced: + type: "number" + nullable: true + not_sent: + type: "number" + nullable: true + additionalProperties: false + nullable: true + required: + - "id" + - "emailer_campaign_id" + - "type" + - "wait_mode" + additionalProperties: false + nullable: true + emailer_touches: + type: "array" + items: + type: "object" + properties: + id: + type: "string" + emailer_step_id: + type: "string" + nullable: true + emailer_template_id: + type: "string" + nullable: true + emailer_template: + type: "object" + properties: + id: + type: "string" + name: + type: "string" + nullable: true + user_id: + type: "string" + nullable: true + subject: + type: "string" + nullable: true + archived: + type: "boolean" + nullable: true + created_at: + type: "string" + nullable: true + global: + type: "boolean" + nullable: true + body_text: + type: "string" + nullable: true + folder_id: + type: "string" + nullable: true + body_html: + type: "string" + nullable: true + creation_type: + type: "string" + nullable: true + label_ids: + type: "array" + items: + type: "string" + nullable: true + prompt_id: + type: "string" + nullable: true + required: + - "id" + additionalProperties: false + nullable: true + status: + type: "string" + nullable: true + type: + type: "string" + enum: + - "reply_to_thread" + - "new_thread" + nullable: true + include_signature: + type: "boolean" + nullable: true + has_personalized_opener: + type: "boolean" + nullable: true + personalized_opener_fallback_option: + type: "string" + nullable: true + generic_personalized_opener: + type: "string" + nullable: true + unique_scheduled: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_delivered: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_bounced: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_opened: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_replied: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + bounce_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + open_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + reply_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + demo_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_demoed: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_clicked: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + click_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_unsubscribed: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + opt_out_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_hard_bounced: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_spam_blocked: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + hard_bounce_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + spam_block_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + required: + - "id" + additionalProperties: false + nullable: true + emailer_templates: + type: "array" + items: + type: "object" + properties: + id: + type: "string" + name: + type: "string" + nullable: true + user_id: + type: "string" + nullable: true + subject: + type: "string" + nullable: true + archived: + type: "boolean" + nullable: true + created_at: + type: "string" + nullable: true + global: + type: "boolean" + nullable: true + body_text: + type: "string" + nullable: true + folder_id: + type: "string" + nullable: true + body_html: + type: "string" + nullable: true + creation_type: + type: "string" + nullable: true + label_ids: + type: "array" + items: + type: "string" + nullable: true + prompt_id: + type: "string" + nullable: true + required: + - "id" + additionalProperties: false + nullable: true + required: + - "emailer_campaign" + additionalProperties: false + /v1/emailer_campaigns: + post: + operationId: "postEmailerCampaign" + tags: + - "emailer_campaigns" + requestBody: + content: + application/json: + schema: + type: "object" + properties: + name: + type: "string" + nullable: true + permissions: + type: "string" + enum: + - "team_can_use" + - "team_can_view" + - "private" + user_id: + type: "string" + nullable: true + label_ids: + type: "array" + items: + type: "string" + active: + type: "boolean" + additionalProperties: false + parameters: [] + responses: + 200: + description: "Success" + content: + application/json: + schema: + type: "object" + properties: + emailer_campaign: + type: "object" + properties: + id: + type: "string" + name: + type: "string" + nullable: true + created_at: + type: "string" + permissions: + type: "string" + enum: + - "team_can_use" + - "team_can_view" + - "private" + active: + type: "boolean" + archived: + type: "boolean" + label_ids: + type: "array" + items: + type: "string" + num_steps: + type: "number" + nullable: true + user_id: + type: "string" + nullable: true + unique_scheduled: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_delivered: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_bounced: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_opened: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_replied: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_demoed: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_clicked: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_unsubscribed: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + bounce_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + open_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + click_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + reply_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + spam_blocked_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + opt_out_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + demo_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + required: + - "id" + - "created_at" + - "active" + - "archived" + - "label_ids" + additionalProperties: false + emailer_steps: + type: "array" + items: + type: "object" + properties: + id: + type: "string" + emailer_campaign_id: + type: "string" + position: + type: "number" + nullable: true + wait_time: + type: "number" + nullable: true + type: + type: "string" + enum: + - "auto_email" + - "manual_email" + - "call" + - "action_item" + - "linkedin_step_message" + - "linkedin_step_connect" + - "linkedin_step_view_profile" + - "linkedin_step_interact_post" + wait_mode: + type: "string" + enum: + - "second" + - "minute" + - "hour" + - "day" + note: + type: "string" + nullable: true + max_emails_per_day: + type: "number" + nullable: true + exact_datetime: + type: "string" + nullable: true + priority: + type: "string" + nullable: true + auto_skip_in_x_days: + type: "number" + nullable: true + counts: + type: "object" + properties: + active: + type: "number" + nullable: true + paused: + type: "number" + nullable: true + finished: + type: "number" + nullable: true + bounced: + type: "number" + nullable: true + spam_blocked: + type: "number" + nullable: true + hard_bounced: + type: "number" + nullable: true + not_sent: + type: "number" + nullable: true + additionalProperties: false + nullable: true + required: + - "id" + - "emailer_campaign_id" + - "type" + - "wait_mode" + additionalProperties: false + nullable: true + emailer_touches: + type: "array" + items: + type: "object" + properties: + id: + type: "string" + emailer_step_id: + type: "string" + nullable: true + emailer_template_id: + type: "string" + nullable: true + emailer_template: + type: "object" + properties: + id: + type: "string" + name: + type: "string" + nullable: true + user_id: + type: "string" + nullable: true + subject: + type: "string" + nullable: true + archived: + type: "boolean" + nullable: true + created_at: + type: "string" + nullable: true + global: + type: "boolean" + nullable: true + body_text: + type: "string" + nullable: true + folder_id: + type: "string" + nullable: true + body_html: + type: "string" + nullable: true + creation_type: + type: "string" + nullable: true + label_ids: + type: "array" + items: + type: "string" + nullable: true + prompt_id: + type: "string" + nullable: true + required: + - "id" + additionalProperties: false + nullable: true + status: + type: "string" + nullable: true + type: + type: "string" + enum: + - "reply_to_thread" + - "new_thread" + nullable: true + include_signature: + type: "boolean" + nullable: true + has_personalized_opener: + type: "boolean" + nullable: true + personalized_opener_fallback_option: + type: "string" + nullable: true + generic_personalized_opener: + type: "string" + nullable: true + unique_scheduled: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_delivered: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_bounced: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_opened: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_replied: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + bounce_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + open_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + reply_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + demo_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_demoed: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_clicked: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + click_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_unsubscribed: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + opt_out_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_hard_bounced: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_spam_blocked: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + hard_bounce_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + spam_block_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + required: + - "id" + additionalProperties: false + nullable: true + emailer_templates: + type: "array" + items: + type: "object" + properties: + id: + type: "string" + name: + type: "string" + nullable: true + user_id: + type: "string" + nullable: true + subject: + type: "string" + nullable: true + archived: + type: "boolean" + nullable: true + created_at: + type: "string" + nullable: true + global: + type: "boolean" + nullable: true + body_text: + type: "string" + nullable: true + folder_id: + type: "string" + nullable: true + body_html: + type: "string" + nullable: true + creation_type: + type: "string" + nullable: true + label_ids: + type: "array" + items: + type: "string" + nullable: true + prompt_id: + type: "string" + nullable: true + required: + - "id" + additionalProperties: false + nullable: true + required: + - "emailer_campaign" + additionalProperties: false + /v1/emailer_campaigns/{id}/add_contact_ids: + post: + operationId: "postEmailerCampaignAddContactIds" + tags: + - "add_contact_ids" + requestBody: + content: + application/json: + schema: + type: "object" + properties: + contact_ids: + type: "array" + items: + type: "string" + emailer_campaign_id: + type: "string" + send_email_from_email_account_id: + type: "string" + nullable: true + userId: + type: "string" + nullable: true + required: + - "contact_ids" + - "emailer_campaign_id" + additionalProperties: false + parameters: + - + name: "id" + in: "path" + schema: + type: "string" + required: true + responses: + 200: + description: "Success" + content: + application/json: + schema: + type: "object" + properties: + contacts: + type: "array" + items: + type: "object" + properties: + id: + type: "string" + emailer_campaign_ids: + type: "array" + items: + type: "string" + contact_campaign_statuses: + type: "array" + items: + type: "object" + properties: + id: + type: "string" + send_email_from_email_account_id: + type: "string" + emailer_campaign_id: + type: "string" + required: + - "id" + - "send_email_from_email_account_id" + - "emailer_campaign_id" + additionalProperties: true + required: + - "id" + - "contact_campaign_statuses" + additionalProperties: true + required: + - "contacts" + additionalProperties: true + /v1/emailer_steps: + post: + operationId: "postEmailerStep" + tags: + - "emailer_steps" + requestBody: + content: + application/json: + schema: + type: "object" + properties: + emailer_campaign_id: + type: "string" + priority: + type: "string" + nullable: true + position: + type: "number" + nullable: true + type: + type: "string" + enum: + - "auto_email" + - "manual_email" + - "call" + - "action_item" + - "linkedin_step_message" + - "linkedin_step_connect" + - "linkedin_step_view_profile" + - "linkedin_step_interact_post" + wait_mode: + type: "string" + enum: + - "second" + - "minute" + - "hour" + - "day" + wait_time: + type: "number" + nullable: true + exact_datetime: + type: "string" + nullable: true + note: + type: "string" + nullable: true + required: + - "emailer_campaign_id" + - "type" + - "wait_mode" + additionalProperties: false + parameters: [] + responses: + 200: + description: "Success" + content: + application/json: + schema: + type: "object" + properties: + emailer_step: + type: "object" + properties: + id: + type: "string" + emailer_campaign_id: + type: "string" + position: + type: "number" + nullable: true + wait_time: + type: "number" + nullable: true + type: + type: "string" + enum: + - "auto_email" + - "manual_email" + - "call" + - "action_item" + - "linkedin_step_message" + - "linkedin_step_connect" + - "linkedin_step_view_profile" + - "linkedin_step_interact_post" + wait_mode: + type: "string" + enum: + - "second" + - "minute" + - "hour" + - "day" + note: + type: "string" + nullable: true + max_emails_per_day: + type: "number" + nullable: true + exact_datetime: + type: "string" + nullable: true + priority: + type: "string" + nullable: true + auto_skip_in_x_days: + type: "number" + nullable: true + counts: + type: "object" + properties: + active: + type: "number" + nullable: true + paused: + type: "number" + nullable: true + finished: + type: "number" + nullable: true + bounced: + type: "number" + nullable: true + spam_blocked: + type: "number" + nullable: true + hard_bounced: + type: "number" + nullable: true + not_sent: + type: "number" + nullable: true + additionalProperties: false + nullable: true + required: + - "id" + - "emailer_campaign_id" + - "type" + - "wait_mode" + additionalProperties: false + emailer_touch: + type: "object" + properties: + id: + type: "string" + emailer_step_id: + type: "string" + nullable: true + emailer_template_id: + type: "string" + nullable: true + emailer_template: + type: "object" + properties: + id: + type: "string" + name: + type: "string" + nullable: true + user_id: + type: "string" + nullable: true + subject: + type: "string" + nullable: true + archived: + type: "boolean" + nullable: true + created_at: + type: "string" + nullable: true + global: + type: "boolean" + nullable: true + body_text: + type: "string" + nullable: true + folder_id: + type: "string" + nullable: true + body_html: + type: "string" + nullable: true + creation_type: + type: "string" + nullable: true + label_ids: + type: "array" + items: + type: "string" + nullable: true + prompt_id: + type: "string" + nullable: true + required: + - "id" + additionalProperties: false + nullable: true + status: + type: "string" + nullable: true + type: + type: "string" + enum: + - "reply_to_thread" + - "new_thread" + nullable: true + include_signature: + type: "boolean" + nullable: true + has_personalized_opener: + type: "boolean" + nullable: true + personalized_opener_fallback_option: + type: "string" + nullable: true + generic_personalized_opener: + type: "string" + nullable: true + unique_scheduled: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_delivered: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_bounced: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_opened: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_replied: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + bounce_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + open_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + reply_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + demo_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_demoed: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_clicked: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + click_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_unsubscribed: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + opt_out_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_hard_bounced: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_spam_blocked: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + hard_bounce_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + spam_block_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + required: + - "id" + additionalProperties: false + nullable: true + emailer_template: + type: "object" + properties: + id: + type: "string" + name: + type: "string" + nullable: true + user_id: + type: "string" + nullable: true + subject: + type: "string" + nullable: true + archived: + type: "boolean" + nullable: true + created_at: + type: "string" + nullable: true + global: + type: "boolean" + nullable: true + body_text: + type: "string" + nullable: true + folder_id: + type: "string" + nullable: true + body_html: + type: "string" + nullable: true + creation_type: + type: "string" + nullable: true + label_ids: + type: "array" + items: + type: "string" + nullable: true + prompt_id: + type: "string" + nullable: true + required: + - "id" + additionalProperties: false + nullable: true + required: + - "emailer_step" + additionalProperties: false + /v1/emailer_steps/{id}: + delete: + operationId: "deleteEmailerStep" + tags: + - "emailer_steps" + parameters: + - + name: "id" + in: "path" + schema: + type: "string" + required: true + responses: + 200: + description: "Success" + content: + application/json: + schema: + type: "object" + properties: + emailer_step: + type: "object" + properties: + id: + type: "string" + deleted: + type: "boolean" + required: + - "id" + - "deleted" + additionalProperties: false + required: + - "emailer_step" + additionalProperties: false + /v1/emailer_touches/{id}: + put: + operationId: "putEmailerTouch" + tags: + - "emailer_touches" + requestBody: + content: + application/json: + schema: + type: "object" + properties: + id: + type: "string" + emailer_step_id: + type: "string" + nullable: true + emailer_template: + type: "object" + properties: + id: + type: "string" + name: + type: "string" + nullable: true + user_id: + type: "string" + nullable: true + subject: + type: "string" + nullable: true + archived: + type: "boolean" + nullable: true + created_at: + type: "string" + nullable: true + global: + type: "boolean" + nullable: true + body_text: + type: "string" + nullable: true + folder_id: + type: "string" + nullable: true + body_html: + type: "string" + nullable: true + creation_type: + type: "string" + nullable: true + label_ids: + type: "array" + items: + type: "string" + nullable: true + prompt_id: + type: "string" + nullable: true + required: + - "id" + additionalProperties: false + nullable: true + type: + type: "string" + enum: + - "reply_to_thread" + - "new_thread" + nullable: true + required: + - "id" + additionalProperties: false + parameters: + - + name: "id" + in: "path" + schema: + type: "string" + required: true + responses: + 200: + description: "Success" + content: + application/json: + schema: + type: "object" + properties: + emailer_touch: + type: "object" + properties: + id: + type: "string" + emailer_step_id: + type: "string" + nullable: true + emailer_template_id: + type: "string" + nullable: true + emailer_template: + type: "object" + properties: + id: + type: "string" + name: + type: "string" + nullable: true + user_id: + type: "string" + nullable: true + subject: + type: "string" + nullable: true + archived: + type: "boolean" + nullable: true + created_at: + type: "string" + nullable: true + global: + type: "boolean" + nullable: true + body_text: + type: "string" + nullable: true + folder_id: + type: "string" + nullable: true + body_html: + type: "string" + nullable: true + creation_type: + type: "string" + nullable: true + label_ids: + type: "array" + items: + type: "string" + nullable: true + prompt_id: + type: "string" + nullable: true + required: + - "id" + additionalProperties: false + nullable: true + status: + type: "string" + nullable: true + type: + type: "string" + enum: + - "reply_to_thread" + - "new_thread" + nullable: true + include_signature: + type: "boolean" + nullable: true + has_personalized_opener: + type: "boolean" + nullable: true + personalized_opener_fallback_option: + type: "string" + nullable: true + generic_personalized_opener: + type: "string" + nullable: true + unique_scheduled: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_delivered: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_bounced: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_opened: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_replied: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + bounce_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + open_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + reply_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + demo_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_demoed: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_clicked: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + click_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_unsubscribed: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + opt_out_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_hard_bounced: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + unique_spam_blocked: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + hard_bounce_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + spam_block_rate: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + nullable: true + required: + - "id" + additionalProperties: false + required: + - "emailer_touch" + additionalProperties: false + /v1/contacts/{id}: + get: + operationId: "getContact" + tags: + - "contacts" + parameters: + - + name: "id" + in: "path" + schema: + type: "string" + required: true + responses: + 200: + description: "Success" + content: + application/json: + schema: + type: "object" + properties: + contact: + type: "object" + properties: + id: + type: "string" + emailer_campaign_ids: + type: "array" + items: + type: "string" + contact_campaign_statuses: + type: "array" + items: + type: "object" + properties: + id: + type: "string" + send_email_from_email_account_id: + type: "string" + emailer_campaign_id: + type: "string" + required: + - "id" + - "send_email_from_email_account_id" + - "emailer_campaign_id" + additionalProperties: true + required: + - "id" + - "contact_campaign_statuses" + additionalProperties: true + required: + - "contact" + additionalProperties: false + diff --git a/packages/core/remotes/impl/apollo/index.ts b/packages/core/remotes/impl/apollo/index.ts index 3b3a2da77..0686324ce 100644 --- a/packages/core/remotes/impl/apollo/index.ts +++ b/packages/core/remotes/impl/apollo/index.ts @@ -37,7 +37,7 @@ import type { } from '../../categories/engagement/base'; import { AbstractEngagementRemoteClient } from '../../categories/engagement/base'; import { paginator } from '../../utils/paginator'; -import { createApolloClient } from './client'; +import { createApolloClient } from './apollo.openapi'; import { fromApolloAccountToAccount, fromApolloContactCampaignStatusToSequenceState, diff --git a/yarn.lock b/yarn.lock index fd5bbbbc2..95f092341 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6327,6 +6327,7 @@ __metadata: "@types/qs": ^6 "@types/uuid": ^9.0.1 "@zodios/core": ^10.9.6 + "@zodios/openapi": ^10.5.0 async-retry: ^1.3.3 axios: ^1.6.0 csv-parse: ^5.3.5 @@ -8130,6 +8131,19 @@ __metadata: languageName: node linkType: hard +"@zodios/openapi@npm:^10.5.0": + version: 10.5.0 + resolution: "@zodios/openapi@npm:10.5.0" + dependencies: + openapi-types: 12.1.3 + zod-to-json-schema: 3.19.1 + peerDependencies: + "@zodios/core": ">=10.5.2 <11.0.0" + zod: ^3.x + checksum: 1bacab639cc491e3c4e2d42945e9d40e2e1819d2d803ff3fd6ca86ea07812249ff912d54757104787bf5a2472c05359bb254439d9237daab5fae91f596553139 + languageName: node + linkType: hard + "JSONStream@npm:^1.0.4": version: 1.3.5 resolution: "JSONStream@npm:1.3.5" @@ -18529,7 +18543,7 @@ __metadata: languageName: node linkType: hard -"openapi-types@npm:^12.1.3": +"openapi-types@npm:12.1.3, openapi-types@npm:^12.1.3": version: 12.1.3 resolution: "openapi-types@npm:12.1.3" checksum: 7fa5547f87a58d2aa0eba6e91d396f42d7d31bc3ae140e61b5d60b47d2fd068b48776f42407d5a8da7280cf31195aa128c2fc285e8bb871d1105edee5647a0bb @@ -25403,6 +25417,15 @@ __metadata: languageName: node linkType: hard +"zod-to-json-schema@npm:3.19.1": + version: 3.19.1 + resolution: "zod-to-json-schema@npm:3.19.1" + peerDependencies: + zod: ^3.19.0 + checksum: 22c07668e3c28c9d7c9bd3ad04a354ea017b6fc8b4df77ed29d11e42c4c03181612319db374932a1f8b5c37ef861157938dced9d848cad5281ee1540a156995c + languageName: node + linkType: hard + "zod@npm:3.21.4": version: 3.21.4 resolution: "zod@npm:3.21.4" From 792618b92dac7432285b69af6aacfd23755f3df1 Mon Sep 17 00:00:00 2001 From: Tony Xiao Date: Thu, 16 Nov 2023 21:24:55 -0800 Subject: [PATCH 04/22] chore: Use zod-openapi instead of zodios for refs support --- packages/core/package.json | 3 +- .../core/remotes/impl/apollo/apollo.api.ts | 18 + .../impl/apollo/apollo.openapi.gen.d.ts | 556 +--- .../remotes/impl/apollo/apollo.openapi.ts | 335 +-- .../remotes/impl/apollo/apollo.openapi.yaml | 2339 ++++------------- .../core/remotes/impl/apollo/apollo.zodios.ts | 81 + packages/core/remotes/impl/apollo/index.ts | 2 +- packages/core/remotes/impl/apollo/mappers.ts | 2 +- yarn.lock | 10 + 9 files changed, 895 insertions(+), 2451 deletions(-) create mode 100644 packages/core/remotes/impl/apollo/apollo.api.ts create mode 100644 packages/core/remotes/impl/apollo/apollo.zodios.ts diff --git a/packages/core/package.json b/packages/core/package.json index 3889395f8..91e37978f 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -37,7 +37,8 @@ "qs": "^6.11.2", "svix": "^0.84.1", "uuid": "^9.0.0", - "zod": "^3.22.4" + "zod": "^3.22.4", + "zod-openapi": "^2.11.0" }, "devDependencies": { "@tsconfig/node18": "^1.0.1", diff --git a/packages/core/remotes/impl/apollo/apollo.api.ts b/packages/core/remotes/impl/apollo/apollo.api.ts new file mode 100644 index 000000000..99b35bee4 --- /dev/null +++ b/packages/core/remotes/impl/apollo/apollo.api.ts @@ -0,0 +1,18 @@ +import createClient from 'openapi-fetch'; + +import type { paths } from './apollo.openapi.gen'; + +interface ApolloCredentials { + apiKey: string; +} + +export type ApolloApi = ReturnType; +export function createApolloApi(creds: ApolloCredentials) { + return createClient({ + baseUrl: 'https://app.apollo.io/api', + // TODO: Add middleware as this does not work at the moment + body: JSON.stringify({ + api_key: creds.apiKey, + }), + }); +} diff --git a/packages/core/remotes/impl/apollo/apollo.openapi.gen.d.ts b/packages/core/remotes/impl/apollo/apollo.openapi.gen.d.ts index 26b97aee8..a0e5551c6 100644 --- a/packages/core/remotes/impl/apollo/apollo.openapi.gen.d.ts +++ b/packages/core/remotes/impl/apollo/apollo.openapi.gen.d.ts @@ -9,19 +9,19 @@ export interface paths { get: operations["getEmailerCampaign"]; }; "/v1/emailer_campaigns": { - post: operations["postEmailerCampaign"]; + post: operations["createEmailerCampaign"]; }; "/v1/emailer_campaigns/{id}/add_contact_ids": { - post: operations["postEmailerCampaignAddContactIds"]; + post: operations["addContactIdsToEmailerCampaign"]; }; "/v1/emailer_steps": { - post: operations["postEmailerStep"]; + post: operations["createEmailerStep"]; }; "/v1/emailer_steps/{id}": { delete: operations["deleteEmailerStep"]; }; "/v1/emailer_touches/{id}": { - put: operations["putEmailerTouch"]; + put: operations["updateEmailerTouch"]; }; "/v1/contacts/{id}": { get: operations["getContact"]; @@ -30,7 +30,126 @@ export interface paths { export type webhooks = Record; -export type components = Record; +export interface components { + schemas: { + emailer_campaign: { + id: string; + name?: string | null; + /** Format: date-time */ + created_at: string; + /** @enum {string} */ + permissions?: "team_can_use" | "team_can_view" | "private"; + active: boolean; + archived: boolean; + label_ids: string[]; + num_steps?: number | null; + user_id?: string | null; + unique_scheduled?: components["schemas"]["metric"]; + unique_delivered?: components["schemas"]["metric"]; + unique_bounced?: components["schemas"]["metric"]; + unique_opened?: components["schemas"]["metric"]; + unique_replied?: components["schemas"]["metric"]; + unique_demoed?: components["schemas"]["metric"]; + unique_clicked?: components["schemas"]["metric"]; + unique_unsubscribed?: components["schemas"]["metric"]; + bounce_rate?: components["schemas"]["metric"]; + open_rate?: components["schemas"]["metric"]; + click_rate?: components["schemas"]["metric"]; + reply_rate?: components["schemas"]["metric"]; + spam_blocked_rate?: components["schemas"]["metric"]; + opt_out_rate?: components["schemas"]["metric"]; + demo_rate?: components["schemas"]["metric"]; + }; + metric: number | "loading" | null; + emailer_step: { + id: string; + emailer_campaign_id: string; + position?: number | null; + wait_time?: number | null; + type: components["schemas"]["emailer_step_type"]; + wait_mode: components["schemas"]["emailer_step_wait_mode"]; + note?: string | null; + max_emails_per_day?: number | null; + exact_datetime?: string | null; + priority?: string | null; + auto_skip_in_x_days?: number | null; + counts?: ({ + active?: number | null; + paused?: number | null; + finished?: number | null; + bounced?: number | null; + spam_blocked?: number | null; + hard_bounced?: number | null; + not_sent?: number | null; + }) | null; + }; + /** @enum {string} */ + emailer_step_type: "auto_email" | "manual_email" | "call" | "action_item" | "linkedin_step_message" | "linkedin_step_connect" | "linkedin_step_view_profile" | "linkedin_step_interact_post"; + /** @enum {string} */ + emailer_step_wait_mode: "second" | "minute" | "hour" | "day"; + emailer_touch: { + id: string; + emailer_step_id?: string | null; + emailer_template_id?: string | null; + emailer_template?: components["schemas"]["emailer_template"] | null; + status?: string | null; + /** @enum {string|null} */ + type?: "reply_to_thread" | "new_thread"; + include_signature?: boolean | null; + has_personalized_opener?: boolean | null; + personalized_opener_fallback_option?: string | null; + generic_personalized_opener?: string | null; + unique_scheduled?: components["schemas"]["metric"]; + unique_delivered?: components["schemas"]["metric"]; + unique_bounced?: components["schemas"]["metric"]; + unique_opened?: components["schemas"]["metric"]; + unique_replied?: components["schemas"]["metric"]; + bounce_rate?: components["schemas"]["metric"]; + open_rate?: components["schemas"]["metric"]; + reply_rate?: components["schemas"]["metric"]; + demo_rate?: components["schemas"]["metric"]; + unique_demoed?: components["schemas"]["metric"]; + unique_clicked?: components["schemas"]["metric"]; + click_rate?: components["schemas"]["metric"]; + unique_unsubscribed?: components["schemas"]["metric"]; + opt_out_rate?: components["schemas"]["metric"]; + unique_hard_bounced?: components["schemas"]["metric"]; + unique_spam_blocked?: components["schemas"]["metric"]; + hard_bounce_rate?: components["schemas"]["metric"]; + spam_block_rate?: components["schemas"]["metric"]; + }; + emailer_template: { + id: string; + name?: string | null; + user_id?: string | null; + subject?: string | null; + archived?: boolean | null; + /** Format: date-time */ + created_at?: string | null; + global?: boolean | null; + body_text?: string | null; + folder_id?: string | null; + body_html?: string | null; + creation_type?: string | null; + label_ids?: string[] | null; + prompt_id?: string | null; + }; + contact: { + id: string; + emailer_campaign_ids?: string[]; + contact_campaign_statuses: { + id: string; + send_email_from_email_account_id: string; + emailer_campaign_id: string; + }[]; + }; + }; + responses: never; + parameters: never; + requestBodies: never; + headers: never; + pathItems: never; +} export type $defs = Record; @@ -45,127 +164,19 @@ export interface operations { }; }; responses: { - /** @description Success */ 200: { content: { "application/json": { - emailer_campaign: { - id: string; - name?: string | null; - created_at: string; - /** @enum {string} */ - permissions?: "team_can_use" | "team_can_view" | "private"; - active: boolean; - archived: boolean; - label_ids: string[]; - num_steps?: number | null; - user_id?: string | null; - unique_scheduled?: (number | "loading") | null; - unique_delivered?: (number | "loading") | null; - unique_bounced?: (number | "loading") | null; - unique_opened?: (number | "loading") | null; - unique_replied?: (number | "loading") | null; - unique_demoed?: (number | "loading") | null; - unique_clicked?: (number | "loading") | null; - unique_unsubscribed?: (number | "loading") | null; - bounce_rate?: (number | "loading") | null; - open_rate?: (number | "loading") | null; - click_rate?: (number | "loading") | null; - reply_rate?: (number | "loading") | null; - spam_blocked_rate?: (number | "loading") | null; - opt_out_rate?: (number | "loading") | null; - demo_rate?: (number | "loading") | null; - }; - emailer_steps?: (({ - id: string; - emailer_campaign_id: string; - position?: number | null; - wait_time?: number | null; - /** @enum {string} */ - type: "auto_email" | "manual_email" | "call" | "action_item" | "linkedin_step_message" | "linkedin_step_connect" | "linkedin_step_view_profile" | "linkedin_step_interact_post"; - /** @enum {string} */ - wait_mode: "second" | "minute" | "hour" | "day"; - note?: string | null; - max_emails_per_day?: number | null; - exact_datetime?: string | null; - priority?: string | null; - auto_skip_in_x_days?: number | null; - counts?: ({ - active?: number | null; - paused?: number | null; - finished?: number | null; - bounced?: number | null; - spam_blocked?: number | null; - hard_bounced?: number | null; - not_sent?: number | null; - }) | null; - })[]) | null; - emailer_touches?: (({ - id: string; - emailer_step_id?: string | null; - emailer_template_id?: string | null; - emailer_template?: ({ - id: string; - name?: string | null; - user_id?: string | null; - subject?: string | null; - archived?: boolean | null; - created_at?: string | null; - global?: boolean | null; - body_text?: string | null; - folder_id?: string | null; - body_html?: string | null; - creation_type?: string | null; - label_ids?: string[] | null; - prompt_id?: string | null; - }) | null; - status?: string | null; - /** @enum {string|null} */ - type?: "reply_to_thread" | "new_thread" | null; - include_signature?: boolean | null; - has_personalized_opener?: boolean | null; - personalized_opener_fallback_option?: string | null; - generic_personalized_opener?: string | null; - unique_scheduled?: (number | "loading") | null; - unique_delivered?: (number | "loading") | null; - unique_bounced?: (number | "loading") | null; - unique_opened?: (number | "loading") | null; - unique_replied?: (number | "loading") | null; - bounce_rate?: (number | "loading") | null; - open_rate?: (number | "loading") | null; - reply_rate?: (number | "loading") | null; - demo_rate?: (number | "loading") | null; - unique_demoed?: (number | "loading") | null; - unique_clicked?: (number | "loading") | null; - click_rate?: (number | "loading") | null; - unique_unsubscribed?: (number | "loading") | null; - opt_out_rate?: (number | "loading") | null; - unique_hard_bounced?: (number | "loading") | null; - unique_spam_blocked?: (number | "loading") | null; - hard_bounce_rate?: (number | "loading") | null; - spam_block_rate?: (number | "loading") | null; - })[]) | null; - emailer_templates?: (({ - id: string; - name?: string | null; - user_id?: string | null; - subject?: string | null; - archived?: boolean | null; - created_at?: string | null; - global?: boolean | null; - body_text?: string | null; - folder_id?: string | null; - body_html?: string | null; - creation_type?: string | null; - label_ids?: string[] | null; - prompt_id?: string | null; - })[]) | null; + emailer_campaign: components["schemas"]["emailer_campaign"]; + emailer_steps?: components["schemas"]["emailer_step"][] | null; + emailer_touches?: components["schemas"]["emailer_touch"][] | null; + emailer_templates?: components["schemas"]["emailer_template"][] | null; }; }; }; }; }; - postEmailerCampaign: { + createEmailerCampaign: { requestBody?: { content: { "application/json": { @@ -179,127 +190,19 @@ export interface operations { }; }; responses: { - /** @description Success */ 200: { content: { "application/json": { - emailer_campaign: { - id: string; - name?: string | null; - created_at: string; - /** @enum {string} */ - permissions?: "team_can_use" | "team_can_view" | "private"; - active: boolean; - archived: boolean; - label_ids: string[]; - num_steps?: number | null; - user_id?: string | null; - unique_scheduled?: (number | "loading") | null; - unique_delivered?: (number | "loading") | null; - unique_bounced?: (number | "loading") | null; - unique_opened?: (number | "loading") | null; - unique_replied?: (number | "loading") | null; - unique_demoed?: (number | "loading") | null; - unique_clicked?: (number | "loading") | null; - unique_unsubscribed?: (number | "loading") | null; - bounce_rate?: (number | "loading") | null; - open_rate?: (number | "loading") | null; - click_rate?: (number | "loading") | null; - reply_rate?: (number | "loading") | null; - spam_blocked_rate?: (number | "loading") | null; - opt_out_rate?: (number | "loading") | null; - demo_rate?: (number | "loading") | null; - }; - emailer_steps?: (({ - id: string; - emailer_campaign_id: string; - position?: number | null; - wait_time?: number | null; - /** @enum {string} */ - type: "auto_email" | "manual_email" | "call" | "action_item" | "linkedin_step_message" | "linkedin_step_connect" | "linkedin_step_view_profile" | "linkedin_step_interact_post"; - /** @enum {string} */ - wait_mode: "second" | "minute" | "hour" | "day"; - note?: string | null; - max_emails_per_day?: number | null; - exact_datetime?: string | null; - priority?: string | null; - auto_skip_in_x_days?: number | null; - counts?: ({ - active?: number | null; - paused?: number | null; - finished?: number | null; - bounced?: number | null; - spam_blocked?: number | null; - hard_bounced?: number | null; - not_sent?: number | null; - }) | null; - })[]) | null; - emailer_touches?: (({ - id: string; - emailer_step_id?: string | null; - emailer_template_id?: string | null; - emailer_template?: ({ - id: string; - name?: string | null; - user_id?: string | null; - subject?: string | null; - archived?: boolean | null; - created_at?: string | null; - global?: boolean | null; - body_text?: string | null; - folder_id?: string | null; - body_html?: string | null; - creation_type?: string | null; - label_ids?: string[] | null; - prompt_id?: string | null; - }) | null; - status?: string | null; - /** @enum {string|null} */ - type?: "reply_to_thread" | "new_thread" | null; - include_signature?: boolean | null; - has_personalized_opener?: boolean | null; - personalized_opener_fallback_option?: string | null; - generic_personalized_opener?: string | null; - unique_scheduled?: (number | "loading") | null; - unique_delivered?: (number | "loading") | null; - unique_bounced?: (number | "loading") | null; - unique_opened?: (number | "loading") | null; - unique_replied?: (number | "loading") | null; - bounce_rate?: (number | "loading") | null; - open_rate?: (number | "loading") | null; - reply_rate?: (number | "loading") | null; - demo_rate?: (number | "loading") | null; - unique_demoed?: (number | "loading") | null; - unique_clicked?: (number | "loading") | null; - click_rate?: (number | "loading") | null; - unique_unsubscribed?: (number | "loading") | null; - opt_out_rate?: (number | "loading") | null; - unique_hard_bounced?: (number | "loading") | null; - unique_spam_blocked?: (number | "loading") | null; - hard_bounce_rate?: (number | "loading") | null; - spam_block_rate?: (number | "loading") | null; - })[]) | null; - emailer_templates?: (({ - id: string; - name?: string | null; - user_id?: string | null; - subject?: string | null; - archived?: boolean | null; - created_at?: string | null; - global?: boolean | null; - body_text?: string | null; - folder_id?: string | null; - body_html?: string | null; - creation_type?: string | null; - label_ids?: string[] | null; - prompt_id?: string | null; - })[]) | null; + emailer_campaign: components["schemas"]["emailer_campaign"]; + emailer_steps?: components["schemas"]["emailer_step"][] | null; + emailer_touches?: components["schemas"]["emailer_touch"][] | null; + emailer_templates?: components["schemas"]["emailer_template"][] | null; }; }; }; }; }; - postEmailerCampaignAddContactIds: { + addContactIdsToEmailerCampaign: { parameters: { path: { id: string; @@ -316,38 +219,24 @@ export interface operations { }; }; responses: { - /** @description Success */ 200: { content: { "application/json": { - contacts: { - id: string; - emailer_campaign_ids?: string[]; - contact_campaign_statuses: { - id: string; - send_email_from_email_account_id: string; - emailer_campaign_id: string; - [key: string]: unknown; - }[]; - [key: string]: unknown; - }[]; - [key: string]: unknown; + contacts: components["schemas"]["contact"][]; }; }; }; }; }; - postEmailerStep: { + createEmailerStep: { requestBody?: { content: { "application/json": { emailer_campaign_id: string; priority?: string | null; position?: number | null; - /** @enum {string} */ - type: "auto_email" | "manual_email" | "call" | "action_item" | "linkedin_step_message" | "linkedin_step_connect" | "linkedin_step_view_profile" | "linkedin_step_interact_post"; - /** @enum {string} */ - wait_mode: "second" | "minute" | "hour" | "day"; + type: components["schemas"]["emailer_step_type"]; + wait_mode: components["schemas"]["emailer_step_wait_mode"]; wait_time?: number | null; exact_datetime?: string | null; note?: string | null; @@ -355,94 +244,12 @@ export interface operations { }; }; responses: { - /** @description Success */ 200: { content: { "application/json": { - emailer_step: { - id: string; - emailer_campaign_id: string; - position?: number | null; - wait_time?: number | null; - /** @enum {string} */ - type: "auto_email" | "manual_email" | "call" | "action_item" | "linkedin_step_message" | "linkedin_step_connect" | "linkedin_step_view_profile" | "linkedin_step_interact_post"; - /** @enum {string} */ - wait_mode: "second" | "minute" | "hour" | "day"; - note?: string | null; - max_emails_per_day?: number | null; - exact_datetime?: string | null; - priority?: string | null; - auto_skip_in_x_days?: number | null; - counts?: ({ - active?: number | null; - paused?: number | null; - finished?: number | null; - bounced?: number | null; - spam_blocked?: number | null; - hard_bounced?: number | null; - not_sent?: number | null; - }) | null; - }; - emailer_touch?: ({ - id: string; - emailer_step_id?: string | null; - emailer_template_id?: string | null; - emailer_template?: ({ - id: string; - name?: string | null; - user_id?: string | null; - subject?: string | null; - archived?: boolean | null; - created_at?: string | null; - global?: boolean | null; - body_text?: string | null; - folder_id?: string | null; - body_html?: string | null; - creation_type?: string | null; - label_ids?: string[] | null; - prompt_id?: string | null; - }) | null; - status?: string | null; - /** @enum {string|null} */ - type?: "reply_to_thread" | "new_thread" | null; - include_signature?: boolean | null; - has_personalized_opener?: boolean | null; - personalized_opener_fallback_option?: string | null; - generic_personalized_opener?: string | null; - unique_scheduled?: (number | "loading") | null; - unique_delivered?: (number | "loading") | null; - unique_bounced?: (number | "loading") | null; - unique_opened?: (number | "loading") | null; - unique_replied?: (number | "loading") | null; - bounce_rate?: (number | "loading") | null; - open_rate?: (number | "loading") | null; - reply_rate?: (number | "loading") | null; - demo_rate?: (number | "loading") | null; - unique_demoed?: (number | "loading") | null; - unique_clicked?: (number | "loading") | null; - click_rate?: (number | "loading") | null; - unique_unsubscribed?: (number | "loading") | null; - opt_out_rate?: (number | "loading") | null; - unique_hard_bounced?: (number | "loading") | null; - unique_spam_blocked?: (number | "loading") | null; - hard_bounce_rate?: (number | "loading") | null; - spam_block_rate?: (number | "loading") | null; - }) | null; - emailer_template?: ({ - id: string; - name?: string | null; - user_id?: string | null; - subject?: string | null; - archived?: boolean | null; - created_at?: string | null; - global?: boolean | null; - body_text?: string | null; - folder_id?: string | null; - body_html?: string | null; - creation_type?: string | null; - label_ids?: string[] | null; - prompt_id?: string | null; - }) | null; + emailer_step: components["schemas"]["emailer_step"]; + emailer_touch?: components["schemas"]["emailer_touch"] | null; + emailer_template?: components["schemas"]["emailer_template"] | null; }; }; }; @@ -455,7 +262,6 @@ export interface operations { }; }; responses: { - /** @description Success */ 200: { content: { "application/json": { @@ -468,7 +274,7 @@ export interface operations { }; }; }; - putEmailerTouch: { + updateEmailerTouch: { parameters: { path: { id: string; @@ -479,76 +285,17 @@ export interface operations { "application/json": { id: string; emailer_step_id?: string | null; - emailer_template?: ({ - id: string; - name?: string | null; - user_id?: string | null; - subject?: string | null; - archived?: boolean | null; - created_at?: string | null; - global?: boolean | null; - body_text?: string | null; - folder_id?: string | null; - body_html?: string | null; - creation_type?: string | null; - label_ids?: string[] | null; - prompt_id?: string | null; - }) | null; + emailer_template?: components["schemas"]["emailer_template"] | null; /** @enum {string|null} */ - type?: "reply_to_thread" | "new_thread" | null; + type?: "reply_to_thread" | "new_thread"; }; }; }; responses: { - /** @description Success */ 200: { content: { "application/json": { - emailer_touch: { - id: string; - emailer_step_id?: string | null; - emailer_template_id?: string | null; - emailer_template?: ({ - id: string; - name?: string | null; - user_id?: string | null; - subject?: string | null; - archived?: boolean | null; - created_at?: string | null; - global?: boolean | null; - body_text?: string | null; - folder_id?: string | null; - body_html?: string | null; - creation_type?: string | null; - label_ids?: string[] | null; - prompt_id?: string | null; - }) | null; - status?: string | null; - /** @enum {string|null} */ - type?: "reply_to_thread" | "new_thread" | null; - include_signature?: boolean | null; - has_personalized_opener?: boolean | null; - personalized_opener_fallback_option?: string | null; - generic_personalized_opener?: string | null; - unique_scheduled?: (number | "loading") | null; - unique_delivered?: (number | "loading") | null; - unique_bounced?: (number | "loading") | null; - unique_opened?: (number | "loading") | null; - unique_replied?: (number | "loading") | null; - bounce_rate?: (number | "loading") | null; - open_rate?: (number | "loading") | null; - reply_rate?: (number | "loading") | null; - demo_rate?: (number | "loading") | null; - unique_demoed?: (number | "loading") | null; - unique_clicked?: (number | "loading") | null; - click_rate?: (number | "loading") | null; - unique_unsubscribed?: (number | "loading") | null; - opt_out_rate?: (number | "loading") | null; - unique_hard_bounced?: (number | "loading") | null; - unique_spam_blocked?: (number | "loading") | null; - hard_bounce_rate?: (number | "loading") | null; - spam_block_rate?: (number | "loading") | null; - }; + emailer_touch: components["schemas"]["emailer_touch"]; }; }; }; @@ -561,21 +308,10 @@ export interface operations { }; }; responses: { - /** @description Success */ 200: { content: { "application/json": { - contact: { - id: string; - emailer_campaign_ids?: string[]; - contact_campaign_statuses: { - id: string; - send_email_from_email_account_id: string; - emailer_campaign_id: string; - [key: string]: unknown; - }[]; - [key: string]: unknown; - }; + contact: components["schemas"]["contact"]; }; }; }; diff --git a/packages/core/remotes/impl/apollo/apollo.openapi.ts b/packages/core/remotes/impl/apollo/apollo.openapi.ts index fadf71497..04043284c 100644 --- a/packages/core/remotes/impl/apollo/apollo.openapi.ts +++ b/packages/core/remotes/impl/apollo/apollo.openapi.ts @@ -1,20 +1,21 @@ -import { extendApi } from '@anatine/zod-openapi'; -import { Zodios } from '@zodios/core'; -import { openApiBuilder } from '@zodios/openapi'; -import type { AxiosRequestConfig } from 'axios'; import z from 'zod'; -import { defineApi } from '../../utils/zodios-api-shorthand'; +import { createDocument, extendZodWithOpenApi } from 'zod-openapi'; + +extendZodWithOpenApi(z); /** * TODO: type the string validation better. This is technically an enum of 'loading' values * for some reason, but there's no clear documentation on what these can be. */ -export const apolloMetric = z.union([z.number(), z.literal('loading')]).nullish(); +export const apolloMetric = z + .union([z.number(), z.literal('loading')]) + .nullish() + .openapi({ ref: 'metric' }); /** aka Sequence */ export type ApolloEmailerCampaign = z.infer; -export const apolloEmailerCampaign = extendApi( - z.object({ +export const apolloEmailerCampaign = z + .object({ id: z.string(), name: z.string().nullish(), created_at: z.string().datetime(), @@ -40,9 +41,7 @@ export const apolloEmailerCampaign = extendApi( opt_out_rate: apolloMetric, demo_rate: apolloMetric, }) - // TODO: Configure json import in the future - // { example: require('./examples/emailer-campaign.example.json') } -); + .openapi({ ref: 'emailer_campaign' }); /** Aka CreateSequence */ export type ApolloCreateEmailerCampaign = z.infer; @@ -78,47 +77,51 @@ export const apolloContact = z .passthrough() ), }) - .passthrough(); + .passthrough() + .openapi({ ref: 'contact' }); export type ApolloEmailerCampaignAddContactIdsResponse = z.infer; export const apolloEmailerCampaignAddContactIdsResponse = z.object({ contacts: z.array(apolloContact) }).passthrough(); /** Aka SequenceStep */ export type ApolloEmailerStep = z.infer; -export const apolloEmailerStep = z.object({ - id: z.string(), - emailer_campaign_id: z.string(), - position: z.number().nullish(), - wait_time: z.number().nullish(), - - type: z.enum([ - 'auto_email', - 'manual_email', - 'call', - 'action_item', - 'linkedin_step_message', - 'linkedin_step_connect', - 'linkedin_step_view_profile', - 'linkedin_step_interact_post', - ]), - wait_mode: z.enum(['second', 'minute', 'hour', 'day']), - note: z.string().nullish(), - max_emails_per_day: z.number().nullish(), - exact_datetime: z.string().nullish(), - priority: z.string().nullish(), - auto_skip_in_x_days: z.number().nullish(), - counts: z - .object({ - active: z.number().nullish(), - paused: z.number().nullish(), - finished: z.number().nullish(), - bounced: z.number().nullish(), - spam_blocked: z.number().nullish(), - hard_bounced: z.number().nullish(), - not_sent: z.number().nullish(), - }) - .nullish(), -}); +export const apolloEmailerStep = z + .object({ + id: z.string(), + emailer_campaign_id: z.string(), + position: z.number().nullish(), + wait_time: z.number().nullish(), + type: z + .enum([ + 'auto_email', + 'manual_email', + 'call', + 'action_item', + 'linkedin_step_message', + 'linkedin_step_connect', + 'linkedin_step_view_profile', + 'linkedin_step_interact_post', + ]) + .openapi({ ref: 'emailer_step_type' }), + wait_mode: z.enum(['second', 'minute', 'hour', 'day']).openapi({ ref: 'emailer_step_wait_mode' }), + note: z.string().nullish(), + max_emails_per_day: z.number().nullish(), + exact_datetime: z.string().nullish(), + priority: z.string().nullish(), + auto_skip_in_x_days: z.number().nullish(), + counts: z + .object({ + active: z.number().nullish(), + paused: z.number().nullish(), + finished: z.number().nullish(), + bounced: z.number().nullish(), + spam_blocked: z.number().nullish(), + hard_bounced: z.number().nullish(), + not_sent: z.number().nullish(), + }) + .nullish(), + }) + .openapi({ ref: 'emailer_step' }); export type ApolloCreateEmailerStep = z.infer; export const apolloCreateEmailerStep = apolloEmailerStep.pick({ @@ -135,54 +138,58 @@ export const apolloCreateEmailerStep = apolloEmailerStep.pick({ /** aka EmailTemplate */ export type ApolloEmailerTemplate = z.infer; -export const apolloEmailerTemplate = z.object({ - id: z.string(), - name: z.string().nullish(), - user_id: z.string().nullish(), - subject: z.string().nullish(), - archived: z.boolean().nullish(), - created_at: z.string().datetime().nullish(), - global: z.boolean().nullish(), - body_text: z.string().nullish(), - folder_id: z.string().nullish(), - body_html: z.string().nullish(), - creation_type: z.string().nullish(), - label_ids: z.array(z.string()).nullish(), - prompt_id: z.string().nullish(), -}); +export const apolloEmailerTemplate = z + .object({ + id: z.string(), + name: z.string().nullish(), + user_id: z.string().nullish(), + subject: z.string().nullish(), + archived: z.boolean().nullish(), + created_at: z.string().datetime().nullish(), + global: z.boolean().nullish(), + body_text: z.string().nullish(), + folder_id: z.string().nullish(), + body_html: z.string().nullish(), + creation_type: z.string().nullish(), + label_ids: z.array(z.string()).nullish(), + prompt_id: z.string().nullish(), + }) + .openapi({ ref: 'emailer_template' }); /** Aka SequenceTemplate */ export type ApolloEmailerTouch = z.infer; -export const apolloEmailerTouch = z.object({ - id: z.string(), - emailer_step_id: z.string().nullish(), - emailer_template_id: z.string().nullish(), - emailer_template: apolloEmailerTemplate.nullish(), - status: z.string().nullish(), - type: z.enum(['reply_to_thread', 'new_thread']).nullish(), - include_signature: z.boolean().nullish(), - has_personalized_opener: z.boolean().nullish(), - personalized_opener_fallback_option: z.string().nullish(), - generic_personalized_opener: z.string().nullish(), - unique_scheduled: apolloMetric, - unique_delivered: apolloMetric, - unique_bounced: apolloMetric, - unique_opened: apolloMetric, - unique_replied: apolloMetric, - bounce_rate: apolloMetric, - open_rate: apolloMetric, - reply_rate: apolloMetric, - demo_rate: apolloMetric, - unique_demoed: apolloMetric, - unique_clicked: apolloMetric, - click_rate: apolloMetric, - unique_unsubscribed: apolloMetric, - opt_out_rate: apolloMetric, - unique_hard_bounced: apolloMetric, - unique_spam_blocked: apolloMetric, - hard_bounce_rate: apolloMetric, - spam_block_rate: apolloMetric, -}); +export const apolloEmailerTouch = z + .object({ + id: z.string(), + emailer_step_id: z.string().nullish(), + emailer_template_id: z.string().nullish(), + emailer_template: apolloEmailerTemplate.nullish(), + status: z.string().nullish(), + type: z.enum(['reply_to_thread', 'new_thread']).nullish(), + include_signature: z.boolean().nullish(), + has_personalized_opener: z.boolean().nullish(), + personalized_opener_fallback_option: z.string().nullish(), + generic_personalized_opener: z.string().nullish(), + unique_scheduled: apolloMetric, + unique_delivered: apolloMetric, + unique_bounced: apolloMetric, + unique_opened: apolloMetric, + unique_replied: apolloMetric, + bounce_rate: apolloMetric, + open_rate: apolloMetric, + reply_rate: apolloMetric, + demo_rate: apolloMetric, + unique_demoed: apolloMetric, + unique_clicked: apolloMetric, + click_rate: apolloMetric, + unique_unsubscribed: apolloMetric, + opt_out_rate: apolloMetric, + unique_hard_bounced: apolloMetric, + unique_spam_blocked: apolloMetric, + hard_bounce_rate: apolloMetric, + spam_block_rate: apolloMetric, + }) + .openapi({ ref: 'emailer_touch' }); export const apolloEmailerTouchUpdate = apolloEmailerTouch.pick({ id: true, @@ -198,67 +205,101 @@ export const apolloEmailerCampaignResponse = z.object({ emailer_templates: z.array(apolloEmailerTemplate).nullish(), }); -export const apolloApi = defineApi({ - 'GET EmailerCampaign': { - path: '/v1/emailer_campaigns/:id', - response: apolloEmailerCampaignResponse, - }, - 'POST EmailerCampaign': { - path: '/v1/emailer_campaigns', - body: apolloCreateEmailerCampaign, - response: apolloEmailerCampaignResponse, - }, - 'POST EmailerCampaignAddContactIds': { - path: '/v1/emailer_campaigns/:id/add_contact_ids', - body: apolloEmailerCampaignAddContactIds, - response: apolloEmailerCampaignAddContactIdsResponse, - }, - 'POST EmailerStep': { - path: '/v1/emailer_steps', - body: apolloCreateEmailerStep, - response: z.object({ - emailer_step: apolloEmailerStep, - // Null for templatable steps (e.g. tasks / calls) - emailer_touch: apolloEmailerTouch.nullish(), - emailer_template: apolloEmailerTemplate.nullish(), - }), - }, - 'DELETE EmailerStep': { - path: '/v1/emailer_steps/:id', - response: z.object({ emailer_step: z.object({ id: z.string(), deleted: z.boolean() }) }), - }, - 'PUT EmailerTouch': { - path: '/v1/emailer_touches/:id', - body: apolloEmailerTouchUpdate, - response: z.object({ emailer_touch: apolloEmailerTouch }), - }, - 'GET Contact': { - path: '/v1/contacts/:id', - response: z.object({ contact: apolloContact }), - }, -}); - -export function createApolloClient(cfg: { apiKey: string; axiosConfig?: AxiosRequestConfig }) { - return new Zodios(apolloApi, { - axiosConfig: { - baseURL: 'https://app.apollo.io/api', - params: { api_key: cfg.apiKey }, - ...cfg.axiosConfig, +export function outputOpenApi() { + return createDocument({ + openapi: '3.1.0', + info: { title: 'Apollo API', version: '0.0.0' }, + servers: [{ url: 'https://app.apollo.io/api' }], + paths: { + '/v1/emailer_campaigns/{id}': { + get: { + operationId: 'getEmailerCampaign', + requestParams: { path: z.object({ id: z.string() }) }, + responses: { + 200: { content: { 'application/json': { schema: apolloEmailerCampaignResponse } } }, + }, + }, + }, + '/v1/emailer_campaigns': { + post: { + operationId: 'createEmailerCampaign', + requestBody: { content: { 'application/json': { schema: apolloCreateEmailerCampaign } } }, + responses: { + 200: { content: { 'application/json': { schema: apolloEmailerCampaignResponse } } }, + }, + }, + }, + '/v1/emailer_campaigns/{id}/add_contact_ids': { + post: { + operationId: 'addContactIdsToEmailerCampaign', + requestParams: { path: z.object({ id: z.string() }) }, + requestBody: { content: { 'application/json': { schema: apolloEmailerCampaignAddContactIds } } }, + responses: { + 200: { content: { 'application/json': { schema: apolloEmailerCampaignAddContactIdsResponse } } }, + }, + }, + }, + '/v1/emailer_steps': { + post: { + operationId: 'createEmailerStep', + requestBody: { content: { 'application/json': { schema: apolloCreateEmailerStep } } }, + responses: { + 200: { + content: { + 'application/json': { + schema: z.object({ + emailer_step: apolloEmailerStep, + // Null for templatable steps (e.g. tasks / calls) + emailer_touch: apolloEmailerTouch.nullish(), + emailer_template: apolloEmailerTemplate.nullish(), + }), + }, + }, + }, + }, + }, + }, + '/v1/emailer_steps/{id}': { + delete: { + operationId: 'deleteEmailerStep', + requestParams: { path: z.object({ id: z.string() }) }, + responses: { + 200: { + content: { + 'application/json': { + schema: z.object({ emailer_step: z.object({ id: z.string(), deleted: z.boolean() }) }), + }, + }, + }, + }, + }, + }, + '/v1/emailer_touches/{id}': { + put: { + operationId: 'updateEmailerTouch', + requestParams: { path: z.object({ id: z.string() }) }, + requestBody: { content: { 'application/json': { schema: apolloEmailerTouchUpdate } } }, + responses: { + 200: { content: { 'application/json': { schema: z.object({ emailer_touch: apolloEmailerTouch }) } } }, + }, + }, + }, + '/v1/contacts/{id}': { + get: { + operationId: 'getContact', + requestParams: { path: z.object({ id: z.string() }) }, + responses: { + 200: { content: { 'application/json': { schema: z.object({ contact: apolloContact }) } } }, + }, + }, + }, }, }); } -export function outputOpenApi() { - return openApiBuilder({ - title: 'Apollo API', - version: '0.0.0', - }) - .addServer({ url: 'https://app.apollo.io/api' }) - .addPublicApi(apolloApi) - .build(); -} - if (require.main === module) { + // eslint-disable-next-line no-console + // console.log(JSON.stringify(outputOpenApi(), null, 2)); // eslint-disable-next-line no-console console.log(JSON.stringify(outputOpenApi(), null, 2)); } diff --git a/packages/core/remotes/impl/apollo/apollo.openapi.yaml b/packages/core/remotes/impl/apollo/apollo.openapi.yaml index 79e6343c8..8c5a9fc23 100644 --- a/packages/core/remotes/impl/apollo/apollo.openapi.yaml +++ b/packages/core/remotes/impl/apollo/apollo.openapi.yaml @@ -1,5 +1,5 @@ --- - openapi: "3.0.0" + openapi: "3.1.0" info: title: "Apollo API" version: "0.0.0" @@ -10,580 +10,45 @@ /v1/emailer_campaigns/{id}: get: operationId: "getEmailerCampaign" - tags: - - "emailer_campaigns" parameters: - - name: "id" in: "path" + name: "id" schema: type: "string" required: true responses: 200: - description: "Success" content: application/json: schema: type: "object" properties: emailer_campaign: - type: "object" - properties: - id: - type: "string" - name: - type: "string" - nullable: true - created_at: - type: "string" - permissions: - type: "string" - enum: - - "team_can_use" - - "team_can_view" - - "private" - active: - type: "boolean" - archived: - type: "boolean" - label_ids: - type: "array" - items: - type: "string" - num_steps: - type: "number" - nullable: true - user_id: - type: "string" - nullable: true - unique_scheduled: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_delivered: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_bounced: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_opened: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_replied: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_demoed: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_clicked: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_unsubscribed: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - bounce_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - open_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - click_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - reply_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - spam_blocked_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - opt_out_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - demo_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - required: - - "id" - - "created_at" - - "active" - - "archived" - - "label_ids" - additionalProperties: false + $ref: "#/components/schemas/emailer_campaign" emailer_steps: - type: "array" + type: + - "array" + - "null" items: - type: "object" - properties: - id: - type: "string" - emailer_campaign_id: - type: "string" - position: - type: "number" - nullable: true - wait_time: - type: "number" - nullable: true - type: - type: "string" - enum: - - "auto_email" - - "manual_email" - - "call" - - "action_item" - - "linkedin_step_message" - - "linkedin_step_connect" - - "linkedin_step_view_profile" - - "linkedin_step_interact_post" - wait_mode: - type: "string" - enum: - - "second" - - "minute" - - "hour" - - "day" - note: - type: "string" - nullable: true - max_emails_per_day: - type: "number" - nullable: true - exact_datetime: - type: "string" - nullable: true - priority: - type: "string" - nullable: true - auto_skip_in_x_days: - type: "number" - nullable: true - counts: - type: "object" - properties: - active: - type: "number" - nullable: true - paused: - type: "number" - nullable: true - finished: - type: "number" - nullable: true - bounced: - type: "number" - nullable: true - spam_blocked: - type: "number" - nullable: true - hard_bounced: - type: "number" - nullable: true - not_sent: - type: "number" - nullable: true - additionalProperties: false - nullable: true - required: - - "id" - - "emailer_campaign_id" - - "type" - - "wait_mode" - additionalProperties: false - nullable: true + $ref: "#/components/schemas/emailer_step" emailer_touches: - type: "array" + type: + - "array" + - "null" items: - type: "object" - properties: - id: - type: "string" - emailer_step_id: - type: "string" - nullable: true - emailer_template_id: - type: "string" - nullable: true - emailer_template: - type: "object" - properties: - id: - type: "string" - name: - type: "string" - nullable: true - user_id: - type: "string" - nullable: true - subject: - type: "string" - nullable: true - archived: - type: "boolean" - nullable: true - created_at: - type: "string" - nullable: true - global: - type: "boolean" - nullable: true - body_text: - type: "string" - nullable: true - folder_id: - type: "string" - nullable: true - body_html: - type: "string" - nullable: true - creation_type: - type: "string" - nullable: true - label_ids: - type: "array" - items: - type: "string" - nullable: true - prompt_id: - type: "string" - nullable: true - required: - - "id" - additionalProperties: false - nullable: true - status: - type: "string" - nullable: true - type: - type: "string" - enum: - - "reply_to_thread" - - "new_thread" - nullable: true - include_signature: - type: "boolean" - nullable: true - has_personalized_opener: - type: "boolean" - nullable: true - personalized_opener_fallback_option: - type: "string" - nullable: true - generic_personalized_opener: - type: "string" - nullable: true - unique_scheduled: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_delivered: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_bounced: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_opened: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_replied: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - bounce_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - open_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - reply_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - demo_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_demoed: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_clicked: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - click_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_unsubscribed: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - opt_out_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_hard_bounced: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_spam_blocked: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - hard_bounce_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - spam_block_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - required: - - "id" - additionalProperties: false - nullable: true + $ref: "#/components/schemas/emailer_touch" emailer_templates: - type: "array" + type: + - "array" + - "null" items: - type: "object" - properties: - id: - type: "string" - name: - type: "string" - nullable: true - user_id: - type: "string" - nullable: true - subject: - type: "string" - nullable: true - archived: - type: "boolean" - nullable: true - created_at: - type: "string" - nullable: true - global: - type: "boolean" - nullable: true - body_text: - type: "string" - nullable: true - folder_id: - type: "string" - nullable: true - body_html: - type: "string" - nullable: true - creation_type: - type: "string" - nullable: true - label_ids: - type: "array" - items: - type: "string" - nullable: true - prompt_id: - type: "string" - nullable: true - required: - - "id" - additionalProperties: false - nullable: true + $ref: "#/components/schemas/emailer_template" required: - "emailer_campaign" - additionalProperties: false /v1/emailer_campaigns: post: - operationId: "postEmailerCampaign" - tags: - - "emailer_campaigns" + operationId: "createEmailerCampaign" requestBody: content: application/json: @@ -591,8 +56,9 @@ type: "object" properties: name: - type: "string" - nullable: true + type: + - "string" + - "null" permissions: type: "string" enum: @@ -600,581 +66,54 @@ - "team_can_view" - "private" user_id: - type: "string" - nullable: true + type: + - "string" + - "null" label_ids: type: "array" items: type: "string" active: type: "boolean" - additionalProperties: false - parameters: [] responses: 200: - description: "Success" content: application/json: schema: type: "object" properties: emailer_campaign: - type: "object" - properties: - id: - type: "string" - name: - type: "string" - nullable: true - created_at: - type: "string" - permissions: - type: "string" - enum: - - "team_can_use" - - "team_can_view" - - "private" - active: - type: "boolean" - archived: - type: "boolean" - label_ids: - type: "array" - items: - type: "string" - num_steps: - type: "number" - nullable: true - user_id: - type: "string" - nullable: true - unique_scheduled: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_delivered: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_bounced: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_opened: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_replied: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_demoed: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_clicked: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_unsubscribed: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - bounce_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - open_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - click_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - reply_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - spam_blocked_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - opt_out_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - demo_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - required: - - "id" - - "created_at" - - "active" - - "archived" - - "label_ids" - additionalProperties: false + $ref: "#/components/schemas/emailer_campaign" emailer_steps: - type: "array" + type: + - "array" + - "null" items: - type: "object" - properties: - id: - type: "string" - emailer_campaign_id: - type: "string" - position: - type: "number" - nullable: true - wait_time: - type: "number" - nullable: true - type: - type: "string" - enum: - - "auto_email" - - "manual_email" - - "call" - - "action_item" - - "linkedin_step_message" - - "linkedin_step_connect" - - "linkedin_step_view_profile" - - "linkedin_step_interact_post" - wait_mode: - type: "string" - enum: - - "second" - - "minute" - - "hour" - - "day" - note: - type: "string" - nullable: true - max_emails_per_day: - type: "number" - nullable: true - exact_datetime: - type: "string" - nullable: true - priority: - type: "string" - nullable: true - auto_skip_in_x_days: - type: "number" - nullable: true - counts: - type: "object" - properties: - active: - type: "number" - nullable: true - paused: - type: "number" - nullable: true - finished: - type: "number" - nullable: true - bounced: - type: "number" - nullable: true - spam_blocked: - type: "number" - nullable: true - hard_bounced: - type: "number" - nullable: true - not_sent: - type: "number" - nullable: true - additionalProperties: false - nullable: true - required: - - "id" - - "emailer_campaign_id" - - "type" - - "wait_mode" - additionalProperties: false - nullable: true + $ref: "#/components/schemas/emailer_step" emailer_touches: - type: "array" + type: + - "array" + - "null" items: - type: "object" - properties: - id: - type: "string" - emailer_step_id: - type: "string" - nullable: true - emailer_template_id: - type: "string" - nullable: true - emailer_template: - type: "object" - properties: - id: - type: "string" - name: - type: "string" - nullable: true - user_id: - type: "string" - nullable: true - subject: - type: "string" - nullable: true - archived: - type: "boolean" - nullable: true - created_at: - type: "string" - nullable: true - global: - type: "boolean" - nullable: true - body_text: - type: "string" - nullable: true - folder_id: - type: "string" - nullable: true - body_html: - type: "string" - nullable: true - creation_type: - type: "string" - nullable: true - label_ids: - type: "array" - items: - type: "string" - nullable: true - prompt_id: - type: "string" - nullable: true - required: - - "id" - additionalProperties: false - nullable: true - status: - type: "string" - nullable: true - type: - type: "string" - enum: - - "reply_to_thread" - - "new_thread" - nullable: true - include_signature: - type: "boolean" - nullable: true - has_personalized_opener: - type: "boolean" - nullable: true - personalized_opener_fallback_option: - type: "string" - nullable: true - generic_personalized_opener: - type: "string" - nullable: true - unique_scheduled: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_delivered: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_bounced: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_opened: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_replied: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - bounce_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - open_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - reply_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - demo_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_demoed: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_clicked: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - click_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_unsubscribed: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - opt_out_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_hard_bounced: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_spam_blocked: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - hard_bounce_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - spam_block_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - required: - - "id" - additionalProperties: false - nullable: true + $ref: "#/components/schemas/emailer_touch" emailer_templates: - type: "array" + type: + - "array" + - "null" items: - type: "object" - properties: - id: - type: "string" - name: - type: "string" - nullable: true - user_id: - type: "string" - nullable: true - subject: - type: "string" - nullable: true - archived: - type: "boolean" - nullable: true - created_at: - type: "string" - nullable: true - global: - type: "boolean" - nullable: true - body_text: - type: "string" - nullable: true - folder_id: - type: "string" - nullable: true - body_html: - type: "string" - nullable: true - creation_type: - type: "string" - nullable: true - label_ids: - type: "array" - items: - type: "string" - nullable: true - prompt_id: - type: "string" - nullable: true - required: - - "id" - additionalProperties: false - nullable: true + $ref: "#/components/schemas/emailer_template" required: - "emailer_campaign" - additionalProperties: false /v1/emailer_campaigns/{id}/add_contact_ids: post: - operationId: "postEmailerCampaignAddContactIds" - tags: - - "add_contact_ids" + operationId: "addContactIdsToEmailerCampaign" + parameters: + - + in: "path" + name: "id" + schema: + type: "string" + required: true requestBody: content: application/json: @@ -1188,25 +127,18 @@ emailer_campaign_id: type: "string" send_email_from_email_account_id: - type: "string" - nullable: true + type: + - "string" + - "null" userId: - type: "string" - nullable: true + type: + - "string" + - "null" required: - "contact_ids" - "emailer_campaign_id" - additionalProperties: false - parameters: - - - name: "id" - in: "path" - schema: - type: "string" - required: true responses: 200: - description: "Success" content: application/json: schema: @@ -1215,42 +147,12 @@ contacts: type: "array" items: - type: "object" - properties: - id: - type: "string" - emailer_campaign_ids: - type: "array" - items: - type: "string" - contact_campaign_statuses: - type: "array" - items: - type: "object" - properties: - id: - type: "string" - send_email_from_email_account_id: - type: "string" - emailer_campaign_id: - type: "string" - required: - - "id" - - "send_email_from_email_account_id" - - "emailer_campaign_id" - additionalProperties: true - required: - - "id" - - "contact_campaign_statuses" - additionalProperties: true + $ref: "#/components/schemas/contact" required: - "contacts" - additionalProperties: true /v1/emailer_steps: post: - operationId: "postEmailerStep" - tags: - - "emailer_steps" + operationId: "createEmailerStep" requestBody: content: application/json: @@ -1260,440 +162,68 @@ emailer_campaign_id: type: "string" priority: - type: "string" - nullable: true + type: + - "string" + - "null" position: - type: "number" - nullable: true + type: + - "number" + - "null" type: - type: "string" - enum: - - "auto_email" - - "manual_email" - - "call" - - "action_item" - - "linkedin_step_message" - - "linkedin_step_connect" - - "linkedin_step_view_profile" - - "linkedin_step_interact_post" + $ref: "#/components/schemas/emailer_step_type" wait_mode: - type: "string" - enum: - - "second" - - "minute" - - "hour" - - "day" + $ref: "#/components/schemas/emailer_step_wait_mode" wait_time: - type: "number" - nullable: true + type: + - "number" + - "null" exact_datetime: - type: "string" - nullable: true + type: + - "string" + - "null" note: - type: "string" - nullable: true + type: + - "string" + - "null" required: - "emailer_campaign_id" - "type" - "wait_mode" - additionalProperties: false - parameters: [] responses: 200: - description: "Success" content: application/json: schema: type: "object" properties: emailer_step: - type: "object" - properties: - id: - type: "string" - emailer_campaign_id: - type: "string" - position: - type: "number" - nullable: true - wait_time: - type: "number" - nullable: true - type: - type: "string" - enum: - - "auto_email" - - "manual_email" - - "call" - - "action_item" - - "linkedin_step_message" - - "linkedin_step_connect" - - "linkedin_step_view_profile" - - "linkedin_step_interact_post" - wait_mode: - type: "string" - enum: - - "second" - - "minute" - - "hour" - - "day" - note: - type: "string" - nullable: true - max_emails_per_day: - type: "number" - nullable: true - exact_datetime: - type: "string" - nullable: true - priority: - type: "string" - nullable: true - auto_skip_in_x_days: - type: "number" - nullable: true - counts: - type: "object" - properties: - active: - type: "number" - nullable: true - paused: - type: "number" - nullable: true - finished: - type: "number" - nullable: true - bounced: - type: "number" - nullable: true - spam_blocked: - type: "number" - nullable: true - hard_bounced: - type: "number" - nullable: true - not_sent: - type: "number" - nullable: true - additionalProperties: false - nullable: true - required: - - "id" - - "emailer_campaign_id" - - "type" - - "wait_mode" - additionalProperties: false + $ref: "#/components/schemas/emailer_step" emailer_touch: - type: "object" - properties: - id: - type: "string" - emailer_step_id: - type: "string" - nullable: true - emailer_template_id: - type: "string" - nullable: true - emailer_template: - type: "object" - properties: - id: - type: "string" - name: - type: "string" - nullable: true - user_id: - type: "string" - nullable: true - subject: - type: "string" - nullable: true - archived: - type: "boolean" - nullable: true - created_at: - type: "string" - nullable: true - global: - type: "boolean" - nullable: true - body_text: - type: "string" - nullable: true - folder_id: - type: "string" - nullable: true - body_html: - type: "string" - nullable: true - creation_type: - type: "string" - nullable: true - label_ids: - type: "array" - items: - type: "string" - nullable: true - prompt_id: - type: "string" - nullable: true - required: - - "id" - additionalProperties: false - nullable: true - status: - type: "string" - nullable: true - type: - type: "string" - enum: - - "reply_to_thread" - - "new_thread" - nullable: true - include_signature: - type: "boolean" - nullable: true - has_personalized_opener: - type: "boolean" - nullable: true - personalized_opener_fallback_option: - type: "string" - nullable: true - generic_personalized_opener: - type: "string" - nullable: true - unique_scheduled: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_delivered: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_bounced: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_opened: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_replied: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - bounce_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - open_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - reply_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - demo_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_demoed: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_clicked: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - click_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_unsubscribed: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - opt_out_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_hard_bounced: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_spam_blocked: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - hard_bounce_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - spam_block_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - required: - - "id" - additionalProperties: false - nullable: true + oneOf: + - + $ref: "#/components/schemas/emailer_touch" + - + type: "null" emailer_template: - type: "object" - properties: - id: - type: "string" - name: - type: "string" - nullable: true - user_id: - type: "string" - nullable: true - subject: - type: "string" - nullable: true - archived: - type: "boolean" - nullable: true - created_at: - type: "string" - nullable: true - global: - type: "boolean" - nullable: true - body_text: - type: "string" - nullable: true - folder_id: - type: "string" - nullable: true - body_html: - type: "string" - nullable: true - creation_type: - type: "string" - nullable: true - label_ids: - type: "array" - items: - type: "string" - nullable: true - prompt_id: - type: "string" - nullable: true - required: - - "id" - additionalProperties: false - nullable: true + oneOf: + - + $ref: "#/components/schemas/emailer_template" + - + type: "null" required: - "emailer_step" - additionalProperties: false /v1/emailer_steps/{id}: delete: operationId: "deleteEmailerStep" - tags: - - "emailer_steps" parameters: - - name: "id" in: "path" + name: "id" schema: type: "string" required: true responses: 200: - description: "Success" content: application/json: schema: @@ -1709,15 +239,18 @@ required: - "id" - "deleted" - additionalProperties: false required: - "emailer_step" - additionalProperties: false /v1/emailer_touches/{id}: put: - operationId: "putEmailerTouch" - tags: - - "emailer_touches" + operationId: "updateEmailerTouch" + parameters: + - + in: "path" + name: "id" + schema: + type: "string" + required: true requestBody: content: application/json: @@ -1727,376 +260,400 @@ id: type: "string" emailer_step_id: - type: "string" - nullable: true + type: + - "string" + - "null" emailer_template: - type: "object" - properties: - id: - type: "string" - name: - type: "string" - nullable: true - user_id: - type: "string" - nullable: true - subject: - type: "string" - nullable: true - archived: - type: "boolean" - nullable: true - created_at: - type: "string" - nullable: true - global: - type: "boolean" - nullable: true - body_text: - type: "string" - nullable: true - folder_id: - type: "string" - nullable: true - body_html: - type: "string" - nullable: true - creation_type: - type: "string" - nullable: true - label_ids: - type: "array" - items: - type: "string" - nullable: true - prompt_id: - type: "string" - nullable: true - required: - - "id" - additionalProperties: false - nullable: true + oneOf: + - + $ref: "#/components/schemas/emailer_template" + - + type: "null" type: - type: "string" + type: + - "string" + - "null" enum: - "reply_to_thread" - "new_thread" - nullable: true required: - "id" - additionalProperties: false - parameters: - - - name: "id" - in: "path" - schema: - type: "string" - required: true responses: 200: - description: "Success" content: application/json: schema: type: "object" properties: emailer_touch: - type: "object" - properties: - id: - type: "string" - emailer_step_id: - type: "string" - nullable: true - emailer_template_id: - type: "string" - nullable: true - emailer_template: - type: "object" - properties: - id: - type: "string" - name: - type: "string" - nullable: true - user_id: - type: "string" - nullable: true - subject: - type: "string" - nullable: true - archived: - type: "boolean" - nullable: true - created_at: - type: "string" - nullable: true - global: - type: "boolean" - nullable: true - body_text: - type: "string" - nullable: true - folder_id: - type: "string" - nullable: true - body_html: - type: "string" - nullable: true - creation_type: - type: "string" - nullable: true - label_ids: - type: "array" - items: - type: "string" - nullable: true - prompt_id: - type: "string" - nullable: true - required: - - "id" - additionalProperties: false - nullable: true - status: - type: "string" - nullable: true - type: - type: "string" - enum: - - "reply_to_thread" - - "new_thread" - nullable: true - include_signature: - type: "boolean" - nullable: true - has_personalized_opener: - type: "boolean" - nullable: true - personalized_opener_fallback_option: - type: "string" - nullable: true - generic_personalized_opener: - type: "string" - nullable: true - unique_scheduled: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_delivered: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_bounced: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_opened: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_replied: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - bounce_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - open_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - reply_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - demo_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_demoed: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_clicked: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - click_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_unsubscribed: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - opt_out_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_hard_bounced: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - unique_spam_blocked: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - hard_bounce_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - spam_block_rate: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - nullable: true - required: - - "id" - additionalProperties: false + $ref: "#/components/schemas/emailer_touch" required: - "emailer_touch" - additionalProperties: false /v1/contacts/{id}: get: operationId: "getContact" - tags: - - "contacts" parameters: - - name: "id" in: "path" + name: "id" schema: type: "string" required: true responses: 200: - description: "Success" content: application/json: schema: type: "object" properties: contact: - type: "object" - properties: - id: - type: "string" - emailer_campaign_ids: - type: "array" - items: - type: "string" - contact_campaign_statuses: - type: "array" - items: - type: "object" - properties: - id: - type: "string" - send_email_from_email_account_id: - type: "string" - emailer_campaign_id: - type: "string" - required: - - "id" - - "send_email_from_email_account_id" - - "emailer_campaign_id" - additionalProperties: true - required: - - "id" - - "contact_campaign_statuses" - additionalProperties: true + $ref: "#/components/schemas/contact" required: - "contact" - additionalProperties: false + components: + schemas: + emailer_campaign: + type: "object" + properties: + id: + type: "string" + name: + type: + - "string" + - "null" + created_at: + type: "string" + format: "date-time" + permissions: + type: "string" + enum: + - "team_can_use" + - "team_can_view" + - "private" + active: + type: "boolean" + archived: + type: "boolean" + label_ids: + type: "array" + items: + type: "string" + num_steps: + type: + - "number" + - "null" + user_id: + type: + - "string" + - "null" + unique_scheduled: + $ref: "#/components/schemas/metric" + unique_delivered: + $ref: "#/components/schemas/metric" + unique_bounced: + $ref: "#/components/schemas/metric" + unique_opened: + $ref: "#/components/schemas/metric" + unique_replied: + $ref: "#/components/schemas/metric" + unique_demoed: + $ref: "#/components/schemas/metric" + unique_clicked: + $ref: "#/components/schemas/metric" + unique_unsubscribed: + $ref: "#/components/schemas/metric" + bounce_rate: + $ref: "#/components/schemas/metric" + open_rate: + $ref: "#/components/schemas/metric" + click_rate: + $ref: "#/components/schemas/metric" + reply_rate: + $ref: "#/components/schemas/metric" + spam_blocked_rate: + $ref: "#/components/schemas/metric" + opt_out_rate: + $ref: "#/components/schemas/metric" + demo_rate: + $ref: "#/components/schemas/metric" + required: + - "id" + - "created_at" + - "active" + - "archived" + - "label_ids" + metric: + anyOf: + - + type: "number" + - + type: "string" + enum: + - "loading" + - + type: "null" + emailer_step: + type: "object" + properties: + id: + type: "string" + emailer_campaign_id: + type: "string" + position: + type: + - "number" + - "null" + wait_time: + type: + - "number" + - "null" + type: + $ref: "#/components/schemas/emailer_step_type" + wait_mode: + $ref: "#/components/schemas/emailer_step_wait_mode" + note: + type: + - "string" + - "null" + max_emails_per_day: + type: + - "number" + - "null" + exact_datetime: + type: + - "string" + - "null" + priority: + type: + - "string" + - "null" + auto_skip_in_x_days: + type: + - "number" + - "null" + counts: + type: + - "object" + - "null" + properties: + active: + type: + - "number" + - "null" + paused: + type: + - "number" + - "null" + finished: + type: + - "number" + - "null" + bounced: + type: + - "number" + - "null" + spam_blocked: + type: + - "number" + - "null" + hard_bounced: + type: + - "number" + - "null" + not_sent: + type: + - "number" + - "null" + required: + - "id" + - "emailer_campaign_id" + - "type" + - "wait_mode" + emailer_step_type: + type: "string" + enum: + - "auto_email" + - "manual_email" + - "call" + - "action_item" + - "linkedin_step_message" + - "linkedin_step_connect" + - "linkedin_step_view_profile" + - "linkedin_step_interact_post" + emailer_step_wait_mode: + type: "string" + enum: + - "second" + - "minute" + - "hour" + - "day" + emailer_touch: + type: "object" + properties: + id: + type: "string" + emailer_step_id: + type: + - "string" + - "null" + emailer_template_id: + type: + - "string" + - "null" + emailer_template: + oneOf: + - + $ref: "#/components/schemas/emailer_template" + - + type: "null" + status: + type: + - "string" + - "null" + type: + type: + - "string" + - "null" + enum: + - "reply_to_thread" + - "new_thread" + include_signature: + type: + - "boolean" + - "null" + has_personalized_opener: + type: + - "boolean" + - "null" + personalized_opener_fallback_option: + type: + - "string" + - "null" + generic_personalized_opener: + type: + - "string" + - "null" + unique_scheduled: + $ref: "#/components/schemas/metric" + unique_delivered: + $ref: "#/components/schemas/metric" + unique_bounced: + $ref: "#/components/schemas/metric" + unique_opened: + $ref: "#/components/schemas/metric" + unique_replied: + $ref: "#/components/schemas/metric" + bounce_rate: + $ref: "#/components/schemas/metric" + open_rate: + $ref: "#/components/schemas/metric" + reply_rate: + $ref: "#/components/schemas/metric" + demo_rate: + $ref: "#/components/schemas/metric" + unique_demoed: + $ref: "#/components/schemas/metric" + unique_clicked: + $ref: "#/components/schemas/metric" + click_rate: + $ref: "#/components/schemas/metric" + unique_unsubscribed: + $ref: "#/components/schemas/metric" + opt_out_rate: + $ref: "#/components/schemas/metric" + unique_hard_bounced: + $ref: "#/components/schemas/metric" + unique_spam_blocked: + $ref: "#/components/schemas/metric" + hard_bounce_rate: + $ref: "#/components/schemas/metric" + spam_block_rate: + $ref: "#/components/schemas/metric" + required: + - "id" + emailer_template: + type: "object" + properties: + id: + type: "string" + name: + type: + - "string" + - "null" + user_id: + type: + - "string" + - "null" + subject: + type: + - "string" + - "null" + archived: + type: + - "boolean" + - "null" + created_at: + type: + - "string" + - "null" + format: "date-time" + global: + type: + - "boolean" + - "null" + body_text: + type: + - "string" + - "null" + folder_id: + type: + - "string" + - "null" + body_html: + type: + - "string" + - "null" + creation_type: + type: + - "string" + - "null" + label_ids: + type: + - "array" + - "null" + items: + type: "string" + prompt_id: + type: + - "string" + - "null" + required: + - "id" + contact: + type: "object" + properties: + id: + type: "string" + emailer_campaign_ids: + type: "array" + items: + type: "string" + contact_campaign_statuses: + type: "array" + items: + type: "object" + properties: + id: + type: "string" + send_email_from_email_account_id: + type: "string" + emailer_campaign_id: + type: "string" + required: + - "id" + - "send_email_from_email_account_id" + - "emailer_campaign_id" + required: + - "id" + - "contact_campaign_statuses" diff --git a/packages/core/remotes/impl/apollo/apollo.zodios.ts b/packages/core/remotes/impl/apollo/apollo.zodios.ts new file mode 100644 index 000000000..64808328a --- /dev/null +++ b/packages/core/remotes/impl/apollo/apollo.zodios.ts @@ -0,0 +1,81 @@ +import { Zodios } from '@zodios/core'; +import { openApiBuilder } from '@zodios/openapi'; +import type { AxiosRequestConfig } from 'axios'; +import z from 'zod'; +import { defineApi } from '../../utils/zodios-api-shorthand'; +import { + apolloContact, + apolloCreateEmailerCampaign, + apolloCreateEmailerStep, + apolloEmailerCampaignAddContactIds, + apolloEmailerCampaignAddContactIdsResponse, + apolloEmailerCampaignResponse, + apolloEmailerStep, + apolloEmailerTemplate, + apolloEmailerTouch, + apolloEmailerTouchUpdate, +} from './apollo.openapi'; + +export const apolloApi = defineApi({ + 'GET EmailerCampaign': { + path: '/v1/emailer_campaigns/:id', + response: apolloEmailerCampaignResponse, + }, + 'POST EmailerCampaign': { + path: '/v1/emailer_campaigns', + body: apolloCreateEmailerCampaign, + response: apolloEmailerCampaignResponse, + }, + 'POST EmailerCampaignAddContactIds': { + path: '/v1/emailer_campaigns/:id/add_contact_ids', + body: apolloEmailerCampaignAddContactIds, + response: apolloEmailerCampaignAddContactIdsResponse, + }, + 'POST EmailerStep': { + path: '/v1/emailer_steps', + body: apolloCreateEmailerStep, + response: z.object({ + emailer_step: apolloEmailerStep, + // Null for templatable steps (e.g. tasks / calls) + emailer_touch: apolloEmailerTouch.nullish(), + emailer_template: apolloEmailerTemplate.nullish(), + }), + }, + 'DELETE EmailerStep': { + path: '/v1/emailer_steps/:id', + response: z.object({ emailer_step: z.object({ id: z.string(), deleted: z.boolean() }) }), + }, + 'PUT EmailerTouch': { + path: '/v1/emailer_touches/:id', + body: apolloEmailerTouchUpdate, + response: z.object({ emailer_touch: apolloEmailerTouch }), + }, + 'GET Contact': { + path: '/v1/contacts/:id', + response: z.object({ contact: apolloContact }), + }, +}); + +export function createApolloClient(cfg: { apiKey: string; axiosConfig?: AxiosRequestConfig }) { + return new Zodios(apolloApi, { + axiosConfig: { + baseURL: 'https://app.apollo.io/api', + params: { api_key: cfg.apiKey }, + ...cfg.axiosConfig, + }, + }); +} + +export function outputZodiosOpenApi() { + return openApiBuilder({ + title: 'Apollo API', + version: '0.0.0', + }) + .addServer({ url: 'https://app.apollo.io/api' }) + .addPublicApi(apolloApi) + .build(); +} +if (require.main === module) { + // eslint-disable-next-line no-console + console.log(JSON.stringify(outputZodiosOpenApi(), null, 2)); +} diff --git a/packages/core/remotes/impl/apollo/index.ts b/packages/core/remotes/impl/apollo/index.ts index 0686324ce..ebf55c581 100644 --- a/packages/core/remotes/impl/apollo/index.ts +++ b/packages/core/remotes/impl/apollo/index.ts @@ -37,7 +37,7 @@ import type { } from '../../categories/engagement/base'; import { AbstractEngagementRemoteClient } from '../../categories/engagement/base'; import { paginator } from '../../utils/paginator'; -import { createApolloClient } from './apollo.openapi'; +import { createApolloClient } from './apollo.zodios'; import { fromApolloAccountToAccount, fromApolloContactCampaignStatusToSequenceState, diff --git a/packages/core/remotes/impl/apollo/mappers.ts b/packages/core/remotes/impl/apollo/mappers.ts index 88a68517a..9961b31ba 100644 --- a/packages/core/remotes/impl/apollo/mappers.ts +++ b/packages/core/remotes/impl/apollo/mappers.ts @@ -15,7 +15,7 @@ import type { } from '@supaglue/types/engagement'; import { camelcaseKeys } from '@supaglue/utils'; import { pick, removeValues } from '../../../lib/util'; -import type { ApolloEmailerCampaign } from './client'; +import type { ApolloEmailerCampaign } from './apollo.openapi'; export const fromApolloAccountToAccount = (record: Record): Account => { return { diff --git a/yarn.lock b/yarn.lock index 95f092341..326f435ec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6350,6 +6350,7 @@ __metadata: typescript: ^4.9.5 uuid: ^9.0.0 zod: ^3.22.4 + zod-openapi: ^2.11.0 peerDependencies: simple-oauth2: ^5.0.0 languageName: unknown @@ -25417,6 +25418,15 @@ __metadata: languageName: node linkType: hard +"zod-openapi@npm:^2.11.0": + version: 2.11.0 + resolution: "zod-openapi@npm:2.11.0" + peerDependencies: + zod: ^3.21.4 + checksum: d741a93ef60f092a828398904ed1c14ce57000e0699d8061e67cb28c6170105572bada4c0c61f0fdfc4b6928a926f003996a5d7fe0e2ee07c2e6fc5a54e7af01 + languageName: node + linkType: hard + "zod-to-json-schema@npm:3.19.1": version: 3.19.1 resolution: "zod-to-json-schema@npm:3.19.1" From e6168f379690d3b9b1e6c0594b1beb641d84e265 Mon Sep 17 00:00:00 2001 From: Tony Xiao Date: Thu, 16 Nov 2023 21:27:15 -0800 Subject: [PATCH 05/22] chore: Suppress diffs for openapi files --- .gitattributes | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitattributes b/.gitattributes index 32ec0951f..66e136f52 100644 --- a/.gitattributes +++ b/.gitattributes @@ -7,3 +7,5 @@ openapi/**/openapi.bundle.json linguist-generated *.example.json linguist-generated /docs/docs/api/**/* linguist-generated /docs/docs/api/introduction.md -linguist-generated +*.openapi.yaml linguist-generated +*.openapi.gen.d.ts linguist-generated From 2927e6bee90ca86f98b3a5891f3dcd275a5c91d8 Mon Sep 17 00:00:00 2001 From: Tony Xiao Date: Fri, 17 Nov 2023 00:27:11 -0800 Subject: [PATCH 06/22] chore: experiment with using @lilyrose2798/trpc-openapi to generate openapi spec --- packages/core/package.json | 2 + .../impl/apollo/apollo.openapi.gen.d.ts | 215 ++----- .../remotes/impl/apollo/apollo.openapi.ts | 30 +- .../remotes/impl/apollo/apollo.openapi.yaml | 573 ++++++------------ 4 files changed, 266 insertions(+), 554 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 91e37978f..74ed04db9 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -10,12 +10,14 @@ "@aws-sdk/client-sesv2": "^3.437.0", "@google-cloud/bigquery": "^6.2.0", "@hubspot/api-client": "9.1.0", + "@lilyrose2798/trpc-openapi": "^1.3.6", "@linear/sdk": "^7.0.1", "@supaglue/db": "workspace:*", "@supaglue/schemas": "workspace:*", "@supaglue/types": "workspace:^", "@supaglue/utils": "workspace:*", "@temporalio/proto": "^1.8.6", + "@trpc/server": "^10.43.3", "@zodios/core": "^10.9.6", "@zodios/openapi": "^10.5.0", "async-retry": "^1.3.3", diff --git a/packages/core/remotes/impl/apollo/apollo.openapi.gen.d.ts b/packages/core/remotes/impl/apollo/apollo.openapi.gen.d.ts index a0e5551c6..e1bae0ce9 100644 --- a/packages/core/remotes/impl/apollo/apollo.openapi.gen.d.ts +++ b/packages/core/remotes/impl/apollo/apollo.openapi.gen.d.ts @@ -8,24 +8,6 @@ export interface paths { "/v1/emailer_campaigns/{id}": { get: operations["getEmailerCampaign"]; }; - "/v1/emailer_campaigns": { - post: operations["createEmailerCampaign"]; - }; - "/v1/emailer_campaigns/{id}/add_contact_ids": { - post: operations["addContactIdsToEmailerCampaign"]; - }; - "/v1/emailer_steps": { - post: operations["createEmailerStep"]; - }; - "/v1/emailer_steps/{id}": { - delete: operations["deleteEmailerStep"]; - }; - "/v1/emailer_touches/{id}": { - put: operations["updateEmailerTouch"]; - }; - "/v1/contacts/{id}": { - get: operations["getContact"]; - }; } export type webhooks = Record; @@ -60,7 +42,7 @@ export interface components { opt_out_rate?: components["schemas"]["metric"]; demo_rate?: components["schemas"]["metric"]; }; - metric: number | "loading" | null; + metric: (number | "loading") | null; emailer_step: { id: string; emailer_campaign_id: string; @@ -94,7 +76,7 @@ export interface components { emailer_template?: components["schemas"]["emailer_template"] | null; status?: string | null; /** @enum {string|null} */ - type?: "reply_to_thread" | "new_thread"; + type?: "reply_to_thread" | "new_thread" | null; include_signature?: boolean | null; has_personalized_opener?: boolean | null; personalized_opener_fallback_option?: string | null; @@ -134,15 +116,6 @@ export interface components { label_ids?: string[] | null; prompt_id?: string | null; }; - contact: { - id: string; - emailer_campaign_ids?: string[]; - contact_campaign_statuses: { - id: string; - send_email_from_email_account_id: string; - emailer_campaign_id: string; - }[]; - }; }; responses: never; parameters: never; @@ -164,6 +137,7 @@ export interface operations { }; }; responses: { + /** @description Successful response */ 200: { content: { "application/json": { @@ -174,144 +148,75 @@ export interface operations { }; }; }; - }; - }; - createEmailerCampaign: { - requestBody?: { - content: { - "application/json": { - name?: string | null; - /** @enum {string} */ - permissions?: "team_can_use" | "team_can_view" | "private"; - user_id?: string | null; - label_ids?: string[]; - active?: boolean; - }; - }; - }; - responses: { - 200: { + /** @description Invalid input data */ + 400: { content: { "application/json": { - emailer_campaign: components["schemas"]["emailer_campaign"]; - emailer_steps?: components["schemas"]["emailer_step"][] | null; - emailer_touches?: components["schemas"]["emailer_touch"][] | null; - emailer_templates?: components["schemas"]["emailer_template"][] | null; + /** + * @description The error message + * @example Invalid input data + */ + message: string; + /** + * @description The error code + * @example BAD_REQUEST + */ + code: string; + /** + * @description An array of issues that were responsible for the error + * @example [] + */ + issues?: { + message: string; + }[]; }; }; }; - }; - }; - addContactIdsToEmailerCampaign: { - parameters: { - path: { - id: string; - }; - }; - requestBody?: { - content: { - "application/json": { - contact_ids: string[]; - emailer_campaign_id: string; - send_email_from_email_account_id?: string | null; - userId?: string | null; - }; - }; - }; - responses: { - 200: { + /** @description Not found */ + 404: { content: { "application/json": { - contacts: components["schemas"]["contact"][]; + /** + * @description The error message + * @example Not found + */ + message: string; + /** + * @description The error code + * @example NOT_FOUND + */ + code: string; + /** + * @description An array of issues that were responsible for the error + * @example [] + */ + issues?: { + message: string; + }[]; }; }; }; - }; - }; - createEmailerStep: { - requestBody?: { - content: { - "application/json": { - emailer_campaign_id: string; - priority?: string | null; - position?: number | null; - type: components["schemas"]["emailer_step_type"]; - wait_mode: components["schemas"]["emailer_step_wait_mode"]; - wait_time?: number | null; - exact_datetime?: string | null; - note?: string | null; - }; - }; - }; - responses: { - 200: { - content: { - "application/json": { - emailer_step: components["schemas"]["emailer_step"]; - emailer_touch?: components["schemas"]["emailer_touch"] | null; - emailer_template?: components["schemas"]["emailer_template"] | null; - }; - }; - }; - }; - }; - deleteEmailerStep: { - parameters: { - path: { - id: string; - }; - }; - responses: { - 200: { - content: { - "application/json": { - emailer_step: { - id: string; - deleted: boolean; - }; - }; - }; - }; - }; - }; - updateEmailerTouch: { - parameters: { - path: { - id: string; - }; - }; - requestBody?: { - content: { - "application/json": { - id: string; - emailer_step_id?: string | null; - emailer_template?: components["schemas"]["emailer_template"] | null; - /** @enum {string|null} */ - type?: "reply_to_thread" | "new_thread"; - }; - }; - }; - responses: { - 200: { - content: { - "application/json": { - emailer_touch: components["schemas"]["emailer_touch"]; - }; - }; - }; - }; - }; - getContact: { - parameters: { - path: { - id: string; - }; - }; - responses: { - 200: { + /** @description Internal server error */ + 500: { content: { "application/json": { - contact: components["schemas"]["contact"]; + /** + * @description The error message + * @example Internal server error + */ + message: string; + /** + * @description The error code + * @example INTERNAL_SERVER_ERROR + */ + code: string; + /** + * @description An array of issues that were responsible for the error + * @example [] + */ + issues?: { + message: string; + }[]; }; }; }; diff --git a/packages/core/remotes/impl/apollo/apollo.openapi.ts b/packages/core/remotes/impl/apollo/apollo.openapi.ts index 04043284c..0f51fe6ad 100644 --- a/packages/core/remotes/impl/apollo/apollo.openapi.ts +++ b/packages/core/remotes/impl/apollo/apollo.openapi.ts @@ -297,9 +297,37 @@ export function outputOpenApi() { }); } +import type { OpenApiMeta } from '@lilyrose2798/trpc-openapi'; +import { generateOpenApiDocument } from '@lilyrose2798/trpc-openapi'; + +import { initTRPC } from '@trpc/server'; + +const t = initTRPC.meta().create(); /* 👈 */ + +const notImplemented = () => { + throw new Error('Not implemented'); +}; + +const router = t.router({ + getEmailerCampaign: t.procedure + .meta({ openapi: { method: 'GET', path: '/v1/emailer_campaigns/{id}' } }) + .input(z.object({ id: z.string() })) + .output(apolloEmailerCampaignResponse) + .query(notImplemented), +}); + +export function generateOpenApi() { + return generateOpenApiDocument(router, { + title: 'Apollo API', + version: '0.0.0', + baseUrl: 'https://app.apollo.io/api', + }); +} + if (require.main === module) { // eslint-disable-next-line no-console // console.log(JSON.stringify(outputOpenApi(), null, 2)); // eslint-disable-next-line no-console - console.log(JSON.stringify(outputOpenApi(), null, 2)); + // console.log(JSON.stringify(outputOpenApi(), null, 2)); + console.log(JSON.stringify(generateOpenApi(), null, 2)); } diff --git a/packages/core/remotes/impl/apollo/apollo.openapi.yaml b/packages/core/remotes/impl/apollo/apollo.openapi.yaml index 8c5a9fc23..0b88f5301 100644 --- a/packages/core/remotes/impl/apollo/apollo.openapi.yaml +++ b/packages/core/remotes/impl/apollo/apollo.openapi.yaml @@ -1,5 +1,5 @@ --- - openapi: "3.1.0" + openapi: "3.0.3" info: title: "Apollo API" version: "0.0.0" @@ -19,6 +19,7 @@ required: true responses: 200: + description: "Successful response" content: application/json: schema: @@ -27,290 +28,132 @@ emailer_campaign: $ref: "#/components/schemas/emailer_campaign" emailer_steps: - type: - - "array" - - "null" + type: "array" + nullable: true items: $ref: "#/components/schemas/emailer_step" emailer_touches: - type: - - "array" - - "null" + type: "array" + nullable: true items: $ref: "#/components/schemas/emailer_touch" emailer_templates: - type: - - "array" - - "null" + type: "array" + nullable: true items: $ref: "#/components/schemas/emailer_template" required: - "emailer_campaign" - /v1/emailer_campaigns: - post: - operationId: "createEmailerCampaign" - requestBody: - content: - application/json: - schema: - type: "object" - properties: - name: - type: - - "string" - - "null" - permissions: - type: "string" - enum: - - "team_can_use" - - "team_can_view" - - "private" - user_id: - type: - - "string" - - "null" - label_ids: - type: "array" - items: - type: "string" - active: - type: "boolean" - responses: - 200: + 400: + description: "Invalid input data" content: application/json: schema: type: "object" properties: - emailer_campaign: - $ref: "#/components/schemas/emailer_campaign" - emailer_steps: - type: - - "array" - - "null" - items: - $ref: "#/components/schemas/emailer_step" - emailer_touches: - type: - - "array" - - "null" - items: - $ref: "#/components/schemas/emailer_touch" - emailer_templates: - type: - - "array" - - "null" - items: - $ref: "#/components/schemas/emailer_template" - required: - - "emailer_campaign" - /v1/emailer_campaigns/{id}/add_contact_ids: - post: - operationId: "addContactIdsToEmailerCampaign" - parameters: - - - in: "path" - name: "id" - schema: - type: "string" - required: true - requestBody: - content: - application/json: - schema: - type: "object" - properties: - contact_ids: - type: "array" - items: + message: type: "string" - emailer_campaign_id: - type: "string" - send_email_from_email_account_id: - type: - - "string" - - "null" - userId: - type: - - "string" - - "null" - required: - - "contact_ids" - - "emailer_campaign_id" - responses: - 200: - content: - application/json: - schema: - type: "object" - properties: - contacts: + description: "The error message" + example: "Invalid input data" + code: + type: "string" + description: "The error code" + example: "BAD_REQUEST" + issues: type: "array" items: - $ref: "#/components/schemas/contact" - required: - - "contacts" - /v1/emailer_steps: - post: - operationId: "createEmailerStep" - requestBody: - content: - application/json: - schema: - type: "object" - properties: - emailer_campaign_id: - type: "string" - priority: - type: - - "string" - - "null" - position: - type: - - "number" - - "null" - type: - $ref: "#/components/schemas/emailer_step_type" - wait_mode: - $ref: "#/components/schemas/emailer_step_wait_mode" - wait_time: - type: - - "number" - - "null" - exact_datetime: - type: - - "string" - - "null" - note: - type: - - "string" - - "null" - required: - - "emailer_campaign_id" - - "type" - - "wait_mode" - responses: - 200: - content: - application/json: - schema: - type: "object" - properties: - emailer_step: - $ref: "#/components/schemas/emailer_step" - emailer_touch: - oneOf: - - - $ref: "#/components/schemas/emailer_touch" - - - type: "null" - emailer_template: - oneOf: - - - $ref: "#/components/schemas/emailer_template" - - - type: "null" + type: "object" + properties: + message: + type: "string" + required: + - "message" + description: "An array of issues that were responsible for the error" + example: [] required: - - "emailer_step" - /v1/emailer_steps/{id}: - delete: - operationId: "deleteEmailerStep" - parameters: - - - in: "path" - name: "id" - schema: - type: "string" - required: true - responses: - 200: - content: - application/json: - schema: - type: "object" - properties: - emailer_step: - type: "object" - properties: - id: - type: "string" - deleted: - type: "boolean" - required: - - "id" - - "deleted" - required: - - "emailer_step" - /v1/emailer_touches/{id}: - put: - operationId: "updateEmailerTouch" - parameters: - - - in: "path" - name: "id" - schema: - type: "string" - required: true - requestBody: - content: - application/json: - schema: - type: "object" - properties: - id: - type: "string" - emailer_step_id: - type: - - "string" - - "null" - emailer_template: - oneOf: - - - $ref: "#/components/schemas/emailer_template" - - - type: "null" - type: - type: - - "string" - - "null" - enum: - - "reply_to_thread" - - "new_thread" - required: - - "id" - responses: - 200: + - "message" + - "code" + title: "Error" + description: "The error information" + example: + code: "BAD_REQUEST" + message: "Invalid input data" + issues: [] + 404: + description: "Not found" content: application/json: schema: type: "object" properties: - emailer_touch: - $ref: "#/components/schemas/emailer_touch" + message: + type: "string" + description: "The error message" + example: "Not found" + code: + type: "string" + description: "The error code" + example: "NOT_FOUND" + issues: + type: "array" + items: + type: "object" + properties: + message: + type: "string" + required: + - "message" + description: "An array of issues that were responsible for the error" + example: [] required: - - "emailer_touch" - /v1/contacts/{id}: - get: - operationId: "getContact" - parameters: - - - in: "path" - name: "id" - schema: - type: "string" - required: true - responses: - 200: + - "message" + - "code" + title: "Error" + description: "The error information" + example: + code: "NOT_FOUND" + message: "Not found" + issues: [] + 500: + description: "Internal server error" content: application/json: schema: type: "object" properties: - contact: - $ref: "#/components/schemas/contact" + message: + type: "string" + description: "The error message" + example: "Internal server error" + code: + type: "string" + description: "The error code" + example: "INTERNAL_SERVER_ERROR" + issues: + type: "array" + items: + type: "object" + properties: + message: + type: "string" + required: + - "message" + description: "An array of issues that were responsible for the error" + example: [] required: - - "contact" + - "message" + - "code" + title: "Error" + description: "The error information" + example: + code: "INTERNAL_SERVER_ERROR" + message: "Internal server error" + issues: [] components: + securitySchemes: + Authorization: + type: "http" + scheme: "bearer" schemas: emailer_campaign: type: "object" @@ -318,9 +161,8 @@ id: type: "string" name: - type: - - "string" - - "null" + type: "string" + nullable: true created_at: type: "string" format: "date-time" @@ -339,13 +181,11 @@ items: type: "string" num_steps: - type: - - "number" - - "null" + type: "number" + nullable: true user_id: - type: - - "string" - - "null" + type: "string" + nullable: true unique_scheduled: $ref: "#/components/schemas/metric" unique_delivered: @@ -383,6 +223,7 @@ - "archived" - "label_ids" metric: + nullable: true anyOf: - type: "number" @@ -390,8 +231,6 @@ type: "string" enum: - "loading" - - - type: "null" emailer_step: type: "object" properties: @@ -400,70 +239,55 @@ emailer_campaign_id: type: "string" position: - type: - - "number" - - "null" + type: "number" + nullable: true wait_time: - type: - - "number" - - "null" + type: "number" + nullable: true type: $ref: "#/components/schemas/emailer_step_type" wait_mode: $ref: "#/components/schemas/emailer_step_wait_mode" note: - type: - - "string" - - "null" + type: "string" + nullable: true max_emails_per_day: - type: - - "number" - - "null" + type: "number" + nullable: true exact_datetime: - type: - - "string" - - "null" + type: "string" + nullable: true priority: - type: - - "string" - - "null" + type: "string" + nullable: true auto_skip_in_x_days: - type: - - "number" - - "null" + type: "number" + nullable: true counts: - type: - - "object" - - "null" + type: "object" + nullable: true properties: active: - type: - - "number" - - "null" + type: "number" + nullable: true paused: - type: - - "number" - - "null" + type: "number" + nullable: true finished: - type: - - "number" - - "null" + type: "number" + nullable: true bounced: - type: - - "number" - - "null" + type: "number" + nullable: true spam_blocked: - type: - - "number" - - "null" + type: "number" + nullable: true hard_bounced: - type: - - "number" - - "null" + type: "number" + nullable: true not_sent: - type: - - "number" - - "null" + type: "number" + nullable: true required: - "id" - "emailer_campaign_id" @@ -493,46 +317,38 @@ id: type: "string" emailer_step_id: - type: - - "string" - - "null" + type: "string" + nullable: true emailer_template_id: - type: - - "string" - - "null" + type: "string" + nullable: true emailer_template: - oneOf: + allOf: - $ref: "#/components/schemas/emailer_template" - - - type: "null" + nullable: true status: - type: - - "string" - - "null" + type: "string" + nullable: true type: - type: - - "string" - - "null" + type: "string" + nullable: true enum: - "reply_to_thread" - "new_thread" + - null include_signature: - type: - - "boolean" - - "null" + type: "boolean" + nullable: true has_personalized_opener: - type: - - "boolean" - - "null" + type: "boolean" + nullable: true personalized_opener_fallback_option: - type: - - "string" - - "null" + type: "string" + nullable: true generic_personalized_opener: - type: - - "string" - - "null" + type: "string" + nullable: true unique_scheduled: $ref: "#/components/schemas/metric" unique_delivered: @@ -577,83 +393,44 @@ id: type: "string" name: - type: - - "string" - - "null" + type: "string" + nullable: true user_id: - type: - - "string" - - "null" + type: "string" + nullable: true subject: - type: - - "string" - - "null" + type: "string" + nullable: true archived: - type: - - "boolean" - - "null" + type: "boolean" + nullable: true created_at: - type: - - "string" - - "null" + type: "string" + nullable: true format: "date-time" global: - type: - - "boolean" - - "null" + type: "boolean" + nullable: true body_text: - type: - - "string" - - "null" + type: "string" + nullable: true folder_id: - type: - - "string" - - "null" + type: "string" + nullable: true body_html: - type: - - "string" - - "null" + type: "string" + nullable: true creation_type: - type: - - "string" - - "null" + type: "string" + nullable: true label_ids: - type: - - "array" - - "null" + type: "array" + nullable: true items: type: "string" prompt_id: - type: - - "string" - - "null" - required: - - "id" - contact: - type: "object" - properties: - id: type: "string" - emailer_campaign_ids: - type: "array" - items: - type: "string" - contact_campaign_statuses: - type: "array" - items: - type: "object" - properties: - id: - type: "string" - send_email_from_email_account_id: - type: "string" - emailer_campaign_id: - type: "string" - required: - - "id" - - "send_email_from_email_account_id" - - "emailer_campaign_id" + nullable: true required: - "id" - - "contact_campaign_statuses" From a01093e18dd5cb095d301b42b82e4be683a79ccc Mon Sep 17 00:00:00 2001 From: Tony Xiao Date: Fri, 17 Nov 2023 00:27:19 -0800 Subject: [PATCH 07/22] Revert "chore: experiment with using @lilyrose2798/trpc-openapi to generate openapi spec" This reverts commit a3b60d7a02d53743bd8edb51a5b12c073edfe870. --- packages/core/package.json | 2 - .../impl/apollo/apollo.openapi.gen.d.ts | 215 +++++-- .../remotes/impl/apollo/apollo.openapi.ts | 30 +- .../remotes/impl/apollo/apollo.openapi.yaml | 573 ++++++++++++------ 4 files changed, 554 insertions(+), 266 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 74ed04db9..91e37978f 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -10,14 +10,12 @@ "@aws-sdk/client-sesv2": "^3.437.0", "@google-cloud/bigquery": "^6.2.0", "@hubspot/api-client": "9.1.0", - "@lilyrose2798/trpc-openapi": "^1.3.6", "@linear/sdk": "^7.0.1", "@supaglue/db": "workspace:*", "@supaglue/schemas": "workspace:*", "@supaglue/types": "workspace:^", "@supaglue/utils": "workspace:*", "@temporalio/proto": "^1.8.6", - "@trpc/server": "^10.43.3", "@zodios/core": "^10.9.6", "@zodios/openapi": "^10.5.0", "async-retry": "^1.3.3", diff --git a/packages/core/remotes/impl/apollo/apollo.openapi.gen.d.ts b/packages/core/remotes/impl/apollo/apollo.openapi.gen.d.ts index e1bae0ce9..a0e5551c6 100644 --- a/packages/core/remotes/impl/apollo/apollo.openapi.gen.d.ts +++ b/packages/core/remotes/impl/apollo/apollo.openapi.gen.d.ts @@ -8,6 +8,24 @@ export interface paths { "/v1/emailer_campaigns/{id}": { get: operations["getEmailerCampaign"]; }; + "/v1/emailer_campaigns": { + post: operations["createEmailerCampaign"]; + }; + "/v1/emailer_campaigns/{id}/add_contact_ids": { + post: operations["addContactIdsToEmailerCampaign"]; + }; + "/v1/emailer_steps": { + post: operations["createEmailerStep"]; + }; + "/v1/emailer_steps/{id}": { + delete: operations["deleteEmailerStep"]; + }; + "/v1/emailer_touches/{id}": { + put: operations["updateEmailerTouch"]; + }; + "/v1/contacts/{id}": { + get: operations["getContact"]; + }; } export type webhooks = Record; @@ -42,7 +60,7 @@ export interface components { opt_out_rate?: components["schemas"]["metric"]; demo_rate?: components["schemas"]["metric"]; }; - metric: (number | "loading") | null; + metric: number | "loading" | null; emailer_step: { id: string; emailer_campaign_id: string; @@ -76,7 +94,7 @@ export interface components { emailer_template?: components["schemas"]["emailer_template"] | null; status?: string | null; /** @enum {string|null} */ - type?: "reply_to_thread" | "new_thread" | null; + type?: "reply_to_thread" | "new_thread"; include_signature?: boolean | null; has_personalized_opener?: boolean | null; personalized_opener_fallback_option?: string | null; @@ -116,6 +134,15 @@ export interface components { label_ids?: string[] | null; prompt_id?: string | null; }; + contact: { + id: string; + emailer_campaign_ids?: string[]; + contact_campaign_statuses: { + id: string; + send_email_from_email_account_id: string; + emailer_campaign_id: string; + }[]; + }; }; responses: never; parameters: never; @@ -137,7 +164,6 @@ export interface operations { }; }; responses: { - /** @description Successful response */ 200: { content: { "application/json": { @@ -148,75 +174,144 @@ export interface operations { }; }; }; - /** @description Invalid input data */ - 400: { + }; + }; + createEmailerCampaign: { + requestBody?: { + content: { + "application/json": { + name?: string | null; + /** @enum {string} */ + permissions?: "team_can_use" | "team_can_view" | "private"; + user_id?: string | null; + label_ids?: string[]; + active?: boolean; + }; + }; + }; + responses: { + 200: { content: { "application/json": { - /** - * @description The error message - * @example Invalid input data - */ - message: string; - /** - * @description The error code - * @example BAD_REQUEST - */ - code: string; - /** - * @description An array of issues that were responsible for the error - * @example [] - */ - issues?: { - message: string; - }[]; + emailer_campaign: components["schemas"]["emailer_campaign"]; + emailer_steps?: components["schemas"]["emailer_step"][] | null; + emailer_touches?: components["schemas"]["emailer_touch"][] | null; + emailer_templates?: components["schemas"]["emailer_template"][] | null; }; }; }; - /** @description Not found */ - 404: { + }; + }; + addContactIdsToEmailerCampaign: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": { + contact_ids: string[]; + emailer_campaign_id: string; + send_email_from_email_account_id?: string | null; + userId?: string | null; + }; + }; + }; + responses: { + 200: { content: { "application/json": { - /** - * @description The error message - * @example Not found - */ - message: string; - /** - * @description The error code - * @example NOT_FOUND - */ - code: string; - /** - * @description An array of issues that were responsible for the error - * @example [] - */ - issues?: { - message: string; - }[]; + contacts: components["schemas"]["contact"][]; }; }; }; - /** @description Internal server error */ - 500: { + }; + }; + createEmailerStep: { + requestBody?: { + content: { + "application/json": { + emailer_campaign_id: string; + priority?: string | null; + position?: number | null; + type: components["schemas"]["emailer_step_type"]; + wait_mode: components["schemas"]["emailer_step_wait_mode"]; + wait_time?: number | null; + exact_datetime?: string | null; + note?: string | null; + }; + }; + }; + responses: { + 200: { + content: { + "application/json": { + emailer_step: components["schemas"]["emailer_step"]; + emailer_touch?: components["schemas"]["emailer_touch"] | null; + emailer_template?: components["schemas"]["emailer_template"] | null; + }; + }; + }; + }; + }; + deleteEmailerStep: { + parameters: { + path: { + id: string; + }; + }; + responses: { + 200: { + content: { + "application/json": { + emailer_step: { + id: string; + deleted: boolean; + }; + }; + }; + }; + }; + }; + updateEmailerTouch: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": { + id: string; + emailer_step_id?: string | null; + emailer_template?: components["schemas"]["emailer_template"] | null; + /** @enum {string|null} */ + type?: "reply_to_thread" | "new_thread"; + }; + }; + }; + responses: { + 200: { + content: { + "application/json": { + emailer_touch: components["schemas"]["emailer_touch"]; + }; + }; + }; + }; + }; + getContact: { + parameters: { + path: { + id: string; + }; + }; + responses: { + 200: { content: { "application/json": { - /** - * @description The error message - * @example Internal server error - */ - message: string; - /** - * @description The error code - * @example INTERNAL_SERVER_ERROR - */ - code: string; - /** - * @description An array of issues that were responsible for the error - * @example [] - */ - issues?: { - message: string; - }[]; + contact: components["schemas"]["contact"]; }; }; }; diff --git a/packages/core/remotes/impl/apollo/apollo.openapi.ts b/packages/core/remotes/impl/apollo/apollo.openapi.ts index 0f51fe6ad..04043284c 100644 --- a/packages/core/remotes/impl/apollo/apollo.openapi.ts +++ b/packages/core/remotes/impl/apollo/apollo.openapi.ts @@ -297,37 +297,9 @@ export function outputOpenApi() { }); } -import type { OpenApiMeta } from '@lilyrose2798/trpc-openapi'; -import { generateOpenApiDocument } from '@lilyrose2798/trpc-openapi'; - -import { initTRPC } from '@trpc/server'; - -const t = initTRPC.meta().create(); /* 👈 */ - -const notImplemented = () => { - throw new Error('Not implemented'); -}; - -const router = t.router({ - getEmailerCampaign: t.procedure - .meta({ openapi: { method: 'GET', path: '/v1/emailer_campaigns/{id}' } }) - .input(z.object({ id: z.string() })) - .output(apolloEmailerCampaignResponse) - .query(notImplemented), -}); - -export function generateOpenApi() { - return generateOpenApiDocument(router, { - title: 'Apollo API', - version: '0.0.0', - baseUrl: 'https://app.apollo.io/api', - }); -} - if (require.main === module) { // eslint-disable-next-line no-console // console.log(JSON.stringify(outputOpenApi(), null, 2)); // eslint-disable-next-line no-console - // console.log(JSON.stringify(outputOpenApi(), null, 2)); - console.log(JSON.stringify(generateOpenApi(), null, 2)); + console.log(JSON.stringify(outputOpenApi(), null, 2)); } diff --git a/packages/core/remotes/impl/apollo/apollo.openapi.yaml b/packages/core/remotes/impl/apollo/apollo.openapi.yaml index 0b88f5301..8c5a9fc23 100644 --- a/packages/core/remotes/impl/apollo/apollo.openapi.yaml +++ b/packages/core/remotes/impl/apollo/apollo.openapi.yaml @@ -1,5 +1,5 @@ --- - openapi: "3.0.3" + openapi: "3.1.0" info: title: "Apollo API" version: "0.0.0" @@ -19,7 +19,6 @@ required: true responses: 200: - description: "Successful response" content: application/json: schema: @@ -28,132 +27,290 @@ emailer_campaign: $ref: "#/components/schemas/emailer_campaign" emailer_steps: - type: "array" - nullable: true + type: + - "array" + - "null" items: $ref: "#/components/schemas/emailer_step" emailer_touches: - type: "array" - nullable: true + type: + - "array" + - "null" items: $ref: "#/components/schemas/emailer_touch" emailer_templates: - type: "array" - nullable: true + type: + - "array" + - "null" items: $ref: "#/components/schemas/emailer_template" required: - "emailer_campaign" - 400: - description: "Invalid input data" + /v1/emailer_campaigns: + post: + operationId: "createEmailerCampaign" + requestBody: + content: + application/json: + schema: + type: "object" + properties: + name: + type: + - "string" + - "null" + permissions: + type: "string" + enum: + - "team_can_use" + - "team_can_view" + - "private" + user_id: + type: + - "string" + - "null" + label_ids: + type: "array" + items: + type: "string" + active: + type: "boolean" + responses: + 200: content: application/json: schema: type: "object" properties: - message: - type: "string" - description: "The error message" - example: "Invalid input data" - code: - type: "string" - description: "The error code" - example: "BAD_REQUEST" - issues: - type: "array" + emailer_campaign: + $ref: "#/components/schemas/emailer_campaign" + emailer_steps: + type: + - "array" + - "null" + items: + $ref: "#/components/schemas/emailer_step" + emailer_touches: + type: + - "array" + - "null" + items: + $ref: "#/components/schemas/emailer_touch" + emailer_templates: + type: + - "array" + - "null" items: - type: "object" - properties: - message: - type: "string" - required: - - "message" - description: "An array of issues that were responsible for the error" - example: [] + $ref: "#/components/schemas/emailer_template" required: - - "message" - - "code" - title: "Error" - description: "The error information" - example: - code: "BAD_REQUEST" - message: "Invalid input data" - issues: [] - 404: - description: "Not found" + - "emailer_campaign" + /v1/emailer_campaigns/{id}/add_contact_ids: + post: + operationId: "addContactIdsToEmailerCampaign" + parameters: + - + in: "path" + name: "id" + schema: + type: "string" + required: true + requestBody: + content: + application/json: + schema: + type: "object" + properties: + contact_ids: + type: "array" + items: + type: "string" + emailer_campaign_id: + type: "string" + send_email_from_email_account_id: + type: + - "string" + - "null" + userId: + type: + - "string" + - "null" + required: + - "contact_ids" + - "emailer_campaign_id" + responses: + 200: content: application/json: schema: type: "object" properties: - message: - type: "string" - description: "The error message" - example: "Not found" - code: - type: "string" - description: "The error code" - example: "NOT_FOUND" - issues: + contacts: type: "array" items: - type: "object" - properties: - message: - type: "string" - required: - - "message" - description: "An array of issues that were responsible for the error" - example: [] + $ref: "#/components/schemas/contact" required: - - "message" - - "code" - title: "Error" - description: "The error information" - example: - code: "NOT_FOUND" - message: "Not found" - issues: [] - 500: - description: "Internal server error" + - "contacts" + /v1/emailer_steps: + post: + operationId: "createEmailerStep" + requestBody: + content: + application/json: + schema: + type: "object" + properties: + emailer_campaign_id: + type: "string" + priority: + type: + - "string" + - "null" + position: + type: + - "number" + - "null" + type: + $ref: "#/components/schemas/emailer_step_type" + wait_mode: + $ref: "#/components/schemas/emailer_step_wait_mode" + wait_time: + type: + - "number" + - "null" + exact_datetime: + type: + - "string" + - "null" + note: + type: + - "string" + - "null" + required: + - "emailer_campaign_id" + - "type" + - "wait_mode" + responses: + 200: content: application/json: schema: type: "object" properties: - message: - type: "string" - description: "The error message" - example: "Internal server error" - code: - type: "string" - description: "The error code" - example: "INTERNAL_SERVER_ERROR" - issues: - type: "array" - items: - type: "object" - properties: - message: - type: "string" - required: - - "message" - description: "An array of issues that were responsible for the error" - example: [] + emailer_step: + $ref: "#/components/schemas/emailer_step" + emailer_touch: + oneOf: + - + $ref: "#/components/schemas/emailer_touch" + - + type: "null" + emailer_template: + oneOf: + - + $ref: "#/components/schemas/emailer_template" + - + type: "null" + required: + - "emailer_step" + /v1/emailer_steps/{id}: + delete: + operationId: "deleteEmailerStep" + parameters: + - + in: "path" + name: "id" + schema: + type: "string" + required: true + responses: + 200: + content: + application/json: + schema: + type: "object" + properties: + emailer_step: + type: "object" + properties: + id: + type: "string" + deleted: + type: "boolean" + required: + - "id" + - "deleted" + required: + - "emailer_step" + /v1/emailer_touches/{id}: + put: + operationId: "updateEmailerTouch" + parameters: + - + in: "path" + name: "id" + schema: + type: "string" + required: true + requestBody: + content: + application/json: + schema: + type: "object" + properties: + id: + type: "string" + emailer_step_id: + type: + - "string" + - "null" + emailer_template: + oneOf: + - + $ref: "#/components/schemas/emailer_template" + - + type: "null" + type: + type: + - "string" + - "null" + enum: + - "reply_to_thread" + - "new_thread" + required: + - "id" + responses: + 200: + content: + application/json: + schema: + type: "object" + properties: + emailer_touch: + $ref: "#/components/schemas/emailer_touch" + required: + - "emailer_touch" + /v1/contacts/{id}: + get: + operationId: "getContact" + parameters: + - + in: "path" + name: "id" + schema: + type: "string" + required: true + responses: + 200: + content: + application/json: + schema: + type: "object" + properties: + contact: + $ref: "#/components/schemas/contact" required: - - "message" - - "code" - title: "Error" - description: "The error information" - example: - code: "INTERNAL_SERVER_ERROR" - message: "Internal server error" - issues: [] + - "contact" components: - securitySchemes: - Authorization: - type: "http" - scheme: "bearer" schemas: emailer_campaign: type: "object" @@ -161,8 +318,9 @@ id: type: "string" name: - type: "string" - nullable: true + type: + - "string" + - "null" created_at: type: "string" format: "date-time" @@ -181,11 +339,13 @@ items: type: "string" num_steps: - type: "number" - nullable: true + type: + - "number" + - "null" user_id: - type: "string" - nullable: true + type: + - "string" + - "null" unique_scheduled: $ref: "#/components/schemas/metric" unique_delivered: @@ -223,7 +383,6 @@ - "archived" - "label_ids" metric: - nullable: true anyOf: - type: "number" @@ -231,6 +390,8 @@ type: "string" enum: - "loading" + - + type: "null" emailer_step: type: "object" properties: @@ -239,55 +400,70 @@ emailer_campaign_id: type: "string" position: - type: "number" - nullable: true + type: + - "number" + - "null" wait_time: - type: "number" - nullable: true + type: + - "number" + - "null" type: $ref: "#/components/schemas/emailer_step_type" wait_mode: $ref: "#/components/schemas/emailer_step_wait_mode" note: - type: "string" - nullable: true + type: + - "string" + - "null" max_emails_per_day: - type: "number" - nullable: true + type: + - "number" + - "null" exact_datetime: - type: "string" - nullable: true + type: + - "string" + - "null" priority: - type: "string" - nullable: true + type: + - "string" + - "null" auto_skip_in_x_days: - type: "number" - nullable: true + type: + - "number" + - "null" counts: - type: "object" - nullable: true + type: + - "object" + - "null" properties: active: - type: "number" - nullable: true + type: + - "number" + - "null" paused: - type: "number" - nullable: true + type: + - "number" + - "null" finished: - type: "number" - nullable: true + type: + - "number" + - "null" bounced: - type: "number" - nullable: true + type: + - "number" + - "null" spam_blocked: - type: "number" - nullable: true + type: + - "number" + - "null" hard_bounced: - type: "number" - nullable: true + type: + - "number" + - "null" not_sent: - type: "number" - nullable: true + type: + - "number" + - "null" required: - "id" - "emailer_campaign_id" @@ -317,38 +493,46 @@ id: type: "string" emailer_step_id: - type: "string" - nullable: true + type: + - "string" + - "null" emailer_template_id: - type: "string" - nullable: true + type: + - "string" + - "null" emailer_template: - allOf: + oneOf: - $ref: "#/components/schemas/emailer_template" - nullable: true + - + type: "null" status: - type: "string" - nullable: true + type: + - "string" + - "null" type: - type: "string" - nullable: true + type: + - "string" + - "null" enum: - "reply_to_thread" - "new_thread" - - null include_signature: - type: "boolean" - nullable: true + type: + - "boolean" + - "null" has_personalized_opener: - type: "boolean" - nullable: true + type: + - "boolean" + - "null" personalized_opener_fallback_option: - type: "string" - nullable: true + type: + - "string" + - "null" generic_personalized_opener: - type: "string" - nullable: true + type: + - "string" + - "null" unique_scheduled: $ref: "#/components/schemas/metric" unique_delivered: @@ -393,44 +577,83 @@ id: type: "string" name: - type: "string" - nullable: true + type: + - "string" + - "null" user_id: - type: "string" - nullable: true + type: + - "string" + - "null" subject: - type: "string" - nullable: true + type: + - "string" + - "null" archived: - type: "boolean" - nullable: true + type: + - "boolean" + - "null" created_at: - type: "string" - nullable: true + type: + - "string" + - "null" format: "date-time" global: - type: "boolean" - nullable: true + type: + - "boolean" + - "null" body_text: - type: "string" - nullable: true + type: + - "string" + - "null" folder_id: - type: "string" - nullable: true + type: + - "string" + - "null" body_html: - type: "string" - nullable: true + type: + - "string" + - "null" creation_type: - type: "string" - nullable: true + type: + - "string" + - "null" label_ids: - type: "array" - nullable: true + type: + - "array" + - "null" items: type: "string" prompt_id: + type: + - "string" + - "null" + required: + - "id" + contact: + type: "object" + properties: + id: type: "string" - nullable: true + emailer_campaign_ids: + type: "array" + items: + type: "string" + contact_campaign_statuses: + type: "array" + items: + type: "object" + properties: + id: + type: "string" + send_email_from_email_account_id: + type: "string" + emailer_campaign_id: + type: "string" + required: + - "id" + - "send_email_from_email_account_id" + - "emailer_campaign_id" required: - "id" + - "contact_campaign_statuses" From fac1d556d83f31c82c79f20da254820e8de51c5a Mon Sep 17 00:00:00 2001 From: Tony Xiao Date: Fri, 17 Nov 2023 00:30:32 -0800 Subject: [PATCH 08/22] chore: Rename .api to .client --- .../impl/apollo/{apollo.api.ts => apollo.client.ts} | 4 ++-- packages/core/remotes/impl/apollo/apollo.zodios.ts | 2 +- packages/core/remotes/impl/apollo/index.ts | 6 +++--- packages/core/remotes/impl/outreach/index.ts | 8 ++++---- .../impl/outreach/{outreach.api.ts => outreach.client.ts} | 4 ++-- packages/core/remotes/impl/salesloft/index.ts | 7 +++---- .../salesloft/{salesloft.api.ts => salesloft.client.ts} | 4 ++-- 7 files changed, 17 insertions(+), 18 deletions(-) rename packages/core/remotes/impl/apollo/{apollo.api.ts => apollo.client.ts} (73%) rename packages/core/remotes/impl/outreach/{outreach.api.ts => outreach.client.ts} (83%) rename packages/core/remotes/impl/salesloft/{salesloft.api.ts => salesloft.client.ts} (75%) diff --git a/packages/core/remotes/impl/apollo/apollo.api.ts b/packages/core/remotes/impl/apollo/apollo.client.ts similarity index 73% rename from packages/core/remotes/impl/apollo/apollo.api.ts rename to packages/core/remotes/impl/apollo/apollo.client.ts index 99b35bee4..6dd0eaf87 100644 --- a/packages/core/remotes/impl/apollo/apollo.api.ts +++ b/packages/core/remotes/impl/apollo/apollo.client.ts @@ -6,8 +6,8 @@ interface ApolloCredentials { apiKey: string; } -export type ApolloApi = ReturnType; -export function createApolloApi(creds: ApolloCredentials) { +export type ApolloClient = ReturnType; +export function createApolloClient(creds: ApolloCredentials) { return createClient({ baseUrl: 'https://app.apollo.io/api', // TODO: Add middleware as this does not work at the moment diff --git a/packages/core/remotes/impl/apollo/apollo.zodios.ts b/packages/core/remotes/impl/apollo/apollo.zodios.ts index 64808328a..6741b9aae 100644 --- a/packages/core/remotes/impl/apollo/apollo.zodios.ts +++ b/packages/core/remotes/impl/apollo/apollo.zodios.ts @@ -56,7 +56,7 @@ export const apolloApi = defineApi({ }, }); -export function createApolloClient(cfg: { apiKey: string; axiosConfig?: AxiosRequestConfig }) { +export function createApolloZodios(cfg: { apiKey: string; axiosConfig?: AxiosRequestConfig }) { return new Zodios(apolloApi, { axiosConfig: { baseURL: 'https://app.apollo.io/api', diff --git a/packages/core/remotes/impl/apollo/index.ts b/packages/core/remotes/impl/apollo/index.ts index ebf55c581..ecc96c487 100644 --- a/packages/core/remotes/impl/apollo/index.ts +++ b/packages/core/remotes/impl/apollo/index.ts @@ -37,7 +37,7 @@ import type { } from '../../categories/engagement/base'; import { AbstractEngagementRemoteClient } from '../../categories/engagement/base'; import { paginator } from '../../utils/paginator'; -import { createApolloClient } from './apollo.zodios'; +import { createApolloZodios } from './apollo.zodios'; import { fromApolloAccountToAccount, fromApolloContactCampaignStatusToSequenceState, @@ -86,14 +86,14 @@ class ApolloClient extends AbstractEngagementRemoteClient { readonly #apiKey: string; readonly #headers: Record; readonly #baseURL: string; - readonly #api: ReturnType; + readonly #api: ReturnType; public constructor(apiKey: string) { super('https://api.apollo.io'); this.#baseURL = 'https://api.apollo.io'; this.#apiKey = apiKey; this.#headers = { 'Content-Type': 'application/json', 'Cache-Control': 'no-cache' }; - this.#api = createApolloClient({ + this.#api = createApolloZodios({ apiKey, axiosConfig: { proxy: parseProxyConfig(process.env.PROXY_URL) }, }); diff --git a/packages/core/remotes/impl/outreach/index.ts b/packages/core/remotes/impl/outreach/index.ts index 51696f8c6..516a5c747 100644 --- a/packages/core/remotes/impl/outreach/index.ts +++ b/packages/core/remotes/impl/outreach/index.ts @@ -61,8 +61,8 @@ import { toOutreachSequenceTemplateCreateParams, toOutreachTemplateCreateParams, } from './mappers'; -import type { OutreachApi } from './outreach.api'; -import { createOutreachApi } from './outreach.api'; + +import { createOutreachClient } from './outreach.client'; const OUTREACH_RECORD_LIMIT = 1000; @@ -163,13 +163,13 @@ class OutreachClient extends AbstractEngagementRemoteClient { readonly #credentials: Credentials; readonly #baseURL: string; - readonly #api: OutreachApi; + readonly #api: ReturnType; public constructor(credentials: Credentials) { super('https://api.outreach.io'); this.#baseURL = 'https://api.outreach.io'; this.#credentials = credentials; - this.#api = createOutreachApi(this.#credentials); + this.#api = createOutreachClient(this.#credentials); } protected override getAuthHeadersForPassthroughRequest(): Record { diff --git a/packages/core/remotes/impl/outreach/outreach.api.ts b/packages/core/remotes/impl/outreach/outreach.client.ts similarity index 83% rename from packages/core/remotes/impl/outreach/outreach.api.ts rename to packages/core/remotes/impl/outreach/outreach.client.ts index 3c4611db8..ae7ac8cd9 100644 --- a/packages/core/remotes/impl/outreach/outreach.api.ts +++ b/packages/core/remotes/impl/outreach/outreach.client.ts @@ -12,8 +12,8 @@ interface OutreachCredentials { // clientSecret: string; } -export type OutreachApi = ReturnType; -export function createOutreachApi(creds: OutreachCredentials) { +export type OutreachClient = ReturnType; +export function createOutreachClient(creds: OutreachCredentials) { return createClient({ // TODO: Get this from the openapi spec if possible baseUrl: 'https://api.outreach.io/api/v2', diff --git a/packages/core/remotes/impl/salesloft/index.ts b/packages/core/remotes/impl/salesloft/index.ts index c15295ddd..bc810a960 100644 --- a/packages/core/remotes/impl/salesloft/index.ts +++ b/packages/core/remotes/impl/salesloft/index.ts @@ -46,8 +46,7 @@ import { toSalesloftContactCreateParams, toSalesloftSequenceStateCreateParams, } from './mappers'; -import type { SalesloftApi } from './salesloft.api'; -import { createSalesloftApi } from './salesloft.api'; +import { createSalesloftClient } from './salesloft.client'; type Credentials = { accessToken: string; @@ -81,14 +80,14 @@ class SalesloftClient extends AbstractEngagementRemoteClient { readonly #credentials: Credentials; #headers: Record; readonly #baseURL: string; - readonly #api: SalesloftApi; + readonly #api: ReturnType; public constructor(credentials: Credentials) { super('https://api.salesloft.com'); this.#baseURL = 'https://api.salesloft.com'; this.#credentials = credentials; this.#headers = { Authorization: `Bearer ${this.#credentials.accessToken}` }; - this.#api = createSalesloftApi(this.#credentials); + this.#api = createSalesloftClient(this.#credentials); } protected override getAuthHeadersForPassthroughRequest(): Record { diff --git a/packages/core/remotes/impl/salesloft/salesloft.api.ts b/packages/core/remotes/impl/salesloft/salesloft.client.ts similarity index 75% rename from packages/core/remotes/impl/salesloft/salesloft.api.ts rename to packages/core/remotes/impl/salesloft/salesloft.client.ts index 18a24eb3e..292cf5793 100644 --- a/packages/core/remotes/impl/salesloft/salesloft.api.ts +++ b/packages/core/remotes/impl/salesloft/salesloft.client.ts @@ -6,8 +6,8 @@ interface SalesloftCredentials { accessToken: string; } -export type SalesloftApi = ReturnType; -export function createSalesloftApi(creds: SalesloftCredentials) { +export type SalesloftClient = ReturnType; +export function createSalesloftClient(creds: SalesloftCredentials) { return createClient({ baseUrl: ' https://api.salesloft.com', headers: { From cb6b29450784fe009b234a2d1b60013e6d39a776 Mon Sep 17 00:00:00 2001 From: Tony Xiao Date: Fri, 17 Nov 2023 00:48:37 -0800 Subject: [PATCH 09/22] chore: adding jsonOperation shorthand for createDocument --- .../remotes/impl/apollo/apollo.openapi.ts | 106 ++++++------------ .../core/remotes/utils/integration-utils.ts | 22 ++++ 2 files changed, 58 insertions(+), 70 deletions(-) create mode 100644 packages/core/remotes/utils/integration-utils.ts diff --git a/packages/core/remotes/impl/apollo/apollo.openapi.ts b/packages/core/remotes/impl/apollo/apollo.openapi.ts index 04043284c..01d90716f 100644 --- a/packages/core/remotes/impl/apollo/apollo.openapi.ts +++ b/packages/core/remotes/impl/apollo/apollo.openapi.ts @@ -1,5 +1,6 @@ import z from 'zod'; import { createDocument, extendZodWithOpenApi } from 'zod-openapi'; +import { jsonOperation } from '../../utils/integration-utils'; extendZodWithOpenApi(z); @@ -212,94 +213,59 @@ export function outputOpenApi() { servers: [{ url: 'https://app.apollo.io/api' }], paths: { '/v1/emailer_campaigns/{id}': { - get: { - operationId: 'getEmailerCampaign', - requestParams: { path: z.object({ id: z.string() }) }, - responses: { - 200: { content: { 'application/json': { schema: apolloEmailerCampaignResponse } } }, - }, - }, + get: jsonOperation('getEmailerCampaign', { + path: z.object({ id: z.string() }), + response: apolloEmailerCampaignResponse, + }), }, '/v1/emailer_campaigns': { - post: { - operationId: 'createEmailerCampaign', - requestBody: { content: { 'application/json': { schema: apolloCreateEmailerCampaign } } }, - responses: { - 200: { content: { 'application/json': { schema: apolloEmailerCampaignResponse } } }, - }, - }, + post: jsonOperation('createEmailerCampaign', { + body: apolloCreateEmailerCampaign, + response: apolloEmailerCampaignResponse, + }), }, '/v1/emailer_campaigns/{id}/add_contact_ids': { - post: { - operationId: 'addContactIdsToEmailerCampaign', - requestParams: { path: z.object({ id: z.string() }) }, - requestBody: { content: { 'application/json': { schema: apolloEmailerCampaignAddContactIds } } }, - responses: { - 200: { content: { 'application/json': { schema: apolloEmailerCampaignAddContactIdsResponse } } }, - }, - }, + post: jsonOperation('addContactIdsToEmailerCampaign', { + path: z.object({ id: z.string() }), + body: apolloEmailerCampaignAddContactIds, + response: apolloEmailerCampaignAddContactIdsResponse, + }), }, '/v1/emailer_steps': { - post: { - operationId: 'createEmailerStep', - requestBody: { content: { 'application/json': { schema: apolloCreateEmailerStep } } }, - responses: { - 200: { - content: { - 'application/json': { - schema: z.object({ - emailer_step: apolloEmailerStep, - // Null for templatable steps (e.g. tasks / calls) - emailer_touch: apolloEmailerTouch.nullish(), - emailer_template: apolloEmailerTemplate.nullish(), - }), - }, - }, - }, - }, - }, + post: jsonOperation('createEmailerStep', { + body: apolloCreateEmailerStep, + response: z.object({ + emailer_step: apolloEmailerStep, + // Null for templatable steps (e.g. tasks / calls) + emailer_touch: apolloEmailerTouch.nullish(), + emailer_template: apolloEmailerTemplate.nullish(), + }), + }), }, '/v1/emailer_steps/{id}': { - delete: { - operationId: 'deleteEmailerStep', - requestParams: { path: z.object({ id: z.string() }) }, - responses: { - 200: { - content: { - 'application/json': { - schema: z.object({ emailer_step: z.object({ id: z.string(), deleted: z.boolean() }) }), - }, - }, - }, - }, - }, + delete: jsonOperation('deleteEmailerStep', { + path: z.object({ id: z.string() }), + response: z.object({ emailer_step: z.object({ id: z.string(), deleted: z.boolean() }) }), + }), }, '/v1/emailer_touches/{id}': { - put: { - operationId: 'updateEmailerTouch', - requestParams: { path: z.object({ id: z.string() }) }, - requestBody: { content: { 'application/json': { schema: apolloEmailerTouchUpdate } } }, - responses: { - 200: { content: { 'application/json': { schema: z.object({ emailer_touch: apolloEmailerTouch }) } } }, - }, - }, + put: jsonOperation('updateEmailerTouch', { + path: z.object({ id: z.string() }), + body: apolloEmailerTouchUpdate, + response: z.object({ emailer_touch: apolloEmailerTouch }), + }), }, '/v1/contacts/{id}': { - get: { - operationId: 'getContact', - requestParams: { path: z.object({ id: z.string() }) }, - responses: { - 200: { content: { 'application/json': { schema: z.object({ contact: apolloContact }) } } }, - }, - }, + get: jsonOperation('getContact', { + path: z.object({ id: z.string() }), + response: z.object({ contact: apolloContact }), + }), }, }, }); } if (require.main === module) { - // eslint-disable-next-line no-console - // console.log(JSON.stringify(outputOpenApi(), null, 2)); // eslint-disable-next-line no-console console.log(JSON.stringify(outputOpenApi(), null, 2)); } diff --git a/packages/core/remotes/utils/integration-utils.ts b/packages/core/remotes/utils/integration-utils.ts new file mode 100644 index 000000000..a98493013 --- /dev/null +++ b/packages/core/remotes/utils/integration-utils.ts @@ -0,0 +1,22 @@ +import type { ZodOpenApiMediaTypeObject, ZodOpenApiOperationObject, ZodOpenApiParameters } from 'zod-openapi'; + +export function jsonOperation( + id: string, + { + body, + response, + ...params + }: { + body?: ZodOpenApiMediaTypeObject['schema']; + response: ZodOpenApiMediaTypeObject['schema']; + } & ZodOpenApiParameters +) { + return { + operationId: id, + requestParams: params, + requestBody: { content: { 'application/json': { schema: body } } }, + responses: { + 200: { content: { 'application/json': { schema: response } } }, + }, + } satisfies ZodOpenApiOperationObject; +} From c863fc99576d9a1cc26ae1c2b4694d8b2a92e466 Mon Sep 17 00:00:00 2001 From: Tony Xiao Date: Fri, 17 Nov 2023 12:22:24 -0800 Subject: [PATCH 10/22] feat: Add createOpenapiClient that can handle refresh token and throwing error --- .../core/remotes/utils/createOpenapiClient.ts | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 packages/core/remotes/utils/createOpenapiClient.ts diff --git a/packages/core/remotes/utils/createOpenapiClient.ts b/packages/core/remotes/utils/createOpenapiClient.ts new file mode 100644 index 000000000..abb27b865 --- /dev/null +++ b/packages/core/remotes/utils/createOpenapiClient.ts @@ -0,0 +1,51 @@ +import type { FetchResponse } from 'openapi-fetch'; +import createClient from 'openapi-fetch'; + +type MaybePromise = T | Promise; + +type _ClientOptions = NonNullable[0]>; +// Workaround for https://github.com/drwpow/openapi-typescript/issues/1122 +interface ClientOptions extends _ClientOptions { + preRequest?: (...args: Parameters) => MaybePromise>; + postRequest?: ( + res: Awaited>, + requestArgs: Parameters + ) => ReturnType; +} + +// eslint-disable-next-line @typescript-eslint/ban-types +export function createOpenapiClient({ + preRequest = (url, init) => [url, init], + postRequest = (res) => Promise.resolve(res), + ...clientOptions +}: ClientOptions = {}) { + const baseFetch = clientOptions?.fetch ?? globalThis.fetch; + const customFetch: typeof baseFetch = async (...args) => { + const requestArgs = await preRequest(...args); + const res = await baseFetch(...requestArgs); + return postRequest(res, requestArgs); + }; + const client = createClient({ ...clientOptions, fetch: customFetch }); + + return { + GET: (...args: Parameters) => client.GET(...args).then(throwIfNotOk), + PUT: (...args: Parameters) => client.PUT(...args).then(throwIfNotOk), + POST: (...args: Parameters) => client.POST(...args).then(throwIfNotOk), + DELETE: (...args: Parameters) => client.DELETE(...args).then(throwIfNotOk), + OPTIONS: (...args: Parameters) => client.OPTIONS(...args).then(throwIfNotOk), + HEAD: (...args: Parameters) => client.HEAD(...args).then(throwIfNotOk), + PATCH: (...args: Parameters) => client.PATCH(...args).then(throwIfNotOk), + TRACE: (...args: Parameters) => client.TRACE(...args).then(throwIfNotOk), + }; +} + +function throwIfNotOk(res: FetchResponse) { + if (res.error) { + // TODO: Return more detailed error here... + // eslint-disable-next-line no-console + console.log(res.error); + throw new Error('HTTPError'); + } + // You can further modify response as desired... + return res; +} From 9ec73b32609fa090aa9e10e680327303c8e4265f Mon Sep 17 00:00:00 2001 From: Tony Xiao Date: Fri, 17 Nov 2023 17:42:01 -0800 Subject: [PATCH 11/22] feat: Introduce HTTPError class and untyped .request --- .../core/remotes/utils/createOpenapiClient.ts | 64 ++++++++++++++----- 1 file changed, 47 insertions(+), 17 deletions(-) diff --git a/packages/core/remotes/utils/createOpenapiClient.ts b/packages/core/remotes/utils/createOpenapiClient.ts index abb27b865..20404a1ee 100644 --- a/packages/core/remotes/utils/createOpenapiClient.ts +++ b/packages/core/remotes/utils/createOpenapiClient.ts @@ -1,6 +1,8 @@ -import type { FetchResponse } from 'openapi-fetch'; +import type { FetchOptions, FetchResponse } from 'openapi-fetch'; import createClient from 'openapi-fetch'; +type HTTPMethod = 'GET' | 'PUT' | 'POST' | 'DELETE' | 'OPTIONS' | 'HEAD' | 'PATCH' | 'TRACE'; + type MaybePromise = T | Promise; type _ClientOptions = NonNullable[0]>; @@ -28,24 +30,52 @@ export function createOpenapiClient({ const client = createClient({ ...clientOptions, fetch: customFetch }); return { - GET: (...args: Parameters) => client.GET(...args).then(throwIfNotOk), - PUT: (...args: Parameters) => client.PUT(...args).then(throwIfNotOk), - POST: (...args: Parameters) => client.POST(...args).then(throwIfNotOk), - DELETE: (...args: Parameters) => client.DELETE(...args).then(throwIfNotOk), - OPTIONS: (...args: Parameters) => client.OPTIONS(...args).then(throwIfNotOk), - HEAD: (...args: Parameters) => client.HEAD(...args).then(throwIfNotOk), - PATCH: (...args: Parameters) => client.PATCH(...args).then(throwIfNotOk), - TRACE: (...args: Parameters) => client.TRACE(...args).then(throwIfNotOk), + /** Untyped request */ + request: (method: HTTPMethod, url: string, options?: FetchOptions) => + client[method as 'GET'](url as never, options as never).then(throwIfNotOk(method)) as Promise<{ + data: T; + response: FetchResponse['response']; + }>, + GET: (...args: Parameters) => client.GET(...args).then(throwIfNotOk('GET')), + PUT: (...args: Parameters) => client.PUT(...args).then(throwIfNotOk('PUT')), + POST: (...args: Parameters) => client.POST(...args).then(throwIfNotOk('POST')), + DELETE: (...args: Parameters) => client.DELETE(...args).then(throwIfNotOk('DELETE')), + OPTIONS: (...args: Parameters) => client.OPTIONS(...args).then(throwIfNotOk('OPTIONS')), + HEAD: (...args: Parameters) => client.HEAD(...args).then(throwIfNotOk('HEAD')), + PATCH: (...args: Parameters) => client.PATCH(...args).then(throwIfNotOk('PATCH')), + TRACE: (...args: Parameters) => client.TRACE(...args).then(throwIfNotOk('TRACE')), + }; +} + +function throwIfNotOk(method: HTTPMethod) { + return (res: FetchResponse) => { + if (res.error) { + // eslint-disable-next-line no-console + console.log(res.error); + throw new HTTPError({ method, error: res.error, response: res.response }); + } + // You can further modify response as desired... + return res; }; } -function throwIfNotOk(res: FetchResponse) { - if (res.error) { - // TODO: Return more detailed error here... - // eslint-disable-next-line no-console - console.log(res.error); - throw new Error('HTTPError'); +export class HTTPError extends Error { + override name = 'HTTPError'; + readonly method: HTTPMethod; + readonly error: Extract, { error: unknown }>['error']; + readonly response: FetchResponse['response']; + + get code() { + return this.response?.status; + } + + constructor({ method, error, response }: Extract, { error: unknown }> & { method: HTTPMethod }) { + super(`[HTTP ${response.status}]: ${method.toUpperCase()} ${response.url}`); + this.method = method; + this.error = error; + this.response = response; + Object.setPrototypeOf(this, HTTPError.prototype); } - // You can further modify response as desired... - return res; } + +// TODO: Introduce an createOpenapiOauthClient that handles token refreshes From 3131867b1cb2a4f7670e36e67e189692dbf3d515 Mon Sep 17 00:00:00 2001 From: Tony Xiao Date: Sat, 18 Nov 2023 00:22:02 -0800 Subject: [PATCH 12/22] feat: Outreach client refreshes token and apollo one attaches to query / body --- .../core/remotes/impl/apollo/apollo.client.ts | 23 +++++-- .../remotes/impl/outreach/outreach.client.ts | 63 +++++++++++++++---- .../core/remotes/utils/createOpenapiClient.ts | 15 +++-- 3 files changed, 74 insertions(+), 27 deletions(-) diff --git a/packages/core/remotes/impl/apollo/apollo.client.ts b/packages/core/remotes/impl/apollo/apollo.client.ts index 6dd0eaf87..644093568 100644 --- a/packages/core/remotes/impl/apollo/apollo.client.ts +++ b/packages/core/remotes/impl/apollo/apollo.client.ts @@ -1,4 +1,4 @@ -import createClient from 'openapi-fetch'; +import { createOpenapiClient } from '../../utils/createOpenapiClient'; import type { paths } from './apollo.openapi.gen'; @@ -8,11 +8,22 @@ interface ApolloCredentials { export type ApolloClient = ReturnType; export function createApolloClient(creds: ApolloCredentials) { - return createClient({ + return createOpenapiClient({ baseUrl: 'https://app.apollo.io/api', - // TODO: Add middleware as this does not work at the moment - body: JSON.stringify({ - api_key: creds.apiKey, - }), + preRequest(input, init) { + if (input && init?.method?.toLowerCase() === 'get') { + const url = new URL(input); + url.searchParams.set('api_key', creds.apiKey); + return [url.toString(), init]; + } + try { + return [ + input, + { ...init, body: JSON.stringify({ api_key: creds.apiKey, ...JSON.parse(init?.body as string) }) }, + ]; + } catch { + return [input, init]; + } + }, }); } diff --git a/packages/core/remotes/impl/outreach/outreach.client.ts b/packages/core/remotes/impl/outreach/outreach.client.ts index ae7ac8cd9..a39a0ddde 100644 --- a/packages/core/remotes/impl/outreach/outreach.client.ts +++ b/packages/core/remotes/impl/outreach/outreach.client.ts @@ -1,4 +1,5 @@ -import createClient from 'openapi-fetch'; +import { SGConnectionNoLongerAuthenticatedError } from '../../../errors'; +import { createOpenapiClient, HTTPError } from '../../utils/createOpenapiClient'; import type { paths } from './outreach.openapi.gen'; @@ -6,22 +7,58 @@ interface OutreachCredentials { accessToken: string; // Comment back in when we are refreshing tokens in the client itself instead - // refreshToken: string; - // expiresAt: string | null; // ISO string - // clientId: string; - // clientSecret: string; + refreshToken: string; + expiresAt: string | null; // ISO string + clientId: string; + clientSecret: string; } +export const REFRESH_TOKEN_THRESHOLD_MS = 300000; // 5 minutes + export type OutreachClient = ReturnType; -export function createOutreachClient(creds: OutreachCredentials) { - return createClient({ - // TODO: Get this from the openapi spec if possible +export function createOutreachClient({ + onTokenRefreshed, + ...creds +}: OutreachCredentials & { + onTokenRefreshed?: (creds: Pick) => void; +}) { + // Maybe worth modifying the outreach openapi spec with refresh token tools + const client = createOpenapiClient({ baseUrl: 'https://api.outreach.io/api/v2', - headers: { - // We use a getter here here to interoperate with maybeRefreshAccessToken - get Authorization() { - return `Bearer ${creds.accessToken}`; - }, + async preRequest(input, init) { + // Proactive refresh access token + if (!creds.expiresAt || Date.parse(creds.expiresAt) < Date.now() + REFRESH_TOKEN_THRESHOLD_MS) { + await refreshAccessToken(); + } + return [input, { ...init, headers: { ...init?.headers, Authorization: `Bearer ${creds.accessToken}` } }]; }, + // Maybe implement reactive refresh also based on http 403 }); + + async function refreshAccessToken() { + try { + const res = await client.request<{ refresh_token: string; access_token: string; expires_in: number }>( + 'POST', + '/oauth/token', + { + body: { + client_id: creds.clientId, + client_secret: creds.clientSecret, + grant_type: 'refresh_token', + refresh_token: creds.refreshToken, + }, + } + ); + creds.accessToken = res.data.access_token; + creds.refreshToken = res.data.refresh_token; + creds.expiresAt = new Date(Date.now() + res.data.expires_in * 1000).toISOString(); + onTokenRefreshed?.(creds); + } catch (e) { + if (e instanceof HTTPError && e.response.status === 400) { + throw new SGConnectionNoLongerAuthenticatedError('Unable to refresh access token. Refresh token invalid.'); + } + throw e; + } + } + return client; } diff --git a/packages/core/remotes/utils/createOpenapiClient.ts b/packages/core/remotes/utils/createOpenapiClient.ts index 20404a1ee..5c55194d3 100644 --- a/packages/core/remotes/utils/createOpenapiClient.ts +++ b/packages/core/remotes/utils/createOpenapiClient.ts @@ -6,13 +6,12 @@ type HTTPMethod = 'GET' | 'PUT' | 'POST' | 'DELETE' | 'OPTIONS' | 'HEAD' | 'PATC type MaybePromise = T | Promise; type _ClientOptions = NonNullable[0]>; + +type FetchParams = [string, Parameters[1]]; // Workaround for https://github.com/drwpow/openapi-typescript/issues/1122 interface ClientOptions extends _ClientOptions { - preRequest?: (...args: Parameters) => MaybePromise>; - postRequest?: ( - res: Awaited>, - requestArgs: Parameters - ) => ReturnType; + preRequest?: (...args: FetchParams) => MaybePromise; + postRequest?: (res: Awaited>, requestArgs: FetchParams) => ReturnType; } // eslint-disable-next-line @typescript-eslint/ban-types @@ -22,8 +21,8 @@ export function createOpenapiClient({ ...clientOptions }: ClientOptions = {}) { const baseFetch = clientOptions?.fetch ?? globalThis.fetch; - const customFetch: typeof baseFetch = async (...args) => { - const requestArgs = await preRequest(...args); + const customFetch: typeof baseFetch = async (url, init) => { + const requestArgs = await preRequest(url as string, init); const res = await baseFetch(...requestArgs); return postRequest(res, requestArgs); }; @@ -31,7 +30,7 @@ export function createOpenapiClient({ return { /** Untyped request */ - request: (method: HTTPMethod, url: string, options?: FetchOptions) => + request: (method: HTTPMethod, url: string, options?: Omit, 'body'> & { body?: unknown }) => client[method as 'GET'](url as never, options as never).then(throwIfNotOk(method)) as Promise<{ data: T; response: FetchResponse['response']; From fcda8429e647c9150b1fe018a8e7fe26556b4cc9 Mon Sep 17 00:00:00 2001 From: Tony Xiao Date: Sat, 18 Nov 2023 01:07:26 -0800 Subject: [PATCH 13/22] feat: Both Outreach and salesloft use oauth openapi client now --- packages/core/remotes/impl/outreach/index.ts | 5 +- .../remotes/impl/outreach/outreach.client.ts | 78 ++++++++----------- packages/core/remotes/impl/salesloft/index.ts | 5 +- .../impl/salesloft/salesloft.client.ts | 49 +++++++++--- .../core/remotes/utils/createOpenapiClient.ts | 70 +++++++++++++---- 5 files changed, 136 insertions(+), 71 deletions(-) diff --git a/packages/core/remotes/impl/outreach/index.ts b/packages/core/remotes/impl/outreach/index.ts index 516a5c747..dbc879fac 100644 --- a/packages/core/remotes/impl/outreach/index.ts +++ b/packages/core/remotes/impl/outreach/index.ts @@ -169,7 +169,10 @@ class OutreachClient extends AbstractEngagementRemoteClient { super('https://api.outreach.io'); this.#baseURL = 'https://api.outreach.io'; this.#credentials = credentials; - this.#api = createOutreachClient(this.#credentials); + this.#api = createOutreachClient({ + credentials: this.#credentials, + onTokenRefreshed: (tokens) => this.emit('token_refreshed', tokens), + }); } protected override getAuthHeadersForPassthroughRequest(): Record { diff --git a/packages/core/remotes/impl/outreach/outreach.client.ts b/packages/core/remotes/impl/outreach/outreach.client.ts index a39a0ddde..c6ca499c9 100644 --- a/packages/core/remotes/impl/outreach/outreach.client.ts +++ b/packages/core/remotes/impl/outreach/outreach.client.ts @@ -1,64 +1,52 @@ import { SGConnectionNoLongerAuthenticatedError } from '../../../errors'; -import { createOpenapiClient, HTTPError } from '../../utils/createOpenapiClient'; +import type { OAuthClientOptions } from '../../utils/createOpenapiClient'; +import { createOpenapiOauthClient, HTTPError } from '../../utils/createOpenapiClient'; import type { paths } from './outreach.openapi.gen'; interface OutreachCredentials { accessToken: string; - - // Comment back in when we are refreshing tokens in the client itself instead refreshToken: string; - expiresAt: string | null; // ISO string + expiresAt: string | null; clientId: string; clientSecret: string; } -export const REFRESH_TOKEN_THRESHOLD_MS = 300000; // 5 minutes - export type OutreachClient = ReturnType; export function createOutreachClient({ - onTokenRefreshed, - ...creds -}: OutreachCredentials & { - onTokenRefreshed?: (creds: Pick) => void; -}) { + credentials: creds, + ...options +}: { credentials: OutreachCredentials } & Pick) { // Maybe worth modifying the outreach openapi spec with refresh token tools - const client = createOpenapiClient({ + return createOpenapiOauthClient({ baseUrl: 'https://api.outreach.io/api/v2', - async preRequest(input, init) { - // Proactive refresh access token - if (!creds.expiresAt || Date.parse(creds.expiresAt) < Date.now() + REFRESH_TOKEN_THRESHOLD_MS) { - await refreshAccessToken(); + ...options, + tokens: creds, + refreshTokens: async (client) => { + try { + const res = await client.request<{ refresh_token: string; access_token: string; expires_in: number }>( + 'POST', + '/oauth/token', + { + body: { + client_id: creds.clientId, + client_secret: creds.clientSecret, + grant_type: 'refresh_token', + refresh_token: creds.refreshToken, + }, + } + ); + return { + accessToken: res.data.access_token, + refreshToken: res.data.refresh_token, + expiresAt: new Date(Date.now() + res.data.expires_in * 1000).toISOString(), + }; + } catch (e) { + if (e instanceof HTTPError && e.response.status === 400) { + throw new SGConnectionNoLongerAuthenticatedError('Unable to refresh access token. Refresh token invalid.'); + } + throw e; } - return [input, { ...init, headers: { ...init?.headers, Authorization: `Bearer ${creds.accessToken}` } }]; }, - // Maybe implement reactive refresh also based on http 403 }); - - async function refreshAccessToken() { - try { - const res = await client.request<{ refresh_token: string; access_token: string; expires_in: number }>( - 'POST', - '/oauth/token', - { - body: { - client_id: creds.clientId, - client_secret: creds.clientSecret, - grant_type: 'refresh_token', - refresh_token: creds.refreshToken, - }, - } - ); - creds.accessToken = res.data.access_token; - creds.refreshToken = res.data.refresh_token; - creds.expiresAt = new Date(Date.now() + res.data.expires_in * 1000).toISOString(); - onTokenRefreshed?.(creds); - } catch (e) { - if (e instanceof HTTPError && e.response.status === 400) { - throw new SGConnectionNoLongerAuthenticatedError('Unable to refresh access token. Refresh token invalid.'); - } - throw e; - } - } - return client; } diff --git a/packages/core/remotes/impl/salesloft/index.ts b/packages/core/remotes/impl/salesloft/index.ts index bc810a960..bc6b4d84b 100644 --- a/packages/core/remotes/impl/salesloft/index.ts +++ b/packages/core/remotes/impl/salesloft/index.ts @@ -87,7 +87,10 @@ class SalesloftClient extends AbstractEngagementRemoteClient { this.#baseURL = 'https://api.salesloft.com'; this.#credentials = credentials; this.#headers = { Authorization: `Bearer ${this.#credentials.accessToken}` }; - this.#api = createSalesloftClient(this.#credentials); + this.#api = createSalesloftClient({ + credentials: this.#credentials, + onTokenRefreshed: (tokens) => this.emit('token_refreshed', tokens), + }); } protected override getAuthHeadersForPassthroughRequest(): Record { diff --git a/packages/core/remotes/impl/salesloft/salesloft.client.ts b/packages/core/remotes/impl/salesloft/salesloft.client.ts index 292cf5793..213d6588b 100644 --- a/packages/core/remotes/impl/salesloft/salesloft.client.ts +++ b/packages/core/remotes/impl/salesloft/salesloft.client.ts @@ -1,20 +1,51 @@ -import createClient from 'openapi-fetch'; +import type { ConnectorAuthConfig } from '../../base'; +import type { OAuthClientOptions } from '../../utils/createOpenapiClient'; +import { createOpenapiOauthClient } from '../../utils/createOpenapiClient'; import type { paths } from './salesloft.openapi.gen'; interface SalesloftCredentials { accessToken: string; + refreshToken: string; + expiresAt: string | null; + clientId: string; + clientSecret: string; } export type SalesloftClient = ReturnType; -export function createSalesloftClient(creds: SalesloftCredentials) { - return createClient({ +export function createSalesloftClient({ + credentials: creds, + ...options +}: { credentials: SalesloftCredentials } & Pick) { + return createOpenapiOauthClient({ baseUrl: ' https://api.salesloft.com', - headers: { - // We use a getter here here to interoperate with maybeRefreshAccessToken - get Authorization() { - return `Bearer ${creds.accessToken}`; - }, - }, + ...options, + tokens: creds, + refreshTokens: async (client) => + client + .request<{ refresh_token: string; access_token: string; expires_in: number }>( + 'POST', + `${salesloftAuthConfig.tokenHost}${salesloftAuthConfig.tokenPath}`, + { + body: { + client_id: creds.clientId, + client_secret: creds.clientSecret, + grant_type: 'refresh_token', + refresh_token: creds.refreshToken, + }, + } + ) + .then((res) => ({ + accessToken: res.data.access_token, + refreshToken: res.data.refresh_token, + expiresAt: new Date(Date.now() + res.data.expires_in * 1000).toISOString(), + })), }); } + +export const salesloftAuthConfig: ConnectorAuthConfig = { + tokenHost: 'https://accounts.salesloft.com', + tokenPath: '/oauth/token', + authorizeHost: 'https://accounts.salesloft.com', + authorizePath: '/oauth/authorize', +}; diff --git a/packages/core/remotes/utils/createOpenapiClient.ts b/packages/core/remotes/utils/createOpenapiClient.ts index 5c55194d3..fcb2f8304 100644 --- a/packages/core/remotes/utils/createOpenapiClient.ts +++ b/packages/core/remotes/utils/createOpenapiClient.ts @@ -2,13 +2,13 @@ import type { FetchOptions, FetchResponse } from 'openapi-fetch'; import createClient from 'openapi-fetch'; type HTTPMethod = 'GET' | 'PUT' | 'POST' | 'DELETE' | 'OPTIONS' | 'HEAD' | 'PATCH' | 'TRACE'; - type MaybePromise = T | Promise; - type _ClientOptions = NonNullable[0]>; - type FetchParams = [string, Parameters[1]]; + // Workaround for https://github.com/drwpow/openapi-typescript/issues/1122 + +// MARK: - OpenAPI client interface ClientOptions extends _ClientOptions { preRequest?: (...args: FetchParams) => MaybePromise; postRequest?: (res: Awaited>, requestArgs: FetchParams) => ReturnType; @@ -46,18 +46,6 @@ export function createOpenapiClient({ }; } -function throwIfNotOk(method: HTTPMethod) { - return (res: FetchResponse) => { - if (res.error) { - // eslint-disable-next-line no-console - console.log(res.error); - throw new HTTPError({ method, error: res.error, response: res.response }); - } - // You can further modify response as desired... - return res; - }; -} - export class HTTPError extends Error { override name = 'HTTPError'; readonly method: HTTPMethod; @@ -78,3 +66,55 @@ export class HTTPError extends Error { } // TODO: Introduce an createOpenapiOauthClient that handles token refreshes + +function throwIfNotOk(method: HTTPMethod) { + return (res: FetchResponse) => { + if (res.error) { + // eslint-disable-next-line no-console + console.log(res.error); + throw new HTTPError({ method, error: res.error, response: res.response }); + } + // You can further modify response as desired... + return res; + }; +} + +// MARK :- OpenAPI Oauth Client + +export const REFRESH_TOKEN_THRESHOLD_MS = 300000; // 5 minutes +interface OauthTokens { + accessToken: string; + refreshToken: string; + /** ISO string */ + expiresAt: string | null; +} + +// eslint-disable-next-line @typescript-eslint/ban-types +export type OAuthClientOptions = ClientOptions & { + tokens: OauthTokens; + refreshTokens: (client: ReturnType>) => Promise; + onTokenRefreshed?: (tokens: OauthTokens) => void; +}; + +// eslint-disable-next-line @typescript-eslint/ban-types +export function createOpenapiOauthClient({ + tokens: initialTokens, + refreshTokens, + onTokenRefreshed, + preRequest = (url, init) => [url, init], + ...options +}: OAuthClientOptions) { + let tokens = initialTokens; + const client = createOpenapiClient({ + ...options, + preRequest: async (url, init) => { + // Proactive refresh access token + if (!tokens.expiresAt || Date.parse(tokens.expiresAt) < Date.now() + REFRESH_TOKEN_THRESHOLD_MS) { + tokens = await refreshTokens(client); + onTokenRefreshed?.(tokens); + } + return preRequest(url, { ...init, headers: { ...init?.headers, Authorization: `Bearer ${tokens.accessToken}` } }); + }, + }); + return client; +} From 804766f329c76b134b399840ff546b51d56a7903 Mon Sep 17 00:00:00 2001 From: Tony Xiao Date: Mon, 20 Nov 2023 12:56:03 -0800 Subject: [PATCH 14/22] chore: Update yarn.lock --- yarn.lock | 112 +++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 102 insertions(+), 10 deletions(-) diff --git a/yarn.lock b/yarn.lock index 326f435ec..e8ae9f296 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6330,11 +6330,14 @@ __metadata: "@zodios/openapi": ^10.5.0 async-retry: ^1.3.3 axios: ^1.6.0 + concurrently: ^8.2.2 csv-parse: ^5.3.5 csv-stringify: ^6.3.0 jsforce: ^2.0.0-beta.20 + json2yaml: ^1.1.0 odata: ^1.3.2 - openapi3-ts: ^4.1.2 + openapi-fetch: ^0.8.1 + openapi-typescript: ^6.7.1 pg: ^8.10.2 pg-connection-string: ^2.6.2 pg-copy-streams: ^6.0.6 @@ -10285,6 +10288,26 @@ __metadata: languageName: node linkType: hard +"concurrently@npm:^8.2.2": + version: 8.2.2 + resolution: "concurrently@npm:8.2.2" + dependencies: + chalk: ^4.1.2 + date-fns: ^2.30.0 + lodash: ^4.17.21 + rxjs: ^7.8.1 + shell-quote: ^1.8.1 + spawn-command: 0.0.2 + supports-color: ^8.1.1 + tree-kill: ^1.2.2 + yargs: ^17.7.2 + bin: + conc: dist/bin/concurrently.js + concurrently: dist/bin/concurrently.js + checksum: 8ac774df06869773438f1bf91025180c52d5b53139bc86cf47659136c0d97461d0579c515d848d1e945d4e3e0cafe646b2ea18af8d74259b46abddcfe39b2c6c + languageName: node + linkType: hard + "configstore@npm:^5.0.1": version: 5.0.1 resolution: "configstore@npm:5.0.1" @@ -10931,6 +10954,15 @@ __metadata: languageName: node linkType: hard +"date-fns@npm:^2.30.0": + version: 2.30.0 + resolution: "date-fns@npm:2.30.0" + dependencies: + "@babel/runtime": ^7.21.0 + checksum: f7be01523282e9bb06c0cd2693d34f245247a29098527d4420628966a2d9aad154bd0e90a6b1cf66d37adcb769cd108cf8a7bd49d76db0fb119af5cdd13644f4 + languageName: node + linkType: hard + "dateformat@npm:^4.6.3": version: 4.6.3 resolution: "dateformat@npm:4.6.3" @@ -16092,6 +16124,20 @@ __metadata: languageName: node linkType: hard +"json2yaml@npm:^1.1.0": + version: 1.1.0 + resolution: "json2yaml@npm:1.1.0" + dependencies: + remedial: 1.x + bin: + json2yaml: ./cli.js + json2yml: ./cli.js + jsontoyaml: ./cli.js + jsontoyml: ./cli.js + checksum: 5666e04905edc89c8cc785bef0d948f5db9aa38b4b0ce5e63d2cbe669657e1cb60f4e5dc64ab25939d8bb97f70cc876746008dd433c29a2045fbb39bff97cb68 + languageName: node + linkType: hard + "json5@npm:^1.0.2": version: 1.0.2 resolution: "json5@npm:1.0.2" @@ -18535,7 +18581,7 @@ __metadata: languageName: node linkType: hard -"openapi-fetch@npm:0.8.1": +"openapi-fetch@npm:0.8.1, openapi-fetch@npm:^0.8.1": version: 0.8.1 resolution: "openapi-fetch@npm:0.8.1" dependencies: @@ -18574,12 +18620,19 @@ __metadata: languageName: node linkType: hard -"openapi3-ts@npm:^4.1.2": - version: 4.1.2 - resolution: "openapi3-ts@npm:4.1.2" +"openapi-typescript@npm:^6.7.1": + version: 6.7.1 + resolution: "openapi-typescript@npm:6.7.1" dependencies: - yaml: ^2.2.2 - checksum: 019a66f4195966bf58ee29f913b91e39975616458fdb40a15507a3b3e338eacfc882def0dda1a5001edf962e382ed6f46c8a0d40684adcccb868960267df30d9 + ansi-colors: ^4.1.3 + fast-glob: ^3.3.1 + js-yaml: ^4.1.0 + supports-color: ^9.4.0 + undici: ^5.27.2 + yargs-parser: ^21.1.1 + bin: + openapi-typescript: bin/cli.js + checksum: 2c7f47ad6e11082747fbae35304e2e26072ad317a4066a3bc934caf1a39fb7d34ca3ecb34aabf36162f89fc99ee7ca7cd3c4a9c8bcb079b527cda5ef33c2c6d7 languageName: node linkType: hard @@ -21116,6 +21169,13 @@ __metadata: languageName: node linkType: hard +"remedial@npm:1.x": + version: 1.0.8 + resolution: "remedial@npm:1.0.8" + checksum: 12df7c55eb92501d7f33cfe5f5ad12be13bb6ac0c53f494aaa9963d5a5155bb8be2143e8d5e17afa1a500ef5dc71d13642920d35350f2a31b65a9778afab6869 + languageName: node + linkType: hard + "renderkid@npm:^3.0.0": version: 3.0.0 resolution: "renderkid@npm:3.0.0" @@ -21510,6 +21570,15 @@ __metadata: languageName: node linkType: hard +"rxjs@npm:^7.8.1": + version: 7.8.1 + resolution: "rxjs@npm:7.8.1" + dependencies: + tslib: ^2.1.0 + checksum: de4b53db1063e618ec2eca0f7965d9137cabe98cf6be9272efe6c86b47c17b987383df8574861bcced18ebd590764125a901d5506082be84a8b8e364bf05f119 + languageName: node + linkType: hard + "sade@npm:^1.7.3": version: 1.8.1 resolution: "sade@npm:1.8.1" @@ -22014,6 +22083,13 @@ __metadata: languageName: node linkType: hard +"shell-quote@npm:^1.8.1": + version: 1.8.1 + resolution: "shell-quote@npm:1.8.1" + checksum: 5f01201f4ef504d4c6a9d0d283fa17075f6770bfbe4c5850b074974c68062f37929ca61700d95ad2ac8822e14e8c4b990ca0e6e9272e64befd74ce5e19f0736b + languageName: node + linkType: hard + "shelljs@npm:^0.8.5": version: 0.8.5 resolution: "shelljs@npm:0.8.5" @@ -22406,6 +22482,13 @@ __metadata: languageName: node linkType: hard +"spawn-command@npm:0.0.2": + version: 0.0.2 + resolution: "spawn-command@npm:0.0.2" + checksum: e35c5d28177b4d461d33c88cc11f6f3a5079e2b132c11e1746453bbb7a0c0b8a634f07541a2a234fa4758239d88203b758def509161b651e81958894c0b4b64b + languageName: node + linkType: hard + "spdx-correct@npm:^3.0.0": version: 3.1.1 resolution: "spdx-correct@npm:3.1.1" @@ -22948,7 +23031,7 @@ __metadata: languageName: node linkType: hard -"supports-color@npm:^8.0.0": +"supports-color@npm:^8.0.0, supports-color@npm:^8.1.1": version: 8.1.1 resolution: "supports-color@npm:8.1.1" dependencies: @@ -23521,6 +23604,15 @@ __metadata: languageName: node linkType: hard +"tree-kill@npm:^1.2.2": + version: 1.2.2 + resolution: "tree-kill@npm:1.2.2" + bin: + tree-kill: cli.js + checksum: 49117f5f410d19c84b0464d29afb9642c863bc5ba40fcb9a245d474c6d5cc64d1b177a6e6713129eb346b40aebb9d4631d967517f9fbe8251c35b21b13cd96c7 + languageName: node + linkType: hard + "trim-lines@npm:^3.0.0": version: 3.0.1 resolution: "trim-lines@npm:3.0.1" @@ -24024,7 +24116,7 @@ __metadata: languageName: node linkType: hard -"undici@npm:5.27.2, undici@npm:^5.23.0": +"undici@npm:5.27.2, undici@npm:^5.23.0, undici@npm:^5.27.2": version: 5.27.2 resolution: "undici@npm:5.27.2" dependencies: @@ -25389,7 +25481,7 @@ __metadata: languageName: node linkType: hard -"yargs@npm:^17.3.1": +"yargs@npm:^17.3.1, yargs@npm:^17.7.2": version: 17.7.2 resolution: "yargs@npm:17.7.2" dependencies: From f7049c48b8677d2ea203a986abc6382cd0d80213 Mon Sep 17 00:00:00 2001 From: Tony Xiao Date: Mon, 20 Nov 2023 14:02:44 -0800 Subject: [PATCH 15/22] fix: Typing of wrapper client --- packages/core/package.json | 1 + .../core/remotes/utils/createOpenapiClient.ts | 30 +++++++++++++------ yarn.lock | 3 +- 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 91e37978f..e534c4a5f 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -52,6 +52,7 @@ "concurrently": "^8.2.2", "json2yaml": "^1.1.0", "openapi-typescript": "^6.7.1", + "openapi-typescript-helpers": "0.0.4", "ts-toolbelt": "9.6.0", "typescript": "^4.9.5" }, diff --git a/packages/core/remotes/utils/createOpenapiClient.ts b/packages/core/remotes/utils/createOpenapiClient.ts index fcb2f8304..0c183e0c3 100644 --- a/packages/core/remotes/utils/createOpenapiClient.ts +++ b/packages/core/remotes/utils/createOpenapiClient.ts @@ -1,5 +1,8 @@ import type { FetchOptions, FetchResponse } from 'openapi-fetch'; import createClient from 'openapi-fetch'; +// @ts-expect-error Not sure we get The current file is a CommonJS module whose imports will +// produce 'require' calls error, but it's ireelevant and thus we will suppress it +import type { PathsWithMethod } from 'openapi-typescript-helpers'; type HTTPMethod = 'GET' | 'PUT' | 'POST' | 'DELETE' | 'OPTIONS' | 'HEAD' | 'PATCH' | 'TRACE'; type MaybePromise = T | Promise; @@ -29,20 +32,29 @@ export function createOpenapiClient({ const client = createClient({ ...clientOptions, fetch: customFetch }); return { + client, /** Untyped request */ request: (method: HTTPMethod, url: string, options?: Omit, 'body'> & { body?: unknown }) => client[method as 'GET'](url as never, options as never).then(throwIfNotOk(method)) as Promise<{ data: T; response: FetchResponse['response']; }>, - GET: (...args: Parameters) => client.GET(...args).then(throwIfNotOk('GET')), - PUT: (...args: Parameters) => client.PUT(...args).then(throwIfNotOk('PUT')), - POST: (...args: Parameters) => client.POST(...args).then(throwIfNotOk('POST')), - DELETE: (...args: Parameters) => client.DELETE(...args).then(throwIfNotOk('DELETE')), - OPTIONS: (...args: Parameters) => client.OPTIONS(...args).then(throwIfNotOk('OPTIONS')), - HEAD: (...args: Parameters) => client.HEAD(...args).then(throwIfNotOk('HEAD')), - PATCH: (...args: Parameters) => client.PATCH(...args).then(throwIfNotOk('PATCH')), - TRACE: (...args: Parameters) => client.TRACE(...args).then(throwIfNotOk('TRACE')), + GET:

>(...args: Parameters>) => + client.GET

(...args).then(throwIfNotOk('GET')), + PUT:

>(...args: Parameters>) => + client.PUT(...args).then(throwIfNotOk('PUT')), + POST:

>(...args: Parameters>) => + client.POST(...args).then(throwIfNotOk('POST')), + DELETE:

>(...args: Parameters>) => + client.DELETE(...args).then(throwIfNotOk('DELETE')), + OPTIONS:

>(...args: Parameters>) => + client.OPTIONS(...args).then(throwIfNotOk('OPTIONS')), + HEAD:

>(...args: Parameters>) => + client.HEAD(...args).then(throwIfNotOk('HEAD')), + PATCH:

>(...args: Parameters>) => + client.PATCH(...args).then(throwIfNotOk('PATCH')), + TRACE:

>(...args: Parameters>) => + client.TRACE(...args).then(throwIfNotOk('TRACE')), }; } @@ -75,7 +87,7 @@ function throwIfNotOk(method: HTTPMethod) { throw new HTTPError({ method, error: res.error, response: res.response }); } // You can further modify response as desired... - return res; + return res as Extract, { data: unknown }>; }; } diff --git a/yarn.lock b/yarn.lock index e8ae9f296..f86c5e7cf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6338,6 +6338,7 @@ __metadata: odata: ^1.3.2 openapi-fetch: ^0.8.1 openapi-typescript: ^6.7.1 + openapi-typescript-helpers: 0.0.4 pg: ^8.10.2 pg-connection-string: ^2.6.2 pg-copy-streams: ^6.0.6 @@ -18597,7 +18598,7 @@ __metadata: languageName: node linkType: hard -"openapi-typescript-helpers@npm:^0.0.4": +"openapi-typescript-helpers@npm:0.0.4, openapi-typescript-helpers@npm:^0.0.4": version: 0.0.4 resolution: "openapi-typescript-helpers@npm:0.0.4" checksum: d06d62f9669db5110f32ef36a70f9f2698dd7ad03ba41968baf13e1091caaf23c4af6f8a79103cfd68f65046da4284dcc2f75e9950e9170115189b545e3030fc From 76370de615f0bf3abdae0773c98c429151f3a6c3 Mon Sep 17 00:00:00 2001 From: Tony Xiao Date: Mon, 20 Nov 2023 14:14:01 -0800 Subject: [PATCH 16/22] chore: remove zodios and switching to use the new openapi client --- packages/core/package.json | 3 - .../core/remotes/impl/apollo/apollo.zodios.ts | 81 ------- packages/core/remotes/impl/apollo/index.ts | 91 +++---- .../core/remotes/utils/createOpenapiClient.ts | 9 +- .../remotes/utils/zodios-api-shorthand.ts | 223 ------------------ yarn.lock | 56 +---- 6 files changed, 53 insertions(+), 410 deletions(-) delete mode 100644 packages/core/remotes/impl/apollo/apollo.zodios.ts delete mode 100644 packages/core/remotes/utils/zodios-api-shorthand.ts diff --git a/packages/core/package.json b/packages/core/package.json index e534c4a5f..7bf40aa79 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -6,7 +6,6 @@ "types": "index.ts", "packageManager": "yarn@3.4.1", "dependencies": { - "@anatine/zod-openapi": "^2.2.0", "@aws-sdk/client-sesv2": "^3.437.0", "@google-cloud/bigquery": "^6.2.0", "@hubspot/api-client": "9.1.0", @@ -16,8 +15,6 @@ "@supaglue/types": "workspace:^", "@supaglue/utils": "workspace:*", "@temporalio/proto": "^1.8.6", - "@zodios/core": "^10.9.6", - "@zodios/openapi": "^10.5.0", "async-retry": "^1.3.3", "axios": "^1.6.0", "csv-parse": "^5.3.5", diff --git a/packages/core/remotes/impl/apollo/apollo.zodios.ts b/packages/core/remotes/impl/apollo/apollo.zodios.ts deleted file mode 100644 index 6741b9aae..000000000 --- a/packages/core/remotes/impl/apollo/apollo.zodios.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { Zodios } from '@zodios/core'; -import { openApiBuilder } from '@zodios/openapi'; -import type { AxiosRequestConfig } from 'axios'; -import z from 'zod'; -import { defineApi } from '../../utils/zodios-api-shorthand'; -import { - apolloContact, - apolloCreateEmailerCampaign, - apolloCreateEmailerStep, - apolloEmailerCampaignAddContactIds, - apolloEmailerCampaignAddContactIdsResponse, - apolloEmailerCampaignResponse, - apolloEmailerStep, - apolloEmailerTemplate, - apolloEmailerTouch, - apolloEmailerTouchUpdate, -} from './apollo.openapi'; - -export const apolloApi = defineApi({ - 'GET EmailerCampaign': { - path: '/v1/emailer_campaigns/:id', - response: apolloEmailerCampaignResponse, - }, - 'POST EmailerCampaign': { - path: '/v1/emailer_campaigns', - body: apolloCreateEmailerCampaign, - response: apolloEmailerCampaignResponse, - }, - 'POST EmailerCampaignAddContactIds': { - path: '/v1/emailer_campaigns/:id/add_contact_ids', - body: apolloEmailerCampaignAddContactIds, - response: apolloEmailerCampaignAddContactIdsResponse, - }, - 'POST EmailerStep': { - path: '/v1/emailer_steps', - body: apolloCreateEmailerStep, - response: z.object({ - emailer_step: apolloEmailerStep, - // Null for templatable steps (e.g. tasks / calls) - emailer_touch: apolloEmailerTouch.nullish(), - emailer_template: apolloEmailerTemplate.nullish(), - }), - }, - 'DELETE EmailerStep': { - path: '/v1/emailer_steps/:id', - response: z.object({ emailer_step: z.object({ id: z.string(), deleted: z.boolean() }) }), - }, - 'PUT EmailerTouch': { - path: '/v1/emailer_touches/:id', - body: apolloEmailerTouchUpdate, - response: z.object({ emailer_touch: apolloEmailerTouch }), - }, - 'GET Contact': { - path: '/v1/contacts/:id', - response: z.object({ contact: apolloContact }), - }, -}); - -export function createApolloZodios(cfg: { apiKey: string; axiosConfig?: AxiosRequestConfig }) { - return new Zodios(apolloApi, { - axiosConfig: { - baseURL: 'https://app.apollo.io/api', - params: { api_key: cfg.apiKey }, - ...cfg.axiosConfig, - }, - }); -} - -export function outputZodiosOpenApi() { - return openApiBuilder({ - title: 'Apollo API', - version: '0.0.0', - }) - .addServer({ url: 'https://app.apollo.io/api' }) - .addPublicApi(apolloApi) - .build(); -} -if (require.main === module) { - // eslint-disable-next-line no-console - console.log(JSON.stringify(outputZodiosOpenApi(), null, 2)); -} diff --git a/packages/core/remotes/impl/apollo/index.ts b/packages/core/remotes/impl/apollo/index.ts index ecc96c487..2b048b2de 100644 --- a/packages/core/remotes/impl/apollo/index.ts +++ b/packages/core/remotes/impl/apollo/index.ts @@ -29,7 +29,6 @@ import { } from '../../../errors'; import type { PaginatedSupaglueRecords } from '../../../lib'; import { retryWhenAxiosApolloRateLimited } from '../../../lib/apollo_ratelimit'; -import { parseProxyConfig } from '../../../lib/util'; import type { ConnectorAuthConfig } from '../../base'; import type { CreateCommonObjectRecordResponse, @@ -37,7 +36,7 @@ import type { } from '../../categories/engagement/base'; import { AbstractEngagementRemoteClient } from '../../categories/engagement/base'; import { paginator } from '../../utils/paginator'; -import { createApolloZodios } from './apollo.zodios'; +import { createApolloClient } from './apollo.client'; import { fromApolloAccountToAccount, fromApolloContactCampaignStatusToSequenceState, @@ -86,17 +85,14 @@ class ApolloClient extends AbstractEngagementRemoteClient { readonly #apiKey: string; readonly #headers: Record; readonly #baseURL: string; - readonly #api: ReturnType; + readonly #api: ReturnType; public constructor(apiKey: string) { super('https://api.apollo.io'); this.#baseURL = 'https://api.apollo.io'; this.#apiKey = apiKey; this.#headers = { 'Content-Type': 'application/json', 'Cache-Control': 'no-cache' }; - this.#api = createApolloZodios({ - apiKey, - axiosConfig: { proxy: parseProxyConfig(process.env.PROXY_URL) }, - }); + this.#api = createApolloClient({ apiKey }); } protected override getAuthHeadersForPassthroughRequest(): Record { @@ -131,8 +127,8 @@ class ApolloClient extends AbstractEngagementRemoteClient { switch (commonObjectType) { case 'sequence': return this.#api - .getEmailerCampaign({ params: { id } }) - .then(({ emailer_campaign: c }) => fromApolloEmailerCampaignToSequence(c)); + .GET('/v1/emailer_campaigns/{id}', { params: { path: { id } } }) + .then(({ data: { emailer_campaign: c } }) => fromApolloEmailerCampaignToSequence(c)); case 'contact': return await this.#getContact(id); case 'account': @@ -512,13 +508,15 @@ class ApolloClient extends AbstractEngagementRemoteClient { } async createSequence(params: SequenceCreateParams): Promise> { - const res = await this.#api.postEmailerCampaign({ - name: params.name, - permissions: params.type === 'private' ? 'private' : 'team_can_use', - active: true, - label_ids: params.tags, - user_id: params.ownerId, - ...params.customFields, + const { data: res } = await this.#api.POST('/v1/emailer_campaigns', { + body: { + name: params.name, + permissions: params.type === 'private' ? 'private' : 'team_can_use', + active: true, + label_ids: params.tags, + user_id: params.ownerId, + ...params.customFields, + }, }); // Cannot create steps concurrently for apollo otherwise we run into race conditions @@ -543,31 +541,34 @@ class ApolloClient extends AbstractEngagementRemoteClient { const hours = intOnly(divide(minutes, 60)); const days = intOnly(divide(hours, 24)); - const r = await this.#api.postEmailerStep({ - emailer_campaign_id: params.sequenceId, - position: params.order ?? 1, - type: - params.type === 'linkedin_send_message' - ? 'linkedin_step_message' - : params.type === 'task' - ? 'action_item' - : params.type, - ...(days - ? { wait_mode: 'day', wait_time: days } - : hours - ? { wait_mode: 'hour', wait_time: hours } - : minutes - ? { wait_mode: 'minute', wait_time: minutes } - : { wait_mode: 'second', wait_time: seconds ?? 0 }), - exact_datetime: params.date, // Not clear exactly how this works - note: params.taskNote, - ...params.customFields, + const { data: r } = await this.#api.POST('/v1/emailer_steps', { + body: { + emailer_campaign_id: params.sequenceId, + position: params.order ?? 1, + type: + params.type === 'linkedin_send_message' + ? 'linkedin_step_message' + : params.type === 'task' + ? 'action_item' + : params.type, + ...(days + ? { wait_mode: 'day', wait_time: days } + : hours + ? { wait_mode: 'hour', wait_time: hours } + : minutes + ? { wait_mode: 'minute', wait_time: minutes } + : { wait_mode: 'second', wait_time: seconds ?? 0 }), + exact_datetime: params.date, // Not clear exactly how this works + note: params.taskNote, + ...params.customFields, + }, }); // Only exists for templatable steps like tasks / calls if (r.emailer_touch && r.emailer_template) { - await this.#api.putEmailerTouch( - { + await this.#api.PUT('/v1/emailer_touches/{id}', { + params: { path: { id: r.emailer_touch.id } }, + body: { id: r.emailer_touch.id, emailer_step_id: r.emailer_step.id, emailer_template: @@ -580,8 +581,7 @@ class ApolloClient extends AbstractEngagementRemoteClient { }, type: params.isReply ? 'reply_to_thread' : 'new_thread', }, - { params: { id: r.emailer_touch.id } } - ); + }); } return { id: r.emailer_step.id }; } @@ -601,15 +601,16 @@ class ApolloClient extends AbstractEngagementRemoteClient { if (!sequenceId) { return []; } - const res = await this.#api.postEmailerCampaignAddContactIds( - { + const { data: res } = await this.#api.POST('/v1/emailer_campaigns/{id}/add_contact_ids', { + params: { path: { id: sequenceId } }, + body: { + // Duplicated in the body for some reason contact_ids: records.map((r) => r.contactId), emailer_campaign_id: sequenceId, send_email_from_email_account_id: mailboxId, userId, }, - { params: { id: sequenceId } } // Duplicated in the body for some reason - ); + }); return await Promise.all( records.map(async (record) => { @@ -617,7 +618,9 @@ class ApolloClient extends AbstractEngagementRemoteClient { if (!contact) { // Handle situation where contact have already been added to the sequence. However still accounting for // other errors where contact could not be added to sequence - contact = await this.#api.getContact({ params: { id: record.contactId } }).then((r) => r.contact); + contact = await this.#api + .GET('/v1/contacts/{id}', { params: { path: { id: record.contactId } } }) + .then((r) => r.data.contact); } if (!contact) { throw new NotFoundError(`Unable to find contact ${record.contactId} in Apollo`); diff --git a/packages/core/remotes/utils/createOpenapiClient.ts b/packages/core/remotes/utils/createOpenapiClient.ts index 0c183e0c3..4b202f959 100644 --- a/packages/core/remotes/utils/createOpenapiClient.ts +++ b/packages/core/remotes/utils/createOpenapiClient.ts @@ -7,14 +7,15 @@ import type { PathsWithMethod } from 'openapi-typescript-helpers'; type HTTPMethod = 'GET' | 'PUT' | 'POST' | 'DELETE' | 'OPTIONS' | 'HEAD' | 'PATCH' | 'TRACE'; type MaybePromise = T | Promise; type _ClientOptions = NonNullable[0]>; -type FetchParams = [string, Parameters[1]]; +type Fetch = NonNullable<_ClientOptions['fetch']>; +type FetchParams = [string, Parameters[1]]; // Workaround for https://github.com/drwpow/openapi-typescript/issues/1122 // MARK: - OpenAPI client interface ClientOptions extends _ClientOptions { preRequest?: (...args: FetchParams) => MaybePromise; - postRequest?: (res: Awaited>, requestArgs: FetchParams) => ReturnType; + postRequest?: (res: Awaited>, requestArgs: FetchParams) => ReturnType; } // eslint-disable-next-line @typescript-eslint/ban-types @@ -23,8 +24,8 @@ export function createOpenapiClient({ postRequest = (res) => Promise.resolve(res), ...clientOptions }: ClientOptions = {}) { - const baseFetch = clientOptions?.fetch ?? globalThis.fetch; - const customFetch: typeof baseFetch = async (url, init) => { + const baseFetch: Fetch = clientOptions?.fetch ?? globalThis.fetch; + const customFetch: Fetch = async (url, init) => { const requestArgs = await preRequest(url as string, init); const res = await baseFetch(...requestArgs); return postRequest(res, requestArgs); diff --git a/packages/core/remotes/utils/zodios-api-shorthand.ts b/packages/core/remotes/utils/zodios-api-shorthand.ts deleted file mode 100644 index ddb4625bd..000000000 --- a/packages/core/remotes/utils/zodios-api-shorthand.ts +++ /dev/null @@ -1,223 +0,0 @@ -// Copied from https://github.com/thelinuxlich/zodios-api-shorthand/blob/main/src/index.ts 2023-10-23_2319 -// because the published version is broken (typescript was published) - -import type { Status } from '@tshttp/status'; -import type { ZodiosEndpointDefinition, ZodiosEndpointParameters } from '@zodios/core'; -import { makeErrors, makeParameters } from '@zodios/core'; -import type { U } from 'ts-toolbelt'; -import type { z } from 'zod'; - -const zodiosTypes = { - Query: 'queries', - Body: 'body', - Header: 'headers', - Path: 'params', -} as const; - -type ZodiosTypes = { - Query: 'queries'; - Body: 'body'; - Header: 'headers'; - Path: 'params'; -}; -type LiteralUnion = T | (U & { zz_IGNORE_ME?: never }); -type StatusCode = LiteralUnion<`${(typeof Status)[keyof typeof Status]}`>; -type Narrow = Try>; -type Try = A extends B ? A : C; - -type NarrowRaw = - | (T extends Function ? T : never) // eslint-disable-line - | (T extends string | number | bigint | boolean ? T : T) - | (T extends [] ? [] : never) - | { - [K in keyof T]: K extends 'description' ? T[K] : NarrowNotZod; - }; - -type NarrowNotZod = Try>; -type HTTPMethods = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; -type _HTTPMethods = Lowercase; -type MethodAndAlias = `${HTTPMethods} ${string}`; - -type DescriptionObject = { - path?: string; - response?: string; - queries?: Record; - params?: Record; - headers?: Record; - body?: string; - errors?: { - [k in StatusCode]?: string; - }; -}; -type APIEndpoint = { - path: string; - response: z.ZodType; - queries?: Record>; - headers?: Record>; - params?: Record>; - description?: DescriptionObject; - body?: z.ZodType; - errors?: { - [k in StatusCode]?: z.ZodType; - }; -}; -type APIConfig = Record; -type ParameterPath = V extends z.ZodType - ? K extends string - ? { - type: T; - name: K; - schema: V; - description?: D extends DescriptionObject - ? D[ZodiosTypes[T]] extends Record - ? D[ZodiosTypes[T]][K] - : never - : never; - } - : never - : never; -type APIPath = U.ListOf< - Name extends MethodAndAlias - ? Name extends `${infer Method} ${infer Alias}` - ? Config[Name] extends APIEndpoint - ? { - alias: `${Lowercase}${Capitalize}`; - method: Lowercase extends _HTTPMethods ? Lowercase : 'get'; - path: Config[Name]['path']; - response: Config[Name]['response']; - description: Config[Name]['description'] extends DescriptionObject - ? Config[Name]['description']['path'] - : never; - responseDescription: Config[Name]['description'] extends DescriptionObject - ? Config[Name]['description']['response'] - : never; - parameters: [ - ...U.ListOf< - | { - [K in keyof Config[Name]['queries']]: ParameterPath< - 'Query', - K, - Config[Name]['queries'][K], - Config[Name]['description'] - >; - }[keyof Config[Name]['queries']] - | { - [K in keyof Config[Name]['headers']]: ParameterPath< - 'Header', - K, - Config[Name]['headers'][K], - Config[Name]['description'] - >; - }[keyof Config[Name]['headers']] - | { - [K in keyof Config[Name]['params']]: ParameterPath< - 'Path', - K, - Config[Name]['params'][K], - Config[Name]['description'] - >; - }[keyof Config[Name]['params']] - | ParameterPath<'Body', 'body', Config[Name]['body'], Config[Name]['description']> - > - ]; - } - : never - : never - : never ->; - -const capitalize = (str: string) => { - return str.charAt(0).toUpperCase() + str.slice(1); -}; - -export const defineApi = (config: Narrow) => { - const endpoints = []; - for (const [key, _value] of Object.entries(config)) { - const value = _value as APIEndpoint; - const [method, alias] = key.split(' '); - if (method === undefined) { - throw new Error('Missing method'); - } - if (alias === undefined) { - throw new Error('Missing alias'); - } - type P = ReturnType[]; - const queries: P = []; - const headers: P = []; - const pathParams: P = []; - const makeParams = ( - type: 'Query' | 'Header' | 'Path', - container: P, - obj: Record> - ) => { - for (const [_key, _value] of Object.entries(obj)) { - const description = value.description?.[zodiosTypes[type]]?.[_key] || ''; - container.push( - makeParameters([ - { - type: type, - name: _key, - schema: _value, - description, - }, - ]) - ); - } - }; - if (value.queries !== undefined) { - makeParams('Query', queries, value.queries); - } - if (value.headers !== undefined) { - makeParams('Header', headers, value.headers); - } - if (value.params !== undefined) { - makeParams('Path', pathParams, value.params); - } - const endpoint = { - method: method.toLowerCase() as Lowercase, - path: value.path, - response: value.response, - alias: method.toLowerCase() + capitalize(alias), - parameters: [...headers.flat(), ...queries.flat(), ...pathParams.flat()] as ZodiosEndpointParameters, - } as ZodiosEndpointDefinition; - const errors: { - status: number; - description: string; - schema: z.ZodType; - }[] = []; - if (typeof value.errors === 'object' && Object.keys(value.errors).length > 0) { - for (const [k, v] of Object.entries(value.errors)) { - const description = value.description?.errors?.[k] ?? ''; - if (v) { - errors.push({ - status: +k, - description, - schema: v, - }); - } - } - endpoint.errors = makeErrors(errors); - } - if (value.description?.response) { - endpoint.responseDescription = value.description?.response; - } - if (value.description?.path) { - endpoint.description = value.description?.path; - } - if (value.body !== undefined && method !== 'GET') { - const bodyParam = makeParameters([ - { - type: 'Body', - name: 'body', - schema: value.body, - ...(value.description?.body && { - description: value.description?.body, - }), - }, - ]); - endpoint?.parameters?.push(...bodyParam.flat()); - } - endpoints.push(endpoint); - } - return endpoints as unknown as APIPath; -}; diff --git a/yarn.lock b/yarn.lock index f86c5e7cf..a1f16fd52 100644 --- a/yarn.lock +++ b/yarn.lock @@ -192,18 +192,6 @@ __metadata: languageName: node linkType: hard -"@anatine/zod-openapi@npm:^2.2.0": - version: 2.2.0 - resolution: "@anatine/zod-openapi@npm:2.2.0" - dependencies: - ts-deepmerge: ^6.0.3 - peerDependencies: - openapi3-ts: ^4.1.2 - zod: ^3.20.0 - checksum: 18b4e7e6d0525a325836c1d3b8fe45b5cdb19ace017fe0631e7c24e17cc266062a0c38bf52f10e799643192a4f26b2dd109b727ae59fd49827ac7fabcccdcc57 - languageName: node - linkType: hard - "@apidevtools/json-schema-ref-parser@npm:9.0.9": version: 9.0.9 resolution: "@apidevtools/json-schema-ref-parser@npm:9.0.9" @@ -6308,7 +6296,6 @@ __metadata: version: 0.0.0-use.local resolution: "@supaglue/core@workspace:packages/core" dependencies: - "@anatine/zod-openapi": ^2.2.0 "@aws-sdk/client-sesv2": ^3.437.0 "@google-cloud/bigquery": ^6.2.0 "@hubspot/api-client": 9.1.0 @@ -6326,8 +6313,6 @@ __metadata: "@types/pluralize": ^0.0.29 "@types/qs": ^6 "@types/uuid": ^9.0.1 - "@zodios/core": ^10.9.6 - "@zodios/openapi": ^10.5.0 async-retry: ^1.3.3 axios: ^1.6.0 concurrently: ^8.2.2 @@ -8126,29 +8111,6 @@ __metadata: languageName: node linkType: hard -"@zodios/core@npm:^10.9.6": - version: 10.9.6 - resolution: "@zodios/core@npm:10.9.6" - peerDependencies: - axios: ^0.x || ^1.0.0 - zod: ^3.x - checksum: 482a80bd4da661734f9ed276a92d9275fa1b76011bef26ede4a851e4c495d9103e6c9456074b9e50e4c89ad7e83fcead6ea45ffba615e6ff54b8088433ba47fc - languageName: node - linkType: hard - -"@zodios/openapi@npm:^10.5.0": - version: 10.5.0 - resolution: "@zodios/openapi@npm:10.5.0" - dependencies: - openapi-types: 12.1.3 - zod-to-json-schema: 3.19.1 - peerDependencies: - "@zodios/core": ">=10.5.2 <11.0.0" - zod: ^3.x - checksum: 1bacab639cc491e3c4e2d42945e9d40e2e1819d2d803ff3fd6ca86ea07812249ff912d54757104787bf5a2472c05359bb254439d9237daab5fae91f596553139 - languageName: node - linkType: hard - "JSONStream@npm:^1.0.4": version: 1.3.5 resolution: "JSONStream@npm:1.3.5" @@ -18591,7 +18553,7 @@ __metadata: languageName: node linkType: hard -"openapi-types@npm:12.1.3, openapi-types@npm:^12.1.3": +"openapi-types@npm:^12.1.3": version: 12.1.3 resolution: "openapi-types@npm:12.1.3" checksum: 7fa5547f87a58d2aa0eba6e91d396f42d7d31bc3ae140e61b5d60b47d2fd068b48776f42407d5a8da7280cf31195aa128c2fc285e8bb871d1105edee5647a0bb @@ -23656,13 +23618,6 @@ __metadata: languageName: node linkType: hard -"ts-deepmerge@npm:^6.0.3": - version: 6.2.0 - resolution: "ts-deepmerge@npm:6.2.0" - checksum: 88014409051cf614c5cd26c60eb2605a59b0b98896609b0483503083a2727362409b1db9b7e4bf4446733396881f32cd504ef8141dd448e38304dcdf1f9d39d0 - languageName: node - linkType: hard - "ts-interface-checker@npm:^0.1.9": version: 0.1.13 resolution: "ts-interface-checker@npm:0.1.13" @@ -25520,15 +25475,6 @@ __metadata: languageName: node linkType: hard -"zod-to-json-schema@npm:3.19.1": - version: 3.19.1 - resolution: "zod-to-json-schema@npm:3.19.1" - peerDependencies: - zod: ^3.19.0 - checksum: 22c07668e3c28c9d7c9bd3ad04a354ea017b6fc8b4df77ed29d11e42c4c03181612319db374932a1f8b5c37ef861157938dced9d848cad5281ee1540a156995c - languageName: node - linkType: hard - "zod@npm:3.21.4": version: 3.21.4 resolution: "zod@npm:3.21.4" From f9cbcc90a95342f51a7f5f8a31d05246de5991d1 Mon Sep 17 00:00:00 2001 From: Tony Xiao Date: Mon, 20 Nov 2023 14:37:31 -0800 Subject: [PATCH 17/22] chore: Switch to using json instead of yaml So we can reference the spec at runtime more easily --- .gitattributes | 1 + package.json | 2 +- packages/core/package.json | 14 +- .../impl/apollo/apollo.openapi.gen.d.ts | 15 + .../remotes/impl/apollo/apollo.openapi.json | 789 + .../remotes/impl/apollo/apollo.openapi.yaml | 659 - .../impl/outreach/outreach.openapi.json | 28602 ++++++++++++++++ .../impl/outreach/outreach.openapi.yaml | 20219 ----------- .../impl/salesloft/salesloft.openapi.gen.d.ts | 206 +- .../impl/salesloft/salesloft.openapi.json | 13118 +++++++ .../impl/salesloft/salesloft.openapi.yaml | 9868 ------ yarn.lock | 35 +- 12 files changed, 42643 insertions(+), 30885 deletions(-) create mode 100644 packages/core/remotes/impl/apollo/apollo.openapi.json delete mode 100644 packages/core/remotes/impl/apollo/apollo.openapi.yaml create mode 100644 packages/core/remotes/impl/outreach/outreach.openapi.json delete mode 100644 packages/core/remotes/impl/outreach/outreach.openapi.yaml create mode 100644 packages/core/remotes/impl/salesloft/salesloft.openapi.json delete mode 100644 packages/core/remotes/impl/salesloft/salesloft.openapi.yaml diff --git a/.gitattributes b/.gitattributes index 66e136f52..a8d1071bb 100644 --- a/.gitattributes +++ b/.gitattributes @@ -8,4 +8,5 @@ openapi/**/openapi.bundle.json linguist-generated /docs/docs/api/**/* linguist-generated /docs/docs/api/introduction.md -linguist-generated *.openapi.yaml linguist-generated +*.openapi.json linguist-generated *.openapi.gen.d.ts linguist-generated diff --git a/package.json b/package.json index b786c2bf4..11b932358 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "jest-runner-groups": "^2.2.0", "lint-staged": "^13.1.2", "oas-normalize": "^11.0.1", - "prettier": "^2.8.4", + "prettier": "^3.1.0", "prettier-plugin-organize-imports": "^3.2.2", "prettier-plugin-prisma": "^4.12.0", "ts-jest": "^29.1.1", diff --git a/packages/core/package.json b/packages/core/package.json index 7bf40aa79..3980d5d5f 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -47,9 +47,9 @@ "@types/qs": "^6", "@types/uuid": "^9.0.1", "concurrently": "^8.2.2", - "json2yaml": "^1.1.0", "openapi-typescript": "^6.7.1", "openapi-typescript-helpers": "0.0.4", + "prettier": "^3.1.0", "ts-toolbelt": "9.6.0", "typescript": "^4.9.5" }, @@ -66,12 +66,12 @@ "codegen": "yarn download && yarn generate", "download": "concurrently 'npm:download:*'", "generate": "concurrently 'npm:generate:*'", - "download:outreach": "curl --compressed https://developers.outreach.io/page-data/api/reference/overview/page-data.json | jq -r .result.data.contentItem.data.redocStoreStr | jq .definition.data | yarn json2yaml > ./remotes/impl/outreach/outreach.openapi.yaml", - "download:salesloft": "curl https://api.apis.guru/v2/specs/salesloft.com/v2/openapi.yaml > ./remotes/impl/salesloft/salesloft.openapi.yaml", - "download:apollo": "node --loader tsx remotes/impl/apollo/apollo.openapi.ts | json2yaml > ./remotes/impl/apollo/apollo.openapi.yaml", - "generate:outreach": "openapi-typescript ./remotes/impl/outreach/outreach.openapi.yaml --output ./remotes/impl/outreach/outreach.openapi.gen.d.ts", - "generate:salesloft": "openapi-typescript ./remotes/impl/salesloft/salesloft.openapi.yaml --output ./remotes/impl/salesloft/salesloft.openapi.gen.d.ts", - "generate:apollo": "openapi-typescript ./remotes/impl/apollo/apollo.openapi.yaml --output ./remotes/impl/apollo/apollo.openapi.gen.d.ts" + "download:outreach": "curl --compressed https://developers.outreach.io/page-data/api/reference/overview/page-data.json | jq -r .result.data.contentItem.data.redocStoreStr | jq .definition.data | prettier --parser json > ./remotes/impl/outreach/outreach.openapi.json", + "download:salesloft": "curl https://api.apis.guru/v2/specs/salesloft.com/v2/openapi.json | prettier --parser json > ./remotes/impl/salesloft/salesloft.openapi.json", + "download:apollo": "node --loader tsx remotes/impl/apollo/apollo.openapi.ts | prettier --parser json > ./remotes/impl/apollo/apollo.openapi.json", + "generate:outreach": "openapi-typescript ./remotes/impl/outreach/outreach.openapi.json --output ./remotes/impl/outreach/outreach.openapi.gen.d.ts", + "generate:salesloft": "openapi-typescript ./remotes/impl/salesloft/salesloft.openapi.json --output ./remotes/impl/salesloft/salesloft.openapi.gen.d.ts", + "generate:apollo": "openapi-typescript ./remotes/impl/apollo/apollo.openapi.json --output ./remotes/impl/apollo/apollo.openapi.gen.d.ts" }, "files": [ "dist" diff --git a/packages/core/remotes/impl/apollo/apollo.openapi.gen.d.ts b/packages/core/remotes/impl/apollo/apollo.openapi.gen.d.ts index a0e5551c6..83b589be0 100644 --- a/packages/core/remotes/impl/apollo/apollo.openapi.gen.d.ts +++ b/packages/core/remotes/impl/apollo/apollo.openapi.gen.d.ts @@ -163,6 +163,11 @@ export interface operations { id: string; }; }; + requestBody?: { + content: { + "application/json": unknown; + }; + }; responses: { 200: { content: { @@ -261,6 +266,11 @@ export interface operations { id: string; }; }; + requestBody?: { + content: { + "application/json": unknown; + }; + }; responses: { 200: { content: { @@ -307,6 +317,11 @@ export interface operations { id: string; }; }; + requestBody?: { + content: { + "application/json": unknown; + }; + }; responses: { 200: { content: { diff --git a/packages/core/remotes/impl/apollo/apollo.openapi.json b/packages/core/remotes/impl/apollo/apollo.openapi.json new file mode 100644 index 000000000..2a4043ce8 --- /dev/null +++ b/packages/core/remotes/impl/apollo/apollo.openapi.json @@ -0,0 +1,789 @@ +{ + "openapi": "3.1.0", + "info": { + "title": "Apollo API", + "version": "0.0.0" + }, + "servers": [ + { + "url": "https://app.apollo.io/api" + } + ], + "paths": { + "/v1/emailer_campaigns/{id}": { + "get": { + "operationId": "getEmailerCampaign", + "parameters": [ + { + "in": "path", + "name": "id", + "schema": { + "type": "string" + }, + "required": true + } + ], + "requestBody": { + "content": { + "application/json": {} + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "emailer_campaign": { + "$ref": "#/components/schemas/emailer_campaign" + }, + "emailer_steps": { + "type": ["array", "null"], + "items": { + "$ref": "#/components/schemas/emailer_step" + } + }, + "emailer_touches": { + "type": ["array", "null"], + "items": { + "$ref": "#/components/schemas/emailer_touch" + } + }, + "emailer_templates": { + "type": ["array", "null"], + "items": { + "$ref": "#/components/schemas/emailer_template" + } + } + }, + "required": ["emailer_campaign"] + } + } + } + } + } + } + }, + "/v1/emailer_campaigns": { + "post": { + "operationId": "createEmailerCampaign", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": ["string", "null"] + }, + "permissions": { + "type": "string", + "enum": ["team_can_use", "team_can_view", "private"] + }, + "user_id": { + "type": ["string", "null"] + }, + "label_ids": { + "type": "array", + "items": { + "type": "string" + } + }, + "active": { + "type": "boolean" + } + } + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "emailer_campaign": { + "$ref": "#/components/schemas/emailer_campaign" + }, + "emailer_steps": { + "type": ["array", "null"], + "items": { + "$ref": "#/components/schemas/emailer_step" + } + }, + "emailer_touches": { + "type": ["array", "null"], + "items": { + "$ref": "#/components/schemas/emailer_touch" + } + }, + "emailer_templates": { + "type": ["array", "null"], + "items": { + "$ref": "#/components/schemas/emailer_template" + } + } + }, + "required": ["emailer_campaign"] + } + } + } + } + } + } + }, + "/v1/emailer_campaigns/{id}/add_contact_ids": { + "post": { + "operationId": "addContactIdsToEmailerCampaign", + "parameters": [ + { + "in": "path", + "name": "id", + "schema": { + "type": "string" + }, + "required": true + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "contact_ids": { + "type": "array", + "items": { + "type": "string" + } + }, + "emailer_campaign_id": { + "type": "string" + }, + "send_email_from_email_account_id": { + "type": ["string", "null"] + }, + "userId": { + "type": ["string", "null"] + } + }, + "required": ["contact_ids", "emailer_campaign_id"] + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "contacts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/contact" + } + } + }, + "required": ["contacts"] + } + } + } + } + } + } + }, + "/v1/emailer_steps": { + "post": { + "operationId": "createEmailerStep", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "emailer_campaign_id": { + "type": "string" + }, + "priority": { + "type": ["string", "null"] + }, + "position": { + "type": ["number", "null"] + }, + "type": { + "$ref": "#/components/schemas/emailer_step_type" + }, + "wait_mode": { + "$ref": "#/components/schemas/emailer_step_wait_mode" + }, + "wait_time": { + "type": ["number", "null"] + }, + "exact_datetime": { + "type": ["string", "null"] + }, + "note": { + "type": ["string", "null"] + } + }, + "required": ["emailer_campaign_id", "type", "wait_mode"] + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "emailer_step": { + "$ref": "#/components/schemas/emailer_step" + }, + "emailer_touch": { + "oneOf": [ + { + "$ref": "#/components/schemas/emailer_touch" + }, + { + "type": "null" + } + ] + }, + "emailer_template": { + "oneOf": [ + { + "$ref": "#/components/schemas/emailer_template" + }, + { + "type": "null" + } + ] + } + }, + "required": ["emailer_step"] + } + } + } + } + } + } + }, + "/v1/emailer_steps/{id}": { + "delete": { + "operationId": "deleteEmailerStep", + "parameters": [ + { + "in": "path", + "name": "id", + "schema": { + "type": "string" + }, + "required": true + } + ], + "requestBody": { + "content": { + "application/json": {} + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "emailer_step": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "deleted": { + "type": "boolean" + } + }, + "required": ["id", "deleted"] + } + }, + "required": ["emailer_step"] + } + } + } + } + } + } + }, + "/v1/emailer_touches/{id}": { + "put": { + "operationId": "updateEmailerTouch", + "parameters": [ + { + "in": "path", + "name": "id", + "schema": { + "type": "string" + }, + "required": true + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "emailer_step_id": { + "type": ["string", "null"] + }, + "emailer_template": { + "oneOf": [ + { + "$ref": "#/components/schemas/emailer_template" + }, + { + "type": "null" + } + ] + }, + "type": { + "type": ["string", "null"], + "enum": ["reply_to_thread", "new_thread"] + } + }, + "required": ["id"] + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "emailer_touch": { + "$ref": "#/components/schemas/emailer_touch" + } + }, + "required": ["emailer_touch"] + } + } + } + } + } + } + }, + "/v1/contacts/{id}": { + "get": { + "operationId": "getContact", + "parameters": [ + { + "in": "path", + "name": "id", + "schema": { + "type": "string" + }, + "required": true + } + ], + "requestBody": { + "content": { + "application/json": {} + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "contact": { + "$ref": "#/components/schemas/contact" + } + }, + "required": ["contact"] + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "emailer_campaign": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": ["string", "null"] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "permissions": { + "type": "string", + "enum": ["team_can_use", "team_can_view", "private"] + }, + "active": { + "type": "boolean" + }, + "archived": { + "type": "boolean" + }, + "label_ids": { + "type": "array", + "items": { + "type": "string" + } + }, + "num_steps": { + "type": ["number", "null"] + }, + "user_id": { + "type": ["string", "null"] + }, + "unique_scheduled": { + "$ref": "#/components/schemas/metric" + }, + "unique_delivered": { + "$ref": "#/components/schemas/metric" + }, + "unique_bounced": { + "$ref": "#/components/schemas/metric" + }, + "unique_opened": { + "$ref": "#/components/schemas/metric" + }, + "unique_replied": { + "$ref": "#/components/schemas/metric" + }, + "unique_demoed": { + "$ref": "#/components/schemas/metric" + }, + "unique_clicked": { + "$ref": "#/components/schemas/metric" + }, + "unique_unsubscribed": { + "$ref": "#/components/schemas/metric" + }, + "bounce_rate": { + "$ref": "#/components/schemas/metric" + }, + "open_rate": { + "$ref": "#/components/schemas/metric" + }, + "click_rate": { + "$ref": "#/components/schemas/metric" + }, + "reply_rate": { + "$ref": "#/components/schemas/metric" + }, + "spam_blocked_rate": { + "$ref": "#/components/schemas/metric" + }, + "opt_out_rate": { + "$ref": "#/components/schemas/metric" + }, + "demo_rate": { + "$ref": "#/components/schemas/metric" + } + }, + "required": ["id", "created_at", "active", "archived", "label_ids"] + }, + "metric": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string", + "enum": ["loading"] + }, + { + "type": "null" + } + ] + }, + "emailer_step": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "emailer_campaign_id": { + "type": "string" + }, + "position": { + "type": ["number", "null"] + }, + "wait_time": { + "type": ["number", "null"] + }, + "type": { + "$ref": "#/components/schemas/emailer_step_type" + }, + "wait_mode": { + "$ref": "#/components/schemas/emailer_step_wait_mode" + }, + "note": { + "type": ["string", "null"] + }, + "max_emails_per_day": { + "type": ["number", "null"] + }, + "exact_datetime": { + "type": ["string", "null"] + }, + "priority": { + "type": ["string", "null"] + }, + "auto_skip_in_x_days": { + "type": ["number", "null"] + }, + "counts": { + "type": ["object", "null"], + "properties": { + "active": { + "type": ["number", "null"] + }, + "paused": { + "type": ["number", "null"] + }, + "finished": { + "type": ["number", "null"] + }, + "bounced": { + "type": ["number", "null"] + }, + "spam_blocked": { + "type": ["number", "null"] + }, + "hard_bounced": { + "type": ["number", "null"] + }, + "not_sent": { + "type": ["number", "null"] + } + } + } + }, + "required": ["id", "emailer_campaign_id", "type", "wait_mode"] + }, + "emailer_step_type": { + "type": "string", + "enum": [ + "auto_email", + "manual_email", + "call", + "action_item", + "linkedin_step_message", + "linkedin_step_connect", + "linkedin_step_view_profile", + "linkedin_step_interact_post" + ] + }, + "emailer_step_wait_mode": { + "type": "string", + "enum": ["second", "minute", "hour", "day"] + }, + "emailer_touch": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "emailer_step_id": { + "type": ["string", "null"] + }, + "emailer_template_id": { + "type": ["string", "null"] + }, + "emailer_template": { + "oneOf": [ + { + "$ref": "#/components/schemas/emailer_template" + }, + { + "type": "null" + } + ] + }, + "status": { + "type": ["string", "null"] + }, + "type": { + "type": ["string", "null"], + "enum": ["reply_to_thread", "new_thread"] + }, + "include_signature": { + "type": ["boolean", "null"] + }, + "has_personalized_opener": { + "type": ["boolean", "null"] + }, + "personalized_opener_fallback_option": { + "type": ["string", "null"] + }, + "generic_personalized_opener": { + "type": ["string", "null"] + }, + "unique_scheduled": { + "$ref": "#/components/schemas/metric" + }, + "unique_delivered": { + "$ref": "#/components/schemas/metric" + }, + "unique_bounced": { + "$ref": "#/components/schemas/metric" + }, + "unique_opened": { + "$ref": "#/components/schemas/metric" + }, + "unique_replied": { + "$ref": "#/components/schemas/metric" + }, + "bounce_rate": { + "$ref": "#/components/schemas/metric" + }, + "open_rate": { + "$ref": "#/components/schemas/metric" + }, + "reply_rate": { + "$ref": "#/components/schemas/metric" + }, + "demo_rate": { + "$ref": "#/components/schemas/metric" + }, + "unique_demoed": { + "$ref": "#/components/schemas/metric" + }, + "unique_clicked": { + "$ref": "#/components/schemas/metric" + }, + "click_rate": { + "$ref": "#/components/schemas/metric" + }, + "unique_unsubscribed": { + "$ref": "#/components/schemas/metric" + }, + "opt_out_rate": { + "$ref": "#/components/schemas/metric" + }, + "unique_hard_bounced": { + "$ref": "#/components/schemas/metric" + }, + "unique_spam_blocked": { + "$ref": "#/components/schemas/metric" + }, + "hard_bounce_rate": { + "$ref": "#/components/schemas/metric" + }, + "spam_block_rate": { + "$ref": "#/components/schemas/metric" + } + }, + "required": ["id"] + }, + "emailer_template": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": ["string", "null"] + }, + "user_id": { + "type": ["string", "null"] + }, + "subject": { + "type": ["string", "null"] + }, + "archived": { + "type": ["boolean", "null"] + }, + "created_at": { + "type": ["string", "null"], + "format": "date-time" + }, + "global": { + "type": ["boolean", "null"] + }, + "body_text": { + "type": ["string", "null"] + }, + "folder_id": { + "type": ["string", "null"] + }, + "body_html": { + "type": ["string", "null"] + }, + "creation_type": { + "type": ["string", "null"] + }, + "label_ids": { + "type": ["array", "null"], + "items": { + "type": "string" + } + }, + "prompt_id": { + "type": ["string", "null"] + } + }, + "required": ["id"] + }, + "contact": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "emailer_campaign_ids": { + "type": "array", + "items": { + "type": "string" + } + }, + "contact_campaign_statuses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "send_email_from_email_account_id": { + "type": "string" + }, + "emailer_campaign_id": { + "type": "string" + } + }, + "required": ["id", "send_email_from_email_account_id", "emailer_campaign_id"] + } + } + }, + "required": ["id", "contact_campaign_statuses"] + } + } + } +} diff --git a/packages/core/remotes/impl/apollo/apollo.openapi.yaml b/packages/core/remotes/impl/apollo/apollo.openapi.yaml deleted file mode 100644 index 8c5a9fc23..000000000 --- a/packages/core/remotes/impl/apollo/apollo.openapi.yaml +++ /dev/null @@ -1,659 +0,0 @@ ---- - openapi: "3.1.0" - info: - title: "Apollo API" - version: "0.0.0" - servers: - - - url: "https://app.apollo.io/api" - paths: - /v1/emailer_campaigns/{id}: - get: - operationId: "getEmailerCampaign" - parameters: - - - in: "path" - name: "id" - schema: - type: "string" - required: true - responses: - 200: - content: - application/json: - schema: - type: "object" - properties: - emailer_campaign: - $ref: "#/components/schemas/emailer_campaign" - emailer_steps: - type: - - "array" - - "null" - items: - $ref: "#/components/schemas/emailer_step" - emailer_touches: - type: - - "array" - - "null" - items: - $ref: "#/components/schemas/emailer_touch" - emailer_templates: - type: - - "array" - - "null" - items: - $ref: "#/components/schemas/emailer_template" - required: - - "emailer_campaign" - /v1/emailer_campaigns: - post: - operationId: "createEmailerCampaign" - requestBody: - content: - application/json: - schema: - type: "object" - properties: - name: - type: - - "string" - - "null" - permissions: - type: "string" - enum: - - "team_can_use" - - "team_can_view" - - "private" - user_id: - type: - - "string" - - "null" - label_ids: - type: "array" - items: - type: "string" - active: - type: "boolean" - responses: - 200: - content: - application/json: - schema: - type: "object" - properties: - emailer_campaign: - $ref: "#/components/schemas/emailer_campaign" - emailer_steps: - type: - - "array" - - "null" - items: - $ref: "#/components/schemas/emailer_step" - emailer_touches: - type: - - "array" - - "null" - items: - $ref: "#/components/schemas/emailer_touch" - emailer_templates: - type: - - "array" - - "null" - items: - $ref: "#/components/schemas/emailer_template" - required: - - "emailer_campaign" - /v1/emailer_campaigns/{id}/add_contact_ids: - post: - operationId: "addContactIdsToEmailerCampaign" - parameters: - - - in: "path" - name: "id" - schema: - type: "string" - required: true - requestBody: - content: - application/json: - schema: - type: "object" - properties: - contact_ids: - type: "array" - items: - type: "string" - emailer_campaign_id: - type: "string" - send_email_from_email_account_id: - type: - - "string" - - "null" - userId: - type: - - "string" - - "null" - required: - - "contact_ids" - - "emailer_campaign_id" - responses: - 200: - content: - application/json: - schema: - type: "object" - properties: - contacts: - type: "array" - items: - $ref: "#/components/schemas/contact" - required: - - "contacts" - /v1/emailer_steps: - post: - operationId: "createEmailerStep" - requestBody: - content: - application/json: - schema: - type: "object" - properties: - emailer_campaign_id: - type: "string" - priority: - type: - - "string" - - "null" - position: - type: - - "number" - - "null" - type: - $ref: "#/components/schemas/emailer_step_type" - wait_mode: - $ref: "#/components/schemas/emailer_step_wait_mode" - wait_time: - type: - - "number" - - "null" - exact_datetime: - type: - - "string" - - "null" - note: - type: - - "string" - - "null" - required: - - "emailer_campaign_id" - - "type" - - "wait_mode" - responses: - 200: - content: - application/json: - schema: - type: "object" - properties: - emailer_step: - $ref: "#/components/schemas/emailer_step" - emailer_touch: - oneOf: - - - $ref: "#/components/schemas/emailer_touch" - - - type: "null" - emailer_template: - oneOf: - - - $ref: "#/components/schemas/emailer_template" - - - type: "null" - required: - - "emailer_step" - /v1/emailer_steps/{id}: - delete: - operationId: "deleteEmailerStep" - parameters: - - - in: "path" - name: "id" - schema: - type: "string" - required: true - responses: - 200: - content: - application/json: - schema: - type: "object" - properties: - emailer_step: - type: "object" - properties: - id: - type: "string" - deleted: - type: "boolean" - required: - - "id" - - "deleted" - required: - - "emailer_step" - /v1/emailer_touches/{id}: - put: - operationId: "updateEmailerTouch" - parameters: - - - in: "path" - name: "id" - schema: - type: "string" - required: true - requestBody: - content: - application/json: - schema: - type: "object" - properties: - id: - type: "string" - emailer_step_id: - type: - - "string" - - "null" - emailer_template: - oneOf: - - - $ref: "#/components/schemas/emailer_template" - - - type: "null" - type: - type: - - "string" - - "null" - enum: - - "reply_to_thread" - - "new_thread" - required: - - "id" - responses: - 200: - content: - application/json: - schema: - type: "object" - properties: - emailer_touch: - $ref: "#/components/schemas/emailer_touch" - required: - - "emailer_touch" - /v1/contacts/{id}: - get: - operationId: "getContact" - parameters: - - - in: "path" - name: "id" - schema: - type: "string" - required: true - responses: - 200: - content: - application/json: - schema: - type: "object" - properties: - contact: - $ref: "#/components/schemas/contact" - required: - - "contact" - components: - schemas: - emailer_campaign: - type: "object" - properties: - id: - type: "string" - name: - type: - - "string" - - "null" - created_at: - type: "string" - format: "date-time" - permissions: - type: "string" - enum: - - "team_can_use" - - "team_can_view" - - "private" - active: - type: "boolean" - archived: - type: "boolean" - label_ids: - type: "array" - items: - type: "string" - num_steps: - type: - - "number" - - "null" - user_id: - type: - - "string" - - "null" - unique_scheduled: - $ref: "#/components/schemas/metric" - unique_delivered: - $ref: "#/components/schemas/metric" - unique_bounced: - $ref: "#/components/schemas/metric" - unique_opened: - $ref: "#/components/schemas/metric" - unique_replied: - $ref: "#/components/schemas/metric" - unique_demoed: - $ref: "#/components/schemas/metric" - unique_clicked: - $ref: "#/components/schemas/metric" - unique_unsubscribed: - $ref: "#/components/schemas/metric" - bounce_rate: - $ref: "#/components/schemas/metric" - open_rate: - $ref: "#/components/schemas/metric" - click_rate: - $ref: "#/components/schemas/metric" - reply_rate: - $ref: "#/components/schemas/metric" - spam_blocked_rate: - $ref: "#/components/schemas/metric" - opt_out_rate: - $ref: "#/components/schemas/metric" - demo_rate: - $ref: "#/components/schemas/metric" - required: - - "id" - - "created_at" - - "active" - - "archived" - - "label_ids" - metric: - anyOf: - - - type: "number" - - - type: "string" - enum: - - "loading" - - - type: "null" - emailer_step: - type: "object" - properties: - id: - type: "string" - emailer_campaign_id: - type: "string" - position: - type: - - "number" - - "null" - wait_time: - type: - - "number" - - "null" - type: - $ref: "#/components/schemas/emailer_step_type" - wait_mode: - $ref: "#/components/schemas/emailer_step_wait_mode" - note: - type: - - "string" - - "null" - max_emails_per_day: - type: - - "number" - - "null" - exact_datetime: - type: - - "string" - - "null" - priority: - type: - - "string" - - "null" - auto_skip_in_x_days: - type: - - "number" - - "null" - counts: - type: - - "object" - - "null" - properties: - active: - type: - - "number" - - "null" - paused: - type: - - "number" - - "null" - finished: - type: - - "number" - - "null" - bounced: - type: - - "number" - - "null" - spam_blocked: - type: - - "number" - - "null" - hard_bounced: - type: - - "number" - - "null" - not_sent: - type: - - "number" - - "null" - required: - - "id" - - "emailer_campaign_id" - - "type" - - "wait_mode" - emailer_step_type: - type: "string" - enum: - - "auto_email" - - "manual_email" - - "call" - - "action_item" - - "linkedin_step_message" - - "linkedin_step_connect" - - "linkedin_step_view_profile" - - "linkedin_step_interact_post" - emailer_step_wait_mode: - type: "string" - enum: - - "second" - - "minute" - - "hour" - - "day" - emailer_touch: - type: "object" - properties: - id: - type: "string" - emailer_step_id: - type: - - "string" - - "null" - emailer_template_id: - type: - - "string" - - "null" - emailer_template: - oneOf: - - - $ref: "#/components/schemas/emailer_template" - - - type: "null" - status: - type: - - "string" - - "null" - type: - type: - - "string" - - "null" - enum: - - "reply_to_thread" - - "new_thread" - include_signature: - type: - - "boolean" - - "null" - has_personalized_opener: - type: - - "boolean" - - "null" - personalized_opener_fallback_option: - type: - - "string" - - "null" - generic_personalized_opener: - type: - - "string" - - "null" - unique_scheduled: - $ref: "#/components/schemas/metric" - unique_delivered: - $ref: "#/components/schemas/metric" - unique_bounced: - $ref: "#/components/schemas/metric" - unique_opened: - $ref: "#/components/schemas/metric" - unique_replied: - $ref: "#/components/schemas/metric" - bounce_rate: - $ref: "#/components/schemas/metric" - open_rate: - $ref: "#/components/schemas/metric" - reply_rate: - $ref: "#/components/schemas/metric" - demo_rate: - $ref: "#/components/schemas/metric" - unique_demoed: - $ref: "#/components/schemas/metric" - unique_clicked: - $ref: "#/components/schemas/metric" - click_rate: - $ref: "#/components/schemas/metric" - unique_unsubscribed: - $ref: "#/components/schemas/metric" - opt_out_rate: - $ref: "#/components/schemas/metric" - unique_hard_bounced: - $ref: "#/components/schemas/metric" - unique_spam_blocked: - $ref: "#/components/schemas/metric" - hard_bounce_rate: - $ref: "#/components/schemas/metric" - spam_block_rate: - $ref: "#/components/schemas/metric" - required: - - "id" - emailer_template: - type: "object" - properties: - id: - type: "string" - name: - type: - - "string" - - "null" - user_id: - type: - - "string" - - "null" - subject: - type: - - "string" - - "null" - archived: - type: - - "boolean" - - "null" - created_at: - type: - - "string" - - "null" - format: "date-time" - global: - type: - - "boolean" - - "null" - body_text: - type: - - "string" - - "null" - folder_id: - type: - - "string" - - "null" - body_html: - type: - - "string" - - "null" - creation_type: - type: - - "string" - - "null" - label_ids: - type: - - "array" - - "null" - items: - type: "string" - prompt_id: - type: - - "string" - - "null" - required: - - "id" - contact: - type: "object" - properties: - id: - type: "string" - emailer_campaign_ids: - type: "array" - items: - type: "string" - contact_campaign_statuses: - type: "array" - items: - type: "object" - properties: - id: - type: "string" - send_email_from_email_account_id: - type: "string" - emailer_campaign_id: - type: "string" - required: - - "id" - - "send_email_from_email_account_id" - - "emailer_campaign_id" - required: - - "id" - - "contact_campaign_statuses" - diff --git a/packages/core/remotes/impl/outreach/outreach.openapi.json b/packages/core/remotes/impl/outreach/outreach.openapi.json new file mode 100644 index 000000000..479fa5d3d --- /dev/null +++ b/packages/core/remotes/impl/outreach/outreach.openapi.json @@ -0,0 +1,28602 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "Outreach REST API Reference", + "version": "" + }, + "servers": [ + { + "url": "https://api.outreach.io/api/v2" + } + ], + "security": [ + { + "bearerAuth": [] + } + ], + "tags": [ + { + "description": "\n\n## Account Relationships\n\n\n\n## Account Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n| dataConnections | The set of connections a given Account has to external sources. | provideDataConnections |\n\n\n## ⌵ Account Actions\n\n", + "name": "Account", + "x-internal": false + }, + { + "description": "\n\n## ⌵ Audit Actions\n\n", + "name": "Audit", + "x-internal": false + }, + { + "description": "\n\n## Call Disposition Relationships\n\n\n\n## Call Disposition Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Call Disposition Actions\n\n", + "name": "Call Disposition", + "x-internal": false + }, + { + "description": "\n\n## Call Purpose Relationships\n\n\n\n## Call Purpose Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Call Purpose Actions\n\n", + "name": "Call Purpose", + "x-internal": false + }, + { + "description": "\n\n## Call Relationships\n\n\n\n## Call Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n| dataConnections | The set of connections a given Call has to external sources. | provideDataConnections |\n\n\n## ⌵ Call Actions\n\n", + "name": "Call", + "x-internal": false + }, + { + "description": "\n\n## Compliance Request Relationships\n\n\n\n## ⌵ Compliance Request Actions\n\n", + "name": "Compliance Request", + "x-internal": false + }, + { + "description": "\n\n## Content Category Relationships\n\n\n\n## Content Category Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Content Category Actions\n\n", + "name": "Content Category", + "x-internal": false + }, + { + "description": "\n\n## Content Category Membership Relationships\n\n\n\n## Content Category Membership Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Content Category Membership Actions\n\n", + "name": "Content Category Membership", + "x-internal": false + }, + { + "description": "\n\n## Content Category Ownership Relationships\n\n\n\n## Content Category Ownership Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Content Category Ownership Actions\n\n", + "name": "Content Category Ownership", + "x-internal": false + }, + { + "description": "\n\n## ⌵ Custom Duty Actions\n\n", + "name": "Custom Duty", + "x-internal": false + }, + { + "description": "\n\n## ⌵ Duty Actions\n\n", + "name": "Duty", + "x-internal": false + }, + { + "description": "\n\n## Email Address Relationships\n\n\n\n## Email Address Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Email Address Actions\n\n", + "name": "Email Address", + "x-internal": false + }, + { + "description": "\n\n## Event Relationships\n\n\n\n## ⌵ Event Actions\n\n", + "name": "Event", + "x-internal": false + }, + { + "description": "\n\n## Favorite Relationships\n\n\n\n## Favorite Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Favorite Actions\n\n", + "name": "Favorite", + "x-internal": false + }, + { + "description": "\n\n## Mail Alias Relationships\n\n\n\n## ⌵ Mail Alias Actions\n\n", + "name": "Mail Alias", + "x-internal": false + }, + { + "description": "\n\n## Mailbox Relationships\n\n\n\n## Mailbox Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Mailbox Actions\n\n", + "name": "Mailbox", + "x-internal": false + }, + { + "description": "\n\n## Mailing Relationships\n\n\n\n## Mailing Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| dataConnections | The set of connections a given Mailing has to external sources. | provideDataConnections |\n\n\n## ⌵ Mailing Actions\n\n", + "name": "Mailing", + "x-internal": false + }, + { + "description": "\n\n## Opportunity Relationships\n\n\n\n## Opportunity Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n| dataConnections | The set of connections a given Opportunity has to external sources. | provideDataConnections |\n\n\n## ⌵ Opportunity Actions\n\n", + "name": "Opportunity", + "x-internal": false + }, + { + "description": "\n\n## Opportunity Prospect Role Relationships\n\n\n\n## Opportunity Prospect Role Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Opportunity Prospect Role Actions\n\n", + "name": "Opportunity Prospect Role", + "x-internal": false + }, + { + "description": "\n\n## Opportunity Stage Relationships\n\n\n\n## Opportunity Stage Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n| dataConnections | The set of connections a given Opportunity Stage has to external sources. | provideDataConnections |\n\n\n## ⌵ Opportunity Stage Actions\n\n", + "name": "Opportunity Stage", + "x-internal": false + }, + { + "description": "\n\n## Persona Relationships\n\n\n\n## Persona Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Persona Actions\n\n", + "name": "Persona", + "x-internal": false + }, + { + "description": "\n\n## Phone Number Relationships\n\n\n\n## Phone Number Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Phone Number Actions\n\n", + "name": "Phone Number", + "x-internal": false + }, + { + "description": "\n\n## Profile Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Profile Actions\n\n", + "name": "Profile", + "x-internal": false + }, + { + "description": "\n\n## Prospect Relationships\n\n\n\n## Prospect Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n| dataConnections | The set of connections a given Prospect has to external sources. | provideDataConnections |\n\n\n## ⌵ Prospect Actions\n\n", + "name": "Prospect", + "x-internal": false + }, + { + "description": "\n\n## Recipient Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Recipient Actions\n\n", + "name": "Recipient", + "x-internal": false + }, + { + "description": "\n\n## Role Relationships\n\n\n\n## Role Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Role Actions\n\n", + "name": "Role", + "x-internal": false + }, + { + "description": "\n\n## Ruleset Relationships\n\n\n\n## Ruleset Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Ruleset Actions\n\n", + "name": "Ruleset", + "x-internal": false + }, + { + "description": "\n\n## Sequence State Relationships\n\n\n\n## Sequence State Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Sequence State Actions\n\n", + "name": "Sequence State", + "x-internal": false + }, + { + "description": "\n\n## Sequence Step Relationships\n\n\n\n## Sequence Step Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Sequence Step Actions\n\n", + "name": "Sequence Step", + "x-internal": false + }, + { + "description": "\n\n## Sequence Template Relationships\n\n\n\n## Sequence Template Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Sequence Template Actions\n\n", + "name": "Sequence Template", + "x-internal": false + }, + { + "description": "\n\n## Sequence Relationships\n\n\n\n## Sequence Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Sequence Actions\n\n", + "name": "Sequence", + "x-internal": false + }, + { + "description": "\n\n## Snippet Relationships\n\n\n\n## Snippet Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Snippet Actions\n\n", + "name": "Snippet", + "x-internal": false + }, + { + "description": "\n\n## Stage Relationships\n\n\n\n## Stage Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n| dataConnections | The set of connections a given Stage has to external sources. | provideDataConnections |\n\n\n## ⌵ Stage Actions\n\n", + "name": "Stage", + "x-internal": false + }, + { + "description": "\n\n## Task Priority Relationships\n\n\n\n## ⌵ Task Priority Actions\n\n", + "name": "Task Priority", + "x-internal": false + }, + { + "description": "\n\n## Task Relationships\n\n\n\n## Task Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n| dataConnections | The set of connections a given Task has to external sources. | provideDataConnections |\n\n\n## ⌵ Task Actions\n\n", + "name": "Task", + "x-internal": false + }, + { + "description": "\n\n## Team Relationships\n\n\n\n## Team Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Team Actions\n\n", + "name": "Team", + "x-internal": false + }, + { + "description": "\n\n## Template Relationships\n\n\n\n## Template Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Template Actions\n\n", + "name": "Template", + "x-internal": false + }, + { + "description": "\n\n## User Relationships\n\n\n\n## User Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| dataConnections | The set of connections a given User has to external sources. | provideDataConnections |\n\n\n## ⌵ User Actions\n\n", + "name": "User", + "x-internal": false + }, + { + "description": "\n\n## Webhook Relationships\n\n\n\n## Webhook Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Webhook Actions\n\n", + "name": "Webhook", + "x-internal": false + } + ], + "paths": { + "/accounts": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/accountResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Get a Collection of Accounts", + "tags": ["Account"], + "x-internal": false + }, + "post": { + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/account" + }, + "relationships": { + "$ref": "#/components/schemas/accountRelationships" + }, + "type": { + "type": "string" + } + } + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/accountResponse" + } + } + } + } + }, + "description": "Created" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Create a New Account", + "tags": ["Account"], + "x-internal": false + } + }, + "/accounts/{id}": { + "delete": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "content": { + "application/vnd.api+json": {} + }, + "description": "Deleted" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Delete an Existing Account by ID", + "tags": ["Account"], + "x-internal": false + }, + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/accountResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Get an Account by ID", + "tags": ["Account"], + "x-internal": false + }, + "patch": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/account" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/accountRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/account" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/accountRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Update an Account", + "tags": ["Account"], + "x-internal": false + } + }, + "/audits": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/auditResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Get a Collection of Audits", + "tags": ["Audit"], + "x-internal": false + } + }, + "/callDispositions": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/callDispositionResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Get a Collection of Call Dispositions", + "tags": ["Call Disposition"], + "x-internal": false + }, + "post": { + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/callDisposition" + }, + "relationships": { + "$ref": "#/components/schemas/callDispositionRelationships" + }, + "type": { + "type": "string" + } + } + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/callDispositionResponse" + } + } + } + } + }, + "description": "Created" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Create a New Call Disposition", + "tags": ["Call Disposition"], + "x-internal": false + } + }, + "/callDispositions/{id}": { + "delete": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "content": { + "application/vnd.api+json": {} + }, + "description": "Deleted" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Delete an Existing Call Disposition by ID", + "tags": ["Call Disposition"], + "x-internal": false + }, + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/callDispositionResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "summary": "Get a Call Disposition by ID", + "tags": ["Call Disposition"], + "x-internal": false + }, + "patch": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/callDisposition" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/callDispositionRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/callDisposition" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/callDispositionRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Update a Call Disposition", + "tags": ["Call Disposition"], + "x-internal": false + } + }, + "/callPurposes": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/callPurposeResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Get a Collection of Call Purposes", + "tags": ["Call Purpose"], + "x-internal": false + }, + "post": { + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/callPurpose" + }, + "relationships": { + "$ref": "#/components/schemas/callPurposeRelationships" + }, + "type": { + "type": "string" + } + } + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/callPurposeResponse" + } + } + } + } + }, + "description": "Created" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Create a New Call Purpose", + "tags": ["Call Purpose"], + "x-internal": false + } + }, + "/callPurposes/{id}": { + "delete": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "content": { + "application/vnd.api+json": {} + }, + "description": "Deleted" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Delete an Existing Call Purpose by ID", + "tags": ["Call Purpose"], + "x-internal": false + }, + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/callPurposeResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "summary": "Get a Call Purpose by ID", + "tags": ["Call Purpose"], + "x-internal": false + }, + "patch": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/callPurpose" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/callPurposeRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/callPurpose" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/callPurposeRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Update a Call Purpose", + "tags": ["Call Purpose"], + "x-internal": false + } + }, + "/calls": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/callResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Get a Collection of Calls", + "tags": ["Call"], + "x-internal": false + }, + "post": { + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/call" + }, + "relationships": { + "$ref": "#/components/schemas/callRelationships" + }, + "type": { + "type": "string" + } + } + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/callResponse" + } + } + } + } + }, + "description": "Created" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Create a New Call", + "tags": ["Call"], + "x-internal": false + } + }, + "/calls/{id}": { + "delete": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "content": { + "application/vnd.api+json": {} + }, + "description": "Deleted" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Delete an Existing Call by ID", + "tags": ["Call"], + "x-internal": false + }, + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/callResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Get a Call by ID", + "tags": ["Call"], + "x-internal": false + } + }, + "/complianceRequests": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/complianceRequestResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Get a Collection of Compliance Requests", + "tags": ["Compliance Request"], + "x-internal": false + }, + "post": { + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/complianceRequest" + }, + "relationships": { + "$ref": "#/components/schemas/complianceRequestRelationships" + }, + "type": { + "type": "string" + } + } + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/complianceRequestResponse" + } + } + } + } + }, + "description": "Created" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Create a New Compliance Request", + "tags": ["Compliance Request"], + "x-internal": false + } + }, + "/complianceRequests/{id}": { + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/complianceRequestResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "summary": "Get a Compliance Request by ID", + "tags": ["Compliance Request"], + "x-internal": false + } + }, + "/contentCategories": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/contentCategoryResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Get a Collection of Content Categories", + "tags": ["Content Category"], + "x-internal": false + }, + "post": { + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/contentCategory" + }, + "relationships": { + "$ref": "#/components/schemas/contentCategoryRelationships" + }, + "type": { + "type": "string" + } + } + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/contentCategoryResponse" + } + } + } + } + }, + "description": "Created" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Create a New Content Category", + "tags": ["Content Category"], + "x-internal": false + } + }, + "/contentCategories/{id}": { + "delete": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "content": { + "application/vnd.api+json": {} + }, + "description": "Deleted" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Delete an Existing Content Category by ID", + "tags": ["Content Category"], + "x-internal": false + }, + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/contentCategoryResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "summary": "Get a Content Category by ID", + "tags": ["Content Category"], + "x-internal": false + }, + "patch": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/contentCategory" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/contentCategoryRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/contentCategory" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/contentCategoryRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Update a Content Category", + "tags": ["Content Category"], + "x-internal": false + } + }, + "/contentCategoryMemberships": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/contentCategoryMembershipResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Get a Collection of Content Category Memberships", + "tags": ["Content Category Membership"], + "x-internal": false + }, + "post": { + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/contentCategoryMembership" + }, + "relationships": { + "$ref": "#/components/schemas/contentCategoryMembershipRelationships" + }, + "type": { + "type": "string" + } + } + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/contentCategoryMembershipResponse" + } + } + } + } + }, + "description": "Created" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Create a New Content Category Membership", + "tags": ["Content Category Membership"], + "x-internal": false + } + }, + "/contentCategoryMemberships/{id}": { + "delete": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "content": { + "application/vnd.api+json": {} + }, + "description": "Deleted" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Delete an Existing Content Category Membership by ID", + "tags": ["Content Category Membership"], + "x-internal": false + }, + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/contentCategoryMembershipResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "summary": "Get a Content Category Membership by ID", + "tags": ["Content Category Membership"], + "x-internal": false + } + }, + "/contentCategoryOwnerships": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/contentCategoryOwnershipResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Get a Collection of Content Category Ownerships", + "tags": ["Content Category Ownership"], + "x-internal": false + }, + "post": { + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/contentCategoryOwnership" + }, + "relationships": { + "$ref": "#/components/schemas/contentCategoryOwnershipRelationships" + }, + "type": { + "type": "string" + } + } + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/contentCategoryOwnershipResponse" + } + } + } + } + }, + "description": "Created" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Create a New Content Category Ownership", + "tags": ["Content Category Ownership"], + "x-internal": false + } + }, + "/contentCategoryOwnerships/{id}": { + "delete": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "content": { + "application/vnd.api+json": {} + }, + "description": "Deleted" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Delete an Existing Content Category Ownership by ID", + "tags": ["Content Category Ownership"], + "x-internal": false + } + }, + "/customDuties": { + "post": { + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/customDuty" + }, + "relationships": { + "$ref": "#/components/schemas/customDutyRelationships" + }, + "type": { + "type": "string" + } + } + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/customDutyResponse" + } + } + } + } + }, + "description": "Created" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Create a New Custom Duty", + "tags": ["Custom Duty"], + "x-internal": false + } + }, + "/duties": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/dutyResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Get a Collection of Duties", + "tags": ["Duty"], + "x-internal": false + } + }, + "/emailAddresses": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/emailAddressResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Get a Collection of Email Addresses", + "tags": ["Email Address"], + "x-internal": false + }, + "post": { + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/emailAddress" + }, + "relationships": { + "$ref": "#/components/schemas/emailAddressRelationships" + }, + "type": { + "type": "string" + } + } + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/emailAddressResponse" + } + } + } + } + }, + "description": "Created" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Create a New Email Address", + "tags": ["Email Address"], + "x-internal": false + } + }, + "/emailAddresses/{id}": { + "delete": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "content": { + "application/vnd.api+json": {} + }, + "description": "Deleted" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Delete an Existing Email Address by ID", + "tags": ["Email Address"], + "x-internal": false + }, + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/emailAddressResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "summary": "Get an Email Address by ID", + "tags": ["Email Address"], + "x-internal": false + }, + "patch": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/emailAddress" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/emailAddressRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/emailAddress" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/emailAddressRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Update an Email Address", + "tags": ["Email Address"], + "x-internal": false + } + }, + "/events/{id}": { + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/eventResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Get an Event by ID", + "tags": ["Event"], + "x-internal": false + } + }, + "/favorites": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/favoriteResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Get a Collection of Favorites", + "tags": ["Favorite"], + "x-internal": false + }, + "post": { + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/favorite" + }, + "relationships": { + "$ref": "#/components/schemas/favoriteRelationships" + }, + "type": { + "type": "string" + } + } + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/favoriteResponse" + } + } + } + } + }, + "description": "Created" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Create a New Favorite", + "tags": ["Favorite"], + "x-internal": false + } + }, + "/favorites/{id}": { + "delete": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "content": { + "application/vnd.api+json": {} + }, + "description": "Deleted" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Delete an Existing Favorite by ID", + "tags": ["Favorite"], + "x-internal": false + }, + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/favoriteResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "summary": "Get a Favorite by ID", + "tags": ["Favorite"], + "x-internal": false + } + }, + "/mailAliases": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/mailAliasResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Get a Collection of Mail Aliases", + "tags": ["Mail Alias"], + "x-internal": false + } + }, + "/mailAliases/{id}": { + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/mailAliasResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "summary": "Get a Mail Alias by ID", + "tags": ["Mail Alias"], + "x-internal": false + } + }, + "/mailboxes": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/mailboxResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Get a Collection of Mailboxes", + "tags": ["Mailbox"], + "x-internal": false + }, + "post": { + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/mailbox" + }, + "relationships": { + "$ref": "#/components/schemas/mailboxRelationships" + }, + "type": { + "type": "string" + } + } + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/mailboxResponse" + } + } + } + } + }, + "description": "Created" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Create a New Mailbox", + "tags": ["Mailbox"], + "x-internal": false + } + }, + "/mailboxes/{id}": { + "delete": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "content": { + "application/vnd.api+json": {} + }, + "description": "Deleted" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Delete an Existing Mailbox by ID", + "tags": ["Mailbox"], + "x-internal": false + }, + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/mailboxResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "summary": "Get a Mailbox by ID", + "tags": ["Mailbox"], + "x-internal": false + }, + "patch": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/mailbox" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/mailboxRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/mailbox" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/mailboxRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Update a Mailbox", + "tags": ["Mailbox"], + "x-internal": false + } + }, + "/mailboxes/{id}/actions/linkEwsMasterAccount": { + "post": { + "description": "### Member Action \n\nLink mailbox with EWS master account", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "description": "empty", + "type": "object" + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Link Ews Master Account", + "tags": ["Mailbox"], + "x-internal": false + } + }, + "/mailboxes/{id}/actions/testSend": { + "post": { + "description": "### Member Action \n\nTest if sending emails works from this mailbox.", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/mailboxResponse" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Test Send", + "tags": ["Mailbox"], + "x-internal": false + } + }, + "/mailboxes/{id}/actions/testSync": { + "post": { + "description": "### Member Action \n\nTest if syncing emails works from this mailbox.", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/mailboxResponse" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Test Sync", + "tags": ["Mailbox"], + "x-internal": false + } + }, + "/mailboxes/{id}/actions/unlinkEwsMasterAccount": { + "post": { + "description": "### Member Action \n\nUnlink EWS master account from mailbox", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "description": "empty", + "type": "object" + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Unlink Ews Master Account", + "tags": ["Mailbox"], + "x-internal": false + } + }, + "/mailings": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/mailingResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Get a Collection of Mailings", + "tags": ["Mailing"], + "x-internal": false + }, + "post": { + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/mailing" + }, + "relationships": { + "$ref": "#/components/schemas/mailingRelationships" + }, + "type": { + "type": "string" + } + } + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/mailingResponse" + } + } + } + } + }, + "description": "Created" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Create a New Mailing", + "tags": ["Mailing"], + "x-internal": false + } + }, + "/mailings/{id}": { + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/mailingResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Get a Mailing by ID", + "tags": ["Mailing"], + "x-internal": false + } + }, + "/opportunities": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/opportunityResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Get a Collection of Opportunities", + "tags": ["Opportunity"], + "x-internal": false + }, + "post": { + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/opportunity" + }, + "relationships": { + "$ref": "#/components/schemas/opportunityRelationships" + }, + "type": { + "type": "string" + } + } + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/opportunityResponse" + } + } + } + } + }, + "description": "Created" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Create a New Opportunity", + "tags": ["Opportunity"], + "x-internal": false + } + }, + "/opportunities/{id}": { + "delete": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "content": { + "application/vnd.api+json": {} + }, + "description": "Deleted" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Delete an Existing Opportunity by ID", + "tags": ["Opportunity"], + "x-internal": false + }, + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/opportunityResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Get an Opportunity by ID", + "tags": ["Opportunity"], + "x-internal": false + }, + "patch": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/opportunity" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/opportunityRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/opportunity" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/opportunityRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Update an Opportunity", + "tags": ["Opportunity"], + "x-internal": false + } + }, + "/opportunityProspectRoles": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/opportunityProspectRoleResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Get a Collection of Opportunity Prospect Roles", + "tags": ["Opportunity Prospect Role"], + "x-internal": false + }, + "post": { + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/opportunityProspectRole" + }, + "relationships": { + "$ref": "#/components/schemas/opportunityProspectRoleRelationships" + }, + "type": { + "type": "string" + } + } + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/opportunityProspectRoleResponse" + } + } + } + } + }, + "description": "Created" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Create a New Opportunity Prospect Role", + "tags": ["Opportunity Prospect Role"], + "x-internal": false + } + }, + "/opportunityProspectRoles/{id}": { + "delete": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "content": { + "application/vnd.api+json": {} + }, + "description": "Deleted" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Delete an Existing Opportunity Prospect Role by ID", + "tags": ["Opportunity Prospect Role"], + "x-internal": false + }, + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/opportunityProspectRoleResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "summary": "Get an Opportunity Prospect Role by ID", + "tags": ["Opportunity Prospect Role"], + "x-internal": false + }, + "patch": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/opportunityProspectRole" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/opportunityProspectRoleRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/opportunityProspectRole" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/opportunityProspectRoleRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Update an Opportunity Prospect Role", + "tags": ["Opportunity Prospect Role"], + "x-internal": false + } + }, + "/opportunityStages": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/opportunityStageResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Get a Collection of Opportunity Stages", + "tags": ["Opportunity Stage"], + "x-internal": false + }, + "post": { + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/opportunityStage" + }, + "relationships": { + "$ref": "#/components/schemas/opportunityStageRelationships" + }, + "type": { + "type": "string" + } + } + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/opportunityStageResponse" + } + } + } + } + }, + "description": "Created" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Create a New Opportunity Stage", + "tags": ["Opportunity Stage"], + "x-internal": false + } + }, + "/opportunityStages/{id}": { + "delete": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "content": { + "application/vnd.api+json": {} + }, + "description": "Deleted" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Delete an Existing Opportunity Stage by ID", + "tags": ["Opportunity Stage"], + "x-internal": false + }, + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/opportunityStageResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "summary": "Get an Opportunity Stage by ID", + "tags": ["Opportunity Stage"], + "x-internal": false + }, + "patch": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/opportunityStage" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/opportunityStageRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/opportunityStage" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/opportunityStageRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Update an Opportunity Stage", + "tags": ["Opportunity Stage"], + "x-internal": false + } + }, + "/personas": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/personaResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Get a Collection of Personas", + "tags": ["Persona"], + "x-internal": false + }, + "post": { + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/persona" + }, + "relationships": { + "$ref": "#/components/schemas/personaRelationships" + }, + "type": { + "type": "string" + } + } + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/personaResponse" + } + } + } + } + }, + "description": "Created" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Create a New Persona", + "tags": ["Persona"], + "x-internal": false + } + }, + "/personas/{id}": { + "delete": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "content": { + "application/vnd.api+json": {} + }, + "description": "Deleted" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Delete an Existing Persona by ID", + "tags": ["Persona"], + "x-internal": false + }, + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/personaResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "summary": "Get a Persona by ID", + "tags": ["Persona"], + "x-internal": false + }, + "patch": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/persona" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/personaRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/persona" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/personaRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Update a Persona", + "tags": ["Persona"], + "x-internal": false + } + }, + "/phoneNumbers": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/phoneNumberResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Get a Collection of Phone Numbers", + "tags": ["Phone Number"], + "x-internal": false + }, + "post": { + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/phoneNumber" + }, + "relationships": { + "$ref": "#/components/schemas/phoneNumberRelationships" + }, + "type": { + "type": "string" + } + } + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/phoneNumberResponse" + } + } + } + } + }, + "description": "Created" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Create a New Phone Number", + "tags": ["Phone Number"], + "x-internal": false + } + }, + "/phoneNumbers/{id}": { + "delete": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "content": { + "application/vnd.api+json": {} + }, + "description": "Deleted" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Delete an Existing Phone Number by ID", + "tags": ["Phone Number"], + "x-internal": false + }, + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/phoneNumberResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "summary": "Get a Phone Number by ID", + "tags": ["Phone Number"], + "x-internal": false + }, + "patch": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/phoneNumber" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/phoneNumberRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/phoneNumber" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/phoneNumberRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Update a Phone Number", + "tags": ["Phone Number"], + "x-internal": false + } + }, + "/profiles": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/profileResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Get a Collection of Profiles", + "tags": ["Profile"], + "x-internal": false + }, + "post": { + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/profile" + }, + "relationships": { + "$ref": "#/components/schemas/profileRelationships" + }, + "type": { + "type": "string" + } + } + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/profileResponse" + } + } + } + } + }, + "description": "Created" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Create a New Profile", + "tags": ["Profile"], + "x-internal": false + } + }, + "/profiles/{id}": { + "delete": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "content": { + "application/vnd.api+json": {} + }, + "description": "Deleted" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Delete an Existing Profile by ID", + "tags": ["Profile"], + "x-internal": false + }, + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/profileResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "summary": "Get a Profile by ID", + "tags": ["Profile"], + "x-internal": false + }, + "patch": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/profile" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/profileRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/profile" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/profileRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Update a Profile", + "tags": ["Profile"], + "x-internal": false + } + }, + "/prospects": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/prospectResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Get a Collection of Prospects", + "tags": ["Prospect"], + "x-internal": false + }, + "post": { + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/prospect" + }, + "relationships": { + "$ref": "#/components/schemas/prospectRelationships" + }, + "type": { + "type": "string" + } + } + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/prospectResponse" + } + } + } + } + }, + "description": "Created" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Create a New Prospect", + "tags": ["Prospect"], + "x-internal": false + } + }, + "/prospects/{id}": { + "delete": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "content": { + "application/vnd.api+json": {} + }, + "description": "Deleted" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Delete an Existing Prospect by ID", + "tags": ["Prospect"], + "x-internal": false + }, + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/prospectResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Get a Prospect by ID", + "tags": ["Prospect"], + "x-internal": false + }, + "patch": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/prospect" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/prospectRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/prospect" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/prospectRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Update a Prospect", + "tags": ["Prospect"], + "x-internal": false + } + }, + "/recipients": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/recipientResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Get a Collection of Recipients", + "tags": ["Recipient"], + "x-internal": false + }, + "post": { + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/recipient" + }, + "relationships": { + "$ref": "#/components/schemas/recipientRelationships" + }, + "type": { + "type": "string" + } + } + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/recipientResponse" + } + } + } + } + }, + "description": "Created" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Create a New Recipient", + "tags": ["Recipient"], + "x-internal": false + } + }, + "/recipients/{id}": { + "delete": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "content": { + "application/vnd.api+json": {} + }, + "description": "Deleted" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Delete an Existing Recipient by ID", + "tags": ["Recipient"], + "x-internal": false + }, + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/recipientResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "summary": "Get a Recipient by ID", + "tags": ["Recipient"], + "x-internal": false + }, + "patch": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/recipient" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/recipientRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/recipient" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/recipientRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Update a Recipient", + "tags": ["Recipient"], + "x-internal": false + } + }, + "/roles": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/roleResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Get a Collection of Roles", + "tags": ["Role"], + "x-internal": false + }, + "post": { + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/role" + }, + "relationships": { + "$ref": "#/components/schemas/roleRelationships" + }, + "type": { + "type": "string" + } + } + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/roleResponse" + } + } + } + } + }, + "description": "Created" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Create a New Role", + "tags": ["Role"], + "x-internal": false + } + }, + "/roles/{id}": { + "delete": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "content": { + "application/vnd.api+json": {} + }, + "description": "Deleted" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Delete an Existing Role by ID", + "tags": ["Role"], + "x-internal": false + }, + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/roleResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "summary": "Get a Role by ID", + "tags": ["Role"], + "x-internal": false + }, + "patch": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/role" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/roleRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/role" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/roleRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Update a Role", + "tags": ["Role"], + "x-internal": false + } + }, + "/rulesets": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/rulesetResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Get a Collection of Rulesets", + "tags": ["Ruleset"], + "x-internal": false + }, + "post": { + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/ruleset" + }, + "relationships": { + "$ref": "#/components/schemas/rulesetRelationships" + }, + "type": { + "type": "string" + } + } + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/rulesetResponse" + } + } + } + } + }, + "description": "Created" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Create a New Ruleset", + "tags": ["Ruleset"], + "x-internal": false + } + }, + "/rulesets/{id}": { + "delete": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "content": { + "application/vnd.api+json": {} + }, + "description": "Deleted" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Delete an Existing Ruleset by ID", + "tags": ["Ruleset"], + "x-internal": false + }, + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/rulesetResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "summary": "Get a Ruleset by ID", + "tags": ["Ruleset"], + "x-internal": false + }, + "patch": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/ruleset" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/rulesetRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/ruleset" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/rulesetRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Update a Ruleset", + "tags": ["Ruleset"], + "x-internal": false + } + }, + "/sequenceStates": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/sequenceStateResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Get a Collection of Sequence States", + "tags": ["Sequence State"], + "x-internal": false + }, + "post": { + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/sequenceState" + }, + "relationships": { + "$ref": "#/components/schemas/sequenceStateRelationships" + }, + "type": { + "type": "string" + } + } + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/sequenceStateResponse" + } + } + } + } + }, + "description": "Created" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Create a New Sequence State", + "tags": ["Sequence State"], + "x-internal": false + } + }, + "/sequenceStates/{id}": { + "delete": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "content": { + "application/vnd.api+json": {} + }, + "description": "Deleted" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Delete an Existing Sequence State by ID", + "tags": ["Sequence State"], + "x-internal": false + }, + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/sequenceStateResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Get a Sequence State by ID", + "tags": ["Sequence State"], + "x-internal": false + } + }, + "/sequenceStates/{id}/actions/finish": { + "post": { + "description": "### Member Action \n\nFinishes an active sequence state.", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/sequenceStateResponse" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Finish", + "tags": ["Sequence State"], + "x-internal": false + } + }, + "/sequenceStates/{id}/actions/pause": { + "post": { + "description": "### Member Action \n\nPauses an active sequence state.", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/sequenceStateResponse" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Pause", + "tags": ["Sequence State"], + "x-internal": false + } + }, + "/sequenceStates/{id}/actions/resume": { + "post": { + "description": "### Member Action \n\nResumes a paused sequence state.", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/sequenceStateResponse" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Resume", + "tags": ["Sequence State"], + "x-internal": false + } + }, + "/sequenceSteps": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/sequenceStepResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Get a Collection of Sequence Steps", + "tags": ["Sequence Step"], + "x-internal": false + }, + "post": { + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/sequenceStep" + }, + "relationships": { + "$ref": "#/components/schemas/sequenceStepRelationships" + }, + "type": { + "type": "string" + } + } + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/sequenceStepResponse" + } + } + } + } + }, + "description": "Created" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Create a New Sequence Step", + "tags": ["Sequence Step"], + "x-internal": false + } + }, + "/sequenceSteps/{id}": { + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/sequenceStepResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "summary": "Get a Sequence Step by ID", + "tags": ["Sequence Step"], + "x-internal": false + }, + "patch": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/sequenceStep" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/sequenceStepRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/sequenceStep" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/sequenceStepRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Update a Sequence Step", + "tags": ["Sequence Step"], + "x-internal": false + } + }, + "/sequenceTemplates": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/sequenceTemplateResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Get a Collection of Sequence Templates", + "tags": ["Sequence Template"], + "x-internal": false + }, + "post": { + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/sequenceTemplate" + }, + "relationships": { + "$ref": "#/components/schemas/sequenceTemplateRelationships" + }, + "type": { + "type": "string" + } + } + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/sequenceTemplateResponse" + } + } + } + } + }, + "description": "Created" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Create a New Sequence Template", + "tags": ["Sequence Template"], + "x-internal": false + } + }, + "/sequenceTemplates/{id}": { + "delete": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "content": { + "application/vnd.api+json": {} + }, + "description": "Deleted" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Delete an Existing Sequence Template by ID", + "tags": ["Sequence Template"], + "x-internal": false + }, + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/sequenceTemplateResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "summary": "Get a Sequence Template by ID", + "tags": ["Sequence Template"], + "x-internal": false + }, + "patch": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/sequenceTemplate" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/sequenceTemplateRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/sequenceTemplate" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/sequenceTemplateRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Update a Sequence Template", + "tags": ["Sequence Template"], + "x-internal": false + } + }, + "/sequences": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/sequenceResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Get a Collection of Sequences", + "tags": ["Sequence"], + "x-internal": false + }, + "post": { + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/sequence" + }, + "relationships": { + "$ref": "#/components/schemas/sequenceRelationships" + }, + "type": { + "type": "string" + } + } + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/sequenceResponse" + } + } + } + } + }, + "description": "Created" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Create a New Sequence", + "tags": ["Sequence"], + "x-internal": false + } + }, + "/sequences/{id}": { + "delete": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "content": { + "application/vnd.api+json": {} + }, + "description": "Deleted" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Delete an Existing Sequence by ID", + "tags": ["Sequence"], + "x-internal": false + }, + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/sequenceResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Get a Sequence by ID", + "tags": ["Sequence"], + "x-internal": false + }, + "patch": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/sequence" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/sequenceRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/sequence" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/sequenceRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Update a Sequence", + "tags": ["Sequence"], + "x-internal": false + } + }, + "/snippets": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/snippetResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Get a Collection of Snippets", + "tags": ["Snippet"], + "x-internal": false + }, + "post": { + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/snippet" + }, + "relationships": { + "$ref": "#/components/schemas/snippetRelationships" + }, + "type": { + "type": "string" + } + } + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/snippetResponse" + } + } + } + } + }, + "description": "Created" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Create a New Snippet", + "tags": ["Snippet"], + "x-internal": false + } + }, + "/snippets/{id}": { + "delete": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "content": { + "application/vnd.api+json": {} + }, + "description": "Deleted" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Delete an Existing Snippet by ID", + "tags": ["Snippet"], + "x-internal": false + }, + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/snippetResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Get a Snippet by ID", + "tags": ["Snippet"], + "x-internal": false + }, + "patch": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/snippet" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/snippetRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/snippet" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/snippetRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Update a Snippet", + "tags": ["Snippet"], + "x-internal": false + } + }, + "/stages": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/stageResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Get a Collection of Stages", + "tags": ["Stage"], + "x-internal": false + }, + "post": { + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/stage" + }, + "relationships": { + "$ref": "#/components/schemas/stageRelationships" + }, + "type": { + "type": "string" + } + } + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/stageResponse" + } + } + } + } + }, + "description": "Created" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Create a New Stage", + "tags": ["Stage"], + "x-internal": false + } + }, + "/stages/{id}": { + "delete": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "content": { + "application/vnd.api+json": {} + }, + "description": "Deleted" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Delete an Existing Stage by ID", + "tags": ["Stage"], + "x-internal": false + }, + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/stageResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "summary": "Get a Stage by ID", + "tags": ["Stage"], + "x-internal": false + }, + "patch": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/stage" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/stageRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/stage" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/stageRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Update a Stage", + "tags": ["Stage"], + "x-internal": false + } + }, + "/taskPriorities": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/taskPriorityResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Get a Collection of Task Priorities", + "tags": ["Task Priority"], + "x-internal": false + } + }, + "/taskPriorities/{id}": { + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/taskPriorityResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "summary": "Get a Task Priority by ID", + "tags": ["Task Priority"], + "x-internal": false + } + }, + "/tasks": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/taskResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Get a Collection of Tasks", + "tags": ["Task"], + "x-internal": false + }, + "post": { + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/task" + }, + "relationships": { + "$ref": "#/components/schemas/taskRelationships" + }, + "type": { + "type": "string" + } + } + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/taskResponse" + } + } + } + } + }, + "description": "Created" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Create a New Task", + "tags": ["Task"], + "x-internal": false + } + }, + "/tasks/{id}": { + "delete": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "content": { + "application/vnd.api+json": {} + }, + "description": "Deleted" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Delete an Existing Task by ID", + "tags": ["Task"], + "x-internal": false + }, + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/taskResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Get a Task by ID", + "tags": ["Task"], + "x-internal": false + }, + "patch": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/task" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/taskRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/task" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/taskRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Update a Task", + "tags": ["Task"], + "x-internal": false + } + }, + "/tasks/{id}/actions/advance": { + "post": { + "description": "### Member Action \n\nAdvances the sequence state associated with the task to the next step in the sequence. Note that only tasks with task_type of 'sequence_step_call', 'sequence_step_email', 'sequence_step_linkedin_interact_with_post', 'sequence_step_linkedin_other', 'sequence_step_linkedin_send_connection_request', 'sequence_step_linkedin_send_message', 'sequence_step_linkedin_view_profile', 'sequence_step_sms' or 'sequence_step_task' can be advanced.", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/taskResponse" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Advance", + "tags": ["Task"], + "x-internal": false + } + }, + "/tasks/{id}/actions/deliver": { + "post": { + "description": "### Member Action \n\nSchedules the mailing associated with the task for delivery, if possible.", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/taskResponse" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Deliver", + "tags": ["Task"], + "x-internal": false + } + }, + "/tasks/{id}/actions/markComplete": { + "post": { + "description": "### Member Action \n\nMarks the task as complete.", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "explode": true, + "in": "query", + "name": "actionParams", + "schema": { + "properties": { + "completionAction": { + "description": "For sequence step tasks, this specifies how to finish the sequence state. Possible values are: 'finish_no_reply' to finish the sequence, 'finish_replied' to set the sequence as replied, and anything else (including leaving it blank) will advance the sequence state." + }, + "completionNote": { + "description": "A note to attach to the associated prospect, if there is one." + } + } + }, + "style": "deepObject" + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/taskResponse" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Mark Complete", + "tags": ["Task"], + "x-internal": false + } + }, + "/tasks/{id}/actions/reassignOwner": { + "post": { + "description": "### Member Action \n\nReassigns the owner of a task", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "explode": true, + "in": "query", + "name": "actionParams", + "schema": { + "properties": { + "ownerId": { + "description": "The id of the new owner of the task" + } + }, + "required": ["ownerId"] + }, + "style": "deepObject" + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/taskResponse" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Reassign Owner", + "tags": ["Task"], + "x-internal": false + } + }, + "/tasks/{id}/actions/reschedule": { + "post": { + "description": "### Member Action \n\nReschedules a task by setting a new task due time.", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "explode": true, + "in": "query", + "name": "actionParams", + "schema": { + "properties": { + "dueAt": { + "description": "The new time for the task to be due." + } + }, + "required": ["dueAt"] + }, + "style": "deepObject" + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/taskResponse" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Reschedule", + "tags": ["Task"], + "x-internal": false + } + }, + "/tasks/{id}/actions/snooze": { + "post": { + "description": "### Member Action \n\nSets the 'dueAt' value to be a day later than either now or the existing 'dueAt' value, whichever is later.", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "explode": true, + "in": "query", + "name": "actionParams", + "schema": { + "properties": { + "dueAt": { + "description": "The new time for the task to be due." + }, + "markAsUrgent": { + "description": "Whether to mark the task as urgent or not." + } + } + }, + "style": "deepObject" + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/taskResponse" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Snooze", + "tags": ["Task"], + "x-internal": false + } + }, + "/tasks/{id}/actions/updateNote": { + "post": { + "description": "### Member Action \n\nUpdates note of a task", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "explode": true, + "in": "query", + "name": "actionParams", + "schema": { + "properties": { + "note": { + "description": "The note to set on the task." + } + }, + "required": ["note"] + }, + "style": "deepObject" + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/taskResponse" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Update Note", + "tags": ["Task"], + "x-internal": false + } + }, + "/tasks/{id}/actions/updateOpportunityAssociation": { + "post": { + "description": "### Member Action \n\nUpdates opportunity association of a task", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "explode": true, + "in": "query", + "name": "actionParams", + "schema": { + "properties": { + "opportunityAssociation": { + "description": "The opportunity to associate with the task." + } + }, + "required": ["opportunityAssociation"] + }, + "style": "deepObject" + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/taskResponse" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Update Opportunity Association", + "tags": ["Task"], + "x-internal": false + } + }, + "/teams": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/teamResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Get a Collection of Teams", + "tags": ["Team"], + "x-internal": false + }, + "post": { + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/team" + }, + "relationships": { + "$ref": "#/components/schemas/teamRelationships" + }, + "type": { + "type": "string" + } + } + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/teamResponse" + } + } + } + } + }, + "description": "Created" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Create a New Team", + "tags": ["Team"], + "x-internal": false + } + }, + "/teams/{id}": { + "delete": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "content": { + "application/vnd.api+json": {} + }, + "description": "Deleted" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Delete an Existing Team by ID", + "tags": ["Team"], + "x-internal": false + }, + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/teamResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "summary": "Get a Team by ID", + "tags": ["Team"], + "x-internal": false + }, + "patch": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/team" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/teamRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/team" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/teamRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Update a Team", + "tags": ["Team"], + "x-internal": false + } + }, + "/templates": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/templateResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Get a Collection of Templates", + "tags": ["Template"], + "x-internal": false + }, + "post": { + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/template" + }, + "relationships": { + "$ref": "#/components/schemas/templateRelationships" + }, + "type": { + "type": "string" + } + } + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/templateResponse" + } + } + } + } + }, + "description": "Created" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Create a New Template", + "tags": ["Template"], + "x-internal": false + } + }, + "/templates/{id}": { + "delete": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "content": { + "application/vnd.api+json": {} + }, + "description": "Deleted" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Delete an Existing Template by ID", + "tags": ["Template"], + "x-internal": false + }, + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/templateResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Get a Template by ID", + "tags": ["Template"], + "x-internal": false + }, + "patch": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/template" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/templateRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/template" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/templateRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Update a Template", + "tags": ["Template"], + "x-internal": false + } + }, + "/users": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/userResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Get a Collection of Users", + "tags": ["User"], + "x-internal": false + }, + "post": { + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/user" + }, + "relationships": { + "$ref": "#/components/schemas/userRelationships" + }, + "type": { + "type": "string" + } + } + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/userResponse" + } + } + } + } + }, + "description": "Created" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Create a New User", + "tags": ["User"], + "x-internal": false + } + }, + "/users/{id}": { + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/userResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Get a User by ID", + "tags": ["User"], + "x-internal": false + }, + "patch": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/user" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/userRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/user" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/userRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "summary": "Update a User", + "tags": ["User"], + "x-internal": false + } + }, + "/webhooks": { + "get": { + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/webhookResponse" + }, + "type": "array" + } + } + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Get a Collection of Webhooks", + "tags": ["Webhook"], + "x-internal": false + }, + "post": { + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/webhook" + }, + "relationships": { + "$ref": "#/components/schemas/webhookRelationships" + }, + "type": { + "type": "string" + } + } + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/webhookResponse" + } + } + } + } + }, + "description": "Created" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Create a New Webhook", + "tags": ["Webhook"], + "x-internal": false + } + }, + "/webhooks/{id}": { + "delete": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "content": { + "application/vnd.api+json": {} + }, + "description": "Deleted" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Delete an Existing Webhook by ID", + "tags": ["Webhook"], + "x-internal": false + }, + "get": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "$ref": "#/components/schemas/webhookResponse" + } + } + } + } + }, + "description": "OK" + }, + "404": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "Not Found" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Get a Webhook by ID", + "tags": ["Webhook"], + "x-internal": false + }, + "patch": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/webhook" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/webhookRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "data": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/webhook" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/webhookRelationships" + }, + "type": { + "type": "string" + } + }, + "required": ["type", "id"] + } + }, + "type": "object" + } + } + }, + "description": "OK" + }, + "422": { + "content": { + "application/vnd.api+json": { + "schema": { + "properties": { + "errors": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + } + } + }, + "description": "JSON error message" + } + }, + "security": [ + { + "bearerAuth": [], + "s2sAuthToken": [] + } + ], + "summary": "Update a Webhook", + "tags": ["Webhook"], + "x-internal": false + } + } + }, + "components": { + "schemas": { + "account": { + "description": "A descriptor of a named company used to categorize prospects within an account-based sales approach.", + "properties": { + "buyerIntentScore": { + "description": " \n\nA custom score given to measure the quality of the account.", + "format": "float", + "type": "number", + "x-internal": false + }, + "companyType": { + "description": "\n\nA description of the company’s type (e.g. \"Public Company\").", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "createdAt": { + "description": " \n\nThe date and time the account was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "custom1": { + "description": "\n\nThe value of the account’s first custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom2": { + "description": "\n\nThe value of the account’s second custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom3": { + "description": "\n\nThe value of the account’s third custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom4": { + "description": "\n\nThe value of the account’s fourth custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom5": { + "description": "\n\nThe value of the account’s fifth custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom6": { + "description": "\n\nThe value of the account’s sixth custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom7": { + "description": "\n\nThe value of the account’s seventh custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom8": { + "description": "\n\nThe value of the account’s eight custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom9": { + "description": "\n\nThe value of the account’s ninth custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom10": { + "description": "\n\nThe value of the account’s 10th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom11": { + "description": "\n\nThe value of the account’s 11th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom12": { + "description": "\n\nThe value of the account’s 12th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom13": { + "description": "\n\nThe value of the account’s 13th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom14": { + "description": "\n\nThe value of the account’s 14th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom15": { + "description": "\n\nThe value of the account’s 15th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom16": { + "description": "\n\nThe value of the account’s 16th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom17": { + "description": "\n\nThe value of the account’s 17th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom18": { + "description": "\n\nThe value of the account’s 18th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom19": { + "description": "\n\nThe value of the account’s 19th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom20": { + "description": "\n\nThe value of the account’s 20th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom21": { + "description": "\n\nThe value of the account’s 21st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom22": { + "description": "\n\nThe value of the account’s 22nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom23": { + "description": "\n\nThe value of the account’s 23rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom24": { + "description": "\n\nThe value of the account’s 24th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom25": { + "description": "\n\nThe value of the account’s 25th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom26": { + "description": "\n\nThe value of the account’s 26th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom27": { + "description": "\n\nThe value of the account’s 27th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom28": { + "description": "\n\nThe value of the account’s 28th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom29": { + "description": "\n\nThe value of the account’s 29th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom30": { + "description": "\n\nThe value of the account’s 30th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom31": { + "description": "\n\nThe value of the account’s 31st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom32": { + "description": "\n\nThe value of the account’s 32nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom33": { + "description": "\n\nThe value of the account’s 33rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom34": { + "description": "\n\nThe value of the account’s 34th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom35": { + "description": "\n\nThe value of the account’s 35th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom36": { + "description": "\n\nThe value of the account's 36th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom37": { + "description": "\n\nThe value of the account's 37th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom38": { + "description": "\n\nThe value of the account's 38th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom39": { + "description": "\n\nThe value of the account's 39th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom40": { + "description": "\n\nThe value of the account's 40th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom41": { + "description": "\n\nThe value of the account's 41st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom42": { + "description": "\n\nThe value of the account's 42nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom43": { + "description": "\n\nThe value of the account's 43rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom44": { + "description": "\n\nThe value of the account's 44th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom45": { + "description": "\n\nThe value of the account's 45th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom46": { + "description": "\n\nThe value of the account's 46th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom47": { + "description": "\n\nThe value of the account's 47th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom48": { + "description": "\n\nThe value of the account's 48th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom49": { + "description": "\n\nThe value of the account's 49th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom50": { + "description": "\n\nThe value of the account's 50th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom51": { + "description": "\n\nThe value of the account's 51st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom52": { + "description": "\n\nThe value of the account's 52nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom53": { + "description": "\n\nThe value of the account's 53rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom54": { + "description": "\n\nThe value of the account's 54th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom55": { + "description": "\n\nThe value of the account's 55th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom56": { + "description": "\n\nThe value of the account's 56th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom57": { + "description": "\n\nThe value of the account's 57th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom58": { + "description": "\n\nThe value of the account's 58th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom59": { + "description": "\n\nThe value of the account's 59th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom60": { + "description": "\n\nThe value of the account's 60th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom61": { + "description": "\n\nThe value of the account's 61st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom62": { + "description": "\n\nThe value of the account's 62nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom63": { + "description": "\n\nThe value of the account's 63rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom64": { + "description": "\n\nThe value of the account's 64th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom65": { + "description": "\n\nThe value of the account's 65th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom66": { + "description": "\n\nThe value of the account's 66th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom67": { + "description": "\n\nThe value of the account's 67th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom68": { + "description": "\n\nThe value of the account's 68th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom69": { + "description": "\n\nThe value of the account's 69th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom70": { + "description": "\n\nThe value of the account's 70th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom71": { + "description": "\n\nThe value of the account's 71st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom72": { + "description": "\n\nThe value of the account's 72nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom73": { + "description": "\n\nThe value of the account's 73rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom74": { + "description": "\n\nThe value of the account's 74th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom75": { + "description": "\n\nThe value of the account's 75th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom76": { + "description": "\n\nThe value of the account's 76th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom77": { + "description": "\n\nThe value of the account's 77th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom78": { + "description": "\n\nThe value of the account's 78th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom79": { + "description": "\n\nThe value of the account's 79th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom80": { + "description": "\n\nThe value of the account's 80th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom81": { + "description": "\n\nThe value of the account's 81st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom82": { + "description": "\n\nThe value of the account's 82nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom83": { + "description": "\n\nThe value of the account's 83rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom84": { + "description": "\n\nThe value of the account's 84th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom85": { + "description": "\n\nThe value of the account's 85th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom86": { + "description": "\n\nThe value of the account's 86th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom87": { + "description": "\n\nThe value of the account's 87th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom88": { + "description": "\n\nThe value of the account's 88th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom89": { + "description": "\n\nThe value of the account's 89th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom90": { + "description": "\n\nThe value of the account's 90th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom91": { + "description": "\n\nThe value of the account's 91st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom92": { + "description": "\n\nThe value of the account's 92nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom93": { + "description": "\n\nThe value of the account's 93rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom94": { + "description": "\n\nThe value of the account's 94th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom95": { + "description": "\n\nThe value of the account's 95th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom96": { + "description": "\n\nThe value of the account's 96th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom97": { + "description": "\n\nThe value of the account's 97th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom98": { + "description": "\n\nThe value of the account's 98th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom99": { + "description": "\n\nThe value of the account's 99th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom100": { + "description": "\n\nThe value of the account’s 100th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom101": { + "description": "\n\nThe value of the account’s 101st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom102": { + "description": "\n\nThe value of the account’s 102nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom103": { + "description": "\n\nThe value of the account’s 103rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom104": { + "description": "\n\nThe value of the account’s 104th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom105": { + "description": "\n\nThe value of the account’s 105th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom106": { + "description": "\n\nThe value of the account’s 106th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom107": { + "description": "\n\nThe value of the account’s 107th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom108": { + "description": "\n\nThe value of the account’s 108th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom109": { + "description": "\n\nThe value of the account’s 109th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom110": { + "description": "\n\nThe value of the account’s 110th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom111": { + "description": "\n\nThe value of the account’s 111th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom112": { + "description": "\n\nThe value of the account’s 112th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom113": { + "description": "\n\nThe value of the account’s 113th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom114": { + "description": "\n\nThe value of the account’s 114th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom115": { + "description": "\n\nThe value of the account’s 115th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom116": { + "description": "\n\nThe value of the account’s 116th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom117": { + "description": "\n\nThe value of the account’s 117th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom118": { + "description": "\n\nThe value of the account’s 118th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom119": { + "description": "\n\nThe value of the account’s 119th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom120": { + "description": "\n\nThe value of the account’s 120th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom121": { + "description": "\n\nThe value of the account’s 121st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom122": { + "description": "\n\nThe value of the account’s 122nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom123": { + "description": "\n\nThe value of the account’s 123rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom124": { + "description": "\n\nThe value of the account’s 124th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom125": { + "description": "\n\nThe value of the account’s 125th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom126": { + "description": "\n\nThe value of the account’s 126th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom127": { + "description": "\n\nThe value of the account’s 127th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom128": { + "description": "\n\nThe value of the account’s 128th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom129": { + "description": "\n\nThe value of the account’s 129th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom130": { + "description": "\n\nThe value of the account’s 130th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom131": { + "description": "\n\nThe value of the account’s 131st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom132": { + "description": "\n\nThe value of the account’s 132nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom133": { + "description": "\n\nThe value of the account’s 133rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom134": { + "description": "\n\nThe value of the account’s 134th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom135": { + "description": "\n\nThe value of the account’s 135th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom136": { + "description": "\n\nThe value of the account’s 136th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom137": { + "description": "\n\nThe value of the account’s 137th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom138": { + "description": "\n\nThe value of the account’s 138th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom139": { + "description": "\n\nThe value of the account’s 139th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom140": { + "description": "\n\nThe value of the account’s 140th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom141": { + "description": "\n\nThe value of the account’s 141st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom142": { + "description": "\n\nThe value of the account’s 142nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom143": { + "description": "\n\nThe value of the account’s 143rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom144": { + "description": "\n\nThe value of the account’s 144th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom145": { + "description": "\n\nThe value of the account’s 145th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom146": { + "description": "\n\nThe value of the account’s 146th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom147": { + "description": "\n\nThe value of the account’s 147th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom148": { + "description": "\n\nThe value of the account’s 148th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom149": { + "description": "\n\nThe value of the account’s 149th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom150": { + "description": "\n\nThe value of the account’s 150th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "customId": { + "description": " \n\nA custom ID for the account, often referencing an ID in an external system.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "description": { + "description": "\n\nA custom description of the account.", + "maxLength": 65535, + "type": "string", + "x-internal": false + }, + "domain": { + "description": " \n\nThe company’s website domain (e.g. \"`www.acme.com`\").", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "externalSource": { + "description": "\n\nThe source of the resource’s creation (e.g. \"outreach-api\").", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "followers": { + "description": "\n\nThe number of followers the company has listed on social media.", + "type": "integer", + "x-internal": false + }, + "foundedAt": { + "description": "\n\nThe founding date of the company.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "industry": { + "description": "\n\nA description of the company’s industry (e.g. \"Manufacturing\").", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "linkedInEmployees": { + "description": "\n\nThe number of employees listed on the company’s LinkedIn URL.", + "type": "integer", + "x-internal": false + }, + "linkedInUrl": { + "description": "\n\nThe company’s LinkedIn URL.", + "maxLength": 1000, + "type": "string", + "x-internal": false + }, + "locality": { + "description": "\n\nThe company’s primary geographic region (e.g. \"Eastern USA\").", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "name": { + "description": " \n\nThe name of the company (e.g. \"Acme Corporation\").", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "named": { + "description": " \n\nA boolean value determining whether this is a \"named\" account or not. Only named accounts will show up on the collection index.", + "type": "boolean", + "x-internal": false + }, + "naturalName": { + "description": "\n\nThe natural name of the company (e.g. \"Acme\").", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "numberOfEmployees": { + "description": "\n\nThe number of employees working at the company.", + "type": "integer", + "x-internal": false + }, + "sharingTeamId": { + "description": "\n\nThe ID of the sharing team associated with this object. Access is currently in beta.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "tags": { + "description": "\n\nA list of tag values associated with the account (e.g. [\"Enterprise\", \"Tier 1\"]).", + "items": { + "type": "string" + }, + "type": "array", + "x-internal": false + }, + "touchedAt": { + "description": " \n\nThe date and time the account was last touched.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "updatedAt": { + "description": " \n\nThe date and time the account was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "websiteUrl": { + "description": "\n\nThe company’s website URL (e.g. \"`https://www.acme.com/contact`\").", + "maxLength": 255, + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "accountRelationships": { + "properties": { + "creator": { + "description": "\n\nThe creator of the account. Relationship creator cannot be used as a filter.", + "oneOf": [ + { + "description": "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + } + ], + "x-internal": false + }, + "owner": { + "description": "The owner of the account. You can use only the attribute id to filter accounts by owner (e.g. filter[owner][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + }, + "prospects": { + "description": "\n\nThe account's associated prospects. Relationship prospects cannot be used as a filter.", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["prospect"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "prospect" + }, + "type": "array", + "x-internal": false + }, + "tasks": { + "description": "\n\nThe associated tasks. Relationship tasks cannot be used as a filter.", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["task"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "task" + }, + "type": "array", + "x-internal": false + }, + "updater": { + "description": "\n\nThe most recent updater of the account. Relationship updater cannot be used as a filter.", + "oneOf": [ + { + "description": "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + } + ], + "x-internal": false + } + }, + "type": "object" + }, + "accountResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/account" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/accountRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "addressRelationships": { + "type": "object" + }, + "attachmentRelationships": { + "type": "object" + }, + "audit": { + "description": "Events that happen during the day. Things like login, plugin mapping changes, etc.", + "properties": { + "eventName": { + "description": " \n\nName of the event", + "type": "string", + "x-internal": false + }, + "timestamp": { + "description": " \n\nWhen the event happened", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "userEmail": { + "description": "\n\nEmail of the user who perfomed the action", + "format": "email", + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "auditRelationships": { + "type": "object" + }, + "auditResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/audit" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/auditRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "batchItemRelationships": { + "type": "object" + }, + "batchRelationships": { + "type": "object" + }, + "blockedNumberRelationships": { + "type": "object" + }, + "calendarEventAttendeeRelationships": { + "properties": { + "prospect": { + "description": "", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["prospect"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["prospect"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "prospect", + "x-internal": false + }, + "user": { + "description": "", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + } + }, + "type": "object" + }, + "calendarEventRelationships": { + "properties": { + "accounts": { + "description": "\n\n", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["account"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "account" + }, + "type": "array", + "x-internal": false + }, + "booker": { + "description": "\n\nThe user who booked this event.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + }, + "creator": { + "description": "\n\nThe creator of the event.", + "oneOf": [ + { + "description": "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + } + ], + "x-internal": false + }, + "opportunity": { + "description": "The opportunity associated with the event.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["opportunity"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["opportunity"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "opportunity", + "x-internal": false + }, + "prospects": { + "description": "\n\n", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["prospect"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["prospect"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "prospect" + }, + "type": "array", + "x-internal": false + }, + "user": { + "description": "\n\nThe user associated with the calendar.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + }, + "users": { + "description": "", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + }, + "type": "array", + "x-internal": false + } + }, + "type": "object" + }, + "calendarRelationships": { + "properties": { + "creator": { + "description": "\n\nThe creator of the calendar.", + "oneOf": [ + { + "description": "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + } + ], + "x-internal": false + }, + "updater": { + "description": "\n\nThe most recent updater of the calendar.", + "oneOf": [ + { + "description": "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + } + ], + "x-internal": false + }, + "user": { + "description": "The user associated with the calendar.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + } + }, + "type": "object" + }, + "calendarUrlRelationships": { + "type": "object" + }, + "call": { + "description": "A log of an inbound or outbound call made with a prospect.", + "properties": { + "answeredAt": { + "description": "\n\nThe date and time the call was answered.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "completedAt": { + "description": "\n\nThe date and time the call was completed.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "createdAt": { + "description": " \n\nThe date and time the call was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "dialedAt": { + "description": "\n\nThe date and time the call was dialed.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "direction": { + "description": "\n\nThe call direction from the user’s point of view; must be either \"inbound\" or \"outbound\".", + "type": "string", + "x-internal": false + }, + "externalVendor": { + "description": "\n\nThe voice provider of the call. Can be blank.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "from": { + "description": " \n\nThe phone number used to place the call.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "note": { + "description": "\n\nA custom note associated with this call.", + "maxLength": 65535, + "type": "string", + "x-internal": false + }, + "outcome": { + "description": " \n\nThe call’s outcome; must be either \"Answered\" or \"Not Answered\".", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "recordingUrl": { + "description": " \n\nThe URL of the call’s audio recording.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "returnedAt": { + "description": "\n\nThe date and time the call was returned.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "sequenceAction": { + "description": "\n\nThe action to take on the associated sequence; must be either \"Advance\", \"Finish\", \"Finish - No Reply\", or \"Finish - Replied\".", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "shouldRecordCall": { + "description": "\n\nIndicated whether or not the call is recorded.", + "type": "boolean", + "x-internal": false + }, + "state": { + "description": " \n\nThe call’s current state.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "stateChangedAt": { + "description": "\n\nThe date and time the call’s state last changed.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "tags": { + "description": "\n\nA list of tag values associated with the call (e.g. [\"Interested\", \"Meeting Booked\"]).", + "items": { + "type": "string" + }, + "type": "array", + "x-internal": false + }, + "to": { + "description": " \n\nThe phone number that the call was placed to.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "uid": { + "description": "\n\nThe Outreach voice trace id.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "updatedAt": { + "description": " \n\nThe date and time the call was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "userCallType": { + "description": " \n\nThe type of call placed within the Outreach client; must be either \"bridge\" or \"voip\".", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "vendorCallId": { + "description": "\n\nThe call-id as recoreded by the voice provider. Can be blank.", + "maxLength": 63, + "type": "string", + "x-internal": false + }, + "voicemailRecordingUrl": { + "description": "\n\nThe URL of the call’s voicemail audio recording.", + "maxLength": 1024, + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "callDisposition": { + "description": "A ready-made collection of call dispositions that help categorize your call logs.", + "properties": { + "createdAt": { + "description": " \n\nThe date and time the call disposition was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "name": { + "description": " \n\nThe disposition’s name (e.g. \"Meeting Scheduled\").", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "order": { + "description": " \n\nThe disposition’s display order within the collection.", + "type": "integer", + "x-internal": false + }, + "outcome": { + "description": " \n\nThe disposition’s call outcome; must be either \"Answered\" or \"Not Answered\".", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "updatedAt": { + "description": " \n\nThe date and time the call disposition was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "callDispositionRelationships": { + "properties": { + "calls": { + "description": "\n\nThe calls made with this disposition. Relationship calls cannot be used as a filter.", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["call"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "call" + }, + "type": "array", + "x-internal": false + }, + "creator": { + "description": "\n\nThe creator of the call disposition. Relationship creator cannot be used as a filter.", + "oneOf": [ + { + "description": "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + } + ], + "x-internal": false + } + }, + "type": "object" + }, + "callDispositionResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/callDisposition" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/callDispositionRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "callPurpose": { + "description": "A ready-made collection of call purposes that help categorize your call logs.", + "properties": { + "createdAt": { + "description": " \n\nThe date and time the call purpose was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "name": { + "description": " \n\nThe purpose’s name (e.g. \"Initial Contact\").", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "order": { + "description": " \n\nThe purpose’s display order within the collection.", + "type": "integer", + "x-internal": false + }, + "updatedAt": { + "description": " \n\nThe date and time the call purpose was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "callPurposeRelationships": { + "properties": { + "calls": { + "description": "\n\nThe calls made with this purpose. Relationship calls cannot be used as a filter.", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["call"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "call" + }, + "type": "array", + "x-internal": false + }, + "creator": { + "description": "\n\nThe creator of the call purpose. Relationship creator cannot be used as a filter.", + "oneOf": [ + { + "description": "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + } + ], + "x-internal": false + } + }, + "type": "object" + }, + "callPurposeResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/callPurpose" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/callPurposeRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "callRelationships": { + "properties": { + "callDisposition": { + "description": "The associated call disposition. You can use only the attribute id to filter calls by callDisposition (e.g. filter[callDisposition][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["callDisposition"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["callDisposition"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "callDisposition", + "x-internal": false + }, + "callPurpose": { + "description": "The associated call purpose. You can use only the attribute id to filter calls by callPurpose (e.g. filter[callPurpose][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["callPurpose"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["callPurpose"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "callPurpose", + "x-internal": false + }, + "opportunity": { + "description": "The associated opportunity. You can use only the attribute id to filter calls by opportunity (e.g. filter[opportunity][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["opportunity"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["opportunity"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "opportunity", + "x-internal": false + }, + "phoneNumber": { + "description": "The associated phone number of the prospect. You can use only the attribute id to filter calls by phoneNumber (e.g. filter[phoneNumber][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["phoneNumber"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["phoneNumber"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "phoneNumber", + "x-internal": false + }, + "prospect": { + "description": "The associated prospect. You can use only the attribute id to filter calls by prospect (e.g. filter[prospect][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["prospect"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["prospect"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "prospect", + "x-internal": false + }, + "sequence": { + "description": "The associated sequence. You can use only the attribute id to filter calls by sequence (e.g. filter[sequence][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["sequence"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["sequence"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "sequence", + "x-internal": false + }, + "sequenceState": { + "description": "The associated sequence state. You can use only the attribute id to filter calls by sequenceState (e.g. filter[sequenceState][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["sequenceState"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["sequenceState"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "sequenceState", + "x-internal": false + }, + "sequenceStep": { + "description": "The associated sequence step. You can use only the attribute id to filter calls by sequenceStep (e.g. filter[sequenceStep][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["sequenceStep"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["sequenceStep"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "sequenceStep", + "x-internal": false + }, + "task": { + "description": "The associated task. You can use only the attribute id to filter calls by task (e.g. filter[task][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["task"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["task"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "task", + "x-internal": false + }, + "user": { + "description": "The associated user. You can use only the attribute id to filter calls by user (e.g. filter[user][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + } + }, + "type": "object" + }, + "callResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/call" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/callRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "complianceRequest": { + "description": "A regulatory request to delete or export an individual's PII.", + "properties": { + "batchComplianceRequestUuid": { + "description": "\n\nThe UUID of the batch the compliance request belongs to.", + "type": "string", + "x-internal": false + }, + "createdAt": { + "description": "\n\nThe date and time the compliance request was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "objectType": { + "description": "\n\nThe type of record to process, can be 'Prospect' or 'Recipient' for e-mail addresses unassociated with a prospect.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "pii": { + "description": "\n\nA JSON object of personal information required for processing the compliance request.", + "type": "object", + "x-internal": false + }, + "requestObjectId": { + "description": "\n\nThe identifier for the record processed, for Prospects this is the Prospect ID, for Recipients this is an e-mail address.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "requestType": { + "description": "\n\nThe type of compliance request (only 'Delete' is supported at this time).", + "maxLength": 32, + "type": "string", + "x-internal": false + }, + "requesterId": { + "description": "\n\nThe ID of the Outreach user who submitted the compliance request.", + "type": "integer", + "x-internal": false + }, + "state": { + "description": " \n\nThe current state of the compliance request, can be 'pending', 'running', 'failed', or 'done'. The states on the higher level abstraction, the batch compliance request, do not map 1:1 to these states. The only states that the batch compliance request will report are either 'pending' or 'done'.", + "maxLength": 32, + "type": "string", + "x-internal": false + }, + "updatedAt": { + "description": "\n\nThe date and time at which the compliance request was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "uuid": { + "description": " \n\nThe UUID of the compliance request.", + "maxLength": 255, + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "complianceRequestRelationships": { + "properties": { + "requester": { + "description": "\n\nThe Outreach user who submitted the compliance request. Relationship requester cannot be used as a filter.", + "oneOf": [ + { + "description": "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + } + ], + "x-internal": false + } + }, + "type": "object" + }, + "complianceRequestResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/complianceRequest" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/complianceRequestRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "contentCategory": { + "description": "Content can be grouped into content categories to help discoverability.", + "properties": { + "allowSequences": { + "description": "\n\nCan this category be used to group sequences?", + "type": "boolean", + "x-internal": false + }, + "allowSnippets": { + "description": "\n\nCan this category be used to group snippets?", + "type": "boolean", + "x-internal": false + }, + "allowTemplates": { + "description": "\n\nCan this category be used to group templates?", + "type": "boolean", + "x-internal": false + }, + "color": { + "description": "\n\nColor of the content category to be used as a background", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "createdAt": { + "description": " \n\nThe date and time the content category was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "name": { + "description": " \n\nThe name of the content category.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "updatedAt": { + "description": " \n\nThe date and time the content category was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "contentCategoryMembership": { + "description": "A record that maps content (e.g. a sequence) to a content category.", + "properties": { + "createdAt": { + "description": " \n\nThe date and time the content category membership was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "updatedAt": { + "description": " \n\nThe date and time the content category membership was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "contentCategoryMembershipRelationships": { + "properties": { + "content": { + "description": "The record in the content category. Must be a sequence, snippet, or template. Relationship content cannot be used as a filter.", + "oneOf": [ + { + "description": "Leverage emailing within Sequences to engage each individual persona more effectively, and queue up the right actions at the right time.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["snippet", "template", "sequence"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["snippet", "template", "sequence"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "sequence" + }, + { + "description": "A piece of an email to be reused in multiple messages.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["snippet", "template", "sequence"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["snippet", "template", "sequence"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "snippet" + }, + { + "description": "A reusable template for building emails.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["snippet", "template", "sequence"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["snippet", "template", "sequence"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "template" + } + ], + "x-internal": false + }, + "contentCategory": { + "description": "The content category the record is part of. You can use only the attribute id to filter contentCategoryMemberships by contentCategory (e.g. filter[contentCategory][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["contentCategory"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["contentCategory"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "contentCategory", + "x-internal": false + }, + "creator": { + "description": "\n\nThe creator of the content category membership. Relationship creator cannot be used as a filter.", + "oneOf": [ + { + "description": "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + } + ], + "x-internal": false + } + }, + "type": "object" + }, + "contentCategoryMembershipResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/contentCategoryMembership" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/contentCategoryMembershipRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "contentCategoryOwnership": { + "description": "A record that maps content categories to owners. This allows categories to be linked to one or more teams.", + "properties": { + "createdAt": { + "description": " \n\nThe date and time the content category ownership was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "updatedAt": { + "description": " \n\nThe date and time the content category ownership was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "contentCategoryOwnershipRelationships": { + "properties": { + "contentCategory": { + "description": "The content category the owner is linked to. You can use only the attribute id to filter contentCategoryOwnerships by contentCategory (e.g. filter[contentCategory][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["contentCategory"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["contentCategory"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "contentCategory", + "x-internal": false + }, + "creator": { + "description": "\n\nThe creator of the content category ownership. Relationship creator cannot be used as a filter.", + "oneOf": [ + { + "description": "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + } + ], + "x-internal": false + }, + "owner": { + "description": "The record the content category is tied to. Must a team for now. Relationship owner cannot be used as a filter.", + "oneOf": [ + { + "description": "A descriptor of a group of users.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["team"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["team"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "team" + } + ], + "x-internal": false + } + }, + "type": "object" + }, + "contentCategoryOwnershipResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/contentCategoryOwnership" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/contentCategoryOwnershipRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "contentCategoryRelationships": { + "properties": { + "creator": { + "description": "\n\nThe creator of the content category. Relationship creator cannot be used as a filter.", + "oneOf": [ + { + "description": "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + } + ], + "x-internal": false + } + }, + "type": "object" + }, + "contentCategoryResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/contentCategory" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/contentCategoryRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "customDuty": { + "description": "A freeform user-specified role or job duty played by a user in their organization.", + "properties": { + "dutyType": { + "description": "\n\nThe polymorphic type of the duty (not the Ruby type, the duty type).", + "type": "string", + "x-internal": false + }, + "name": { + "description": "\n\nThe name of the role.", + "maxLength": 255, + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "customDutyRelationships": { + "type": "object" + }, + "customDutyResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/customDuty" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/customDutyRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "customValidationRelationships": { + "properties": { + "creator": { + "description": "\n\nThe creator of the custom validation.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + }, + "updater": { + "description": "\n\nThe most recent updater of the custom validation.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + } + }, + "type": "object" + }, + "duty": { + "description": "An Outreach-suggested role or job duty played by a user in their organization.", + "properties": { + "dutyType": { + "description": "\n\nThe polymorphic type of the duty (not the Ruby type, the duty type).", + "type": "string", + "x-internal": false + }, + "symbolicName": { + "description": "\n\nThe string constant used to refer to this duty which can be internationalized on the client.", + "maxLength": 255, + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "dutyRelationships": { + "type": "object" + }, + "dutyResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/duty" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/dutyRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "emailAddress": { + "description": "A prospect's email address", + "properties": { + "createdAt": { + "description": "\n\nThe date and time the email address was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "email": { + "description": " \n\nThe raw email address value", + "format": "email", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "emailType": { + "description": " \n\nType of email address (work or personal)", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "order": { + "description": " \n\nOrdered position in list of emails", + "type": "integer", + "x-internal": false + }, + "status": { + "description": " \n\nThe status of the email", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "statusChangedAt": { + "description": " \n\nTime the status was updated", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "unsubscribedAt": { + "description": " \n\nTime a mailing was unsubscribed using this address", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "updatedAt": { + "description": " \n\nThe date and time the email address was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "emailAddressRelationships": { + "properties": { + "prospect": { + "description": "The owning prospect You can use only the attribute id to filter emailAddresses by prospect (e.g. filter[prospect][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["prospect"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["prospect"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "prospect", + "x-internal": false + } + }, + "type": "object" + }, + "emailAddressResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/emailAddress" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/emailAddressRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "event": { + "description": "Application events, capturing details around the initiator, recipient, etc.", + "properties": { + "body": { + "description": "\n\nThe event body (for external events only)", + "type": "string", + "x-internal": false + }, + "createdAt": { + "description": " \n\nThe date and time the event was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "eventAt": { + "description": " \n\nThe date and time the event occurred.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "externalUrl": { + "description": "\n\nThe external URL associated with this event (for external events only)", + "type": "string", + "x-internal": false + }, + "name": { + "description": "\n\nThe name of the event that took place (e.g. \"mailbox_created\").", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "payload": { + "description": "\n\nThe transmitted data for the event (cannot be updated once an event has been created)", + "type": "object", + "x-internal": false + }, + "requestCity": { + "description": "\n\nThe city where the request that created the event was made.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "requestDevice": { + "description": "\n\nThe type of device on which the request that created the event was made.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "requestHost": { + "description": "\n\nName of the host from which the request was made.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "requestProxied": { + "description": "\n\nA boolean value whether the request was proxied. For example, when true the request city refers to the location of the email server and not the prospect.", + "type": "boolean", + "x-internal": false + }, + "requestRegion": { + "description": "\n\nName of the region from which the request was made.", + "maxLength": 255, + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "eventRelationships": { + "properties": { + "account": { + "description": "The account associated with this event. You can use only the attribute id to filter events by account (e.g. filter[account][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["account"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["account"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "account", + "x-internal": false + }, + "call": { + "description": "The call associated with this event. You can use only the attribute id to filter events by call (e.g. filter[call][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["call"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["call"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "call", + "x-internal": false + }, + "mailing": { + "description": "The mailing associated with this event. You can use only the attribute id to filter events by mailing (e.g. filter[mailing][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["mailing"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["mailing"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "mailing", + "x-internal": false + }, + "opportunity": { + "description": "The opportunity associated with this event. You can use only the attribute id to filter events by opportunity (e.g. filter[opportunity][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["opportunity"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["opportunity"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "opportunity", + "x-internal": false + }, + "prospect": { + "description": "The prospect associated with this event. You can use only the attribute id to filter events by prospect (e.g. filter[prospect][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["prospect"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["prospect"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "prospect", + "x-internal": false + }, + "task": { + "description": "The task associated with this event. You can use only the attribute id to filter events by task (e.g. filter[task][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["task"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["task"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "task", + "x-internal": false + }, + "user": { + "description": "The user associated with this event. You can use only the attribute id to filter events by user (e.g. filter[user][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + } + }, + "type": "object" + }, + "eventResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/event" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/eventRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "experimentRelationships": { + "properties": { + "creator": { + "description": "\n\nThe creator of the experiment.", + "oneOf": [ + { + "description": "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + } + ], + "x-internal": false + }, + "owner": { + "description": "The user who owns the experiment.", + "oneOf": [ + { + "description": "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + } + ], + "x-internal": false + }, + "sequenceA": { + "description": "The \"target\" sequence, Sequence A, of this experiment. When the experiment is enabled, this sequence will be probabilistically replaced with the \"alternate\" sequence, Sequence B, based on the percentage attribute.", + "oneOf": [ + { + "description": "Leverage emailing within Sequences to engage each individual persona more effectively, and queue up the right actions at the right time.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["sequence"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["sequence"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "sequence" + } + ], + "x-internal": false + }, + "sequenceB": { + "description": "The \"alternate\" sequence of this experiment.", + "oneOf": [ + { + "description": "Leverage emailing within Sequences to engage each individual persona more effectively, and queue up the right actions at the right time.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["sequence"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["sequence"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "sequence" + } + ], + "x-internal": false + } + }, + "type": "object" + }, + "exportRelationships": { + "properties": { + "creator": { + "description": "\n\n", + "oneOf": [ + { + "description": "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + } + ], + "x-internal": false + } + }, + "type": "object" + }, + "favorite": { + "description": "A record (Prospect, Account, Sequence, etc.) favorited by a particular user.", + "properties": { + "createdAt": { + "description": " \n\nThe date and time the favorite was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "targetType": { + "description": " \n\nThe type of record that was favorited.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "updatedAt": { + "description": " \n\nThe date and time the favorite was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "favoriteRelationships": { + "properties": { + "creator": { + "description": "\n\nThe user who created the favorite. Relationship creator cannot be used as a filter.", + "oneOf": [ + { + "description": "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + } + ], + "x-internal": false + }, + "user": { + "description": "The user who's favorite this is. You can use only the attribute id to filter favorites by user (e.g. filter[user][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + } + }, + "type": "object" + }, + "favoriteResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/favorite" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/favoriteRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "featureFlagParticipationRelationships": { + "type": "object" + }, + "featureFlagRelationships": { + "type": "object" + }, + "gmailMessageMetadatumRelationships": { + "properties": { + "mailings": { + "description": "", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["mailing"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["mailing"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "mailing" + }, + "type": "array", + "x-internal": false + } + }, + "type": "object" + }, + "importRelationships": { + "properties": { + "creator": { + "description": "\n\n", + "oneOf": [ + { + "description": "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + } + ], + "x-internal": false + } + }, + "type": "object" + }, + "inboxSettingRelationships": { + "properties": { + "user": { + "description": "The associated user to whom this settings belong.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + } + }, + "type": "object" + }, + "jobRoleRelationships": { + "type": "object" + }, + "mailAlias": { + "description": "Alternative email name for a mailbox.", + "properties": { + "canSend": { + "description": "\n\nCan this alias send email.", + "type": "boolean", + "x-internal": false + }, + "createdAt": { + "description": " \n\nThe date the alias was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "email": { + "description": "\n\nThe email alias.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "emailHash": { + "description": "\n\nHashed email address of the alias.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "updatedAt": { + "description": " \n\nThe date the alias was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "mailAliasRelationships": { + "properties": { + "mailbox": { + "description": "The parent mailbox for this alias. You can use only the attribute id to filter mailAliases by mailbox (e.g. filter[mailbox][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["mailbox"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["mailbox"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "mailbox", + "x-internal": false + } + }, + "type": "object" + }, + "mailAliasResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/mailAlias" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/mailAliasRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "mailbox": { + "description": "A representation of an email mailbox, used within the application for sending and syncing emails.", + "properties": { + "authId": { + "description": "\n\nThe auth id associated with the mailbox.", + "type": "integer", + "x-internal": false + }, + "createdAt": { + "description": " \n\nThe date and time the mailbox was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "editable": { + "description": "\n\nA boolean value to indicate if the user has the permission to edit mailbox fields.", + "type": "boolean", + "x-internal": false + }, + "email": { + "description": " \n\nThe email address of the mailbox.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "emailHash": { + "description": "\n\nHashed email address of the mailbox.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "emailProvider": { + "description": "\n\nThe mail service provider. While not a required field, it is strongly recommended to use one of 'exchange_online', 'exchange_server', 'gmail', 'gmail_api', 'google_oauth2', 'intermedia', 'office365_oauth2', 'microsoft_hma_oauth2', 'office_365', 'rackspace'. If no value is provided, send and sync will make assumptions based on the ews, imap, and smtp values provided.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "emailSignature": { + "description": "\n\nThe default signature, in HTML, to be appended to sent email messages.", + "maxLength": 65535, + "type": "string", + "x-internal": false + }, + "ewsEndpoint": { + "description": "\n\nThe url of the Exchange Web Service.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "ewsSslVerifyMode": { + "description": "\n\nThe SSL verify mode, represented as an integer, the EWS connection will used. (verify none=0, verify peer=1, verify client once=4, verify fail if no peer cert=2)", + "type": "integer", + "x-internal": false + }, + "exchangeVersion": { + "description": "\n\nThe version of Exchange. Must be one of 'Exchange2007', 'Exchange2007_SP1', 'Exchange2010', 'Exchange2010_SP1', 'Exchange2010_SP2', 'Exchange2013', 'Exchange2013_SP1'.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "imapHost": { + "description": "\n\nThe address of the IMAP host, used for syncing (e.g. 'imap.gmail.com').", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "imapPort": { + "description": "\n\nThe port number the IMAP server is using (e.g. '993').", + "type": "integer", + "x-internal": false + }, + "imapSsl": { + "description": "\n\nA boolean value whether the IMAP connection will use SSL.", + "type": "boolean", + "x-internal": false + }, + "maxEmailsPerDay": { + "description": "\n\nThe maximum number of in/out emails per day.", + "type": "integer", + "x-internal": false + }, + "maxMailingsPerDay": { + "description": "\n\nThe maximum number of emails the application can send in a day from this mailbox. Recommended value is 500.", + "type": "integer", + "x-internal": false + }, + "maxMailingsPerWeek": { + "description": "\n\nThe maximum number of emails the application can send within a week from this mailbox. Recommended value is 5000.", + "type": "integer", + "x-internal": false + }, + "optOutMessage": { + "description": "\n\nThe message displayed on the unsubscribe confirmation page, seen after clicking the unsubscribe link in the email (e.g. \"To unsubscribe, click the button below.\").", + "maxLength": 512, + "type": "string", + "x-internal": false + }, + "optOutSignature": { + "description": "\n\nThe message below the signature, in HTML, when the sequence requires an unsubscribe link (e.g. \"If you'd like me to stop sending you emails, please `click here`\").", + "maxLength": 512, + "type": "string", + "x-internal": false + }, + "password": { + "description": "\n\nThe password of the mailbox. This attribute can be used to set the password, but is not available for read.", + "maxLength": 65535, + "type": "string", + "x-internal": false + }, + "prospectEmailExclusions": { + "description": "\n\nA list (provided as a string, newline-delimited) of email address patterns to be excluded from syncing (e.g. \"`*@outreach.io\ndaniel@example.com`\").", + "maxLength": 65535, + "type": "string", + "x-internal": false + }, + "providerId": { + "description": "\n\nThe id of the provider associated with this calendar.", + "type": "integer", + "x-internal": false + }, + "providerType": { + "description": "\n\nEmail provider type.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "sendDisabled": { + "description": "\n\nA boolean value whether sending is disabled from this mailbox.", + "type": "boolean", + "x-internal": false + }, + "sendErroredAt": { + "description": "\n\nThe date and time the most recent send error occurred.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "sendMaxRetries": { + "description": "\n\nThe maximum number of times to auto-retry a delivery when it fails.", + "type": "integer", + "x-internal": false + }, + "sendMethod": { + "description": "\n\nThe method used for sending email. Must be either 'ews', 'sendgrid', or 'smtp'.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "sendPeriod": { + "description": "\n\nThe amount of time in seconds that the number of sendThreshold emails can be sent. Recommended value is two deliveries per minute (sendPeriod is 60).", + "type": "integer", + "x-internal": false + }, + "sendRequiresSync": { + "description": "\n\nA boolean value whether the mailbox is required to be recently synced before sending.", + "type": "boolean", + "x-internal": false + }, + "sendSuccessAt": { + "description": "\n\nThe date and time the most recent successful email send occurred.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "sendThreshold": { + "description": "\n\nThe maximum number of email sends per the sendPeriod amount of time. Recommended value is two deliveries per minute (sendThreshold is 2).", + "type": "integer", + "x-internal": false + }, + "sendgridApiKey": { + "description": "\n\nThe api key of the SendGrid account used for sending.", + "maxLength": 65535, + "type": "string", + "x-internal": false + }, + "sendgridWebhookUrl": { + "description": "\n\nThe endpoint required within the SendGrid account settings to support bounce and spam-report tracking.", + "type": "string", + "x-internal": false + }, + "smtpHost": { + "description": "\n\nThe address of the SMTP host, used for sending (e.g. 'smtp.gmail.com').", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "smtpPassword": { + "description": "\n\nThe password for the SMTP account. This value should be left blank unless a separate SMTP account is being used for sending (i.e. not the mailbox's main username/password).", + "maxLength": 65535, + "type": "string", + "x-internal": false + }, + "smtpPort": { + "description": "\n\nThe port number the SMTP server is using (e.g. '587').", + "type": "integer", + "x-internal": false + }, + "smtpSsl": { + "description": "\n\nA boolean value whether the SMTP connection will use SSL.", + "type": "boolean", + "x-internal": false + }, + "smtpUsername": { + "description": "\n\nThe username for the SMTP account. This value should be left blank unless a separate SMTP account is being used for sending (i.e. not the mailbox's main username/password).", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "syncActiveFrequency": { + "description": "\n\nThe amount of time in seconds between syncing when the user is actively using the application.", + "type": "integer", + "x-internal": false + }, + "syncDisabled": { + "description": "\n\nA boolean value whether syncing is disabled from this mailbox.", + "type": "boolean", + "x-internal": false + }, + "syncErroredAt": { + "description": "\n\nThe date and time the most recent sync error occurred.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "syncFinishedAt": { + "description": "\n\nThe date and time the most recent sync finished.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "syncMethod": { + "description": "\n\nThe method used for syncing email. Must be either 'ews', 'gmail_api', or 'imap'.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "syncOutreachFolder": { + "description": "\n\nA boolean value whether the folder for syncing is named 'Outreach' instead of 'Inbox'. Only available for Exchange version 'Exchange2007_SP1'.", + "type": "boolean", + "x-internal": false + }, + "syncPassiveFrequency": { + "description": "\n\nThe amount of time in seconds between syncing when the user is not actively using the application.", + "type": "integer", + "x-internal": false + }, + "syncSuccessAt": { + "description": "\n\nThe date and time the most recent successful email sync occurred.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "updatedAt": { + "description": " \n\nThe date and time the mailbox was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "userId": { + "description": " \n\nThe id of the user associated with this mailbox.", + "type": "integer", + "x-internal": false + }, + "username": { + "description": "\n\nThe username of the email account. While not a required field, a username is necessary for most email providers outside of OAuth. This value is normally the same as the email address.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "validateSend": { + "description": "\n\nIf this is set to true then the record will only save successfully if the mailbox is properly configured to send emails.", + "type": "boolean", + "x-internal": false + }, + "validateSync": { + "description": "\n\nIf this is set to true then the record will only save successfully if the mailbox is properly configured to sync emails.", + "type": "boolean", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "mailboxContactRelationships": { + "properties": { + "mailbox": { + "description": "The mailbox associated with this contact.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["mailbox"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["mailbox"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "mailbox", + "x-internal": false + } + }, + "type": "object" + }, + "mailboxRelationships": { + "properties": { + "creator": { + "description": "\n\nThe creator of the mailbox. Relationship creator cannot be used as a filter.", + "oneOf": [ + { + "description": "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + } + ], + "x-internal": false + }, + "mailAliases": { + "description": "\n\nThe email aliases associated with this mailbox Relationship mailAliases cannot be used as a filter.", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["mailAlias"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "mailAlias" + }, + "type": "array", + "x-internal": false + }, + "mailings": { + "description": "\n\nThe mailings sent via this mailbox. Relationship mailings cannot be used as a filter.", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["mailing"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "mailing" + }, + "type": "array", + "x-internal": false + }, + "updater": { + "description": "\n\nThe most recent updater of the mailbox. Relationship updater cannot be used as a filter.", + "oneOf": [ + { + "description": "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + } + ], + "x-internal": false + }, + "user": { + "description": "The user owning this mailbox. You can use only the attribute id to filter mailboxes by user (e.g. filter[user][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + } + }, + "type": "object" + }, + "mailboxResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/mailbox" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/mailboxRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "mailing": { + "description": "A representation of a platform-related email.", + "properties": { + "bodyHtml": { + "description": "\n\nThe mailing's custom email body, represented in HTML. If provided this field will override any associated template.", + "type": "string", + "x-internal": false + }, + "bodyText": { + "description": "\n\nThe plain-text representation of the 'bodyHTML' field.", + "type": "string", + "x-internal": false + }, + "bouncedAt": { + "description": " \n\nThe date and time the email was bounced.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "clickCount": { + "description": "\n\nThe total number of times links within the email were clicked (if the message is tracking links).", + "type": "integer", + "x-internal": false + }, + "clickedAt": { + "description": " \n\nThe most recent date and time a link was clicked (if the message is tracking links).", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "createdAt": { + "description": " \n\nThe date and time the mailing was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "deliveredAt": { + "description": " \n\nThe date and time the email was delivered.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "errorBacktrace": { + "description": "\n\nTechnical details explaining the mailing's error.", + "maxLength": 65535, + "type": "string", + "x-internal": false + }, + "errorReason": { + "description": "\n\nA summary explaining the mailing's error.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "followUpTaskScheduledAt": { + "description": "\n\nThe date and time of when a follow-up task should be due for this mailing.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "followUpTaskType": { + "description": "\n\nThe type of follow-up task to create. Possible values are 'follow_up' or 'no_reply'.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "mailboxAddress": { + "description": "\n\nThe email address the mailing was sent from.", + "type": "string", + "x-internal": false + }, + "mailingType": { + "description": " \n\nA description of the type of the emailing (e.g. \"sequence\", \"single\", \"campaign\").", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "markedAsSpamAt": { + "description": "\n\nThe date and time the email was marked as spam.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "messageId": { + "description": " \n\nThe MIME content Message-ID of the delivered message.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "notifyThreadCondition": { + "description": "\n\nThe condition of when to bump this mailing to the top of the user's inbox. Possible values are 'always' or 'no_reply'.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "notifyThreadScheduledAt": { + "description": " \n\nThe date and time of when this mailing should be bumped to the top of the user's inbox.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "notifyThreadStatus": { + "description": " \n\nThe status of the bump. Possible values are 'pending', 'sent' or 'skipped'.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "openCount": { + "description": "\n\nThe total number of times the email was opened (if the message is tracking opens).", + "type": "integer", + "x-internal": false + }, + "openedAt": { + "description": " \n\nThe most recent date and time the email was opened (if the message is tracking opens).", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "overrideSafetySettings": { + "description": "\n\nA boolean value whether users can override submission if template variables have not all been replaced.", + "type": "boolean", + "x-internal": false + }, + "references": { + "description": "\n\nA list of references for the mailing taken from the email header.", + "items": { + "type": "string" + }, + "type": "array", + "x-internal": false + }, + "repliedAt": { + "description": " \n\nThe date and time the email was replied to.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "retryAt": { + "description": " \n\nThe date and time the email will rety to send.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "retryCount": { + "description": "\n\nThe number of times the email has been retried to send.", + "type": "integer", + "x-internal": false + }, + "retryInterval": { + "description": "\n\nThe amount of time in seconds between retry attempts.", + "type": "integer", + "x-internal": false + }, + "scheduledAt": { + "description": " \n\nThe date and time the email is scheduled to send.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "state": { + "description": " \n\nThe current state of the mailing. Can be 'bounced', 'delivered', 'delivering', 'drafted', 'failed', 'opened', 'placeholder', 'queued', 'replied', or 'scheduled'.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "stateChangedAt": { + "description": " \n\nThe date and time the state last changed.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "subject": { + "description": "\n\nThe subject line of the email.", + "type": "string", + "x-internal": false + }, + "trackLinks": { + "description": "\n\nA boolean value whether the mailing is tracking link clicks.", + "type": "boolean", + "x-internal": false + }, + "trackOpens": { + "description": "\n\nA boolean value whether the mailing is tracking email opens.", + "type": "boolean", + "x-internal": false + }, + "unsubscribedAt": { + "description": " \n\nThe date and time the recepient unsubscribed from the mailing's sequence.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "updatedAt": { + "description": " \n\nThe date and time the mailing was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "mailingRelationships": { + "properties": { + "followUpSequence": { + "description": "\n\nThe followup sequence associated with this mailing. You can use only the attribute id to filter mailings by followUpSequence (e.g. filter[followUpSequence][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["sequence"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["sequence"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "sequence", + "x-internal": false + }, + "mailbox": { + "description": "The mailbox associated with this mailing. You can use only the attribute id to filter mailings by mailbox (e.g. filter[mailbox][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["mailbox"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["mailbox"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "mailbox", + "x-internal": false + }, + "opportunity": { + "description": "\n\nThe associated opportunity. You can use only the attribute id to filter mailings by opportunity (e.g. filter[opportunity][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["opportunity"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["opportunity"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "opportunity", + "x-internal": false + }, + "prospect": { + "description": "The prospect associated with this mailing. You can use only the attribute id to filter mailings by prospect (e.g. filter[prospect][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["prospect"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["prospect"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "prospect", + "x-internal": false + }, + "recipients": { + "description": "Recipients of the mailing. Relationship recipients cannot be used as a filter.", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["recipient"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["recipient"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "recipient" + }, + "type": "array", + "x-internal": false + }, + "sequence": { + "description": "\n\nThe associated sequence. You can use only the attribute id to filter mailings by sequence (e.g. filter[sequence][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["sequence"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["sequence"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "sequence", + "x-internal": false + }, + "sequenceState": { + "description": "\n\nThe associated sequence state. You can use only the attribute id to filter mailings by sequenceState (e.g. filter[sequenceState][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["sequenceState"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["sequenceState"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "sequenceState", + "x-internal": false + }, + "sequenceStep": { + "description": "\n\nThe associated sequence step. You can use only the attribute id to filter mailings by sequenceStep (e.g. filter[sequenceStep][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["sequenceStep"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["sequenceStep"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "sequenceStep", + "x-internal": false + }, + "task": { + "description": "\n\nThe task this mailing will or did complete upon sending. You can use only the attribute id to filter mailings by task (e.g. filter[task][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["task"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["task"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "task", + "x-internal": false + }, + "tasks": { + "description": "\n\nAll tasks associated with this mailing, such as a follow-up task. Relationship tasks cannot be used as a filter.", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["task"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["task"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "task" + }, + "type": "array", + "x-internal": false + }, + "template": { + "description": "The template associated with this mailing. You can use only the attribute id to filter mailings by template (e.g. filter[template][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["template"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["template"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "template", + "x-internal": false + }, + "user": { + "description": "\n\nThe user associated with this mailing. You can use only the attribute id to filter mailings by user (e.g. filter[user][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + } + }, + "type": "object" + }, + "mailingResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/mailing" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/mailingRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "meetingFieldRelationships": { + "type": "object" + }, + "meetingRelationships": { + "type": "object" + }, + "meetingTypeRelationships": { + "properties": { + "creator": { + "description": "\n\nThe creator of the meeting type.", + "oneOf": [ + { + "description": "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + } + ], + "x-internal": false + }, + "owner": { + "description": "The user who owns this meeting type.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + }, + "team": { + "description": "", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["team"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["team"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "team", + "x-internal": false + } + }, + "type": "object" + }, + "modelSchemaVersionRelationships": { + "type": "object" + }, + "noteRelationships": { + "type": "object" + }, + "opportunity": { + "description": "An opportunity for a sale or pending deal. Requires the Opportunities SKU to be enabled in order to have access. Please contact support for more assistance.", + "properties": { + "amount": { + "description": "\n\nThe amount the opportunity is worth.", + "type": "integer", + "x-internal": false + }, + "closeDate": { + "description": "\n\nThe date the opportunity is expected to close.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "createdAt": { + "description": " \n\nThe date the opportunity was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "currencyType": { + "description": "\n\nThe ISO code of the currency this opportunity is in.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "custom1": { + "description": "\n\nThe value of the opportunity's first custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom2": { + "description": "\n\nThe value of the opportunity's second custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom3": { + "description": "\n\nThe value of the opportunity's third custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom4": { + "description": "\n\nThe value of the opportunity's fourth custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom5": { + "description": "\n\nThe value of the opportunity's fifth custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom6": { + "description": "\n\nThe value of the opportunity's sixth custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom7": { + "description": "\n\nThe value of the opportunity's seventh custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom8": { + "description": "\n\nThe value of the opportunity's eighth custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom9": { + "description": "\n\nThe value of the opportunity's ninth custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom10": { + "description": "\n\nThe value of the opportunity's 10th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom11": { + "description": "\n\nThe value of the opportunity's 11th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom12": { + "description": "\n\nThe value of the opportunity's 12th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom13": { + "description": "\n\nThe value of the opportunity's 13th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom14": { + "description": "\n\nThe value of the opportunity's 14th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom15": { + "description": "\n\nThe value of the opportunity's 15th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom16": { + "description": "\n\nThe value of the opportunity's 16th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom17": { + "description": "\n\nThe value of the opportunity's 17th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom18": { + "description": "\n\nThe value of the opportunity's 18th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom19": { + "description": "\n\nThe value of the opportunity's 19th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom20": { + "description": "\n\nThe value of the opportunity's 20th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom21": { + "description": "\n\nThe value of the opportunity's 21st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom22": { + "description": "\n\nThe value of the opportunity's 22nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom23": { + "description": "\n\nThe value of the opportunity's 23rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom24": { + "description": "\n\nThe value of the opportunity's 24th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom25": { + "description": "\n\nThe value of the opportunity's 25th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom26": { + "description": "\n\nThe value of the opportunity's 26th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom27": { + "description": "\n\nThe value of the opportunity's 27th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom28": { + "description": "\n\nThe value of the opportunity's 28th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom29": { + "description": "\n\nThe value of the opportunity's 29th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom30": { + "description": "\n\nThe value of the opportunity's 30th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom31": { + "description": "\n\nThe value of the opportunity's 31st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom32": { + "description": "\n\nThe value of the opportunity's 32nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom33": { + "description": "\n\nThe value of the opportunity's 33rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom34": { + "description": "\n\nThe value of the opportunity's 34th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom35": { + "description": "\n\nThe value of the opportunity's 35th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom36": { + "description": "\n\nThe value of the opportunity's 36th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom37": { + "description": "\n\nThe value of the opportunity's 37th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom38": { + "description": "\n\nThe value of the opportunity's 38th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom39": { + "description": "\n\nThe value of the opportunity's 39th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom40": { + "description": "\n\nThe value of the opportunity's 40th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom41": { + "description": "\n\nThe value of the opportunity's 41st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom42": { + "description": "\n\nThe value of the opportunity's 42nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom43": { + "description": "\n\nThe value of the opportunity's 43rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom44": { + "description": "\n\nThe value of the opportunity's 44th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom45": { + "description": "\n\nThe value of the opportunity's 45th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom46": { + "description": "\n\nThe value of the opportunity's 46th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom47": { + "description": "\n\nThe value of the opportunity's 47th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom48": { + "description": "\n\nThe value of the opportunity's 48th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom49": { + "description": "\n\nThe value of the opportunity's 49th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom50": { + "description": "\n\nThe value of the opportunity's 50th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom51": { + "description": "\n\nThe value of the opportunity's 51st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom52": { + "description": "\n\nThe value of the opportunity's 52nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom53": { + "description": "\n\nThe value of the opportunity's 53rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom54": { + "description": "\n\nThe value of the opportunity's 54th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom55": { + "description": "\n\nThe value of the opportunity's 55th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom56": { + "description": "\n\nThe value of the opportunity's 56th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom57": { + "description": "\n\nThe value of the opportunity's 57th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom58": { + "description": "\n\nThe value of the opportunity's 58th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom59": { + "description": "\n\nThe value of the opportunity's 59th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom60": { + "description": "\n\nThe value of the opportunity's 60th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom61": { + "description": "\n\nThe value of the opportunity's 61st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom62": { + "description": "\n\nThe value of the opportunity's 62nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom63": { + "description": "\n\nThe value of the opportunity's 63rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom64": { + "description": "\n\nThe value of the opportunity's 64th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom65": { + "description": "\n\nThe value of the opportunity's 65th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom66": { + "description": "\n\nThe value of the opportunity's 66th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom67": { + "description": "\n\nThe value of the opportunity's 67th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom68": { + "description": "\n\nThe value of the opportunity's 68th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom69": { + "description": "\n\nThe value of the opportunity's 69th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom70": { + "description": "\n\nThe value of the opportunity's 70th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom71": { + "description": "\n\nThe value of the opportunity's 71st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom72": { + "description": "\n\nThe value of the opportunity's 72nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom73": { + "description": "\n\nThe value of the opportunity's 73rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom74": { + "description": "\n\nThe value of the opportunity's 74th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom75": { + "description": "\n\nThe value of the opportunity's 75th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom76": { + "description": "\n\nThe value of the opportunity's 76th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom77": { + "description": "\n\nThe value of the opportunity's 77th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom78": { + "description": "\n\nThe value of the opportunity's 78th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom79": { + "description": "\n\nThe value of the opportunity's 79th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom80": { + "description": "\n\nThe value of the opportunity's 80th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom81": { + "description": "\n\nThe value of the opportunity's 81st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom82": { + "description": "\n\nThe value of the opportunity's 82nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom83": { + "description": "\n\nThe value of the opportunity's 83rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom84": { + "description": "\n\nThe value of the opportunity's 84th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom85": { + "description": "\n\nThe value of the opportunity's 85th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom86": { + "description": "\n\nThe value of the opportunity's 86th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom87": { + "description": "\n\nThe value of the opportunity's 87th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom88": { + "description": "\n\nThe value of the opportunity's 88th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom89": { + "description": "\n\nThe value of the opportunity's 89th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom90": { + "description": "\n\nThe value of the opportunity's 90th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom91": { + "description": "\n\nThe value of the opportunity's 91st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom92": { + "description": "\n\nThe value of the opportunity's 92nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom93": { + "description": "\n\nThe value of the opportunity's 93rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom94": { + "description": "\n\nThe value of the opportunity's 94th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom95": { + "description": "\n\nThe value of the opportunity's 95th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom96": { + "description": "\n\nThe value of the opportunity's 96th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom97": { + "description": "\n\nThe value of the opportunity's 97th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom98": { + "description": "\n\nThe value of the opportunity's 98th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom99": { + "description": "\n\nThe value of the opportunity's 99th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom100": { + "description": "\n\nThe value of the opportunity's 100th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom101": { + "description": "\n\nThe value of the opportunity’s 101st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom102": { + "description": "\n\nThe value of the opportunity’s 102nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom103": { + "description": "\n\nThe value of the opportunity’s 103rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom104": { + "description": "\n\nThe value of the opportunity’s 104th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom105": { + "description": "\n\nThe value of the opportunity’s 105th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom106": { + "description": "\n\nThe value of the opportunity’s 106th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom107": { + "description": "\n\nThe value of the opportunity’s 107th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom108": { + "description": "\n\nThe value of the opportunity’s 108th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom109": { + "description": "\n\nThe value of the opportunity’s 109th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom110": { + "description": "\n\nThe value of the opportunity’s 110th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom111": { + "description": "\n\nThe value of the opportunity’s 111th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom112": { + "description": "\n\nThe value of the opportunity’s 112th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom113": { + "description": "\n\nThe value of the opportunity’s 113th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom114": { + "description": "\n\nThe value of the opportunity’s 114th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom115": { + "description": "\n\nThe value of the opportunity’s 115th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom116": { + "description": "\n\nThe value of the opportunity’s 116th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom117": { + "description": "\n\nThe value of the opportunity’s 117th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom118": { + "description": "\n\nThe value of the opportunity’s 118th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom119": { + "description": "\n\nThe value of the opportunity’s 119th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom120": { + "description": "\n\nThe value of the opportunity’s 120th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom121": { + "description": "\n\nThe value of the opportunity’s 121st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom122": { + "description": "\n\nThe value of the opportunity’s 122nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom123": { + "description": "\n\nThe value of the opportunity’s 123rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom124": { + "description": "\n\nThe value of the opportunity’s 124th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom125": { + "description": "\n\nThe value of the opportunity’s 125th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom126": { + "description": "\n\nThe value of the opportunity’s 126th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom127": { + "description": "\n\nThe value of the opportunity’s 127th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom128": { + "description": "\n\nThe value of the opportunity’s 128th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom129": { + "description": "\n\nThe value of the opportunity’s 129th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom130": { + "description": "\n\nThe value of the opportunity’s 130th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom131": { + "description": "\n\nThe value of the opportunity’s 131st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom132": { + "description": "\n\nThe value of the opportunity’s 132nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom133": { + "description": "\n\nThe value of the opportunity’s 133rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom134": { + "description": "\n\nThe value of the opportunity’s 134th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom135": { + "description": "\n\nThe value of the opportunity’s 135th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom136": { + "description": "\n\nThe value of the opportunity’s 136th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom137": { + "description": "\n\nThe value of the opportunity’s 137th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom138": { + "description": "\n\nThe value of the opportunity’s 138th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom139": { + "description": "\n\nThe value of the opportunity’s 139th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom140": { + "description": "\n\nThe value of the opportunity’s 140th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom141": { + "description": "\n\nThe value of the opportunity’s 141st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom142": { + "description": "\n\nThe value of the opportunity’s 142nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom143": { + "description": "\n\nThe value of the opportunity’s 143rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom144": { + "description": "\n\nThe value of the opportunity’s 144th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom145": { + "description": "\n\nThe value of the opportunity’s 145th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom146": { + "description": "\n\nThe value of the opportunity’s 146th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom147": { + "description": "\n\nThe value of the opportunity’s 147th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom148": { + "description": "\n\nThe value of the opportunity’s 148th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom149": { + "description": "\n\nThe value of the opportunity’s 149th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom150": { + "description": "\n\nThe value of the opportunity’s 150th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "description": { + "description": "\n\nA description of the opportunity.", + "maxLength": 65535, + "type": "string", + "x-internal": false + }, + "externalCreatedAt": { + "description": "\n\nThe date the opportunity was created in the external system.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "mapLink": { + "description": "\n\nA link to the SamePlan MAP (Mutual Action Plan) associated with this opportunity.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "mapNextSteps": { + "description": "\n\nThe next event in the timeline that has yet to be completed for the SamePlan MAP (Mutual Action Plan).", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "mapStatus": { + "description": " \n\nThe status of the SamePlan MAP (Mutual Action Plan) based on how well both parties are trending towards the plan.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "name": { + "description": " \n\nThe name of the opportunity.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "nextStep": { + "description": "\n\nThe next step to take for the opportunity.", + "maxLength": 65535, + "type": "string", + "x-internal": false + }, + "opportunityType": { + "description": "\n\nThe type of opportunity.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "probability": { + "description": " \n\nThe chances of the opportunity succeeding, represented as a percentage.", + "type": "integer", + "x-internal": false + }, + "prospectingRepId": { + "description": "\n\nThe ID of the sales rep that prospects the opportunity.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "sharingTeamId": { + "description": "\n\nThe ID of the sharing team associated with this object. Access is currently in beta.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "tags": { + "description": "\n\nTags associated with the opportunity.", + "items": { + "type": "string" + }, + "type": "array", + "x-internal": false + }, + "touchedAt": { + "description": " \n\nThe last time an event happened for an opportunity.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "updatedAt": { + "description": " \n\nThe date the opportunity was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "opportunityHealthFactorRelationships": { + "properties": { + "opportunity": { + "description": "The opportunity the health factor apply to.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["opportunity"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["opportunity"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "opportunity", + "x-internal": false + } + }, + "type": "object" + }, + "opportunityProspectRole": { + "description": "A prospect's role and association with an opportunity", + "properties": { + "createdAt": { + "description": " \n\nThe date and time the role was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "primary": { + "description": "\n\nA boolean value indicating if this prospect is the primary contact within an opportunity.", + "type": "boolean", + "x-internal": false + }, + "role": { + "description": " \n\nA string value representing the role.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "updatedAt": { + "description": " \n\nThe date and time the role was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "opportunityProspectRoleRelationships": { + "properties": { + "opportunity": { + "description": "The opportunity associated with the role. You can use only the attribute id to filter opportunityProspectRoles by opportunity (e.g. filter[opportunity][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["opportunity"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["opportunity"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "opportunity", + "x-internal": false + }, + "prospect": { + "description": "The prospect associated with the role. You can use only the attribute id to filter opportunityProspectRoles by prospect (e.g. filter[prospect][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["prospect"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["prospect"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "prospect", + "x-internal": false + } + }, + "type": "object" + }, + "opportunityProspectRoleResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/opportunityProspectRole" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/opportunityProspectRoleRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "opportunityRelationships": { + "properties": { + "account": { + "description": "The account the opportunity is for. You can use attributes id and name to filter opportunities by account (e.g. filter[account][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["account"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["account"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "account", + "x-internal": false + }, + "creator": { + "description": "\n\nThe creator of the opportunity. Relationship creator cannot be used as a filter.", + "oneOf": [ + { + "description": "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + } + ], + "x-internal": false + }, + "opportunityStage": { + "description": "The current stage of the opportunity. You can use only the attribute id to filter opportunities by stage (e.g. filter[stage][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["opportunityStage"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["opportunityStage"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "opportunityStage", + "x-internal": false + }, + "owner": { + "description": "The user who owns the opportunity. You can use only the attribute id to filter opportunities by owner (e.g. filter[owner][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + }, + "prospects": { + "description": "\n\nThe prospects associated with this opportunity. You can use only the attribute id to filter opportunities by prospects (e.g. filter[prospects][id]=X).", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["prospect"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "prospect" + }, + "type": "array", + "x-internal": false + }, + "stage": { + "description": "\n\nThe current stage of the opportunity. You can use only the attribute id to filter opportunities by stage (e.g. filter[stage][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["opportunityStage"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["opportunityStage"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "opportunityStage", + "x-internal": false + }, + "updater": { + "description": "\n\nThe updater of the opportunity. Relationship updater cannot be used as a filter.", + "oneOf": [ + { + "description": "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + } + ], + "x-internal": false + } + }, + "type": "object" + }, + "opportunityResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/opportunity" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/opportunityRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "opportunityStage": { + "description": "The stage an opportunity is in. Requires the Opportunities SKU to be enabled in order to have access. Please contact support for more assistance.", + "properties": { + "color": { + "description": "\n\nThe color used to label and highlight the opportunity stage.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "createdAt": { + "description": " \n\nThe date and time the opportunity stage was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "isClosed": { + "description": " \n\nEither true or flase, whether or not the opportunity stage represents an open or closed state of an opportunity.", + "type": "boolean", + "x-internal": false + }, + "name": { + "description": " \n\nThe name of the opportunity stage.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "order": { + "description": " \n\nThe order of the opportunity stage.", + "type": "integer", + "x-internal": false + }, + "updatedAt": { + "description": " \n\nThe date and time the opportunity stage was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "opportunityStageRelationships": { + "properties": { + "creator": { + "description": "\n\nThe creator of the opportunity. Relationship creator cannot be used as a filter.", + "oneOf": [ + { + "description": "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + } + ], + "x-internal": false + }, + "opportunities": { + "description": "\n\nThe opportunities currently associated with the opportunity stage. Relationship opportunities cannot be used as a filter.", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["opportunity"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "opportunity" + }, + "type": "array", + "x-internal": false + } + }, + "type": "object" + }, + "opportunityStageResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/opportunityStage" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/opportunityStageRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "orgSettingRelationships": { + "type": "object" + }, + "outboundVoicemailRelationships": { + "properties": { + "user": { + "description": "", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + } + }, + "type": "object" + }, + "outlookAddInEwsItemRelationships": { + "properties": { + "mailbox": { + "description": "The mailbox this originated from", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["mailbox"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["mailbox"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "mailbox", + "x-internal": false + } + }, + "type": "object" + }, + "permissionGrantRelationships": { + "type": "object" + }, + "persona": { + "description": "A descriptor of a person, used for categorizing Prospects.", + "properties": { + "createdAt": { + "description": " \n\nThe date and time the persona was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "description": { + "description": "\n\nA description of the persona.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "name": { + "description": " \n\nThe name of the persona (e.g. \"Sales Rep\").", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "updatedAt": { + "description": " \n\nThe date and time the persona was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "personaRelationships": { + "properties": { + "prospects": { + "description": "\n\nThe prospects with this persona. Relationship prospects cannot be used as a filter.", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["prospect"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "prospect" + }, + "type": "array", + "x-internal": false + } + }, + "type": "object" + }, + "personaResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/persona" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/personaRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "phoneIdentityRelationships": { + "properties": { + "owner": { + "description": "The owner of this identity.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + } + }, + "type": "object" + }, + "phoneNumber": { + "description": "A prospect's phone number", + "properties": { + "countryCode": { + "description": "\n\nThe country code (e.g. US)", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "createdAt": { + "description": "\n\nThe date and time the phone number was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "extension": { + "description": "\n\nPhone number extension (e.g. 123)", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "number": { + "description": " \n\nThe phone number (e.g. +18889387356)", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "order": { + "description": " \n\nOrdered position in list of numbers", + "type": "integer", + "x-internal": false + }, + "phoneType": { + "description": " \n\nType of phone (mobile, work, home, voip, and other)", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "rawNumber": { + "description": "\n\nUnformatted phone number", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "status": { + "description": " \n\nThe status of the number", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "statusChangedAt": { + "description": " \n\nTime the status was updated", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "updatedAt": { + "description": " \n\nThe date and time the phone number was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "phoneNumberPredictionRelationships": { + "type": "object" + }, + "phoneNumberRelationships": { + "properties": { + "prospect": { + "description": "The owning prospect You can use only the attribute id to filter phoneNumbers by prospect (e.g. filter[prospect][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["prospect"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["prospect"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "prospect", + "x-internal": false + } + }, + "type": "object" + }, + "phoneNumberResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/phoneNumber" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/phoneNumberRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "phoneRelationships": { + "properties": { + "user": { + "description": "The User this phone belongs to.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + } + }, + "type": "object" + }, + "pluginErrorLogPreSignedUrlRelationships": { + "type": "object" + }, + "pluginMappingRelationships": { + "type": "object" + }, + "pluginRelationships": { + "type": "object" + }, + "profile": { + "description": "Controls what you can see and do within Outreach", + "properties": { + "createdAt": { + "description": " \n\nThe date and time the team was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "isAdmin": { + "description": "\n\nFlag that indicates whether the profile provides admin access.", + "type": "boolean", + "x-internal": false + }, + "name": { + "description": " \n\nThe name of the profile (e.g. \"Admin\").", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "specialId": { + "description": " \n\nThe special id flag assigned to the profile (i.e. admin or default)", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "updatedAt": { + "description": " \n\nThe date and time the team was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "profileRelationships": { + "type": "object" + }, + "profileResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/profile" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/profileRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "prospect": { + "description": "A descriptor of a person.", + "properties": { + "addedAt": { + "description": "\n\nThe date and time the prospect was added to any system.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "addressCity": { + "description": "\n\nThe prospect’s city (e.g. \"Seattle\").", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "addressCountry": { + "description": "\n\nThe prospect’s country (e.g. \"USA\").", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "addressState": { + "description": "\n\nThe prospect’s state (e.g. \"Washington\").", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "addressStreet": { + "description": "\n\nThe prospect’s street address (e.g. \"1441 N 34th St\").", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "addressStreet2": { + "description": "\n\nThe prospect’s second street address, if applicable.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "addressZip": { + "description": "\n\nThe prospect’s postal code (e.g. \"98103\").", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "angelListUrl": { + "description": "\n\nThe prospect’s AngelList URL.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "availableAt": { + "description": "\n\nThe date and time the prospect is available to contact again.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "callOptedOut": { + "description": "\n\nWhether the prospect is opted out of calling, or opted out in general if granular opt-out is not enabled.", + "type": "boolean", + "x-internal": false + }, + "callsOptStatus": { + "description": "\n\nA string (\"opted_in\", \"opted_out\", \"null\") that represents whether a prospect has opted into or out of calls.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "callsOptedAt": { + "description": "\n\nThe date and time the prospect opted in/out of calls.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "campaignName": { + "description": "\n\nThe name of the campaign the prospect is associated with.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "clickCount": { + "description": "\n\nThe number of clicks the prospect has made since the last touch point.", + "type": "integer", + "x-internal": false + }, + "company": { + "description": "\n\nThe name of the company the prospect works at. If associated with an account, this is the name of the account. (e.g. Acme International).", + "type": "string", + "x-internal": false + }, + "contactHistogram": { + "description": "\n\nThe last 12 months of email contact history with the prospect, with the current month being the last element. The format for each month is '[inboundCount, outboundCount]'. Note: Retrieving this field will slow down the queries. Unless this field is required, it is best to filter it out. See Specify Sparse Fieldsets for examples", + "items": { + "format": "contact histogram" + }, + "type": "array", + "x-internal": false + }, + "createdAt": { + "description": " \n\nThe date and time the prospect was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "custom1": { + "description": "\n\nThe value of the prospect’s first custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom2": { + "description": "\n\nThe value of the prospect’s second custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom3": { + "description": "\n\nThe value of the prospect’s third custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom4": { + "description": "\n\nThe value of the prospect’s fourth custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom5": { + "description": "\n\nThe value of the prospect’s fifth custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom6": { + "description": "\n\nThe value of the prospect’s sixth custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom7": { + "description": "\n\nThe value of the prospect’s seventh custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom8": { + "description": "\n\nThe value of the prospect’s eight custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom9": { + "description": "\n\nThe value of the prospect’s ninth custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom10": { + "description": "\n\nThe value of the prospect’s 10th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom11": { + "description": "\n\nThe value of the prospect’s 11th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom12": { + "description": "\n\nThe value of the prospect’s 12th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom13": { + "description": "\n\nThe value of the prospect’s 13th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom14": { + "description": "\n\nThe value of the prospect’s 14th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom15": { + "description": "\n\nThe value of the prospect’s 15th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom16": { + "description": "\n\nThe value of the prospect’s 16th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom17": { + "description": "\n\nThe value of the prospect’s 17th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom18": { + "description": "\n\nThe value of the prospect’s 18th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom19": { + "description": "\n\nThe value of the prospect’s 19th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom20": { + "description": "\n\nThe value of the prospect’s 20th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom21": { + "description": "\n\nThe value of the prospect’s 21st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom22": { + "description": "\n\nThe value of the prospect’s 22nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom23": { + "description": "\n\nThe value of the prospect’s 23rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom24": { + "description": "\n\nThe value of the prospect’s 24th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom25": { + "description": "\n\nThe value of the prospect’s 25th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom26": { + "description": "\n\nThe value of the prospect’s 26th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom27": { + "description": "\n\nThe value of the prospect’s 27th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom28": { + "description": "\n\nThe value of the prospect’s 28th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom29": { + "description": "\n\nThe value of the prospect’s 29th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom30": { + "description": "\n\nThe value of the prospect’s 30th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom31": { + "description": "\n\nThe value of the prospect’s 31st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom32": { + "description": "\n\nThe value of the prospect’s 32nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom33": { + "description": "\n\nThe value of the prospect’s 33rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom34": { + "description": "\n\nThe value of the prospect’s 34th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom35": { + "description": "\n\nThe value of the prospect’s 35th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom36": { + "description": "\n\nThe value of the prospect’s 36th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom37": { + "description": "\n\nThe value of the prospect’s 37th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom38": { + "description": "\n\nThe value of the prospect’s 38th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom39": { + "description": "\n\nThe value of the prospect’s 39th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom40": { + "description": "\n\nThe value of the prospect’s 40th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom41": { + "description": "\n\nThe value of the prospect’s 41st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom42": { + "description": "\n\nThe value of the prospect’s 42nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom43": { + "description": "\n\nThe value of the prospect’s 43rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom44": { + "description": "\n\nThe value of the prospect’s 44th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom45": { + "description": "\n\nThe value of the prospect’s 45th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom46": { + "description": "\n\nThe value of the prospect’s 46th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom47": { + "description": "\n\nThe value of the prospect’s 47th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom48": { + "description": "\n\nThe value of the prospect’s 48th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom49": { + "description": "\n\nThe value of the prospect’s 49th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom50": { + "description": "\n\nThe value of the prospect’s 50th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom51": { + "description": "\n\nThe value of the prospect’s 51st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom52": { + "description": "\n\nThe value of the prospect’s 52nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom53": { + "description": "\n\nThe value of the prospect’s 53rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom54": { + "description": "\n\nThe value of the prospect’s 54th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom55": { + "description": "\n\nThe value of the prospect’s 55th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom56": { + "description": "\n\nThe value of the prospect’s 56th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom57": { + "description": "\n\nThe value of the prospect’s 57th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom58": { + "description": "\n\nThe value of the prospect’s 58th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom59": { + "description": "\n\nThe value of the prospect’s 59th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom60": { + "description": "\n\nThe value of the prospect’s 60th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom61": { + "description": "\n\nThe value of the prospect’s 61st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom62": { + "description": "\n\nThe value of the prospect’s 62nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom63": { + "description": "\n\nThe value of the prospect’s 63rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom64": { + "description": "\n\nThe value of the prospect’s 64th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom65": { + "description": "\n\nThe value of the prospect’s 65th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom66": { + "description": "\n\nThe value of the prospect’s 66th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom67": { + "description": "\n\nThe value of the prospect’s 67th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom68": { + "description": "\n\nThe value of the prospect’s 68th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom69": { + "description": "\n\nThe value of the prospect’s 69th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom70": { + "description": "\n\nThe value of the prospect’s 70th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom71": { + "description": "\n\nThe value of the prospect’s 71st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom72": { + "description": "\n\nThe value of the prospect’s 72nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom73": { + "description": "\n\nThe value of the prospect’s 73rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom74": { + "description": "\n\nThe value of the prospect’s 74th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom75": { + "description": "\n\nThe value of the prospect’s 75th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom76": { + "description": "\n\nThe value of the prospect’s 76th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom77": { + "description": "\n\nThe value of the prospect’s 77th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom78": { + "description": "\n\nThe value of the prospect’s 78th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom79": { + "description": "\n\nThe value of the prospect’s 79th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom80": { + "description": "\n\nThe value of the prospect’s 80th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom81": { + "description": "\n\nThe value of the prospect’s 81st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom82": { + "description": "\n\nThe value of the prospect’s 82nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom83": { + "description": "\n\nThe value of the prospect’s 83rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom84": { + "description": "\n\nThe value of the prospect’s 84th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom85": { + "description": "\n\nThe value of the prospect’s 85th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom86": { + "description": "\n\nThe value of the prospect’s 86th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom87": { + "description": "\n\nThe value of the prospect’s 87th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom88": { + "description": "\n\nThe value of the prospect’s 88th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom89": { + "description": "\n\nThe value of the prospect’s 89th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom90": { + "description": "\n\nThe value of the prospect’s 90th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom91": { + "description": "\n\nThe value of the prospect’s 91st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom92": { + "description": "\n\nThe value of the prospect’s 92nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom93": { + "description": "\n\nThe value of the prospect’s 93rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom94": { + "description": "\n\nThe value of the prospect’s 94th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom95": { + "description": "\n\nThe value of the prospect’s 95th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom96": { + "description": "\n\nThe value of the prospect’s 96th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom97": { + "description": "\n\nThe value of the prospect’s 97th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom98": { + "description": "\n\nThe value of the prospect’s 98th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom99": { + "description": "\n\nThe value of the prospect’s 99th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom100": { + "description": "\n\nThe value of the prospect’s 100th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom101": { + "description": "\n\nThe value of the prospect’s 101st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom102": { + "description": "\n\nThe value of the prospect’s 102nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom103": { + "description": "\n\nThe value of the prospect’s 103rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom104": { + "description": "\n\nThe value of the prospect’s 104th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom105": { + "description": "\n\nThe value of the prospect’s 105th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom106": { + "description": "\n\nThe value of the prospect’s 106th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom107": { + "description": "\n\nThe value of the prospect’s 107th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom108": { + "description": "\n\nThe value of the prospect’s 108th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom109": { + "description": "\n\nThe value of the prospect’s 109th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom110": { + "description": "\n\nThe value of the prospect’s 110th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom111": { + "description": "\n\nThe value of the prospect’s 111th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom112": { + "description": "\n\nThe value of the prospect’s 112th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom113": { + "description": "\n\nThe value of the prospect’s 113th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom114": { + "description": "\n\nThe value of the prospect’s 114th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom115": { + "description": "\n\nThe value of the prospect’s 115th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom116": { + "description": "\n\nThe value of the prospect’s 116th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom117": { + "description": "\n\nThe value of the prospect’s 117th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom118": { + "description": "\n\nThe value of the prospect’s 118th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom119": { + "description": "\n\nThe value of the prospect’s 119th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom120": { + "description": "\n\nThe value of the prospect’s 120th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom121": { + "description": "\n\nThe value of the prospect’s 121st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom122": { + "description": "\n\nThe value of the prospect’s 122nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom123": { + "description": "\n\nThe value of the prospect’s 123rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom124": { + "description": "\n\nThe value of the prospect’s 124th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom125": { + "description": "\n\nThe value of the prospect’s 125th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom126": { + "description": "\n\nThe value of the prospect’s 126th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom127": { + "description": "\n\nThe value of the prospect’s 127th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom128": { + "description": "\n\nThe value of the prospect’s 128th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom129": { + "description": "\n\nThe value of the prospect’s 129th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom130": { + "description": "\n\nThe value of the prospect’s 130th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom131": { + "description": "\n\nThe value of the prospect’s 131st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom132": { + "description": "\n\nThe value of the prospect’s 132nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom133": { + "description": "\n\nThe value of the prospect’s 133rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom134": { + "description": "\n\nThe value of the prospect’s 134th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom135": { + "description": "\n\nThe value of the prospect’s 135th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom136": { + "description": "\n\nThe value of the prospect’s 136th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom137": { + "description": "\n\nThe value of the prospect’s 137th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom138": { + "description": "\n\nThe value of the prospect’s 138th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom139": { + "description": "\n\nThe value of the prospect’s 139th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom140": { + "description": "\n\nThe value of the prospect’s 140th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom141": { + "description": "\n\nThe value of the prospect’s 141st custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom142": { + "description": "\n\nThe value of the prospect’s 142nd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom143": { + "description": "\n\nThe value of the prospect’s 143rd custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom144": { + "description": "\n\nThe value of the prospect’s 144th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom145": { + "description": "\n\nThe value of the prospect’s 145th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom146": { + "description": "\n\nThe value of the prospect’s 146th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom147": { + "description": "\n\nThe value of the prospect’s 147th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom148": { + "description": "\n\nThe value of the prospect’s 148th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom149": { + "description": "\n\nThe value of the prospect’s 149th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "custom150": { + "description": "\n\nThe value of the prospect’s 150th custom field.", + "maxLength": 32000, + "type": "string", + "x-internal": false + }, + "dateOfBirth": { + "description": "\n\nThe date the prospect was born.", + "format": "date", + "type": "string", + "x-internal": false + }, + "degree": { + "description": "\n\nThe degree(s) the prospect has received.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "emailOptedOut": { + "description": "\n\nWhether the prospect is opted out of email, or opted out in general if granular opt-out is not enabled.", + "type": "boolean", + "x-internal": false + }, + "emails": { + "description": "\n\nA list of email addresses associated with the prospect.", + "items": { + "format": "email", + "type": "string" + }, + "type": "array", + "x-internal": false + }, + "emailsOptStatus": { + "description": "\n\nA string (\"opted_in\", \"opted_out\", \"null\") that represents whether a prospect has opted into or out of emails.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "emailsOptedAt": { + "description": "\n\nThe date and time the prospect opted in/out of emails.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "engagedAt": { + "description": " \n\nThe date and time the prospect last engaged.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "engagedScore": { + "description": " \n\nA number representing the quality of the lead, based on the number of the prospect’s opens, clicks and mailing replies.", + "format": "float", + "type": "number", + "x-internal": false + }, + "eventName": { + "description": "\n\nThe name of the event the prospect was met at.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "externalId": { + "description": "\n\nA custom ID for the prospect, often referencing an ID in an external system.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "externalOwner": { + "description": "\n\nA custom owner for the prospect, often referencing an ownering in an external system.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "externalSource": { + "description": " \n\nThe source of the resource’s creation (e.g. \"outreach-api\").", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "facebookUrl": { + "description": "\n\nThe prospect’s Facebook URL.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "firstName": { + "description": " \n\nThe first name of the prospect.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "gender": { + "description": "\n\nThe gender of the prospect.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "githubUrl": { + "description": "\n\nThe prospect’s GitHub URL.", + "maxLength": 1000, + "type": "string", + "x-internal": false + }, + "githubUsername": { + "description": " \n\nThe prospect’s GitHub username.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "googlePlusUrl": { + "description": "\n\nThe prospect’s Google+ URL.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "graduationDate": { + "description": "\n\nThe graduation date of the prospect.", + "format": "date", + "type": "string", + "x-internal": false + }, + "homePhones": { + "description": "\n\nA list of home phone numbers associated with the prospect.", + "items": { + "type": "string" + }, + "type": "array", + "x-internal": false + }, + "jobStartDate": { + "description": "\n\nThe starting date of the prospect’s current job.", + "format": "date", + "type": "string", + "x-internal": false + }, + "lastName": { + "description": " \n\nThe last name of the prospect.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "linkedInConnections": { + "description": "\n\nThe number of connections on the prospect’s LinkedIn profile.", + "type": "integer", + "x-internal": false + }, + "linkedInId": { + "description": " \n\nThe prospect’s LinkedIn ID.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "linkedInSlug": { + "description": " \n\nThe prospect’s LinkedIn slug.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "linkedInUrl": { + "description": "\n\nThe prospect’s LinkedIn URL.", + "maxLength": 1000, + "type": "string", + "x-internal": false + }, + "middleName": { + "description": "\n\nThe middle name of the prospect.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "mobilePhones": { + "description": "\n\nA list of mobile phone numbers associated with the prospect.", + "items": { + "type": "string" + }, + "type": "array", + "x-internal": false + }, + "name": { + "description": "\n\nThe full name of the prospect.", + "type": "string", + "x-internal": false + }, + "nickname": { + "description": "\n\nThe nickname of the prospect.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "occupation": { + "description": "\n\nThe occupation of the prospect (e.g. \"Purchasing Manager\").", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "openCount": { + "description": "\n\nThe number of opens the prospect has made since the last touch point.", + "type": "integer", + "x-internal": false + }, + "optedOut": { + "description": "\n\nA boolean value representing whether this prospect is currently opted out of all mailings. Set this value to true to opt out the prospect; the 'opted_out' timestamp will be updated to the time of the request. Set this value to false to revert the opt at and clear the opted out timestamp.", + "type": "boolean", + "x-internal": false + }, + "optedOutAt": { + "description": "\n\nThe date and time the prospect opted out of emails.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "otherPhones": { + "description": "\n\nA list of other phone numbers associated with the prospect.", + "items": { + "type": "string" + }, + "type": "array", + "x-internal": false + }, + "personalNote1": { + "description": "\n\nA custom note field related to the prospect.", + "maxLength": 65535, + "type": "string", + "x-internal": false + }, + "personalNote2": { + "description": "\n\nA second note field related to the prospect.", + "maxLength": 65535, + "type": "string", + "x-internal": false + }, + "preferredContact": { + "description": "\n\nThe preferred contact method for the prospect.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "quoraUrl": { + "description": "\n\nThe prospect’s Quora URL.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "region": { + "description": "\n\nThe primary geographic region of the prospect.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "replyCount": { + "description": "\n\nThe number of replies the prospect has made since the last touch point.", + "type": "integer", + "x-internal": false + }, + "school": { + "description": "\n\nThe school(s) the prospect has attended.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "score": { + "description": "\n\nA custom score given to measure the quality of the lead.", + "format": "float", + "type": "number", + "x-internal": false + }, + "sharingTeamId": { + "description": "\n\nThe ID of the sharing team associated with this object. Access is currently in beta.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "source": { + "description": "\n\nA custom source representing where the lead was first acquired.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "specialties": { + "description": "\n\nA description of the prospect’s specialties.", + "maxLength": 65535, + "type": "string", + "x-internal": false + }, + "stackOverflowId": { + "description": " \n\nThe prospect’s StackOverflow ID.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "stackOverflowUrl": { + "description": "\n\nThe prospect’s StackOverflow URL.", + "maxLength": 1000, + "type": "string", + "x-internal": false + }, + "tags": { + "description": "\n\nA list of tag values associated with the account (e.g. [\"Interested\", \"2017 Expo\"]).", + "items": { + "type": "string" + }, + "type": "array", + "x-internal": false + }, + "timeZone": { + "description": "\n\nThe prospect’s current timezone, preferably in the IANA format (e.g. \"America/LosAngeles\").", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "timeZoneIana": { + "description": "\n\nThe prospect’s current IANA timezone, if available.", + "type": "string", + "x-internal": false + }, + "timeZoneInferred": { + "description": "\n\nThe prospect’s current inferred IANA timezone, if available.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "title": { + "description": " \n\nThe title of the prospect.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "touchedAt": { + "description": " \n\nThe date and time the prospect was last touched.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "trashedAt": { + "description": "\n\nThe date a prospect was soft deleted.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "twitterUrl": { + "description": "\n\nThe prospect’s Twitter URL.", + "maxLength": 1000, + "type": "string", + "x-internal": false + }, + "twitterUsername": { + "description": " \n\nThe prospect’s Twitter username.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "updatedAt": { + "description": " \n\nThe date and time the prospect was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "voipPhones": { + "description": "\n\nA list of voip phone numbers associated with the prospect.", + "items": { + "type": "string" + }, + "type": "array", + "x-internal": false + }, + "websiteUrl1": { + "description": "\n\nThe URL of the prospect’s website.", + "maxLength": 65535, + "type": "string", + "x-internal": false + }, + "websiteUrl2": { + "description": "\n\nThe value of the prospect’s second website URL field.", + "maxLength": 65535, + "type": "string", + "x-internal": false + }, + "websiteUrl3": { + "description": "\n\nThe value of the prospect’s third website URL field.", + "maxLength": 65535, + "type": "string", + "x-internal": false + }, + "workPhones": { + "description": "\n\nA list of work phone numbers associated with the prospect.", + "items": { + "type": "string" + }, + "type": "array", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "prospectRelationships": { + "properties": { + "account": { + "description": "The prospect's associated account. You can use attributes id, customId, name, named and updatedAt to filter prospects by account (e.g. filter[account][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["account"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["account"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "account", + "x-internal": false + }, + "activeSequenceStates": { + "description": "\n\nThe non-finished sequence states where this prospect is the primary recipient. This includes states of \"active\", \"paused\", \"failed\", \"bounced\", \"pending\" and \"disabled.\" You can use attributes id and state to filter prospects by activeSequenceStates (e.g. filter[activeSequenceStates][id]=X).", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["sequenceState"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["sequenceState"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "sequenceState" + }, + "type": "array", + "x-internal": false + }, + "calls": { + "description": "\n\nThe calls associated with the prospect. Relationship calls cannot be used as a filter.", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["call"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "call" + }, + "type": "array", + "x-internal": false + }, + "creator": { + "description": "\n\nThe creater of the prospect. Relationship creator cannot be used as a filter.", + "oneOf": [ + { + "description": "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + } + ], + "x-internal": false + }, + "emailAddresses": { + "description": "The prospect's email addresses. Relationship emailAddresses cannot be used as a filter.", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["emailAddress"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["emailAddress"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "emailAddress" + }, + "type": "array", + "x-internal": false + }, + "favorites": { + "description": "The prospect's favorites. Relationship favorites cannot be used as a filter.", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["favorite"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["favorite"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "favorite" + }, + "type": "array", + "x-internal": false + }, + "mailings": { + "description": "\n\nThe mailings associated with the prospect. Relationship mailings cannot be used as a filter.", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["mailing"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "mailing" + }, + "type": "array", + "x-internal": false + }, + "opportunities": { + "description": "The opportunities associated with the prospect. Requires the Opportunities SKU to be enabled in order to have access. Please contact support@outreach.io for more assistance. You can use only the attribute id to filter prospects by opportunities (e.g. filter[opportunities][id]=X).", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["opportunity"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["opportunity"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "opportunity" + }, + "type": "array", + "x-internal": false + }, + "opportunityProspectRoles": { + "description": "The roles that associate the prospect with opportunities. Relationship opportunityProspectRoles cannot be used as a filter.", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["opportunityProspectRole"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["opportunityProspectRole"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "opportunityProspectRole" + }, + "type": "array", + "x-internal": false + }, + "owner": { + "description": "The owner of the prospect. You can use only the attribute id to filter prospects by owner (e.g. filter[owner][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + }, + "persona": { + "description": "The persona of the prospect, if it has one. You can use only the attribute id to filter prospects by persona (e.g. filter[persona][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["persona"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["persona"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "persona", + "x-internal": false + }, + "phoneNumbers": { + "description": "The prospect's phone numbers Relationship phoneNumbers cannot be used as a filter.", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["phoneNumber"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["phoneNumber"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "phoneNumber" + }, + "type": "array", + "x-internal": false + }, + "sequenceStates": { + "description": "\n\nThe sequence states where this prospect is the primary recipient. You can use attributes id and state to filter prospects by sequenceStates (e.g. filter[sequenceStates][id]=X).", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["sequenceState"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "sequenceState" + }, + "type": "array", + "x-internal": false + }, + "stage": { + "description": "The stage the prospect is in. You can use attributes id and name to filter prospects by stage (e.g. filter[stage][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["stage"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["stage"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "stage", + "x-internal": false + }, + "tasks": { + "description": "\n\nThe tasks associated with the prospect. Relationship tasks cannot be used as a filter.", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["task"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "task" + }, + "type": "array", + "x-internal": false + }, + "updater": { + "description": "\n\nThe most recent updater of the prospect. Relationship updater cannot be used as a filter.", + "oneOf": [ + { + "description": "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + } + ], + "x-internal": false + } + }, + "type": "object" + }, + "prospectResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/prospect" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/prospectRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "recipient": { + "description": "Record for a recipient for some communication, such as email", + "properties": { + "createdAt": { + "description": "\n\nThe date and time the team was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "emailHash": { + "description": "\n\nHash of email for recipient.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "recipientType": { + "description": "\n\nThe type of action for the communcation to the recipient. Must be one of 'bcc', 'cc', or 'to'.", + "maxLength": 3, + "type": "string", + "x-internal": false + }, + "updatedAt": { + "description": "\n\nThe date and time the team was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "value": { + "description": "\n\nThe recipient contact information (i.e. email address)", + "maxLength": 255, + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "recipientRelationships": { + "type": "object" + }, + "recipientResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/recipient" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/recipientRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "recordActorAssignmentRelationships": { + "properties": { + "actor": { + "description": "", + "oneOf": [ + { + "description": "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + } + ], + "x-internal": false + }, + "record": { + "description": "", + "oneOf": [ + { + "description": "A descriptor of a named company used to categorize prospects within an account-based sales approach.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["account"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["account"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "account" + } + ], + "x-internal": false + } + }, + "type": "object" + }, + "referralPredictionRelationships": { + "properties": { + "prospect": { + "description": "The prospect this prediction belongs to.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["prospect"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["prospect"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "prospect", + "x-internal": false + }, + "sequenceState": { + "description": "The sequence state this prediction belongs to.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["sequenceState"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["sequenceState"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "sequenceState", + "x-internal": false + } + }, + "type": "object" + }, + "returnDatePredictionRelationships": { + "properties": { + "prospect": { + "description": "The Prospect this prediction belongs to.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["prospect"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["prospect"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "prospect", + "x-internal": false + }, + "sequenceState": { + "description": "The sequence state this prediction belongs to.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["sequenceState"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["sequenceState"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "sequenceState", + "x-internal": false + } + }, + "type": "object" + }, + "role": { + "description": "Where you fall within your organization's structure.", + "properties": { + "createdAt": { + "description": " \n\nThe date and time the team was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "name": { + "description": " \n\nThe name of the role (e.g. \"Vice-President\").", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "updatedAt": { + "description": " \n\nThe date and time the team was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "roleRelationships": { + "properties": { + "parentRole": { + "description": "Roles are heirarchical. This is the parent of the current role. You can use only the attribute id to filter roles by parentRole (e.g. filter[parentRole][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["role"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["role"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "role", + "x-internal": false + } + }, + "type": "object" + }, + "roleResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/role" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/roleRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "ruleset": { + "description": "A reusable set of behaviors to be applied to Sequences", + "properties": { + "applyCompletedStageIn": { + "description": "\n\nThe amount of time in seconds after the sequence has completed before the \"completedStage\" will be applied to the Prospect.", + "type": "integer", + "x-internal": false + }, + "autoResumeOotoProspects": { + "description": " \n\nA boolean value whether out-of-the-office Prospects will be automatically resumed. See \"autoResumeOotoProspectsIn\" and \"autoResumeOotoProspectsExpiresIn\" for more information.", + "type": "boolean", + "x-internal": false + }, + "autoResumeOotoProspectsExpiresIn": { + "description": "\n\nThe maximum amount of time in seconds to wait before opted-out Prospect will be resumed.", + "type": "integer", + "x-internal": false + }, + "autoResumeOotoProspectsIn": { + "description": "\n\nThe default amount of time in seconds to wait before opted-out Prospects will be resumed.", + "type": "integer", + "x-internal": false + }, + "callOptOutAction": { + "description": "\n\nDetermines if prospect can be added to sequences if they are opted out of calling.", + "maxLength": 4, + "type": "string", + "x-internal": false + }, + "clicksNeededBeforeCallTaskCreated": { + "description": "\n\nThe number of email clicks needed before a call task will be automatically created. This feature will be disabled unless a value is set.", + "type": "integer", + "x-internal": false + }, + "createdAt": { + "description": " \n\nThe date and time the ruleset was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "emailOptOutAction": { + "description": "\n\nDetermines if prospect can be added to sequences if they are opted out of emails.", + "maxLength": 4, + "type": "string", + "x-internal": false + }, + "includeUnsubscribeLinks": { + "description": " \n\nA boolean value whether to include unsubscribe links within emails.", + "type": "boolean", + "x-internal": false + }, + "meetingBookedAction": { + "description": "\n\nDetermines if a prospect is marked as finished when a meeting is booked.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "minimumProspectTouchedInterval": { + "description": "\n\nThe minimum number of seconds that must elapse between when a Prospect was last contacted and when they may be added to a sequnce. This feature will be disabled unless a value is set.", + "type": "integer", + "x-internal": false + }, + "name": { + "description": " \n\nThe name of the ruleset.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "ootoAutoExtractionEnabled": { + "description": "\n\nA boolean value determining whether to use out of the office return date auto extraction.", + "type": "boolean", + "x-internal": false + }, + "opensNeededBeforeCallTaskCreated": { + "description": "\n\nThe number of email opens needed before a call task will be automatically created. This feature will be disabled unless a value is set.", + "type": "integer", + "x-internal": false + }, + "permitDuplicateProspects": { + "description": " \n\nA value determining whether a Prospect may be added to this Sequence multiple times or not. Permitted values include \"allow\", \"disallow\" (the default) and \"only_if_inactive\", which indicates that Prospects may be re-added to this sequence if their existing SequenceState is inactive.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "sequenceExclusivity": { + "description": " \n\nA value determining whether Prospects may be added to multiple different Sequences. Permitted values include \"all_sequences\", \"exclusive_sequences\" and \"none\" (the default). If the value is \"all_sequences\", then Prospects may only be added if they are not active in any other Sequence; likewise, a Prospect active in a Sequence with \"all_sequences\" exclusivity cannot be added to any other Sequence. If the value is \"exclusive_sequences\", then Prospects may only be added if they are not active in any other Sequence with \"exclusive_sequences\" exclusivity; likewise, a Prospect active in a Sequence with \"exclusive_sequences\" exclusivity cannot be added to any other Sequence with \"exclusive_sequences\" exclusivity. If the value is \"none\", then no additional restrictions will be applied.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "smsOptOutAction": { + "description": "\n\nDetermines if prospect can be added to sequences if they are opted out of SMS.", + "maxLength": 4, + "type": "string", + "x-internal": false + }, + "smsReceivedAction": { + "description": "\n\nDetermines if a prospect is marked as finished when a text message is received", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "stepOverridesEnabled": { + "description": "\n\nA boolean value determining whether to allow users to customize step templates when adding to sequence.", + "type": "boolean", + "x-internal": false + }, + "updatedAt": { + "description": " \n\nThe date and time the ruleset was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "rulesetRelationships": { + "properties": { + "bouncedStage": { + "description": "The stage to assign to the prospect when a mailing in this sequence bounces. You can use only the attribute id to filter rulesets by bouncedStage (e.g. filter[bouncedStage][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["stage"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["stage"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "stage", + "x-internal": false + }, + "callTaskPriority": { + "description": "The task priority to use when creating call tasks based on mail opens. You can use only the attribute id to filter rulesets by callTaskPriorityFromOpens (e.g. filter[callTaskPriorityFromOpens][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["taskPriority"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["taskPriority"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "taskPriority", + "x-internal": false + }, + "callTaskPriorityFromClicks": { + "description": "The task priority to use when creating call tasks based on mail clicks. You can use only the attribute id to filter rulesets by callTaskPriorityFromClicks (e.g. filter[callTaskPriorityFromClicks][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["taskPriority"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["taskPriority"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "taskPriority", + "x-internal": false + }, + "callTaskPriorityFromOpens": { + "description": "The task priority to use when creating call tasks based on mail opens. You can use only the attribute id to filter rulesets by callTaskPriorityFromOpens (e.g. filter[callTaskPriorityFromOpens][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["taskPriority"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["taskPriority"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "taskPriority", + "x-internal": false + }, + "completedStage": { + "description": "The stage to assign to the prospect when this sequence completes. You can use only the attribute id to filter rulesets by completedStage (e.g. filter[completedStage][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["stage"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["stage"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "stage", + "x-internal": false + }, + "deliveredStage": { + "description": "The stage to assign to the prospect when a mailing in this sequence is delivered. You can use only the attribute id to filter rulesets by deliveredStage (e.g. filter[deliveredStage][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["stage"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["stage"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "stage", + "x-internal": false + }, + "finishedStage": { + "description": "The stage to assign to the prospect when this sequence finishes. You can use only the attribute id to filter rulesets by finishedStage (e.g. filter[finishedStage][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["stage"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["stage"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "stage", + "x-internal": false + }, + "optedOutStage": { + "description": "The stage to assign to the prospect when they opt out of this sequence. You can use only the attribute id to filter rulesets by optedOutStage (e.g. filter[optedOutStage][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["stage"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["stage"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "stage", + "x-internal": false + }, + "owner": { + "description": "The owner of the ruleset. You can use only the attribute id to filter rulesets by owner (e.g. filter[owner][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + }, + "repliedStage": { + "description": "The stage to assign to the prospect when a mailing in this sequence is replied to. You can use only the attribute id to filter rulesets by repliedStage (e.g. filter[repliedStage][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["stage"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["stage"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "stage", + "x-internal": false + }, + "sequences": { + "description": "\n\nThe sequences associated with this ruleset. You can use only the attribute id to filter rulesets by sequences (e.g. filter[sequences][id]=X).", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["sequence"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "sequence" + }, + "type": "array", + "x-internal": false + }, + "startedStage": { + "description": "The stage to assign to the prospect when this sequence starts. You can use only the attribute id to filter rulesets by startedStage (e.g. filter[startedStage][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["stage"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["stage"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "stage", + "x-internal": false + } + }, + "type": "object" + }, + "rulesetResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/ruleset" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/rulesetRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "scheduleRelationships": { + "properties": { + "owner": { + "description": "The owner of the schedule.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + } + }, + "type": "object" + }, + "sequence": { + "description": "Leverage emailing within Sequences to engage each individual persona more effectively, and queue up the right actions at the right time.", + "properties": { + "automationPercentage": { + "description": "\n\nThe percentage of \"auto_email\" sequence steps in this sequence.", + "format": "float", + "type": "number", + "x-internal": false + }, + "bounceCount": { + "description": "\n\nThe total count of bounced mailings during this sequence.", + "type": "integer", + "x-internal": false + }, + "clickCount": { + "description": " \n\nThe total count of clicked mailings from this sequence.", + "type": "integer", + "x-internal": false + }, + "createdAt": { + "description": " \n\nThe date and time the sequence was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "deliverCount": { + "description": " \n\nThe total count of delivered mailings from this sequence.", + "type": "integer", + "x-internal": false + }, + "description": { + "description": "\n\nA custom description for the sequence.", + "maxLength": 1024, + "type": "string", + "x-internal": false + }, + "durationInDays": { + "description": "\n\nThe total number of days it takes to get through this sequence.", + "type": "integer", + "x-internal": false + }, + "enabled": { + "description": "\n\nA boolean value determining whether the sequence is enabled or not.", + "type": "boolean", + "x-internal": false + }, + "enabledAt": { + "description": " \n\nThe date and time the sequence was enabled, or null if currently disabled.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "failureCount": { + "description": "\n\nThe total count of failed mailings from this sequence.", + "type": "integer", + "x-internal": false + }, + "finishOnReply": { + "description": "\n\nDeprecated. This boolean value exists only to maintain backward compatibility and primaryReplyAction should be used instead. True if primaryReplyAction is \"finish\", false otherwise.", + "type": "boolean", + "x-internal": false + }, + "lastUsedAt": { + "description": " \n\nThe date and time the sequence was last used.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "locked": { + "description": "\n\nA boolean value determining whether the sequence is locked or not.", + "type": "boolean", + "x-internal": false + }, + "lockedAt": { + "description": " \n\nThe date and time the sequence was locked, or null if currently unlocked.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "maxActivations": { + "description": "\n\nThe maximum number of prospects that can be associated with the sequence. Only applies if the sequence type is \"date\".", + "type": "integer", + "x-internal": false + }, + "name": { + "description": " \n\nThe name or the sequence.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "negativeReplyCount": { + "description": "\n\nThe total count of negative reply mailings from this sequence.", + "type": "integer", + "x-internal": false + }, + "neutralReplyCount": { + "description": "\n\nThe total count of neutral reply mailings from this sequence.", + "type": "integer", + "x-internal": false + }, + "numContactedProspects": { + "description": "\n\nThe total count of prospects who have been either called or emailed.", + "type": "integer", + "x-internal": false + }, + "numRepliedProspects": { + "description": "\n\nThe total count of prospects who have been marked as replied.", + "type": "integer", + "x-internal": false + }, + "openCount": { + "description": " \n\nThe total count of opened mailings from this sequence.", + "type": "integer", + "x-internal": false + }, + "optOutCount": { + "description": "\n\nThe total count of opted out mailings from this sequence.", + "type": "integer", + "x-internal": false + }, + "positiveReplyCount": { + "description": "\n\nThe total count of positive reply mailings from this sequence.", + "type": "integer", + "x-internal": false + }, + "primaryReplyAction": { + "description": "\n\nThe action to take when the primary prospect replies. Must be one of \"finish\", \"continue\", or \"pause\".", + "maxLength": 4, + "type": "string", + "x-internal": false + }, + "primaryReplyPauseDuration": { + "description": "\n\nThe duration in seconds to pause for (before automatically finishing) after a reply from the primary prospect if the primaryReplyAction is \"pause\".", + "type": "integer", + "x-internal": false + }, + "replyCount": { + "description": " \n\nThe total count of replied mailings from this sequence.", + "type": "integer", + "x-internal": false + }, + "scheduleCount": { + "description": "\n\nThe total count of scheduled mailings from this sequence.", + "type": "integer", + "x-internal": false + }, + "scheduleIntervalType": { + "description": "\n\nThe schedule interval type must be either \"calendar\" or \"schedule\"", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "secondaryReplyAction": { + "description": "\n\nThe action to take when someone other than the primary prospect replies. Must be one of \"finish\", \"continue\", or \"pause\".", + "maxLength": 4, + "type": "string", + "x-internal": false + }, + "secondaryReplyPauseDuration": { + "description": "\n\nThe duration in seconds to pause for (before automatically finishing) after a reply from anyone other than the primary prospect if the secondaryReplyAction is \"pause\".", + "type": "integer", + "x-internal": false + }, + "sequenceStepCount": { + "description": "\n\nThe total number of sequence steps in this sequence.", + "type": "integer", + "x-internal": false + }, + "sequenceType": { + "description": "\n\nThe sequence type must be either \"date\" or \"interval\".", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "shareType": { + "description": " \n\nThe sequence share type must be either \"private\", \"read_only\" or \"shared\".", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "tags": { + "description": "\n\nA list of tag values associated with the sequence (e.g. [\"Tier 1\", \"Inbound Leads\"])", + "items": { + "type": "string" + }, + "type": "array", + "x-internal": false + }, + "throttleCapacity": { + "description": " \n\nThe maximum number of associated sequence states per user that can be active at a one time.", + "type": "integer", + "x-internal": false + }, + "throttleMaxAddsPerDay": { + "description": " \n\nThe maximum number of associated sequence states per user that can be added to the sequence each day.", + "type": "integer", + "x-internal": false + }, + "throttlePaused": { + "description": "\n\nA boolean value determining whether the throttling of sequence states is paused or not.", + "type": "boolean", + "x-internal": false + }, + "throttlePausedAt": { + "description": "\n\nThe date and time the sequence state throttling was paused, or null if not currently paused.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "transactional": { + "description": "\n\nA boolean value determining whether prospect opt out preferences are respected. Intended only for non-marketing sequences.", + "type": "boolean", + "x-internal": false + }, + "updatedAt": { + "description": " \n\nThe date and time the sequence was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "sequenceRelationships": { + "properties": { + "calls": { + "description": "\n\nThe associated calls. You can use only the attribute id to filter sequences by calls (e.g. filter[calls][id]=X).", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["call"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "call" + }, + "type": "array", + "x-internal": false + }, + "contentCategoryMemberships": { + "description": "\n\nThe content categories (collections) of the sequence. You can use only the attribute id to filter sequences by contentCategoryMemberships (e.g. filter[contentCategoryMemberships][id]=X).", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["contentCategoryMembership"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["contentCategoryMembership"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "contentCategoryMembership" + }, + "type": "array", + "x-internal": false + }, + "creator": { + "description": "\n\nThe creater of the sequence. You can use only the attribute id to filter sequences by creator (e.g. filter[creator][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + }, + "mailings": { + "description": "\n\nThe associated mailings. Relationship mailings cannot be used as a filter.", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["mailing"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "mailing" + }, + "type": "array", + "x-internal": false + }, + "owner": { + "description": "The owner of the sequence. You can use attributes id, email, firstName and lastName to filter sequences by owner (e.g. filter[owner][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + }, + "ruleset": { + "description": "The associated ruleset. You can use only the attribute id to filter sequences by ruleset (e.g. filter[ruleset][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["ruleset"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["ruleset"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "ruleset", + "x-internal": false + }, + "sequenceStates": { + "description": "\n\nThe associated sequence states. You can use only the attribute id to filter sequences by sequenceStates (e.g. filter[sequenceStates][id]=X).", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["sequenceState"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "sequenceState" + }, + "type": "array", + "x-internal": false + }, + "sequenceSteps": { + "description": "The associated sequence steps. You can use only the attribute id to filter sequences by sequenceSteps (e.g. filter[sequenceSteps][id]=X).", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["sequenceStep"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["sequenceStep"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "sequenceStep" + }, + "type": "array", + "x-internal": false + }, + "tasks": { + "description": "\n\nThe associated tasks. You can use only the attribute id to filter sequences by tasks (e.g. filter[tasks][id]=X).", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["task"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "task" + }, + "type": "array", + "x-internal": false + }, + "updater": { + "description": "\n\nThe most recent updater of the sequence. You can use only the attribute id to filter sequences by updater (e.g. filter[updater][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + } + }, + "type": "object" + }, + "sequenceResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/sequence" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/sequenceRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "sequenceState": { + "description": "A descriptor of a currently sequenced prospect, which includes relationships to its sequence, prospect and user.", + "properties": { + "activeAt": { + "description": "\n\nThe date and time the sequence state was last active.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "bounceCount": { + "description": "\n\nThe total count of bounced mailings during this sequence state.", + "type": "integer", + "x-internal": false + }, + "callCompletedAt": { + "description": " \n\nThe date and time the sequence state last had a call completed.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "clickCount": { + "description": " \n\nThe total count of clicked mailings from this sequence state.", + "type": "integer", + "x-internal": false + }, + "createdAt": { + "description": " \n\nThe date and time the sequence state was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "deliverCount": { + "description": " \n\nThe total count of delivered mailings from this sequence state.", + "type": "integer", + "x-internal": false + }, + "errorReason": { + "description": "\n\nThe reason for the most recent error.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "failureCount": { + "description": "\n\nThe total count of failed mailings from this sequence state.", + "type": "integer", + "x-internal": false + }, + "negativeReplyCount": { + "description": "\n\nThe total count of negative reply mailings from this sequence state.", + "type": "integer", + "x-internal": false + }, + "neutralReplyCount": { + "description": "\n\nThe total count of neutral reply mailings from this sequence state.", + "type": "integer", + "x-internal": false + }, + "openCount": { + "description": " \n\nThe total count of opened mailings from this sequence state.", + "type": "integer", + "x-internal": false + }, + "optOutCount": { + "description": "\n\nThe total count of opted out mailings from this sequence state.", + "type": "integer", + "x-internal": false + }, + "pauseReason": { + "description": " \n\nThe reason for the most recent pause.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "positiveReplyCount": { + "description": "\n\nThe total count of positive reply mailings from this sequence state.", + "type": "integer", + "x-internal": false + }, + "repliedAt": { + "description": " \n\nThe date and time the sequence state last had a mailing reply.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "replyCount": { + "description": " \n\nThe total count of replied mailings from this sequence state.", + "type": "integer", + "x-internal": false + }, + "scheduleCount": { + "description": "\n\nThe total count of scheduled mailings from this sequence state.", + "type": "integer", + "x-internal": false + }, + "state": { + "description": " \n\nThe current state of the sequence state.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "stateChangedAt": { + "description": " \n\nThe date and time the sequence state’s state last changed.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "updatedAt": { + "description": " \n\nThe date and time the sequence state was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "sequenceStateRecipientRelationships": { + "properties": { + "prospect": { + "description": "The prospect that is associated with this recipient.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["prospect"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["prospect"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "prospect", + "x-internal": false + }, + "sequenceState": { + "description": "The sequence state that is associated with this recipient.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["sequenceState"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["sequenceState"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "sequenceState", + "x-internal": false + } + }, + "type": "object" + }, + "sequenceStateRelationships": { + "properties": { + "account": { + "description": "\n\nThe account associated with the prospect the sequence state is targeting. You can use only the attribute id to filter sequenceStates by account (e.g. filter[account][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["account"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["account"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "account", + "x-internal": false + }, + "activeStepMailings": { + "description": "\n\nAny undelivered mailings associated with the current sequence step. Relationship activeStepMailings cannot be used as a filter.", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["mailing"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["mailing"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "mailing" + }, + "type": "array", + "x-internal": false + }, + "activeStepTasks": { + "description": "\n\nAny incomplete tasks associated with the current sequence step. Relationship activeStepTasks cannot be used as a filter.", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["task"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["task"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "task" + }, + "type": "array", + "x-internal": false + }, + "calls": { + "description": "\n\nThe calls associated with the sequence state. You can use only the attribute id to filter sequenceStates by calls (e.g. filter[calls][id]=X).", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["call"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "call" + }, + "type": "array", + "x-internal": false + }, + "creator": { + "description": "\n\nThe creator of the sequence state. Relationship creator cannot be used as a filter.", + "oneOf": [ + { + "description": "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + } + ], + "x-internal": false + }, + "mailbox": { + "description": "The mailbox to use for mailing steps. You can use attributes id and email to filter sequenceStates by mailbox (e.g. filter[mailbox][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["mailbox"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["mailbox"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "mailbox", + "x-internal": false + }, + "mailings": { + "description": "\n\nThe mailings associated with the sequence state. Relationship mailings cannot be used as a filter.", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["mailing"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "mailing" + }, + "type": "array", + "x-internal": false + }, + "opportunity": { + "description": "\n\nThe associated opportunity. You can use only the attribute id to filter sequenceStates by opportunity (e.g. filter[opportunity][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["opportunity"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["opportunity"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "opportunity", + "x-internal": false + }, + "prospect": { + "description": "The primary prospect this sequence state is targeting. You can use attributes id and emails to filter sequenceStates by prospect (e.g. filter[prospect][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["prospect"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["prospect"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "prospect", + "x-internal": false + }, + "sequence": { + "description": "The sequence this prospect is engaged in. You can use any filterable attribute of sequence.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["sequence"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["sequence"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "sequence", + "x-internal": false + }, + "sequenceStep": { + "description": "\n\nThe current sequence step the prospect is in. You can use any filterable attribute of sequenceStep.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["sequenceStep"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["sequenceStep"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "sequenceStep", + "x-internal": false + }, + "tasks": { + "description": "\n\nThe tasks associated with the sequence state. You can use attributes id and dueAt to filter sequenceStates by tasks (e.g. filter[tasks][id]=X).", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["task"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "task" + }, + "type": "array", + "x-internal": false + } + }, + "type": "object" + }, + "sequenceStateResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/sequenceState" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/sequenceStateRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "sequenceStep": { + "description": "A descriptor of a single step within an automated sequence.", + "properties": { + "bounceCount": { + "description": "\n\nThe total count of bounced mailings during this sequence step.", + "type": "integer", + "x-internal": false + }, + "clickCount": { + "description": "\n\nThe total count of clicked mailings from this sequence step.", + "type": "integer", + "x-internal": false + }, + "createdAt": { + "description": " \n\nThe date and time the sequence step was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "date": { + "description": " \n\nThe date this step will activate; only applicable to date-based sequences.", + "format": "date", + "type": "string", + "x-internal": false + }, + "deliverCount": { + "description": "\n\nThe total count of delivered mailings from this sequence step.", + "type": "integer", + "x-internal": false + }, + "displayName": { + "description": "\n\nA human-readable display name that captures the step’s type and order.", + "type": "string", + "x-internal": false + }, + "failureCount": { + "description": "\n\nThe total count of failed mailings from this sequence step.", + "type": "integer", + "x-internal": false + }, + "interval": { + "description": "\n\nThe interval (in seconds) until this step will activate; only applicable to interval-based sequences.", + "type": "integer", + "x-internal": false + }, + "negativeReplyCount": { + "description": "\n\nThe total count of negative reply mailings from this sequence step.", + "type": "integer", + "x-internal": false + }, + "neutralReplyCount": { + "description": "\n\nThe total count of neutral reply mailings from this sequence step.", + "type": "integer", + "x-internal": false + }, + "openCount": { + "description": "\n\nThe total count of opened mailings from this sequence step.", + "type": "integer", + "x-internal": false + }, + "optOutCount": { + "description": "\n\nThe total count of opted out mailings from this sequence step.", + "type": "integer", + "x-internal": false + }, + "order": { + "description": " \n\nThe step’s display order within its sequence.", + "type": "integer", + "x-internal": false + }, + "positiveReplyCount": { + "description": "\n\nThe total count of positive reply mailings from this sequence step.", + "type": "integer", + "x-internal": false + }, + "replyCount": { + "description": "\n\nThe total count of replied mailings from this sequence step.", + "type": "integer", + "x-internal": false + }, + "scheduleCount": { + "description": "\n\nThe total count of scheduled mailings from this sequence step.", + "type": "integer", + "x-internal": false + }, + "stepType": { + "description": " \n\nThe step’s type; must be \"auto_email\", \"manual_email\", \"call\" or \"task\".", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "taskAutoskipDelay": { + "description": "\n\nThe optional interval (in seconds) from when tasks created by this sequence step are overdue until they are automatically skipped.", + "type": "integer", + "x-internal": false + }, + "taskNote": { + "description": "\n\nAn optional note to associate with created tasks.", + "maxLength": 65535, + "type": "string", + "x-internal": false + }, + "updatedAt": { + "description": " \n\nThe date and time the sequence step was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "sequenceStepOverrideRelationships": { + "type": "object" + }, + "sequenceStepRelationships": { + "properties": { + "callPurpose": { + "description": "The default call purpose associated with the sequence step. You can use only the attribute id to filter sequenceSteps by callPurpose (e.g. filter[callPurpose][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["callPurpose"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["callPurpose"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "callPurpose", + "x-internal": false + }, + "calls": { + "description": "\n\nThe calls associated with the sequence step. You can use only the attribute id to filter sequenceSteps by calls (e.g. filter[calls][id]=X).", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["call"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "call" + }, + "type": "array", + "x-internal": false + }, + "creator": { + "description": "\n\nThe creator of the sequence step. You can use only the attribute id to filter sequenceSteps by creator (e.g. filter[creator][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + }, + "mailings": { + "description": "\n\nThe mailings associated with the sequence step. Relationship mailings cannot be used as a filter.", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["mailing"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "mailing" + }, + "type": "array", + "x-internal": false + }, + "sequence": { + "description": "The associated sequence. You can use attributes id, enabledAt and name to filter sequenceSteps by sequence (e.g. filter[sequence][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["sequence"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["sequence"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "sequence", + "x-internal": false + }, + "sequenceTemplates": { + "description": "\n\nThe sequence templates in use by this sequence step. You can use any filterable attribute of sequenceTemplates.", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["sequenceTemplate"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["sequenceTemplate"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "sequenceTemplate" + }, + "type": "array", + "x-internal": false + }, + "taskPriority": { + "description": "The associated task priority. You can use only the attribute id to filter sequenceSteps by taskPriority (e.g. filter[taskPriority][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["taskPriority"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["taskPriority"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "taskPriority", + "x-internal": false + }, + "tasks": { + "description": "\n\nThe tasks associated with the sequence step. You can use only the attribute id to filter sequenceSteps by tasks (e.g. filter[tasks][id]=X).", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["task"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "task" + }, + "type": "array", + "x-internal": false + }, + "updater": { + "description": "\n\nThe most recent updater of the sequence step. You can use only the attribute id to filter sequenceSteps by updater (e.g. filter[updater][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + } + }, + "type": "object" + }, + "sequenceStepResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/sequenceStep" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/sequenceStepRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "sequenceTemplate": { + "description": "An object used to track which templates are in use by which sequence steps.", + "properties": { + "bounceCount": { + "description": "\n\nThe total count of bounced mailings during this sequence template.", + "type": "integer", + "x-internal": false + }, + "clickCount": { + "description": "\n\nThe total count of clicked mailings from this sequence template.", + "type": "integer", + "x-internal": false + }, + "createdAt": { + "description": "\n\nThe date and time the sequence template was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "deliverCount": { + "description": "\n\nThe total count of delivered mailings from this sequence template.", + "type": "integer", + "x-internal": false + }, + "enabled": { + "description": "\n\nBoolean indicating if the sequence template is currently enabled.", + "type": "boolean", + "x-internal": false + }, + "enabledAt": { + "description": "\n\nDatetime for when the sequence template was enabled.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "failureCount": { + "description": "\n\nThe total count of failed mailings from this sequence template.", + "type": "integer", + "x-internal": false + }, + "isReply": { + "description": "\n\nBoolean indicating if the sequence template should be a reply email or a new thread.", + "type": "boolean", + "x-internal": false + }, + "negativeReplyCount": { + "description": "\n\nThe total count of negative reply mailings from this sequence template.", + "type": "integer", + "x-internal": false + }, + "neutralReplyCount": { + "description": "\n\nThe total count of neutral reply mailings from this sequence template.", + "type": "integer", + "x-internal": false + }, + "openCount": { + "description": "\n\nThe total count of opened mailings from this sequence template.", + "type": "integer", + "x-internal": false + }, + "optOutCount": { + "description": "\n\nThe total count of opted out mailings from this sequence template.", + "type": "integer", + "x-internal": false + }, + "positiveReplyCount": { + "description": "\n\nThe total count of positive reply mailings from this sequence template.", + "type": "integer", + "x-internal": false + }, + "replyCount": { + "description": "\n\nThe total count of replied mailings from this sequence template.", + "type": "integer", + "x-internal": false + }, + "scheduleCount": { + "description": "\n\nThe total count of scheduled mailings from this sequence template.", + "type": "integer", + "x-internal": false + }, + "updatedAt": { + "description": "\n\nThe date and time the sequence template was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "sequenceTemplateRelationships": { + "properties": { + "creator": { + "description": "\n\nUser that created the sequence template. You can use only the attribute id to filter sequenceTemplates by creator (e.g. filter[creator][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + }, + "sequenceStep": { + "description": "The sequence step that uses the sequence template. You can use any filterable attribute of sequenceStep.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["sequenceStep"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["sequenceStep"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "sequenceStep", + "x-internal": false + }, + "template": { + "description": "The template used for this sequence template. You can use only the attribute id to filter sequenceTemplates by template (e.g. filter[template][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["template"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["template"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "template", + "x-internal": false + }, + "updater": { + "description": "\n\nUser that last updated the sequence template. You can use only the attribute id to filter sequenceTemplates by updater (e.g. filter[updater][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + } + }, + "type": "object" + }, + "sequenceTemplateResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/sequenceTemplate" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/sequenceTemplateRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "smartViewNotificationRelationships": { + "properties": { + "owner": { + "description": "The owner of the notificiation.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + } + }, + "type": "object" + }, + "smartViewRelationships": { + "properties": { + "owner": { + "description": "The owner of the smart view.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + } + }, + "type": "object" + }, + "snippet": { + "description": "A piece of an email to be reused in multiple messages.", + "properties": { + "bodyHtml": { + "description": "\n\nThe HTML of the snippet.", + "maxLength": 16777215, + "type": "string", + "x-internal": false + }, + "bodyText": { + "description": "\n\nThe text of the snippet.", + "maxLength": 16777215, + "type": "string", + "x-internal": false + }, + "createdAt": { + "description": " \n\nThe date and time the snippet was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "name": { + "description": " \n\nThe name of the snippet.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "shareType": { + "description": " \n\nThe permissions for sharing the snippet; must be \"private\" or \"shared.\"", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "tags": { + "description": "\n\nA list of tags associated with the snippet (e.g. [\"Useful\", \"Prospecting\"]).", + "items": { + "type": "string" + }, + "type": "array", + "x-internal": false + }, + "updatedAt": { + "description": " \n\nThe date and time the snippet was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "snippetRelationships": { + "properties": { + "contentCategoryMemberships": { + "description": "The content categories (collections) of the snippet. You can use only the attribute id to filter snippets by contentCategoryMemberships (e.g. filter[contentCategoryMemberships][id]=X).", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["contentCategoryMembership"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["contentCategoryMembership"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "contentCategoryMembership" + }, + "type": "array", + "x-internal": false + }, + "creator": { + "description": "\n\nThe creator of the snippet. You can use only the attribute id to filter snippets by creator (e.g. filter[creator][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + }, + "owner": { + "description": "The owner of the snippet. You can use only the attribute id to filter snippets by owner (e.g. filter[owner][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + }, + "updater": { + "description": "\n\nThe updater of the snippet. You can use only the attribute id to filter snippets by updater (e.g. filter[updater][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + } + }, + "type": "object" + }, + "snippetResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/snippet" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/snippetRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "stage": { + "description": "A descriptor of the point in the process, used for categorizing Prospects.", + "properties": { + "color": { + "description": "\n\nThe color the stage label will be highlighted in the interface, specified as a hexidecimal value (e.g. \"#5951ff\").", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "createdAt": { + "description": " \n\nThe date and time the stage was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "name": { + "description": " \n\nThe name of the stage (e.g. \"Qualified Lead\").", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "order": { + "description": " \n\nThe stage's display order within the collection.", + "type": "integer", + "x-internal": false + }, + "updatedAt": { + "description": " \n\nThe date and time the stage was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "stageRelationships": { + "properties": { + "creator": { + "description": "\n\nThe creator of the stage. Relationship creator cannot be used as a filter.", + "oneOf": [ + { + "description": "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + } + ], + "x-internal": false + }, + "prospects": { + "description": "\n\nThe prospects associated to the stage. You can use only the attribute id to filter stages by prospects (e.g. filter[prospects][id]=X).", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["prospect"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "prospect" + }, + "type": "array", + "x-internal": false + }, + "updater": { + "description": "\n\nThe most recent updater of the stage. Relationship updater cannot be used as a filter.", + "oneOf": [ + { + "description": "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + } + ], + "x-internal": false + } + }, + "type": "object" + }, + "stageResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/stage" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/stageRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "surveyQuestionOptionRelationships": { + "type": "object" + }, + "surveyQuestionRelationships": { + "type": "object" + }, + "surveyRelationships": { + "type": "object" + }, + "surveyUserResponseRelationships": { + "properties": { + "user": { + "description": "\n\nThe user who responded.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + } + }, + "type": "object" + }, + "tagRelationships": { + "type": "object" + }, + "task": { + "description": "An item that requires action to complete.", + "properties": { + "action": { + "description": "\n\nThe action type of the task. Can be 'action_item', 'call', 'email', or 'in_person'.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "autoskipAt": { + "description": " \n\nThe optional date and time when the task will automatically be skipped. Tasks with an empty autoskip_at will never be autoskipped.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "compiledSequenceTemplateHtml": { + "description": "\n\nThe compiled template HTML of incomplete SMS or LinkedIn tasks associated with a sequence.", + "type": "string", + "x-internal": false + }, + "completed": { + "description": "\n\nA boolean value whether the task has been completed.", + "type": "boolean", + "x-internal": false + }, + "completedAt": { + "description": "\n\nThe date and time the task was completed.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "createdAt": { + "description": " \n\nThe date and time the task was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "dueAt": { + "description": " \n\nThe date and time the task is due.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "note": { + "description": "\n\nAn optional note for the task.", + "maxLength": 65535, + "type": "string", + "x-internal": false + }, + "opportunityAssociation": { + "description": "\n\nThe optional opportunity rule associated with the task. Can be 'recent_created', 'recent_updated', 'noop'.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "scheduledAt": { + "description": " \n\nThe date and time the pending task is scheduled for.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "state": { + "description": " \n\nThe current state of the task. Can be 'pending', 'incomplete', or 'complete'.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "stateChangedAt": { + "description": " \n\nThe date and time the state last changed.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "taskType": { + "description": " \n\nThe type of task. Can be 'follow_up', 'manual', 'no_reply', 'sequence_open', 'sequence_click', 'sequence_step_call', 'sequence_step_email', 'sequence_step_linkedin_interact_with_post', 'sequence_step_linkedin_other', 'sequence_step_linkedin_send_connection_request', 'sequence_step_linkedin_send_message', 'sequence_step_linkedin_view_profile', 'sequence_step_sms', 'sequence_step_task', or 'touch'. Tasks created through the API will automatically be 'manual' tasks.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "updatedAt": { + "description": " \n\nThe date and time the task was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "taskPriority": { + "description": "A descriptor of importance used for categorizing Tasks.", + "properties": { + "color": { + "description": "\n\nThe color the task priority label will be highlighted in the interface, specified as a hexadecimal value (e.g. \"0xFF5951FF\").", + "type": "integer", + "x-internal": false + }, + "createdAt": { + "description": " \n\nThe date and time the task priority was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "name": { + "description": " \n\nThe name of the task priority (e.g. \"High\").", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "updatedAt": { + "description": " \n\nThe date and time the task priority was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "weight": { + "description": " \n\nA relative value used for display order. Task priorities are listed from lowest to highest weight.", + "type": "integer", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "taskPriorityRelationships": { + "properties": { + "sequenceSteps": { + "description": "\n\nThe associated sequence steps. Relationship sequenceSteps cannot be used as a filter.", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["sequenceStep"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "sequenceStep" + }, + "type": "array", + "x-internal": false + }, + "tasks": { + "description": "\n\nThe associated tasks. Relationship tasks cannot be used as a filter.", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["task"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "task" + }, + "type": "array", + "x-internal": false + } + }, + "type": "object" + }, + "taskPriorityResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/taskPriority" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/taskPriorityRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "taskRelationships": { + "properties": { + "account": { + "description": "\n\nThe associated account. You can use only the attribute id to filter tasks by account (e.g. filter[account][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["account"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["account"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "account", + "x-internal": false + }, + "call": { + "description": "\n\nThe associated call, if a call task. You can use only the attribute id to filter tasks by call (e.g. filter[call][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["call"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["call"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "call", + "x-internal": false + }, + "calls": { + "description": "\n\nThe associated calls, if a call task. You can use only the attribute id to filter tasks by calls (e.g. filter[calls][id]=X).", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["call"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "call" + }, + "type": "array", + "x-internal": false + }, + "completer": { + "description": "\n\nThe completer of this task. You can use only the attribute id to filter tasks by completer (e.g. filter[completer][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + }, + "creator": { + "description": "\n\nThe creator of this task. Relationship creator cannot be used as a filter.", + "oneOf": [ + { + "description": "A descriptor of a single step within an automated sequence.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["stage", "user", "sequenceStep"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["stage", "user", "sequenceStep"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "sequenceStep" + }, + { + "description": "A descriptor of the point in the process, used for categorizing Prospects.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["stage", "user", "sequenceStep"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["stage", "user", "sequenceStep"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "stage" + }, + { + "description": "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["stage", "user", "sequenceStep"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["stage", "user", "sequenceStep"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + } + ], + "x-internal": false + }, + "mailing": { + "description": "\n\nThe associated mailing, if a mailing task. You can use only the attribute id to filter tasks by mailing (e.g. filter[mailing][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["mailing"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["mailing"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "mailing", + "x-internal": false + }, + "mailings": { + "description": "\n\nThe associated mailings, if a mailing task. You can use only the attribute id to filter tasks by mailings (e.g. filter[mailings][id]=X).", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["mailing"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "mailing" + }, + "type": "array", + "x-internal": false + }, + "opportunity": { + "description": "\n\nThe associated opportunity. You can use only the attribute id to filter tasks by opportunity (e.g. filter[opportunity][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["opportunity"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["opportunity"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "opportunity", + "x-internal": false + }, + "owner": { + "description": "The owner of this task. You can use attributes id, email and firstName to filter tasks by owner (e.g. filter[owner][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + }, + "prospect": { + "description": "\n\nThe associated prospect. You can use attributes id, byPersonaId, byStageId, createdAt, firstName, tags, title and updatedAt to filter tasks by prospect (e.g. filter[prospect][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["prospect"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["prospect"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "prospect", + "x-internal": false + }, + "sequence": { + "description": "\n\nThe associated sequence. You can use attributes id and tags to filter tasks by sequence (e.g. filter[sequence][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["sequence"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["sequence"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "sequence", + "x-internal": false + }, + "sequenceSequenceSteps": { + "description": "\n\nThe sequence steps of the associated sequence. You can use only the attribute id to filter tasks by sequenceSequenceSteps (e.g. filter[sequenceSequenceSteps][id]=X).", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["sequenceStep"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["sequenceStep"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "sequenceStep" + }, + "type": "array", + "x-internal": false + }, + "sequenceState": { + "description": "\n\nThe associated sequence state. You can use only the attribute id to filter tasks by sequenceState (e.g. filter[sequenceState][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["sequenceState"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["sequenceState"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "sequenceState", + "x-internal": false + }, + "sequenceStep": { + "description": "\n\nThe associated sequence step. You can use attributes id and stepType to filter tasks by sequenceStep (e.g. filter[sequenceStep][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["sequenceStep"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["sequenceStep"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "sequenceStep", + "x-internal": false + }, + "sequenceTemplate": { + "description": "\n\nThe associated sequence template. You can use only the attribute id to filter tasks by sequenceTemplate (e.g. filter[sequenceTemplate][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["sequenceTemplate"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["sequenceTemplate"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "sequenceTemplate", + "x-internal": false + }, + "subject": { + "description": "The task's subject, either an account or prospect. Relationship subject cannot be used as a filter.", + "oneOf": [ + { + "description": "A descriptor of a person.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["account", "opportunity", "prospect"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["account", "opportunity", "prospect"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "prospect" + }, + { + "description": "A descriptor of a named company used to categorize prospects within an account-based sales approach.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["account", "opportunity", "prospect"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["account", "opportunity", "prospect"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "account" + }, + { + "description": "An opportunity for a sale or pending deal. Requires the Opportunities SKU to be enabled in order to have access. Please contact support for more assistance.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["account", "opportunity", "prospect"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["account", "opportunity", "prospect"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "opportunity" + } + ], + "x-internal": false + }, + "taskPriority": { + "description": "The associated task priority. You can use attributes id and name to filter tasks by taskPriority (e.g. filter[taskPriority][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["taskPriority"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["taskPriority"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "taskPriority", + "x-internal": false + }, + "template": { + "description": "\n\nThe associated template. You can use only the attribute id to filter tasks by template (e.g. filter[template][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["template"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["template"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "template", + "x-internal": false + } + }, + "type": "object" + }, + "taskResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/task" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/taskRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "taskThemeRelationships": { + "type": "object" + }, + "team": { + "description": "A descriptor of a group of users.", + "properties": { + "color": { + "description": "\n\nThe color used to label and highlight the team.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "createdAt": { + "description": " \n\nThe date and time the team was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "name": { + "description": " \n\nThe name of the team (e.g. \"SDRs\").", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "scimExternalId": { + "description": "\n\nThe ID from the SCIM provisioning service used to create the team.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "scimSource": { + "description": "\n\nThe name of the SCIM provisioning source used to create the team.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "updatedAt": { + "description": " \n\nThe date and time the team was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "teamMembershipRelationships": { + "properties": { + "team": { + "description": "The team associated with the team membership.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["team"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["team"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "team", + "x-internal": false + }, + "user": { + "description": "The user associated with the team membership.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + } + }, + "type": "object" + }, + "teamRelationships": { + "properties": { + "contentCategories": { + "description": "The content categories that are assigned to the team. Relationship contentCategories cannot be used as a filter.", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["contentCategory"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["contentCategory"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "contentCategory" + }, + "type": "array", + "x-internal": false + }, + "creator": { + "description": "\n\nThe creator of the team. Relationship creator cannot be used as a filter.", + "oneOf": [ + { + "description": "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + } + ], + "x-internal": false + }, + "updater": { + "description": "\n\nThe most recent updater of the team. Relationship updater cannot be used as a filter.", + "oneOf": [ + { + "description": "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + } + ], + "x-internal": false + }, + "users": { + "description": "The users associated with the team. You can use only the attribute id to filter teams by users (e.g. filter[users][id]=X).", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + }, + "type": "array", + "x-internal": false + } + }, + "type": "object" + }, + "teamResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/team" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/teamRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "teamSettingsRelationships": { + "properties": { + "profile": { + "description": "The governance profile that is applied to the team.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["profile"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["profile"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "profile", + "x-internal": false + }, + "team": { + "description": "The team the settings apply to.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["team"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["team"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "team", + "x-internal": false + } + }, + "type": "object" + }, + "template": { + "description": "A reusable template for building emails.", + "properties": { + "archived": { + "description": "\n\nBoolean value indicating if the template has been archived.", + "type": "boolean", + "x-internal": false + }, + "archivedAt": { + "description": " \n\nThe date and time the template was archived.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "bccRecipients": { + "description": "\n\nA list of default person and email address pairs to receive this template in the \"bcc\" field (e.g. [Billy Bob ``])", + "items": { + "type": "string" + }, + "type": "array", + "x-internal": false + }, + "bodyHtml": { + "description": "\n\nThe body HTML of the template.", + "maxLength": 16777215, + "type": "string", + "x-internal": false + }, + "bodyText": { + "description": "\n\nThe body text of the template.", + "maxLength": 16777215, + "type": "string", + "x-internal": false + }, + "bounceCount": { + "description": "\n\nThe total count of bounced mailings during this template.", + "type": "integer", + "x-internal": false + }, + "ccRecipients": { + "description": "\n\nA list of default person and email address pairs to receive this template in the \"cc\" field (e.g. [Billy Bob ``])", + "items": { + "type": "string" + }, + "type": "array", + "x-internal": false + }, + "clickCount": { + "description": " \n\nThe total count of clicked mailings from this template.", + "type": "integer", + "x-internal": false + }, + "createdAt": { + "description": " \n\nThe date and time the template was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "deliverCount": { + "description": " \n\nThe total count of delivered mailings from this template.", + "type": "integer", + "x-internal": false + }, + "failureCount": { + "description": "\n\nThe total count of failed mailings from this template.", + "type": "integer", + "x-internal": false + }, + "lastUsedAt": { + "description": " \n\nThe last time the template was used.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "name": { + "description": " \n\nThe name of the template.", + "maxLength": 225, + "type": "string", + "x-internal": false + }, + "negativeReplyCount": { + "description": "\n\nThe total count of negative reply mailings from this template.", + "type": "integer", + "x-internal": false + }, + "neutralReplyCount": { + "description": "\n\nThe total count of neutral reply mailings from this template.", + "type": "integer", + "x-internal": false + }, + "openCount": { + "description": " \n\nThe total count of opened mailings from this template.", + "type": "integer", + "x-internal": false + }, + "optOutCount": { + "description": "\n\nThe total count of opted out mailings from this template.", + "type": "integer", + "x-internal": false + }, + "positiveReplyCount": { + "description": "\n\nThe total count of positive reply mailings from this template.", + "type": "integer", + "x-internal": false + }, + "replyCount": { + "description": " \n\nThe total count of replied mailings from this template.", + "type": "integer", + "x-internal": false + }, + "scheduleCount": { + "description": "\n\nThe total count of scheduled mailings from this template.", + "type": "integer", + "x-internal": false + }, + "shareType": { + "description": " \n\nThe share type must be one of \"read_only,\" \"private,\" or \"shared\".", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "subject": { + "description": "\n\nThe subject line for the email to be sent.", + "type": "string", + "x-internal": false + }, + "tags": { + "description": "\n\nA list of tag values associated with the template (e.g. [\"Sequencing\", \"Quick Response\"]).", + "items": { + "type": "string" + }, + "type": "array", + "x-internal": false + }, + "toRecipients": { + "description": "\n\nA list of default person and email address pairs to receive this template in the \"to\" field (e.g. [\"Billy Bob \"])", + "items": { + "type": "string" + }, + "type": "array", + "x-internal": false + }, + "trackLinks": { + "description": "\n\nBoolean value indicating if link tracking is on for the template.", + "type": "boolean", + "x-internal": false + }, + "trackOpens": { + "description": "\n\nBoolean value indicating if open tracking is on for the template.", + "type": "boolean", + "x-internal": false + }, + "updatedAt": { + "description": " \n\nThe date and time the template was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "templateRelationships": { + "properties": { + "contentCategoryMemberships": { + "description": "The content cateogories with which this template is associated. Relationship contentCategoryMemberships cannot be used as a filter.", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["contentCategoryMembership"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["contentCategoryMembership"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "contentCategoryMembership" + }, + "type": "array", + "x-internal": false + }, + "creator": { + "description": "\n\nThe creator of the template. You can use only the attribute id to filter templates by creator (e.g. filter[creator][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + }, + "owner": { + "description": "The owner of the template. You can use only the attribute id to filter templates by owner (e.g. filter[owner][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + }, + "recipients": { + "description": "\n\nA list of default email addresses to receive this template. You can use only the attribute id to filter templates by recipients (e.g. filter[recipients][id]=X).", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["recipient"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["recipient"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "recipient" + }, + "type": "array", + "x-internal": false + }, + "sequenceTemplates": { + "description": "\n\nThe sequence templates using the template for their content. Relationship sequenceTemplates cannot be used as a filter.", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["sequenceTemplate"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["sequenceTemplate"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "sequenceTemplate" + }, + "type": "array", + "x-internal": false + }, + "updater": { + "description": "\n\nThe creator of the template. You can use only the attribute id to filter templates by updater (e.g. filter[updater][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + } + }, + "type": "object" + }, + "templateResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/template" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/templateRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "user": { + "description": "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users.", + "properties": { + "accountsViewId": { + "description": "\n\nThe default smart view to load on the account index view.", + "type": "integer", + "x-internal": false + }, + "activityNotificationsDisabled": { + "description": "\n\nA boolean value whether the user's activity notifications are disabled.", + "type": "boolean", + "x-internal": false + }, + "bounceWarningEmailEnabled": { + "description": "\n\nA boolean value whether the user's bounce warning emails are enabled.", + "type": "boolean", + "x-internal": false + }, + "bridgePhone": { + "description": "\n\nThe telephone number of the user's outbound bridge phone.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "bridgePhoneExtension": { + "description": "\n\nThe extension number of the user's outbound bridge phone.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "callsViewId": { + "description": "\n\nThe default smart view to load on the calls view.", + "type": "integer", + "x-internal": false + }, + "controlledTabDefault": { + "description": "\n\nThe user's preferred default tab to open when in task flow.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "createdAt": { + "description": " \n\nThe date and time the user was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "currentSignInAt": { + "description": " \n\nThe date and time the user most recently signed in.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "custom1": { + "description": "\n\nThe value of the user's first custom field.", + "maxLength": 225, + "type": "string", + "x-internal": false + }, + "custom2": { + "description": "\n\nThe value of the user's second custom field.", + "maxLength": 225, + "type": "string", + "x-internal": false + }, + "custom3": { + "description": "\n\nThe value of the user's third custom field.", + "maxLength": 225, + "type": "string", + "x-internal": false + }, + "custom4": { + "description": "\n\nThe value of the user's fourth custom field.", + "maxLength": 225, + "type": "string", + "x-internal": false + }, + "custom5": { + "description": "\n\nThe value of the user's fifth custom field.", + "maxLength": 225, + "type": "string", + "x-internal": false + }, + "dailyDigestEmailEnabled": { + "description": "\n\nA boolean value whether the user's daily digest emails are enabled.", + "type": "boolean", + "x-internal": false + }, + "defaultRulesetId": { + "description": "\n\nThe id of the default ruleset assigned to the user.", + "type": "integer", + "x-internal": false + }, + "duties": { + "description": "\n\nA collection of the user's work roles.", + "type": "object", + "x-internal": false + }, + "email": { + "description": " \n\nThe email address of the user. Cannot be updated via the API.", + "format": "email", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "enableVoiceRecordings": { + "description": "\n\nA boolean value whether the user has voice recordings enabled.", + "type": "boolean", + "x-internal": false + }, + "engagementEmailsEnabled": { + "description": "\n\nA boolean value whether the user has engagement emails enabled.", + "type": "boolean", + "x-internal": false + }, + "firstName": { + "description": " \n\nThe first name of the user.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "inboundBridgePhone": { + "description": "\n\nThe telephone number of the user's inbound bridge phone.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "inboundBridgePhoneExtension": { + "description": "\n\nThe extension number of the user's inbound bridge phone.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "inboundCallBehavior": { + "description": "\n\nThe behavior of inbound calls. Must be either \"inbound_bridge\" or \"inbound_voicemail\".", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "inboundPhoneType": { + "description": "\n\nThe user's type of telephone for inbound calls. Must be either \"bridge\", \"voip\" or \"bridge_and_voip\".", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "inboundVoicemailCustomMessageText": { + "description": "\n\nThe message for inbound voicemails (e.g. \"Please leave a message and I will get back to you as soon I can\").", + "maxLength": 1024, + "type": "string", + "x-internal": false + }, + "inboundVoicemailMessageTextVoice": { + "description": "\n\nThe gender of the voice that reads the voicemail message. Must be either \"man\" or \"woman\".", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "inboundVoicemailPromptType": { + "description": "\n\nThe type of inbound voicemail to use. Must be either \"automated\", \"recorded\", or \"off\".", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "kaiaRecordingsViewId": { + "description": "\n\nThe default smart view to load on the kaia recordings view.", + "type": "integer", + "x-internal": false + }, + "keepBridgePhoneConnected": { + "description": "\n\nWhether to keep the user's bridge phone connected in-between outbound calls.", + "type": "boolean", + "x-internal": false + }, + "lastName": { + "description": " \n\nThe last name of the user.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "lastSignInAt": { + "description": "\n\nThe date and time the user previously signed in.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "locked": { + "description": " \n\nA boolean value whether the user is locked out of the application.", + "type": "boolean", + "x-internal": false + }, + "mailboxErrorEmailEnabled": { + "description": "\n\nA boolean value whether the user's mailbox error emails are enabled.", + "type": "boolean", + "x-internal": false + }, + "meetingEngagementNotificationEnabled": { + "description": "\n\nA boolean value whether the user's meeting engagement notifications are enabled.", + "type": "boolean", + "x-internal": false + }, + "name": { + "description": "\n\nThe full name of the user.", + "type": "string", + "x-internal": false + }, + "notificationsEnabled": { + "description": "\n\nA boolean value whether the user's notifications are enabled.", + "type": "boolean", + "x-internal": false + }, + "oceClickToDialEverywhere": { + "description": "\n\nA boolean value indicating if phone calls will launch a call from Outreach (Salesforce, Github, Gmail, LinkedIn, and Twitter).", + "type": "boolean", + "x-internal": false + }, + "oceGmailToolbar": { + "description": "\n\nA boolean value indicating whether the Outreach Gmail toolbar is enabled.", + "type": "boolean", + "x-internal": false + }, + "oceGmailTrackingState": { + "description": "\n\nThe user's current email tracking settings when using Outreach Everywhere with GMail.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "oceSalesforceEmailDecorating": { + "description": "\n\nA boolean value indicating if emails are enabled in Outreach Everywhere with Salesforce.", + "type": "boolean", + "x-internal": false + }, + "oceSalesforcePhoneDecorating": { + "description": "\n\nA boolean value indicating if phone calls are enabled in Outreach Everywhere with Salesforce.", + "type": "boolean", + "x-internal": false + }, + "oceUniversalTaskFlow": { + "description": "\n\nA boolean value indicating whether Outreach Everywhere universal task flow is enabled.", + "type": "boolean", + "x-internal": false + }, + "oceWindowMode": { + "description": "\n\nA boolean value indicating whether Outreach Everywhere window mode is enabled.", + "type": "boolean", + "x-internal": false + }, + "opportunitiesViewId": { + "description": "\n\nThe default smart view to load on the opportunity index view.", + "type": "integer", + "x-internal": false + }, + "passwordExpiresAt": { + "description": "\n\nThe date and time the current password expires.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "phoneCountryCode": { + "description": "\n\nThe country code of the user's phone.", + "maxLength": 2, + "type": "string", + "x-internal": false + }, + "phoneNumber": { + "description": "\n\nThe telephone number of the user's phone.", + "type": "string", + "x-internal": false + }, + "phoneType": { + "description": "\n\nThe user's type of telephone for outbound calls. Must be either \"bridge\" or \"voip\".", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "pluginAlertNotificationEnabled": { + "description": "\n\nA boolean value whether the user's plugin related error notifications are enabled.", + "type": "boolean", + "x-internal": false + }, + "preferredVoiceRegion": { + "description": "\n\nA string that represents Twilio data center used to connect to Twilio.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "prefersLocalPresence": { + "description": "\n\nA boolean value whether the user prefers that a voice call comes from a local phone number.", + "type": "boolean", + "x-internal": false + }, + "primaryTimezone": { + "description": "\n\nThe primary preferred timezone to use when scheduling meetings.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "prospectsViewId": { + "description": "\n\nThe default smart view to load on the prospect index view.", + "type": "integer", + "x-internal": false + }, + "reportsTeamPerfViewId": { + "description": "\n\nThe default smart view to load on the team performance reports view.", + "type": "integer", + "x-internal": false + }, + "reportsViewId": { + "description": "\n\nThe default smart view to load on the reports view.", + "type": "integer", + "x-internal": false + }, + "scimExternalId": { + "description": "\n\nThe ID from the SCIM provisioning service used to create the user.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "scimSource": { + "description": "\n\nThe name of the SCIM provisioning source used to create the user.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "secondaryTimezone": { + "description": "\n\nThe secondary preferred timezone to use when scheduling meetings.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "senderNotificationsExcluded": { + "description": "\n\nA boolean value whether the user's sender notifications are excluded.", + "type": "boolean", + "x-internal": false + }, + "tasksViewId": { + "description": "\n\nThe default smart view to load on the tasks index view.", + "type": "integer", + "x-internal": false + }, + "teamsViewId": { + "description": "\n\nThe default smart view to load on the teams index view.", + "type": "integer", + "x-internal": false + }, + "tertiaryTimezone": { + "description": "\n\nThe tertiary preferred timezone to use when scheduling meetings.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "textingEmailNotifications": { + "description": "\n\nA boolean value whether to send the user email notifications when a text message is missed.", + "type": "boolean", + "x-internal": false + }, + "title": { + "description": "\n\nThe user's job title (e.g. \"Staff Accountant\").", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "unknownReplyEmailEnabled": { + "description": "\n\nA boolean value whether the user's unknown reply emails are enabled.", + "type": "boolean", + "x-internal": false + }, + "updatedAt": { + "description": " \n\nThe date and time the user was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "userGuid": { + "description": "\n\nThe globally unique ID (GUID) assigned to the user.", + "type": "string", + "x-internal": false + }, + "username": { + "description": " \n\nA reader friendly unique identifier of the user.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "usersViewId": { + "description": "\n\nThe default smart view to load on the users index view.", + "type": "integer", + "x-internal": false + }, + "voicemailNotificationEnabled": { + "description": "\n\nA boolean value whether the user's voicemail notifications are enabled.", + "type": "boolean", + "x-internal": false + }, + "weeklyDigestEmailEnabled": { + "description": "\n\nA boolean value whether the user's weekly digest email are enabled.", + "type": "boolean", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "userRelationships": { + "properties": { + "contentCategories": { + "description": "The groupings of sequences, snippets and templates that this user has access to. Relationship contentCategories cannot be used as a filter.", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["contentCategory"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["contentCategory"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "contentCategory" + }, + "type": "array", + "x-internal": false + }, + "creator": { + "description": "\n\nThe creator of the user. Relationship creator cannot be used as a filter.", + "oneOf": [ + { + "description": "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + } + ], + "x-internal": false + }, + "mailbox": { + "description": "The default mailbox associated with the user. Relationship mailbox cannot be used as a filter.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["mailbox"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["mailbox"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "mailbox", + "x-internal": false + }, + "mailboxes": { + "description": "All mailboxes associated with the user. Relationship mailboxes cannot be used as a filter.", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["mailbox"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["mailbox"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "mailbox" + }, + "type": "array", + "x-internal": false + }, + "profile": { + "description": "The user's profile in Outreach. You can use only the attribute id to filter users by profile (e.g. filter[profile][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["profile"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["profile"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "profile", + "x-internal": false + }, + "recipients": { + "description": "Recipients that will be included by default in all emails composed by user. Relationship recipients cannot be used as a filter.", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["recipient"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["recipient"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "recipient" + }, + "type": "array", + "x-internal": false + }, + "role": { + "description": "The role associated with the user. You can use only the attribute id to filter users by role (e.g. filter[role][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["role"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["role"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "role", + "x-internal": false + }, + "teams": { + "description": "The teams the user belongs to. You can use only the attribute id to filter users by teams (e.g. filter[teams][id]=X).", + "items": { + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["team"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["team"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "team" + }, + "type": "array", + "x-internal": false + }, + "updater": { + "description": "\n\nThe most recent updater of the user. Relationship updater cannot be used as a filter.", + "oneOf": [ + { + "description": "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user" + } + ], + "x-internal": false + } + }, + "type": "object" + }, + "userResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/user" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/userRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + }, + "voicePluginRelationships": { + "type": "object" + }, + "voicemailPromptRelationships": { + "properties": { + "user": { + "description": "", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + } + }, + "type": "object" + }, + "webhook": { + "description": "A configurable notification that submits external JSON-API-formatted HTTP requests whenever resources are modified.", + "properties": { + "action": { + "description": " \n\nThe action that will trigger this webhook (e.g. \"*\", \"created\", \"updated\", \"destroyed\"). Webhooks will only execute if both the action and resource match.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "active": { + "description": " \n\nA boolean value indicating whether the webhook is active.", + "type": "boolean", + "x-internal": false + }, + "createdAt": { + "description": "\n\nThe date and time the webhook was created.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "resource": { + "description": " \n\nThe resource that will trigger this webhook (e.g. \"*\", \"prospect\", \"sequenceState\"). Webhooks will only execute if both the action and resource match.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "secret": { + "description": "\n\nA private token used to verify the authenticity of incoming webhook payloads.", + "maxLength": 255, + "type": "string", + "x-internal": false + }, + "updatedAt": { + "description": "\n\nThe date and time the webhook was last updated.", + "format": "date-time", + "type": "string", + "x-internal": false + }, + "url": { + "description": "\n\nThe URL where the webhook will route its POST HTTP request.", + "maxLength": 1024, + "type": "string", + "x-internal": false + } + }, + "type": "object", + "x-internal": false + }, + "webhookRelationships": { + "properties": { + "authorizer": { + "description": "\n\nThe authorizer of the webhook. The webhook will not deliver results if the authorizer does not have permission to read the resource being returned. Relationship authorizer cannot be used as a filter.", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + }, + "creator": { + "description": "\n\nThe creator of the webhook. You can use only the attribute id to filter webhooks by creator (e.g. filter[creator][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + }, + "updater": { + "description": "\n\nThe most recent updater of the webhook. You can use only the attribute id to filter webhooks by updater (e.g. filter[updater][id]=X).", + "oneOf": [ + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "data": { + "properties": { + "id": { + "type": "integer" + }, + "type": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "data" + }, + { + "description": "This Relationship object may contain one of following properties.", + "properties": { + "links": { + "properties": { + "related": { + "enum": ["user"], + "type": "string" + } + } + } + }, + "title": "links" + } + ], + "title": "user", + "x-internal": false + } + }, + "type": "object" + }, + "webhookResponse": { + "properties": { + "attributes": { + "$ref": "#/components/schemas/webhook" + }, + "id": { + "type": "integer" + }, + "relationships": { + "$ref": "#/components/schemas/webhookRelationships" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "x-internal": false + } + }, + "securitySchemes": { + "bearerAuth": { + "bearerFormat": "JWT", + "scheme": "bearer", + "type": "http" + }, + "s2sAuthToken": { + "bearerFormat": "JWT", + "scheme": "bearer", + "type": "http" + } + } + } +} diff --git a/packages/core/remotes/impl/outreach/outreach.openapi.yaml b/packages/core/remotes/impl/outreach/outreach.openapi.yaml deleted file mode 100644 index 30f48124c..000000000 --- a/packages/core/remotes/impl/outreach/outreach.openapi.yaml +++ /dev/null @@ -1,20219 +0,0 @@ ---- - openapi: "3.0.3" - info: - title: "Outreach REST API Reference" - version: "" - servers: - - - url: "https://api.outreach.io/api/v2" - security: - - - bearerAuth: [] - tags: - - - description: "\n\n## Account Relationships\n\n\n\n## Account Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n| dataConnections | The set of connections a given Account has to external sources. | provideDataConnections |\n\n\n## ⌵ Account Actions\n\n" - name: "Account" - x-internal: false - - - description: "\n\n## ⌵ Audit Actions\n\n" - name: "Audit" - x-internal: false - - - description: "\n\n## Call Disposition Relationships\n\n\n\n## Call Disposition Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Call Disposition Actions\n\n" - name: "Call Disposition" - x-internal: false - - - description: "\n\n## Call Purpose Relationships\n\n\n\n## Call Purpose Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Call Purpose Actions\n\n" - name: "Call Purpose" - x-internal: false - - - description: "\n\n## Call Relationships\n\n\n\n## Call Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n| dataConnections | The set of connections a given Call has to external sources. | provideDataConnections |\n\n\n## ⌵ Call Actions\n\n" - name: "Call" - x-internal: false - - - description: "\n\n## Compliance Request Relationships\n\n\n\n## ⌵ Compliance Request Actions\n\n" - name: "Compliance Request" - x-internal: false - - - description: "\n\n## Content Category Relationships\n\n\n\n## Content Category Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Content Category Actions\n\n" - name: "Content Category" - x-internal: false - - - description: "\n\n## Content Category Membership Relationships\n\n\n\n## Content Category Membership Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Content Category Membership Actions\n\n" - name: "Content Category Membership" - x-internal: false - - - description: "\n\n## Content Category Ownership Relationships\n\n\n\n## Content Category Ownership Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Content Category Ownership Actions\n\n" - name: "Content Category Ownership" - x-internal: false - - - description: "\n\n## ⌵ Custom Duty Actions\n\n" - name: "Custom Duty" - x-internal: false - - - description: "\n\n## ⌵ Duty Actions\n\n" - name: "Duty" - x-internal: false - - - description: "\n\n## Email Address Relationships\n\n\n\n## Email Address Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Email Address Actions\n\n" - name: "Email Address" - x-internal: false - - - description: "\n\n## Event Relationships\n\n\n\n## ⌵ Event Actions\n\n" - name: "Event" - x-internal: false - - - description: "\n\n## Favorite Relationships\n\n\n\n## Favorite Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Favorite Actions\n\n" - name: "Favorite" - x-internal: false - - - description: "\n\n## Mail Alias Relationships\n\n\n\n## ⌵ Mail Alias Actions\n\n" - name: "Mail Alias" - x-internal: false - - - description: "\n\n## Mailbox Relationships\n\n\n\n## Mailbox Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Mailbox Actions\n\n" - name: "Mailbox" - x-internal: false - - - description: "\n\n## Mailing Relationships\n\n\n\n## Mailing Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| dataConnections | The set of connections a given Mailing has to external sources. | provideDataConnections |\n\n\n## ⌵ Mailing Actions\n\n" - name: "Mailing" - x-internal: false - - - description: "\n\n## Opportunity Relationships\n\n\n\n## Opportunity Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n| dataConnections | The set of connections a given Opportunity has to external sources. | provideDataConnections |\n\n\n## ⌵ Opportunity Actions\n\n" - name: "Opportunity" - x-internal: false - - - description: "\n\n## Opportunity Prospect Role Relationships\n\n\n\n## Opportunity Prospect Role Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Opportunity Prospect Role Actions\n\n" - name: "Opportunity Prospect Role" - x-internal: false - - - description: "\n\n## Opportunity Stage Relationships\n\n\n\n## Opportunity Stage Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n| dataConnections | The set of connections a given Opportunity Stage has to external sources. | provideDataConnections |\n\n\n## ⌵ Opportunity Stage Actions\n\n" - name: "Opportunity Stage" - x-internal: false - - - description: "\n\n## Persona Relationships\n\n\n\n## Persona Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Persona Actions\n\n" - name: "Persona" - x-internal: false - - - description: "\n\n## Phone Number Relationships\n\n\n\n## Phone Number Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Phone Number Actions\n\n" - name: "Phone Number" - x-internal: false - - - description: "\n\n## Profile Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Profile Actions\n\n" - name: "Profile" - x-internal: false - - - description: "\n\n## Prospect Relationships\n\n\n\n## Prospect Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n| dataConnections | The set of connections a given Prospect has to external sources. | provideDataConnections |\n\n\n## ⌵ Prospect Actions\n\n" - name: "Prospect" - x-internal: false - - - description: "\n\n## Recipient Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Recipient Actions\n\n" - name: "Recipient" - x-internal: false - - - description: "\n\n## Role Relationships\n\n\n\n## Role Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Role Actions\n\n" - name: "Role" - x-internal: false - - - description: "\n\n## Ruleset Relationships\n\n\n\n## Ruleset Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Ruleset Actions\n\n" - name: "Ruleset" - x-internal: false - - - description: "\n\n## Sequence State Relationships\n\n\n\n## Sequence State Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Sequence State Actions\n\n" - name: "Sequence State" - x-internal: false - - - description: "\n\n## Sequence Step Relationships\n\n\n\n## Sequence Step Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Sequence Step Actions\n\n" - name: "Sequence Step" - x-internal: false - - - description: "\n\n## Sequence Template Relationships\n\n\n\n## Sequence Template Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Sequence Template Actions\n\n" - name: "Sequence Template" - x-internal: false - - - description: "\n\n## Sequence Relationships\n\n\n\n## Sequence Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Sequence Actions\n\n" - name: "Sequence" - x-internal: false - - - description: "\n\n## Snippet Relationships\n\n\n\n## Snippet Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Snippet Actions\n\n" - name: "Snippet" - x-internal: false - - - description: "\n\n## Stage Relationships\n\n\n\n## Stage Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n| dataConnections | The set of connections a given Stage has to external sources. | provideDataConnections |\n\n\n## ⌵ Stage Actions\n\n" - name: "Stage" - x-internal: false - - - description: "\n\n## Task Priority Relationships\n\n\n\n## ⌵ Task Priority Actions\n\n" - name: "Task Priority" - x-internal: false - - - description: "\n\n## Task Relationships\n\n\n\n## Task Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n| dataConnections | The set of connections a given Task has to external sources. | provideDataConnections |\n\n\n## ⌵ Task Actions\n\n" - name: "Task" - x-internal: false - - - description: "\n\n## Team Relationships\n\n\n\n## Team Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Team Actions\n\n" - name: "Team" - x-internal: false - - - description: "\n\n## Template Relationships\n\n\n\n## Template Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Template Actions\n\n" - name: "Template" - x-internal: false - - - description: "\n\n## User Relationships\n\n\n\n## User Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| dataConnections | The set of connections a given User has to external sources. | provideDataConnections |\n\n\n## ⌵ User Actions\n\n" - name: "User" - x-internal: false - - - description: "\n\n## Webhook Relationships\n\n\n\n## Webhook Resource Metadata\n\n| **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |\n| --- | --- | --- |\n| canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |\n| canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta |\n\n\n## ⌵ Webhook Actions\n\n" - name: "Webhook" - x-internal: false - paths: - /accounts: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/accountResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Get a Collection of Accounts" - tags: - - "Account" - x-internal: false - post: - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/account" - relationships: - $ref: "#/components/schemas/accountRelationships" - type: - type: "string" - type: "object" - required: true - responses: - 201: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/accountResponse" - description: "Created" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Create a New Account" - tags: - - "Account" - x-internal: false - /accounts/{id}: - delete: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 204: - content: - application/vnd.api+json: {} - description: "Deleted" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Delete an Existing Account by ID" - tags: - - "Account" - x-internal: false - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/accountResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Get an Account by ID" - tags: - - "Account" - x-internal: false - patch: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/account" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/accountRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - required: true - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/account" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/accountRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Update an Account" - tags: - - "Account" - x-internal: false - /audits: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/auditResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Get a Collection of Audits" - tags: - - "Audit" - x-internal: false - /callDispositions: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/callDispositionResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Get a Collection of Call Dispositions" - tags: - - "Call Disposition" - x-internal: false - post: - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/callDisposition" - relationships: - $ref: "#/components/schemas/callDispositionRelationships" - type: - type: "string" - type: "object" - required: true - responses: - 201: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/callDispositionResponse" - description: "Created" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Create a New Call Disposition" - tags: - - "Call Disposition" - x-internal: false - /callDispositions/{id}: - delete: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 204: - content: - application/vnd.api+json: {} - description: "Deleted" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Delete an Existing Call Disposition by ID" - tags: - - "Call Disposition" - x-internal: false - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/callDispositionResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - summary: "Get a Call Disposition by ID" - tags: - - "Call Disposition" - x-internal: false - patch: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/callDisposition" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/callDispositionRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - required: true - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/callDisposition" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/callDispositionRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Update a Call Disposition" - tags: - - "Call Disposition" - x-internal: false - /callPurposes: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/callPurposeResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Get a Collection of Call Purposes" - tags: - - "Call Purpose" - x-internal: false - post: - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/callPurpose" - relationships: - $ref: "#/components/schemas/callPurposeRelationships" - type: - type: "string" - type: "object" - required: true - responses: - 201: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/callPurposeResponse" - description: "Created" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Create a New Call Purpose" - tags: - - "Call Purpose" - x-internal: false - /callPurposes/{id}: - delete: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 204: - content: - application/vnd.api+json: {} - description: "Deleted" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Delete an Existing Call Purpose by ID" - tags: - - "Call Purpose" - x-internal: false - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/callPurposeResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - summary: "Get a Call Purpose by ID" - tags: - - "Call Purpose" - x-internal: false - patch: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/callPurpose" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/callPurposeRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - required: true - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/callPurpose" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/callPurposeRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Update a Call Purpose" - tags: - - "Call Purpose" - x-internal: false - /calls: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/callResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Get a Collection of Calls" - tags: - - "Call" - x-internal: false - post: - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/call" - relationships: - $ref: "#/components/schemas/callRelationships" - type: - type: "string" - type: "object" - required: true - responses: - 201: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/callResponse" - description: "Created" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Create a New Call" - tags: - - "Call" - x-internal: false - /calls/{id}: - delete: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 204: - content: - application/vnd.api+json: {} - description: "Deleted" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Delete an Existing Call by ID" - tags: - - "Call" - x-internal: false - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/callResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Get a Call by ID" - tags: - - "Call" - x-internal: false - /complianceRequests: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/complianceRequestResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Get a Collection of Compliance Requests" - tags: - - "Compliance Request" - x-internal: false - post: - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/complianceRequest" - relationships: - $ref: "#/components/schemas/complianceRequestRelationships" - type: - type: "string" - type: "object" - required: true - responses: - 201: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/complianceRequestResponse" - description: "Created" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Create a New Compliance Request" - tags: - - "Compliance Request" - x-internal: false - /complianceRequests/{id}: - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/complianceRequestResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - summary: "Get a Compliance Request by ID" - tags: - - "Compliance Request" - x-internal: false - /contentCategories: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/contentCategoryResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Get a Collection of Content Categories" - tags: - - "Content Category" - x-internal: false - post: - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/contentCategory" - relationships: - $ref: "#/components/schemas/contentCategoryRelationships" - type: - type: "string" - type: "object" - required: true - responses: - 201: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/contentCategoryResponse" - description: "Created" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Create a New Content Category" - tags: - - "Content Category" - x-internal: false - /contentCategories/{id}: - delete: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 204: - content: - application/vnd.api+json: {} - description: "Deleted" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Delete an Existing Content Category by ID" - tags: - - "Content Category" - x-internal: false - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/contentCategoryResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - summary: "Get a Content Category by ID" - tags: - - "Content Category" - x-internal: false - patch: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/contentCategory" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/contentCategoryRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - required: true - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/contentCategory" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/contentCategoryRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Update a Content Category" - tags: - - "Content Category" - x-internal: false - /contentCategoryMemberships: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/contentCategoryMembershipResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Get a Collection of Content Category Memberships" - tags: - - "Content Category Membership" - x-internal: false - post: - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/contentCategoryMembership" - relationships: - $ref: "#/components/schemas/contentCategoryMembershipRelationships" - type: - type: "string" - type: "object" - required: true - responses: - 201: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/contentCategoryMembershipResponse" - description: "Created" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Create a New Content Category Membership" - tags: - - "Content Category Membership" - x-internal: false - /contentCategoryMemberships/{id}: - delete: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 204: - content: - application/vnd.api+json: {} - description: "Deleted" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Delete an Existing Content Category Membership by ID" - tags: - - "Content Category Membership" - x-internal: false - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/contentCategoryMembershipResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - summary: "Get a Content Category Membership by ID" - tags: - - "Content Category Membership" - x-internal: false - /contentCategoryOwnerships: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/contentCategoryOwnershipResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Get a Collection of Content Category Ownerships" - tags: - - "Content Category Ownership" - x-internal: false - post: - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/contentCategoryOwnership" - relationships: - $ref: "#/components/schemas/contentCategoryOwnershipRelationships" - type: - type: "string" - type: "object" - required: true - responses: - 201: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/contentCategoryOwnershipResponse" - description: "Created" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Create a New Content Category Ownership" - tags: - - "Content Category Ownership" - x-internal: false - /contentCategoryOwnerships/{id}: - delete: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 204: - content: - application/vnd.api+json: {} - description: "Deleted" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Delete an Existing Content Category Ownership by ID" - tags: - - "Content Category Ownership" - x-internal: false - /customDuties: - post: - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/customDuty" - relationships: - $ref: "#/components/schemas/customDutyRelationships" - type: - type: "string" - type: "object" - required: true - responses: - 201: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/customDutyResponse" - description: "Created" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Create a New Custom Duty" - tags: - - "Custom Duty" - x-internal: false - /duties: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/dutyResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Get a Collection of Duties" - tags: - - "Duty" - x-internal: false - /emailAddresses: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/emailAddressResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Get a Collection of Email Addresses" - tags: - - "Email Address" - x-internal: false - post: - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/emailAddress" - relationships: - $ref: "#/components/schemas/emailAddressRelationships" - type: - type: "string" - type: "object" - required: true - responses: - 201: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/emailAddressResponse" - description: "Created" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Create a New Email Address" - tags: - - "Email Address" - x-internal: false - /emailAddresses/{id}: - delete: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 204: - content: - application/vnd.api+json: {} - description: "Deleted" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Delete an Existing Email Address by ID" - tags: - - "Email Address" - x-internal: false - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/emailAddressResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - summary: "Get an Email Address by ID" - tags: - - "Email Address" - x-internal: false - patch: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/emailAddress" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/emailAddressRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - required: true - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/emailAddress" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/emailAddressRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Update an Email Address" - tags: - - "Email Address" - x-internal: false - /events/{id}: - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/eventResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Get an Event by ID" - tags: - - "Event" - x-internal: false - /favorites: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/favoriteResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Get a Collection of Favorites" - tags: - - "Favorite" - x-internal: false - post: - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/favorite" - relationships: - $ref: "#/components/schemas/favoriteRelationships" - type: - type: "string" - type: "object" - required: true - responses: - 201: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/favoriteResponse" - description: "Created" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Create a New Favorite" - tags: - - "Favorite" - x-internal: false - /favorites/{id}: - delete: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 204: - content: - application/vnd.api+json: {} - description: "Deleted" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Delete an Existing Favorite by ID" - tags: - - "Favorite" - x-internal: false - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/favoriteResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - summary: "Get a Favorite by ID" - tags: - - "Favorite" - x-internal: false - /mailAliases: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/mailAliasResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Get a Collection of Mail Aliases" - tags: - - "Mail Alias" - x-internal: false - /mailAliases/{id}: - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/mailAliasResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - summary: "Get a Mail Alias by ID" - tags: - - "Mail Alias" - x-internal: false - /mailboxes: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/mailboxResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Get a Collection of Mailboxes" - tags: - - "Mailbox" - x-internal: false - post: - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/mailbox" - relationships: - $ref: "#/components/schemas/mailboxRelationships" - type: - type: "string" - type: "object" - required: true - responses: - 201: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/mailboxResponse" - description: "Created" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Create a New Mailbox" - tags: - - "Mailbox" - x-internal: false - /mailboxes/{id}: - delete: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 204: - content: - application/vnd.api+json: {} - description: "Deleted" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Delete an Existing Mailbox by ID" - tags: - - "Mailbox" - x-internal: false - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/mailboxResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - summary: "Get a Mailbox by ID" - tags: - - "Mailbox" - x-internal: false - patch: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/mailbox" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/mailboxRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - required: true - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/mailbox" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/mailboxRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Update a Mailbox" - tags: - - "Mailbox" - x-internal: false - /mailboxes/{id}/actions/linkEwsMasterAccount: - post: - description: "### Member Action \n\nLink mailbox with EWS master account" - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - description: "empty" - type: "object" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Link Ews Master Account" - tags: - - "Mailbox" - x-internal: false - /mailboxes/{id}/actions/testSend: - post: - description: "### Member Action \n\nTest if sending emails works from this mailbox." - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/mailboxResponse" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Test Send" - tags: - - "Mailbox" - x-internal: false - /mailboxes/{id}/actions/testSync: - post: - description: "### Member Action \n\nTest if syncing emails works from this mailbox." - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/mailboxResponse" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Test Sync" - tags: - - "Mailbox" - x-internal: false - /mailboxes/{id}/actions/unlinkEwsMasterAccount: - post: - description: "### Member Action \n\nUnlink EWS master account from mailbox" - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - description: "empty" - type: "object" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Unlink Ews Master Account" - tags: - - "Mailbox" - x-internal: false - /mailings: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/mailingResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Get a Collection of Mailings" - tags: - - "Mailing" - x-internal: false - post: - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/mailing" - relationships: - $ref: "#/components/schemas/mailingRelationships" - type: - type: "string" - type: "object" - required: true - responses: - 201: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/mailingResponse" - description: "Created" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Create a New Mailing" - tags: - - "Mailing" - x-internal: false - /mailings/{id}: - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/mailingResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Get a Mailing by ID" - tags: - - "Mailing" - x-internal: false - /opportunities: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/opportunityResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Get a Collection of Opportunities" - tags: - - "Opportunity" - x-internal: false - post: - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/opportunity" - relationships: - $ref: "#/components/schemas/opportunityRelationships" - type: - type: "string" - type: "object" - required: true - responses: - 201: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/opportunityResponse" - description: "Created" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Create a New Opportunity" - tags: - - "Opportunity" - x-internal: false - /opportunities/{id}: - delete: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 204: - content: - application/vnd.api+json: {} - description: "Deleted" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Delete an Existing Opportunity by ID" - tags: - - "Opportunity" - x-internal: false - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/opportunityResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Get an Opportunity by ID" - tags: - - "Opportunity" - x-internal: false - patch: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/opportunity" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/opportunityRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - required: true - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/opportunity" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/opportunityRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Update an Opportunity" - tags: - - "Opportunity" - x-internal: false - /opportunityProspectRoles: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/opportunityProspectRoleResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Get a Collection of Opportunity Prospect Roles" - tags: - - "Opportunity Prospect Role" - x-internal: false - post: - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/opportunityProspectRole" - relationships: - $ref: "#/components/schemas/opportunityProspectRoleRelationships" - type: - type: "string" - type: "object" - required: true - responses: - 201: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/opportunityProspectRoleResponse" - description: "Created" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Create a New Opportunity Prospect Role" - tags: - - "Opportunity Prospect Role" - x-internal: false - /opportunityProspectRoles/{id}: - delete: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 204: - content: - application/vnd.api+json: {} - description: "Deleted" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Delete an Existing Opportunity Prospect Role by ID" - tags: - - "Opportunity Prospect Role" - x-internal: false - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/opportunityProspectRoleResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - summary: "Get an Opportunity Prospect Role by ID" - tags: - - "Opportunity Prospect Role" - x-internal: false - patch: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/opportunityProspectRole" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/opportunityProspectRoleRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - required: true - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/opportunityProspectRole" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/opportunityProspectRoleRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Update an Opportunity Prospect Role" - tags: - - "Opportunity Prospect Role" - x-internal: false - /opportunityStages: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/opportunityStageResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Get a Collection of Opportunity Stages" - tags: - - "Opportunity Stage" - x-internal: false - post: - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/opportunityStage" - relationships: - $ref: "#/components/schemas/opportunityStageRelationships" - type: - type: "string" - type: "object" - required: true - responses: - 201: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/opportunityStageResponse" - description: "Created" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Create a New Opportunity Stage" - tags: - - "Opportunity Stage" - x-internal: false - /opportunityStages/{id}: - delete: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 204: - content: - application/vnd.api+json: {} - description: "Deleted" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Delete an Existing Opportunity Stage by ID" - tags: - - "Opportunity Stage" - x-internal: false - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/opportunityStageResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - summary: "Get an Opportunity Stage by ID" - tags: - - "Opportunity Stage" - x-internal: false - patch: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/opportunityStage" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/opportunityStageRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - required: true - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/opportunityStage" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/opportunityStageRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Update an Opportunity Stage" - tags: - - "Opportunity Stage" - x-internal: false - /personas: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/personaResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Get a Collection of Personas" - tags: - - "Persona" - x-internal: false - post: - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/persona" - relationships: - $ref: "#/components/schemas/personaRelationships" - type: - type: "string" - type: "object" - required: true - responses: - 201: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/personaResponse" - description: "Created" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Create a New Persona" - tags: - - "Persona" - x-internal: false - /personas/{id}: - delete: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 204: - content: - application/vnd.api+json: {} - description: "Deleted" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Delete an Existing Persona by ID" - tags: - - "Persona" - x-internal: false - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/personaResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - summary: "Get a Persona by ID" - tags: - - "Persona" - x-internal: false - patch: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/persona" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/personaRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - required: true - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/persona" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/personaRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Update a Persona" - tags: - - "Persona" - x-internal: false - /phoneNumbers: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/phoneNumberResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Get a Collection of Phone Numbers" - tags: - - "Phone Number" - x-internal: false - post: - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/phoneNumber" - relationships: - $ref: "#/components/schemas/phoneNumberRelationships" - type: - type: "string" - type: "object" - required: true - responses: - 201: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/phoneNumberResponse" - description: "Created" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Create a New Phone Number" - tags: - - "Phone Number" - x-internal: false - /phoneNumbers/{id}: - delete: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 204: - content: - application/vnd.api+json: {} - description: "Deleted" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Delete an Existing Phone Number by ID" - tags: - - "Phone Number" - x-internal: false - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/phoneNumberResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - summary: "Get a Phone Number by ID" - tags: - - "Phone Number" - x-internal: false - patch: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/phoneNumber" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/phoneNumberRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - required: true - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/phoneNumber" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/phoneNumberRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Update a Phone Number" - tags: - - "Phone Number" - x-internal: false - /profiles: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/profileResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Get a Collection of Profiles" - tags: - - "Profile" - x-internal: false - post: - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/profile" - relationships: - $ref: "#/components/schemas/profileRelationships" - type: - type: "string" - type: "object" - required: true - responses: - 201: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/profileResponse" - description: "Created" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Create a New Profile" - tags: - - "Profile" - x-internal: false - /profiles/{id}: - delete: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 204: - content: - application/vnd.api+json: {} - description: "Deleted" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Delete an Existing Profile by ID" - tags: - - "Profile" - x-internal: false - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/profileResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - summary: "Get a Profile by ID" - tags: - - "Profile" - x-internal: false - patch: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/profile" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/profileRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - required: true - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/profile" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/profileRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Update a Profile" - tags: - - "Profile" - x-internal: false - /prospects: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/prospectResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Get a Collection of Prospects" - tags: - - "Prospect" - x-internal: false - post: - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/prospect" - relationships: - $ref: "#/components/schemas/prospectRelationships" - type: - type: "string" - type: "object" - required: true - responses: - 201: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/prospectResponse" - description: "Created" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Create a New Prospect" - tags: - - "Prospect" - x-internal: false - /prospects/{id}: - delete: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 204: - content: - application/vnd.api+json: {} - description: "Deleted" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Delete an Existing Prospect by ID" - tags: - - "Prospect" - x-internal: false - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/prospectResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Get a Prospect by ID" - tags: - - "Prospect" - x-internal: false - patch: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/prospect" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/prospectRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - required: true - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/prospect" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/prospectRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Update a Prospect" - tags: - - "Prospect" - x-internal: false - /recipients: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/recipientResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Get a Collection of Recipients" - tags: - - "Recipient" - x-internal: false - post: - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/recipient" - relationships: - $ref: "#/components/schemas/recipientRelationships" - type: - type: "string" - type: "object" - required: true - responses: - 201: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/recipientResponse" - description: "Created" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Create a New Recipient" - tags: - - "Recipient" - x-internal: false - /recipients/{id}: - delete: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 204: - content: - application/vnd.api+json: {} - description: "Deleted" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Delete an Existing Recipient by ID" - tags: - - "Recipient" - x-internal: false - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/recipientResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - summary: "Get a Recipient by ID" - tags: - - "Recipient" - x-internal: false - patch: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/recipient" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/recipientRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - required: true - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/recipient" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/recipientRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Update a Recipient" - tags: - - "Recipient" - x-internal: false - /roles: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/roleResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Get a Collection of Roles" - tags: - - "Role" - x-internal: false - post: - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/role" - relationships: - $ref: "#/components/schemas/roleRelationships" - type: - type: "string" - type: "object" - required: true - responses: - 201: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/roleResponse" - description: "Created" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Create a New Role" - tags: - - "Role" - x-internal: false - /roles/{id}: - delete: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 204: - content: - application/vnd.api+json: {} - description: "Deleted" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Delete an Existing Role by ID" - tags: - - "Role" - x-internal: false - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/roleResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - summary: "Get a Role by ID" - tags: - - "Role" - x-internal: false - patch: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/role" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/roleRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - required: true - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/role" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/roleRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Update a Role" - tags: - - "Role" - x-internal: false - /rulesets: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/rulesetResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Get a Collection of Rulesets" - tags: - - "Ruleset" - x-internal: false - post: - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/ruleset" - relationships: - $ref: "#/components/schemas/rulesetRelationships" - type: - type: "string" - type: "object" - required: true - responses: - 201: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/rulesetResponse" - description: "Created" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Create a New Ruleset" - tags: - - "Ruleset" - x-internal: false - /rulesets/{id}: - delete: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 204: - content: - application/vnd.api+json: {} - description: "Deleted" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Delete an Existing Ruleset by ID" - tags: - - "Ruleset" - x-internal: false - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/rulesetResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - summary: "Get a Ruleset by ID" - tags: - - "Ruleset" - x-internal: false - patch: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/ruleset" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/rulesetRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - required: true - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/ruleset" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/rulesetRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Update a Ruleset" - tags: - - "Ruleset" - x-internal: false - /sequenceStates: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/sequenceStateResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Get a Collection of Sequence States" - tags: - - "Sequence State" - x-internal: false - post: - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/sequenceState" - relationships: - $ref: "#/components/schemas/sequenceStateRelationships" - type: - type: "string" - type: "object" - required: true - responses: - 201: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/sequenceStateResponse" - description: "Created" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Create a New Sequence State" - tags: - - "Sequence State" - x-internal: false - /sequenceStates/{id}: - delete: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 204: - content: - application/vnd.api+json: {} - description: "Deleted" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Delete an Existing Sequence State by ID" - tags: - - "Sequence State" - x-internal: false - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/sequenceStateResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Get a Sequence State by ID" - tags: - - "Sequence State" - x-internal: false - /sequenceStates/{id}/actions/finish: - post: - description: "### Member Action \n\nFinishes an active sequence state." - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/sequenceStateResponse" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Finish" - tags: - - "Sequence State" - x-internal: false - /sequenceStates/{id}/actions/pause: - post: - description: "### Member Action \n\nPauses an active sequence state." - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/sequenceStateResponse" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Pause" - tags: - - "Sequence State" - x-internal: false - /sequenceStates/{id}/actions/resume: - post: - description: "### Member Action \n\nResumes a paused sequence state." - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/sequenceStateResponse" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Resume" - tags: - - "Sequence State" - x-internal: false - /sequenceSteps: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/sequenceStepResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Get a Collection of Sequence Steps" - tags: - - "Sequence Step" - x-internal: false - post: - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/sequenceStep" - relationships: - $ref: "#/components/schemas/sequenceStepRelationships" - type: - type: "string" - type: "object" - required: true - responses: - 201: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/sequenceStepResponse" - description: "Created" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Create a New Sequence Step" - tags: - - "Sequence Step" - x-internal: false - /sequenceSteps/{id}: - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/sequenceStepResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - summary: "Get a Sequence Step by ID" - tags: - - "Sequence Step" - x-internal: false - patch: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/sequenceStep" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/sequenceStepRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - required: true - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/sequenceStep" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/sequenceStepRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Update a Sequence Step" - tags: - - "Sequence Step" - x-internal: false - /sequenceTemplates: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/sequenceTemplateResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Get a Collection of Sequence Templates" - tags: - - "Sequence Template" - x-internal: false - post: - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/sequenceTemplate" - relationships: - $ref: "#/components/schemas/sequenceTemplateRelationships" - type: - type: "string" - type: "object" - required: true - responses: - 201: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/sequenceTemplateResponse" - description: "Created" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Create a New Sequence Template" - tags: - - "Sequence Template" - x-internal: false - /sequenceTemplates/{id}: - delete: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 204: - content: - application/vnd.api+json: {} - description: "Deleted" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Delete an Existing Sequence Template by ID" - tags: - - "Sequence Template" - x-internal: false - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/sequenceTemplateResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - summary: "Get a Sequence Template by ID" - tags: - - "Sequence Template" - x-internal: false - patch: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/sequenceTemplate" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/sequenceTemplateRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - required: true - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/sequenceTemplate" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/sequenceTemplateRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Update a Sequence Template" - tags: - - "Sequence Template" - x-internal: false - /sequences: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/sequenceResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Get a Collection of Sequences" - tags: - - "Sequence" - x-internal: false - post: - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/sequence" - relationships: - $ref: "#/components/schemas/sequenceRelationships" - type: - type: "string" - type: "object" - required: true - responses: - 201: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/sequenceResponse" - description: "Created" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Create a New Sequence" - tags: - - "Sequence" - x-internal: false - /sequences/{id}: - delete: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 204: - content: - application/vnd.api+json: {} - description: "Deleted" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Delete an Existing Sequence by ID" - tags: - - "Sequence" - x-internal: false - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/sequenceResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Get a Sequence by ID" - tags: - - "Sequence" - x-internal: false - patch: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/sequence" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/sequenceRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - required: true - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/sequence" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/sequenceRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Update a Sequence" - tags: - - "Sequence" - x-internal: false - /snippets: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/snippetResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Get a Collection of Snippets" - tags: - - "Snippet" - x-internal: false - post: - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/snippet" - relationships: - $ref: "#/components/schemas/snippetRelationships" - type: - type: "string" - type: "object" - required: true - responses: - 201: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/snippetResponse" - description: "Created" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Create a New Snippet" - tags: - - "Snippet" - x-internal: false - /snippets/{id}: - delete: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 204: - content: - application/vnd.api+json: {} - description: "Deleted" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Delete an Existing Snippet by ID" - tags: - - "Snippet" - x-internal: false - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/snippetResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Get a Snippet by ID" - tags: - - "Snippet" - x-internal: false - patch: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/snippet" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/snippetRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - required: true - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/snippet" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/snippetRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Update a Snippet" - tags: - - "Snippet" - x-internal: false - /stages: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/stageResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Get a Collection of Stages" - tags: - - "Stage" - x-internal: false - post: - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/stage" - relationships: - $ref: "#/components/schemas/stageRelationships" - type: - type: "string" - type: "object" - required: true - responses: - 201: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/stageResponse" - description: "Created" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Create a New Stage" - tags: - - "Stage" - x-internal: false - /stages/{id}: - delete: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 204: - content: - application/vnd.api+json: {} - description: "Deleted" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Delete an Existing Stage by ID" - tags: - - "Stage" - x-internal: false - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/stageResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - summary: "Get a Stage by ID" - tags: - - "Stage" - x-internal: false - patch: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/stage" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/stageRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - required: true - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/stage" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/stageRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Update a Stage" - tags: - - "Stage" - x-internal: false - /taskPriorities: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/taskPriorityResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Get a Collection of Task Priorities" - tags: - - "Task Priority" - x-internal: false - /taskPriorities/{id}: - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/taskPriorityResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - summary: "Get a Task Priority by ID" - tags: - - "Task Priority" - x-internal: false - /tasks: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/taskResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Get a Collection of Tasks" - tags: - - "Task" - x-internal: false - post: - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/task" - relationships: - $ref: "#/components/schemas/taskRelationships" - type: - type: "string" - type: "object" - required: true - responses: - 201: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/taskResponse" - description: "Created" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Create a New Task" - tags: - - "Task" - x-internal: false - /tasks/{id}: - delete: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 204: - content: - application/vnd.api+json: {} - description: "Deleted" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Delete an Existing Task by ID" - tags: - - "Task" - x-internal: false - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/taskResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Get a Task by ID" - tags: - - "Task" - x-internal: false - patch: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/task" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/taskRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - required: true - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/task" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/taskRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Update a Task" - tags: - - "Task" - x-internal: false - /tasks/{id}/actions/advance: - post: - description: "### Member Action \n\nAdvances the sequence state associated with the task to the next step in the sequence. Note that only tasks with task_type of 'sequence_step_call', 'sequence_step_email', 'sequence_step_linkedin_interact_with_post', 'sequence_step_linkedin_other', 'sequence_step_linkedin_send_connection_request', 'sequence_step_linkedin_send_message', 'sequence_step_linkedin_view_profile', 'sequence_step_sms' or 'sequence_step_task' can be advanced." - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/taskResponse" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Advance" - tags: - - "Task" - x-internal: false - /tasks/{id}/actions/deliver: - post: - description: "### Member Action \n\nSchedules the mailing associated with the task for delivery, if possible." - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/taskResponse" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Deliver" - tags: - - "Task" - x-internal: false - /tasks/{id}/actions/markComplete: - post: - description: "### Member Action \n\nMarks the task as complete." - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - - - explode: true - in: "query" - name: "actionParams" - schema: - properties: - completionAction: - description: "For sequence step tasks, this specifies how to finish the sequence state. Possible values are: 'finish_no_reply' to finish the sequence, 'finish_replied' to set the sequence as replied, and anything else (including leaving it blank) will advance the sequence state." - completionNote: - description: "A note to attach to the associated prospect, if there is one." - style: "deepObject" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/taskResponse" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Mark Complete" - tags: - - "Task" - x-internal: false - /tasks/{id}/actions/reassignOwner: - post: - description: "### Member Action \n\nReassigns the owner of a task" - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - - - explode: true - in: "query" - name: "actionParams" - schema: - properties: - ownerId: - description: "The id of the new owner of the task" - required: - - "ownerId" - style: "deepObject" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/taskResponse" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Reassign Owner" - tags: - - "Task" - x-internal: false - /tasks/{id}/actions/reschedule: - post: - description: "### Member Action \n\nReschedules a task by setting a new task due time." - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - - - explode: true - in: "query" - name: "actionParams" - schema: - properties: - dueAt: - description: "The new time for the task to be due." - required: - - "dueAt" - style: "deepObject" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/taskResponse" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Reschedule" - tags: - - "Task" - x-internal: false - /tasks/{id}/actions/snooze: - post: - description: "### Member Action \n\nSets the 'dueAt' value to be a day later than either now or the existing 'dueAt' value, whichever is later." - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - - - explode: true - in: "query" - name: "actionParams" - schema: - properties: - dueAt: - description: "The new time for the task to be due." - markAsUrgent: - description: "Whether to mark the task as urgent or not." - style: "deepObject" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/taskResponse" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Snooze" - tags: - - "Task" - x-internal: false - /tasks/{id}/actions/updateNote: - post: - description: "### Member Action \n\nUpdates note of a task" - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - - - explode: true - in: "query" - name: "actionParams" - schema: - properties: - note: - description: "The note to set on the task." - required: - - "note" - style: "deepObject" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/taskResponse" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Update Note" - tags: - - "Task" - x-internal: false - /tasks/{id}/actions/updateOpportunityAssociation: - post: - description: "### Member Action \n\nUpdates opportunity association of a task" - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - - - explode: true - in: "query" - name: "actionParams" - schema: - properties: - opportunityAssociation: - description: "The opportunity to associate with the task." - required: - - "opportunityAssociation" - style: "deepObject" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/taskResponse" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Update Opportunity Association" - tags: - - "Task" - x-internal: false - /teams: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/teamResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Get a Collection of Teams" - tags: - - "Team" - x-internal: false - post: - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/team" - relationships: - $ref: "#/components/schemas/teamRelationships" - type: - type: "string" - type: "object" - required: true - responses: - 201: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/teamResponse" - description: "Created" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Create a New Team" - tags: - - "Team" - x-internal: false - /teams/{id}: - delete: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 204: - content: - application/vnd.api+json: {} - description: "Deleted" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Delete an Existing Team by ID" - tags: - - "Team" - x-internal: false - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/teamResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - summary: "Get a Team by ID" - tags: - - "Team" - x-internal: false - patch: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/team" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/teamRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - required: true - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/team" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/teamRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Update a Team" - tags: - - "Team" - x-internal: false - /templates: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/templateResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Get a Collection of Templates" - tags: - - "Template" - x-internal: false - post: - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/template" - relationships: - $ref: "#/components/schemas/templateRelationships" - type: - type: "string" - type: "object" - required: true - responses: - 201: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/templateResponse" - description: "Created" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Create a New Template" - tags: - - "Template" - x-internal: false - /templates/{id}: - delete: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 204: - content: - application/vnd.api+json: {} - description: "Deleted" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Delete an Existing Template by ID" - tags: - - "Template" - x-internal: false - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/templateResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Get a Template by ID" - tags: - - "Template" - x-internal: false - patch: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/template" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/templateRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - required: true - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/template" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/templateRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Update a Template" - tags: - - "Template" - x-internal: false - /users: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/userResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Get a Collection of Users" - tags: - - "User" - x-internal: false - post: - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/user" - relationships: - $ref: "#/components/schemas/userRelationships" - type: - type: "string" - type: "object" - required: true - responses: - 201: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/userResponse" - description: "Created" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Create a New User" - tags: - - "User" - x-internal: false - /users/{id}: - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/userResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Get a User by ID" - tags: - - "User" - x-internal: false - patch: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/user" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/userRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - required: true - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/user" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/userRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - summary: "Update a User" - tags: - - "User" - x-internal: false - /webhooks: - get: - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - items: - $ref: "#/components/schemas/webhookResponse" - type: "array" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Get a Collection of Webhooks" - tags: - - "Webhook" - x-internal: false - post: - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/webhook" - relationships: - $ref: "#/components/schemas/webhookRelationships" - type: - type: "string" - type: "object" - required: true - responses: - 201: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/webhookResponse" - description: "Created" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Create a New Webhook" - tags: - - "Webhook" - x-internal: false - /webhooks/{id}: - delete: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 204: - content: - application/vnd.api+json: {} - description: "Deleted" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Delete an Existing Webhook by ID" - tags: - - "Webhook" - x-internal: false - get: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - $ref: "#/components/schemas/webhookResponse" - description: "OK" - 404: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "Not Found" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Get a Webhook by ID" - tags: - - "Webhook" - x-internal: false - patch: - parameters: - - - in: "path" - name: "id" - required: true - schema: - type: "integer" - requestBody: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/webhook" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/webhookRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - required: true - responses: - 200: - content: - application/vnd.api+json: - schema: - properties: - data: - properties: - attributes: - $ref: "#/components/schemas/webhook" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/webhookRelationships" - type: - type: "string" - required: - - "type" - - "id" - type: "object" - description: "OK" - 422: - content: - application/vnd.api+json: - schema: - properties: - errors: - items: - properties: - detail: - type: "string" - id: - type: "string" - title: - type: "string" - type: "object" - type: "array" - description: "JSON error message" - security: - - - bearerAuth: [] - s2sAuthToken: [] - summary: "Update a Webhook" - tags: - - "Webhook" - x-internal: false - components: - schemas: - account: - description: "A descriptor of a named company used to categorize prospects within an account-based sales approach." - properties: - buyerIntentScore: - description: " \n\nA custom score given to measure the quality of the account." - format: "float" - type: "number" - x-internal: false - companyType: - description: "\n\nA description of the company’s type (e.g. \"Public Company\")." - maxLength: 255 - type: "string" - x-internal: false - createdAt: - description: " \n\nThe date and time the account was created." - format: "date-time" - type: "string" - x-internal: false - custom1: - description: "\n\nThe value of the account’s first custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom2: - description: "\n\nThe value of the account’s second custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom3: - description: "\n\nThe value of the account’s third custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom4: - description: "\n\nThe value of the account’s fourth custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom5: - description: "\n\nThe value of the account’s fifth custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom6: - description: "\n\nThe value of the account’s sixth custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom7: - description: "\n\nThe value of the account’s seventh custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom8: - description: "\n\nThe value of the account’s eight custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom9: - description: "\n\nThe value of the account’s ninth custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom10: - description: "\n\nThe value of the account’s 10th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom11: - description: "\n\nThe value of the account’s 11th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom12: - description: "\n\nThe value of the account’s 12th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom13: - description: "\n\nThe value of the account’s 13th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom14: - description: "\n\nThe value of the account’s 14th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom15: - description: "\n\nThe value of the account’s 15th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom16: - description: "\n\nThe value of the account’s 16th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom17: - description: "\n\nThe value of the account’s 17th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom18: - description: "\n\nThe value of the account’s 18th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom19: - description: "\n\nThe value of the account’s 19th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom20: - description: "\n\nThe value of the account’s 20th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom21: - description: "\n\nThe value of the account’s 21st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom22: - description: "\n\nThe value of the account’s 22nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom23: - description: "\n\nThe value of the account’s 23rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom24: - description: "\n\nThe value of the account’s 24th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom25: - description: "\n\nThe value of the account’s 25th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom26: - description: "\n\nThe value of the account’s 26th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom27: - description: "\n\nThe value of the account’s 27th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom28: - description: "\n\nThe value of the account’s 28th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom29: - description: "\n\nThe value of the account’s 29th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom30: - description: "\n\nThe value of the account’s 30th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom31: - description: "\n\nThe value of the account’s 31st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom32: - description: "\n\nThe value of the account’s 32nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom33: - description: "\n\nThe value of the account’s 33rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom34: - description: "\n\nThe value of the account’s 34th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom35: - description: "\n\nThe value of the account’s 35th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom36: - description: "\n\nThe value of the account's 36th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom37: - description: "\n\nThe value of the account's 37th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom38: - description: "\n\nThe value of the account's 38th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom39: - description: "\n\nThe value of the account's 39th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom40: - description: "\n\nThe value of the account's 40th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom41: - description: "\n\nThe value of the account's 41st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom42: - description: "\n\nThe value of the account's 42nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom43: - description: "\n\nThe value of the account's 43rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom44: - description: "\n\nThe value of the account's 44th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom45: - description: "\n\nThe value of the account's 45th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom46: - description: "\n\nThe value of the account's 46th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom47: - description: "\n\nThe value of the account's 47th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom48: - description: "\n\nThe value of the account's 48th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom49: - description: "\n\nThe value of the account's 49th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom50: - description: "\n\nThe value of the account's 50th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom51: - description: "\n\nThe value of the account's 51st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom52: - description: "\n\nThe value of the account's 52nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom53: - description: "\n\nThe value of the account's 53rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom54: - description: "\n\nThe value of the account's 54th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom55: - description: "\n\nThe value of the account's 55th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom56: - description: "\n\nThe value of the account's 56th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom57: - description: "\n\nThe value of the account's 57th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom58: - description: "\n\nThe value of the account's 58th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom59: - description: "\n\nThe value of the account's 59th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom60: - description: "\n\nThe value of the account's 60th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom61: - description: "\n\nThe value of the account's 61st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom62: - description: "\n\nThe value of the account's 62nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom63: - description: "\n\nThe value of the account's 63rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom64: - description: "\n\nThe value of the account's 64th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom65: - description: "\n\nThe value of the account's 65th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom66: - description: "\n\nThe value of the account's 66th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom67: - description: "\n\nThe value of the account's 67th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom68: - description: "\n\nThe value of the account's 68th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom69: - description: "\n\nThe value of the account's 69th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom70: - description: "\n\nThe value of the account's 70th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom71: - description: "\n\nThe value of the account's 71st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom72: - description: "\n\nThe value of the account's 72nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom73: - description: "\n\nThe value of the account's 73rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom74: - description: "\n\nThe value of the account's 74th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom75: - description: "\n\nThe value of the account's 75th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom76: - description: "\n\nThe value of the account's 76th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom77: - description: "\n\nThe value of the account's 77th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom78: - description: "\n\nThe value of the account's 78th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom79: - description: "\n\nThe value of the account's 79th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom80: - description: "\n\nThe value of the account's 80th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom81: - description: "\n\nThe value of the account's 81st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom82: - description: "\n\nThe value of the account's 82nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom83: - description: "\n\nThe value of the account's 83rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom84: - description: "\n\nThe value of the account's 84th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom85: - description: "\n\nThe value of the account's 85th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom86: - description: "\n\nThe value of the account's 86th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom87: - description: "\n\nThe value of the account's 87th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom88: - description: "\n\nThe value of the account's 88th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom89: - description: "\n\nThe value of the account's 89th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom90: - description: "\n\nThe value of the account's 90th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom91: - description: "\n\nThe value of the account's 91st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom92: - description: "\n\nThe value of the account's 92nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom93: - description: "\n\nThe value of the account's 93rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom94: - description: "\n\nThe value of the account's 94th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom95: - description: "\n\nThe value of the account's 95th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom96: - description: "\n\nThe value of the account's 96th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom97: - description: "\n\nThe value of the account's 97th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom98: - description: "\n\nThe value of the account's 98th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom99: - description: "\n\nThe value of the account's 99th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom100: - description: "\n\nThe value of the account’s 100th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom101: - description: "\n\nThe value of the account’s 101st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom102: - description: "\n\nThe value of the account’s 102nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom103: - description: "\n\nThe value of the account’s 103rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom104: - description: "\n\nThe value of the account’s 104th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom105: - description: "\n\nThe value of the account’s 105th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom106: - description: "\n\nThe value of the account’s 106th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom107: - description: "\n\nThe value of the account’s 107th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom108: - description: "\n\nThe value of the account’s 108th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom109: - description: "\n\nThe value of the account’s 109th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom110: - description: "\n\nThe value of the account’s 110th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom111: - description: "\n\nThe value of the account’s 111th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom112: - description: "\n\nThe value of the account’s 112th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom113: - description: "\n\nThe value of the account’s 113th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom114: - description: "\n\nThe value of the account’s 114th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom115: - description: "\n\nThe value of the account’s 115th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom116: - description: "\n\nThe value of the account’s 116th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom117: - description: "\n\nThe value of the account’s 117th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom118: - description: "\n\nThe value of the account’s 118th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom119: - description: "\n\nThe value of the account’s 119th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom120: - description: "\n\nThe value of the account’s 120th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom121: - description: "\n\nThe value of the account’s 121st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom122: - description: "\n\nThe value of the account’s 122nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom123: - description: "\n\nThe value of the account’s 123rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom124: - description: "\n\nThe value of the account’s 124th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom125: - description: "\n\nThe value of the account’s 125th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom126: - description: "\n\nThe value of the account’s 126th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom127: - description: "\n\nThe value of the account’s 127th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom128: - description: "\n\nThe value of the account’s 128th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom129: - description: "\n\nThe value of the account’s 129th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom130: - description: "\n\nThe value of the account’s 130th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom131: - description: "\n\nThe value of the account’s 131st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom132: - description: "\n\nThe value of the account’s 132nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom133: - description: "\n\nThe value of the account’s 133rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom134: - description: "\n\nThe value of the account’s 134th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom135: - description: "\n\nThe value of the account’s 135th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom136: - description: "\n\nThe value of the account’s 136th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom137: - description: "\n\nThe value of the account’s 137th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom138: - description: "\n\nThe value of the account’s 138th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom139: - description: "\n\nThe value of the account’s 139th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom140: - description: "\n\nThe value of the account’s 140th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom141: - description: "\n\nThe value of the account’s 141st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom142: - description: "\n\nThe value of the account’s 142nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom143: - description: "\n\nThe value of the account’s 143rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom144: - description: "\n\nThe value of the account’s 144th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom145: - description: "\n\nThe value of the account’s 145th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom146: - description: "\n\nThe value of the account’s 146th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom147: - description: "\n\nThe value of the account’s 147th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom148: - description: "\n\nThe value of the account’s 148th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom149: - description: "\n\nThe value of the account’s 149th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom150: - description: "\n\nThe value of the account’s 150th custom field." - maxLength: 32000 - type: "string" - x-internal: false - customId: - description: " \n\nA custom ID for the account, often referencing an ID in an external system." - maxLength: 255 - type: "string" - x-internal: false - description: - description: "\n\nA custom description of the account." - maxLength: 65535 - type: "string" - x-internal: false - domain: - description: " \n\nThe company’s website domain (e.g. \"`www.acme.com`\")." - maxLength: 255 - type: "string" - x-internal: false - externalSource: - description: "\n\nThe source of the resource’s creation (e.g. \"outreach-api\")." - maxLength: 255 - type: "string" - x-internal: false - followers: - description: "\n\nThe number of followers the company has listed on social media." - type: "integer" - x-internal: false - foundedAt: - description: "\n\nThe founding date of the company." - format: "date-time" - type: "string" - x-internal: false - industry: - description: "\n\nA description of the company’s industry (e.g. \"Manufacturing\")." - maxLength: 255 - type: "string" - x-internal: false - linkedInEmployees: - description: "\n\nThe number of employees listed on the company’s LinkedIn URL." - type: "integer" - x-internal: false - linkedInUrl: - description: "\n\nThe company’s LinkedIn URL." - maxLength: 1000 - type: "string" - x-internal: false - locality: - description: "\n\nThe company’s primary geographic region (e.g. \"Eastern USA\")." - maxLength: 255 - type: "string" - x-internal: false - name: - description: " \n\nThe name of the company (e.g. \"Acme Corporation\")." - maxLength: 255 - type: "string" - x-internal: false - named: - description: " \n\nA boolean value determining whether this is a \"named\" account or not. Only named accounts will show up on the collection index." - type: "boolean" - x-internal: false - naturalName: - description: "\n\nThe natural name of the company (e.g. \"Acme\")." - maxLength: 255 - type: "string" - x-internal: false - numberOfEmployees: - description: "\n\nThe number of employees working at the company." - type: "integer" - x-internal: false - sharingTeamId: - description: "\n\nThe ID of the sharing team associated with this object. Access is currently in beta." - maxLength: 255 - type: "string" - x-internal: false - tags: - description: "\n\nA list of tag values associated with the account (e.g. [\"Enterprise\", \"Tier 1\"])." - items: - type: "string" - type: "array" - x-internal: false - touchedAt: - description: " \n\nThe date and time the account was last touched." - format: "date-time" - type: "string" - x-internal: false - updatedAt: - description: " \n\nThe date and time the account was last updated." - format: "date-time" - type: "string" - x-internal: false - websiteUrl: - description: "\n\nThe company’s website URL (e.g. \"`https://www.acme.com/contact`\")." - maxLength: 255 - type: "string" - x-internal: false - type: "object" - x-internal: false - accountRelationships: - properties: - creator: - description: "\n\nThe creator of the account. Relationship creator cannot be used as a filter." - oneOf: - - - description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - owner: - description: "The owner of the account. You can use only the attribute id to filter accounts by owner (e.g. filter[owner][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - prospects: - description: "\n\nThe account's associated prospects. Relationship prospects cannot be used as a filter." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "prospect" - type: "string" - title: "links" - title: "prospect" - type: "array" - x-internal: false - tasks: - description: "\n\nThe associated tasks. Relationship tasks cannot be used as a filter." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "task" - type: "string" - title: "links" - title: "task" - type: "array" - x-internal: false - updater: - description: "\n\nThe most recent updater of the account. Relationship updater cannot be used as a filter." - oneOf: - - - description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - accountResponse: - properties: - attributes: - $ref: "#/components/schemas/account" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/accountRelationships" - type: - type: "string" - type: "object" - x-internal: false - addressRelationships: - type: "object" - attachmentRelationships: - type: "object" - audit: - description: "Events that happen during the day. Things like login, plugin mapping changes, etc." - properties: - eventName: - description: " \n\nName of the event" - type: "string" - x-internal: false - timestamp: - description: " \n\nWhen the event happened" - format: "date-time" - type: "string" - x-internal: false - userEmail: - description: "\n\nEmail of the user who perfomed the action" - format: "email" - type: "string" - x-internal: false - type: "object" - x-internal: false - auditRelationships: - type: "object" - auditResponse: - properties: - attributes: - $ref: "#/components/schemas/audit" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/auditRelationships" - type: - type: "string" - type: "object" - x-internal: false - batchItemRelationships: - type: "object" - batchRelationships: - type: "object" - blockedNumberRelationships: - type: "object" - calendarEventAttendeeRelationships: - properties: - prospect: - description: "" - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "prospect" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "prospect" - type: "string" - title: "links" - title: "prospect" - x-internal: false - user: - description: "" - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - calendarEventRelationships: - properties: - accounts: - description: "\n\n" - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "account" - type: "string" - title: "links" - title: "account" - type: "array" - x-internal: false - booker: - description: "\n\nThe user who booked this event." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - creator: - description: "\n\nThe creator of the event." - oneOf: - - - description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - opportunity: - description: "The opportunity associated with the event." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "opportunity" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "opportunity" - type: "string" - title: "links" - title: "opportunity" - x-internal: false - prospects: - description: "\n\n" - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "prospect" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "prospect" - type: "string" - title: "links" - title: "prospect" - type: "array" - x-internal: false - user: - description: "\n\nThe user associated with the calendar." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - users: - description: "" - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - type: "array" - x-internal: false - type: "object" - calendarRelationships: - properties: - creator: - description: "\n\nThe creator of the calendar." - oneOf: - - - description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - updater: - description: "\n\nThe most recent updater of the calendar." - oneOf: - - - description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - user: - description: "The user associated with the calendar." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - calendarUrlRelationships: - type: "object" - call: - description: "A log of an inbound or outbound call made with a prospect." - properties: - answeredAt: - description: "\n\nThe date and time the call was answered." - format: "date-time" - type: "string" - x-internal: false - completedAt: - description: "\n\nThe date and time the call was completed." - format: "date-time" - type: "string" - x-internal: false - createdAt: - description: " \n\nThe date and time the call was created." - format: "date-time" - type: "string" - x-internal: false - dialedAt: - description: "\n\nThe date and time the call was dialed." - format: "date-time" - type: "string" - x-internal: false - direction: - description: "\n\nThe call direction from the user’s point of view; must be either \"inbound\" or \"outbound\"." - type: "string" - x-internal: false - externalVendor: - description: "\n\nThe voice provider of the call. Can be blank." - maxLength: 255 - type: "string" - x-internal: false - from: - description: " \n\nThe phone number used to place the call." - maxLength: 255 - type: "string" - x-internal: false - note: - description: "\n\nA custom note associated with this call." - maxLength: 65535 - type: "string" - x-internal: false - outcome: - description: " \n\nThe call’s outcome; must be either \"Answered\" or \"Not Answered\"." - maxLength: 255 - type: "string" - x-internal: false - recordingUrl: - description: " \n\nThe URL of the call’s audio recording." - maxLength: 255 - type: "string" - x-internal: false - returnedAt: - description: "\n\nThe date and time the call was returned." - format: "date-time" - type: "string" - x-internal: false - sequenceAction: - description: "\n\nThe action to take on the associated sequence; must be either \"Advance\", \"Finish\", \"Finish - No Reply\", or \"Finish - Replied\"." - maxLength: 255 - type: "string" - x-internal: false - shouldRecordCall: - description: "\n\nIndicated whether or not the call is recorded." - type: "boolean" - x-internal: false - state: - description: " \n\nThe call’s current state." - maxLength: 255 - type: "string" - x-internal: false - stateChangedAt: - description: "\n\nThe date and time the call’s state last changed." - format: "date-time" - type: "string" - x-internal: false - tags: - description: "\n\nA list of tag values associated with the call (e.g. [\"Interested\", \"Meeting Booked\"])." - items: - type: "string" - type: "array" - x-internal: false - to: - description: " \n\nThe phone number that the call was placed to." - maxLength: 255 - type: "string" - x-internal: false - uid: - description: "\n\nThe Outreach voice trace id." - maxLength: 255 - type: "string" - x-internal: false - updatedAt: - description: " \n\nThe date and time the call was last updated." - format: "date-time" - type: "string" - x-internal: false - userCallType: - description: " \n\nThe type of call placed within the Outreach client; must be either \"bridge\" or \"voip\"." - maxLength: 255 - type: "string" - x-internal: false - vendorCallId: - description: "\n\nThe call-id as recoreded by the voice provider. Can be blank." - maxLength: 63 - type: "string" - x-internal: false - voicemailRecordingUrl: - description: "\n\nThe URL of the call’s voicemail audio recording." - maxLength: 1024 - type: "string" - x-internal: false - type: "object" - x-internal: false - callDisposition: - description: "A ready-made collection of call dispositions that help categorize your call logs." - properties: - createdAt: - description: " \n\nThe date and time the call disposition was created." - format: "date-time" - type: "string" - x-internal: false - name: - description: " \n\nThe disposition’s name (e.g. \"Meeting Scheduled\")." - maxLength: 255 - type: "string" - x-internal: false - order: - description: " \n\nThe disposition’s display order within the collection." - type: "integer" - x-internal: false - outcome: - description: " \n\nThe disposition’s call outcome; must be either \"Answered\" or \"Not Answered\"." - maxLength: 255 - type: "string" - x-internal: false - updatedAt: - description: " \n\nThe date and time the call disposition was last updated." - format: "date-time" - type: "string" - x-internal: false - type: "object" - x-internal: false - callDispositionRelationships: - properties: - calls: - description: "\n\nThe calls made with this disposition. Relationship calls cannot be used as a filter." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "call" - type: "string" - title: "links" - title: "call" - type: "array" - x-internal: false - creator: - description: "\n\nThe creator of the call disposition. Relationship creator cannot be used as a filter." - oneOf: - - - description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - callDispositionResponse: - properties: - attributes: - $ref: "#/components/schemas/callDisposition" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/callDispositionRelationships" - type: - type: "string" - type: "object" - x-internal: false - callPurpose: - description: "A ready-made collection of call purposes that help categorize your call logs." - properties: - createdAt: - description: " \n\nThe date and time the call purpose was created." - format: "date-time" - type: "string" - x-internal: false - name: - description: " \n\nThe purpose’s name (e.g. \"Initial Contact\")." - maxLength: 255 - type: "string" - x-internal: false - order: - description: " \n\nThe purpose’s display order within the collection." - type: "integer" - x-internal: false - updatedAt: - description: " \n\nThe date and time the call purpose was last updated." - format: "date-time" - type: "string" - x-internal: false - type: "object" - x-internal: false - callPurposeRelationships: - properties: - calls: - description: "\n\nThe calls made with this purpose. Relationship calls cannot be used as a filter." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "call" - type: "string" - title: "links" - title: "call" - type: "array" - x-internal: false - creator: - description: "\n\nThe creator of the call purpose. Relationship creator cannot be used as a filter." - oneOf: - - - description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - callPurposeResponse: - properties: - attributes: - $ref: "#/components/schemas/callPurpose" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/callPurposeRelationships" - type: - type: "string" - type: "object" - x-internal: false - callRelationships: - properties: - callDisposition: - description: "The associated call disposition. You can use only the attribute id to filter calls by callDisposition (e.g. filter[callDisposition][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "callDisposition" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "callDisposition" - type: "string" - title: "links" - title: "callDisposition" - x-internal: false - callPurpose: - description: "The associated call purpose. You can use only the attribute id to filter calls by callPurpose (e.g. filter[callPurpose][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "callPurpose" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "callPurpose" - type: "string" - title: "links" - title: "callPurpose" - x-internal: false - opportunity: - description: "The associated opportunity. You can use only the attribute id to filter calls by opportunity (e.g. filter[opportunity][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "opportunity" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "opportunity" - type: "string" - title: "links" - title: "opportunity" - x-internal: false - phoneNumber: - description: "The associated phone number of the prospect. You can use only the attribute id to filter calls by phoneNumber (e.g. filter[phoneNumber][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "phoneNumber" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "phoneNumber" - type: "string" - title: "links" - title: "phoneNumber" - x-internal: false - prospect: - description: "The associated prospect. You can use only the attribute id to filter calls by prospect (e.g. filter[prospect][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "prospect" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "prospect" - type: "string" - title: "links" - title: "prospect" - x-internal: false - sequence: - description: "The associated sequence. You can use only the attribute id to filter calls by sequence (e.g. filter[sequence][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "sequence" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "sequence" - type: "string" - title: "links" - title: "sequence" - x-internal: false - sequenceState: - description: "The associated sequence state. You can use only the attribute id to filter calls by sequenceState (e.g. filter[sequenceState][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "sequenceState" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "sequenceState" - type: "string" - title: "links" - title: "sequenceState" - x-internal: false - sequenceStep: - description: "The associated sequence step. You can use only the attribute id to filter calls by sequenceStep (e.g. filter[sequenceStep][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "sequenceStep" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "sequenceStep" - type: "string" - title: "links" - title: "sequenceStep" - x-internal: false - task: - description: "The associated task. You can use only the attribute id to filter calls by task (e.g. filter[task][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "task" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "task" - type: "string" - title: "links" - title: "task" - x-internal: false - user: - description: "The associated user. You can use only the attribute id to filter calls by user (e.g. filter[user][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - callResponse: - properties: - attributes: - $ref: "#/components/schemas/call" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/callRelationships" - type: - type: "string" - type: "object" - x-internal: false - complianceRequest: - description: "A regulatory request to delete or export an individual's PII." - properties: - batchComplianceRequestUuid: - description: "\n\nThe UUID of the batch the compliance request belongs to." - type: "string" - x-internal: false - createdAt: - description: "\n\nThe date and time the compliance request was created." - format: "date-time" - type: "string" - x-internal: false - objectType: - description: "\n\nThe type of record to process, can be 'Prospect' or 'Recipient' for e-mail addresses unassociated with a prospect." - maxLength: 255 - type: "string" - x-internal: false - pii: - description: "\n\nA JSON object of personal information required for processing the compliance request." - type: "object" - x-internal: false - requestObjectId: - description: "\n\nThe identifier for the record processed, for Prospects this is the Prospect ID, for Recipients this is an e-mail address." - maxLength: 255 - type: "string" - x-internal: false - requestType: - description: "\n\nThe type of compliance request (only 'Delete' is supported at this time)." - maxLength: 32 - type: "string" - x-internal: false - requesterId: - description: "\n\nThe ID of the Outreach user who submitted the compliance request." - type: "integer" - x-internal: false - state: - description: " \n\nThe current state of the compliance request, can be 'pending', 'running', 'failed', or 'done'. The states on the higher level abstraction, the batch compliance request, do not map 1:1 to these states. The only states that the batch compliance request will report are either 'pending' or 'done'." - maxLength: 32 - type: "string" - x-internal: false - updatedAt: - description: "\n\nThe date and time at which the compliance request was last updated." - format: "date-time" - type: "string" - x-internal: false - uuid: - description: " \n\nThe UUID of the compliance request." - maxLength: 255 - type: "string" - x-internal: false - type: "object" - x-internal: false - complianceRequestRelationships: - properties: - requester: - description: "\n\nThe Outreach user who submitted the compliance request. Relationship requester cannot be used as a filter." - oneOf: - - - description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - complianceRequestResponse: - properties: - attributes: - $ref: "#/components/schemas/complianceRequest" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/complianceRequestRelationships" - type: - type: "string" - type: "object" - x-internal: false - contentCategory: - description: "Content can be grouped into content categories to help discoverability." - properties: - allowSequences: - description: "\n\nCan this category be used to group sequences?" - type: "boolean" - x-internal: false - allowSnippets: - description: "\n\nCan this category be used to group snippets?" - type: "boolean" - x-internal: false - allowTemplates: - description: "\n\nCan this category be used to group templates?" - type: "boolean" - x-internal: false - color: - description: "\n\nColor of the content category to be used as a background" - maxLength: 255 - type: "string" - x-internal: false - createdAt: - description: " \n\nThe date and time the content category was created." - format: "date-time" - type: "string" - x-internal: false - name: - description: " \n\nThe name of the content category." - maxLength: 255 - type: "string" - x-internal: false - updatedAt: - description: " \n\nThe date and time the content category was last updated." - format: "date-time" - type: "string" - x-internal: false - type: "object" - x-internal: false - contentCategoryMembership: - description: "A record that maps content (e.g. a sequence) to a content category." - properties: - createdAt: - description: " \n\nThe date and time the content category membership was created." - format: "date-time" - type: "string" - x-internal: false - updatedAt: - description: " \n\nThe date and time the content category membership was last updated." - format: "date-time" - type: "string" - x-internal: false - type: "object" - x-internal: false - contentCategoryMembershipRelationships: - properties: - content: - description: "The record in the content category. Must be a sequence, snippet, or template. Relationship content cannot be used as a filter." - oneOf: - - - description: "Leverage emailing within Sequences to engage each individual persona more effectively, and queue up the right actions at the right time." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "snippet" - - "template" - - "sequence" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "snippet" - - "template" - - "sequence" - type: "string" - title: "links" - title: "sequence" - - - description: "A piece of an email to be reused in multiple messages." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "snippet" - - "template" - - "sequence" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "snippet" - - "template" - - "sequence" - type: "string" - title: "links" - title: "snippet" - - - description: "A reusable template for building emails." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "snippet" - - "template" - - "sequence" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "snippet" - - "template" - - "sequence" - type: "string" - title: "links" - title: "template" - x-internal: false - contentCategory: - description: "The content category the record is part of. You can use only the attribute id to filter contentCategoryMemberships by contentCategory (e.g. filter[contentCategory][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "contentCategory" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "contentCategory" - type: "string" - title: "links" - title: "contentCategory" - x-internal: false - creator: - description: "\n\nThe creator of the content category membership. Relationship creator cannot be used as a filter." - oneOf: - - - description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - contentCategoryMembershipResponse: - properties: - attributes: - $ref: "#/components/schemas/contentCategoryMembership" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/contentCategoryMembershipRelationships" - type: - type: "string" - type: "object" - x-internal: false - contentCategoryOwnership: - description: "A record that maps content categories to owners. This allows categories to be linked to one or more teams." - properties: - createdAt: - description: " \n\nThe date and time the content category ownership was created." - format: "date-time" - type: "string" - x-internal: false - updatedAt: - description: " \n\nThe date and time the content category ownership was last updated." - format: "date-time" - type: "string" - x-internal: false - type: "object" - x-internal: false - contentCategoryOwnershipRelationships: - properties: - contentCategory: - description: "The content category the owner is linked to. You can use only the attribute id to filter contentCategoryOwnerships by contentCategory (e.g. filter[contentCategory][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "contentCategory" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "contentCategory" - type: "string" - title: "links" - title: "contentCategory" - x-internal: false - creator: - description: "\n\nThe creator of the content category ownership. Relationship creator cannot be used as a filter." - oneOf: - - - description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - owner: - description: "The record the content category is tied to. Must a team for now. Relationship owner cannot be used as a filter." - oneOf: - - - description: "A descriptor of a group of users." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "team" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "team" - type: "string" - title: "links" - title: "team" - x-internal: false - type: "object" - contentCategoryOwnershipResponse: - properties: - attributes: - $ref: "#/components/schemas/contentCategoryOwnership" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/contentCategoryOwnershipRelationships" - type: - type: "string" - type: "object" - x-internal: false - contentCategoryRelationships: - properties: - creator: - description: "\n\nThe creator of the content category. Relationship creator cannot be used as a filter." - oneOf: - - - description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - contentCategoryResponse: - properties: - attributes: - $ref: "#/components/schemas/contentCategory" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/contentCategoryRelationships" - type: - type: "string" - type: "object" - x-internal: false - customDuty: - description: "A freeform user-specified role or job duty played by a user in their organization." - properties: - dutyType: - description: "\n\nThe polymorphic type of the duty (not the Ruby type, the duty type)." - type: "string" - x-internal: false - name: - description: "\n\nThe name of the role." - maxLength: 255 - type: "string" - x-internal: false - type: "object" - x-internal: false - customDutyRelationships: - type: "object" - customDutyResponse: - properties: - attributes: - $ref: "#/components/schemas/customDuty" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/customDutyRelationships" - type: - type: "string" - type: "object" - x-internal: false - customValidationRelationships: - properties: - creator: - description: "\n\nThe creator of the custom validation." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - updater: - description: "\n\nThe most recent updater of the custom validation." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - duty: - description: "An Outreach-suggested role or job duty played by a user in their organization." - properties: - dutyType: - description: "\n\nThe polymorphic type of the duty (not the Ruby type, the duty type)." - type: "string" - x-internal: false - symbolicName: - description: "\n\nThe string constant used to refer to this duty which can be internationalized on the client." - maxLength: 255 - type: "string" - x-internal: false - type: "object" - x-internal: false - dutyRelationships: - type: "object" - dutyResponse: - properties: - attributes: - $ref: "#/components/schemas/duty" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/dutyRelationships" - type: - type: "string" - type: "object" - x-internal: false - emailAddress: - description: "A prospect's email address" - properties: - createdAt: - description: "\n\nThe date and time the email address was created." - format: "date-time" - type: "string" - x-internal: false - email: - description: " \n\nThe raw email address value" - format: "email" - maxLength: 255 - type: "string" - x-internal: false - emailType: - description: " \n\nType of email address (work or personal)" - maxLength: 255 - type: "string" - x-internal: false - order: - description: " \n\nOrdered position in list of emails" - type: "integer" - x-internal: false - status: - description: " \n\nThe status of the email" - maxLength: 255 - type: "string" - x-internal: false - statusChangedAt: - description: " \n\nTime the status was updated" - format: "date-time" - type: "string" - x-internal: false - unsubscribedAt: - description: " \n\nTime a mailing was unsubscribed using this address" - format: "date-time" - type: "string" - x-internal: false - updatedAt: - description: " \n\nThe date and time the email address was last updated." - format: "date-time" - type: "string" - x-internal: false - type: "object" - x-internal: false - emailAddressRelationships: - properties: - prospect: - description: "The owning prospect You can use only the attribute id to filter emailAddresses by prospect (e.g. filter[prospect][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "prospect" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "prospect" - type: "string" - title: "links" - title: "prospect" - x-internal: false - type: "object" - emailAddressResponse: - properties: - attributes: - $ref: "#/components/schemas/emailAddress" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/emailAddressRelationships" - type: - type: "string" - type: "object" - x-internal: false - event: - description: "Application events, capturing details around the initiator, recipient, etc." - properties: - body: - description: "\n\nThe event body (for external events only)" - type: "string" - x-internal: false - createdAt: - description: " \n\nThe date and time the event was created." - format: "date-time" - type: "string" - x-internal: false - eventAt: - description: " \n\nThe date and time the event occurred." - format: "date-time" - type: "string" - x-internal: false - externalUrl: - description: "\n\nThe external URL associated with this event (for external events only)" - type: "string" - x-internal: false - name: - description: "\n\nThe name of the event that took place (e.g. \"mailbox_created\")." - maxLength: 255 - type: "string" - x-internal: false - payload: - description: "\n\nThe transmitted data for the event (cannot be updated once an event has been created)" - type: "object" - x-internal: false - requestCity: - description: "\n\nThe city where the request that created the event was made." - maxLength: 255 - type: "string" - x-internal: false - requestDevice: - description: "\n\nThe type of device on which the request that created the event was made." - maxLength: 255 - type: "string" - x-internal: false - requestHost: - description: "\n\nName of the host from which the request was made." - maxLength: 255 - type: "string" - x-internal: false - requestProxied: - description: "\n\nA boolean value whether the request was proxied. For example, when true the request city refers to the location of the email server and not the prospect." - type: "boolean" - x-internal: false - requestRegion: - description: "\n\nName of the region from which the request was made." - maxLength: 255 - type: "string" - x-internal: false - type: "object" - x-internal: false - eventRelationships: - properties: - account: - description: "The account associated with this event. You can use only the attribute id to filter events by account (e.g. filter[account][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "account" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "account" - type: "string" - title: "links" - title: "account" - x-internal: false - call: - description: "The call associated with this event. You can use only the attribute id to filter events by call (e.g. filter[call][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "call" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "call" - type: "string" - title: "links" - title: "call" - x-internal: false - mailing: - description: "The mailing associated with this event. You can use only the attribute id to filter events by mailing (e.g. filter[mailing][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "mailing" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "mailing" - type: "string" - title: "links" - title: "mailing" - x-internal: false - opportunity: - description: "The opportunity associated with this event. You can use only the attribute id to filter events by opportunity (e.g. filter[opportunity][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "opportunity" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "opportunity" - type: "string" - title: "links" - title: "opportunity" - x-internal: false - prospect: - description: "The prospect associated with this event. You can use only the attribute id to filter events by prospect (e.g. filter[prospect][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "prospect" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "prospect" - type: "string" - title: "links" - title: "prospect" - x-internal: false - task: - description: "The task associated with this event. You can use only the attribute id to filter events by task (e.g. filter[task][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "task" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "task" - type: "string" - title: "links" - title: "task" - x-internal: false - user: - description: "The user associated with this event. You can use only the attribute id to filter events by user (e.g. filter[user][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - eventResponse: - properties: - attributes: - $ref: "#/components/schemas/event" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/eventRelationships" - type: - type: "string" - type: "object" - x-internal: false - experimentRelationships: - properties: - creator: - description: "\n\nThe creator of the experiment." - oneOf: - - - description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - owner: - description: "The user who owns the experiment." - oneOf: - - - description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - sequenceA: - description: "The \"target\" sequence, Sequence A, of this experiment. When the experiment is enabled, this sequence will be probabilistically replaced with the \"alternate\" sequence, Sequence B, based on the percentage attribute." - oneOf: - - - description: "Leverage emailing within Sequences to engage each individual persona more effectively, and queue up the right actions at the right time." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "sequence" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "sequence" - type: "string" - title: "links" - title: "sequence" - x-internal: false - sequenceB: - description: "The \"alternate\" sequence of this experiment." - oneOf: - - - description: "Leverage emailing within Sequences to engage each individual persona more effectively, and queue up the right actions at the right time." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "sequence" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "sequence" - type: "string" - title: "links" - title: "sequence" - x-internal: false - type: "object" - exportRelationships: - properties: - creator: - description: "\n\n" - oneOf: - - - description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - favorite: - description: "A record (Prospect, Account, Sequence, etc.) favorited by a particular user." - properties: - createdAt: - description: " \n\nThe date and time the favorite was created." - format: "date-time" - type: "string" - x-internal: false - targetType: - description: " \n\nThe type of record that was favorited." - maxLength: 255 - type: "string" - x-internal: false - updatedAt: - description: " \n\nThe date and time the favorite was last updated." - format: "date-time" - type: "string" - x-internal: false - type: "object" - x-internal: false - favoriteRelationships: - properties: - creator: - description: "\n\nThe user who created the favorite. Relationship creator cannot be used as a filter." - oneOf: - - - description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - user: - description: "The user who's favorite this is. You can use only the attribute id to filter favorites by user (e.g. filter[user][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - favoriteResponse: - properties: - attributes: - $ref: "#/components/schemas/favorite" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/favoriteRelationships" - type: - type: "string" - type: "object" - x-internal: false - featureFlagParticipationRelationships: - type: "object" - featureFlagRelationships: - type: "object" - gmailMessageMetadatumRelationships: - properties: - mailings: - description: "" - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "mailing" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "mailing" - type: "string" - title: "links" - title: "mailing" - type: "array" - x-internal: false - type: "object" - importRelationships: - properties: - creator: - description: "\n\n" - oneOf: - - - description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - inboxSettingRelationships: - properties: - user: - description: "The associated user to whom this settings belong." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - jobRoleRelationships: - type: "object" - mailAlias: - description: "Alternative email name for a mailbox." - properties: - canSend: - description: "\n\nCan this alias send email." - type: "boolean" - x-internal: false - createdAt: - description: " \n\nThe date the alias was created." - format: "date-time" - type: "string" - x-internal: false - email: - description: "\n\nThe email alias." - maxLength: 255 - type: "string" - x-internal: false - emailHash: - description: "\n\nHashed email address of the alias." - maxLength: 255 - type: "string" - x-internal: false - updatedAt: - description: " \n\nThe date the alias was last updated." - format: "date-time" - type: "string" - x-internal: false - type: "object" - x-internal: false - mailAliasRelationships: - properties: - mailbox: - description: "The parent mailbox for this alias. You can use only the attribute id to filter mailAliases by mailbox (e.g. filter[mailbox][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "mailbox" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "mailbox" - type: "string" - title: "links" - title: "mailbox" - x-internal: false - type: "object" - mailAliasResponse: - properties: - attributes: - $ref: "#/components/schemas/mailAlias" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/mailAliasRelationships" - type: - type: "string" - type: "object" - x-internal: false - mailbox: - description: "A representation of an email mailbox, used within the application for sending and syncing emails." - properties: - authId: - description: "\n\nThe auth id associated with the mailbox." - type: "integer" - x-internal: false - createdAt: - description: " \n\nThe date and time the mailbox was created." - format: "date-time" - type: "string" - x-internal: false - editable: - description: "\n\nA boolean value to indicate if the user has the permission to edit mailbox fields." - type: "boolean" - x-internal: false - email: - description: " \n\nThe email address of the mailbox." - maxLength: 255 - type: "string" - x-internal: false - emailHash: - description: "\n\nHashed email address of the mailbox." - maxLength: 255 - type: "string" - x-internal: false - emailProvider: - description: "\n\nThe mail service provider. While not a required field, it is strongly recommended to use one of 'exchange_online', 'exchange_server', 'gmail', 'gmail_api', 'google_oauth2', 'intermedia', 'office365_oauth2', 'microsoft_hma_oauth2', 'office_365', 'rackspace'. If no value is provided, send and sync will make assumptions based on the ews, imap, and smtp values provided." - maxLength: 255 - type: "string" - x-internal: false - emailSignature: - description: "\n\nThe default signature, in HTML, to be appended to sent email messages." - maxLength: 65535 - type: "string" - x-internal: false - ewsEndpoint: - description: "\n\nThe url of the Exchange Web Service." - maxLength: 255 - type: "string" - x-internal: false - ewsSslVerifyMode: - description: "\n\nThe SSL verify mode, represented as an integer, the EWS connection will used. (verify none=0, verify peer=1, verify client once=4, verify fail if no peer cert=2)" - type: "integer" - x-internal: false - exchangeVersion: - description: "\n\nThe version of Exchange. Must be one of 'Exchange2007', 'Exchange2007_SP1', 'Exchange2010', 'Exchange2010_SP1', 'Exchange2010_SP2', 'Exchange2013', 'Exchange2013_SP1'." - maxLength: 255 - type: "string" - x-internal: false - imapHost: - description: "\n\nThe address of the IMAP host, used for syncing (e.g. 'imap.gmail.com')." - maxLength: 255 - type: "string" - x-internal: false - imapPort: - description: "\n\nThe port number the IMAP server is using (e.g. '993')." - type: "integer" - x-internal: false - imapSsl: - description: "\n\nA boolean value whether the IMAP connection will use SSL." - type: "boolean" - x-internal: false - maxEmailsPerDay: - description: "\n\nThe maximum number of in/out emails per day." - type: "integer" - x-internal: false - maxMailingsPerDay: - description: "\n\nThe maximum number of emails the application can send in a day from this mailbox. Recommended value is 500." - type: "integer" - x-internal: false - maxMailingsPerWeek: - description: "\n\nThe maximum number of emails the application can send within a week from this mailbox. Recommended value is 5000." - type: "integer" - x-internal: false - optOutMessage: - description: "\n\nThe message displayed on the unsubscribe confirmation page, seen after clicking the unsubscribe link in the email (e.g. \"To unsubscribe, click the button below.\")." - maxLength: 512 - type: "string" - x-internal: false - optOutSignature: - description: "\n\nThe message below the signature, in HTML, when the sequence requires an unsubscribe link (e.g. \"If you'd like me to stop sending you emails, please `click here`\")." - maxLength: 512 - type: "string" - x-internal: false - password: - description: "\n\nThe password of the mailbox. This attribute can be used to set the password, but is not available for read." - maxLength: 65535 - type: "string" - x-internal: false - prospectEmailExclusions: - description: "\n\nA list (provided as a string, newline-delimited) of email address patterns to be excluded from syncing (e.g. \"`*@outreach.io\ndaniel@example.com`\")." - maxLength: 65535 - type: "string" - x-internal: false - providerId: - description: "\n\nThe id of the provider associated with this calendar." - type: "integer" - x-internal: false - providerType: - description: "\n\nEmail provider type." - maxLength: 255 - type: "string" - x-internal: false - sendDisabled: - description: "\n\nA boolean value whether sending is disabled from this mailbox." - type: "boolean" - x-internal: false - sendErroredAt: - description: "\n\nThe date and time the most recent send error occurred." - format: "date-time" - type: "string" - x-internal: false - sendMaxRetries: - description: "\n\nThe maximum number of times to auto-retry a delivery when it fails." - type: "integer" - x-internal: false - sendMethod: - description: "\n\nThe method used for sending email. Must be either 'ews', 'sendgrid', or 'smtp'." - maxLength: 255 - type: "string" - x-internal: false - sendPeriod: - description: "\n\nThe amount of time in seconds that the number of sendThreshold emails can be sent. Recommended value is two deliveries per minute (sendPeriod is 60)." - type: "integer" - x-internal: false - sendRequiresSync: - description: "\n\nA boolean value whether the mailbox is required to be recently synced before sending." - type: "boolean" - x-internal: false - sendSuccessAt: - description: "\n\nThe date and time the most recent successful email send occurred." - format: "date-time" - type: "string" - x-internal: false - sendThreshold: - description: "\n\nThe maximum number of email sends per the sendPeriod amount of time. Recommended value is two deliveries per minute (sendThreshold is 2)." - type: "integer" - x-internal: false - sendgridApiKey: - description: "\n\nThe api key of the SendGrid account used for sending." - maxLength: 65535 - type: "string" - x-internal: false - sendgridWebhookUrl: - description: "\n\nThe endpoint required within the SendGrid account settings to support bounce and spam-report tracking." - type: "string" - x-internal: false - smtpHost: - description: "\n\nThe address of the SMTP host, used for sending (e.g. 'smtp.gmail.com')." - maxLength: 255 - type: "string" - x-internal: false - smtpPassword: - description: "\n\nThe password for the SMTP account. This value should be left blank unless a separate SMTP account is being used for sending (i.e. not the mailbox's main username/password)." - maxLength: 65535 - type: "string" - x-internal: false - smtpPort: - description: "\n\nThe port number the SMTP server is using (e.g. '587')." - type: "integer" - x-internal: false - smtpSsl: - description: "\n\nA boolean value whether the SMTP connection will use SSL." - type: "boolean" - x-internal: false - smtpUsername: - description: "\n\nThe username for the SMTP account. This value should be left blank unless a separate SMTP account is being used for sending (i.e. not the mailbox's main username/password)." - maxLength: 255 - type: "string" - x-internal: false - syncActiveFrequency: - description: "\n\nThe amount of time in seconds between syncing when the user is actively using the application." - type: "integer" - x-internal: false - syncDisabled: - description: "\n\nA boolean value whether syncing is disabled from this mailbox." - type: "boolean" - x-internal: false - syncErroredAt: - description: "\n\nThe date and time the most recent sync error occurred." - format: "date-time" - type: "string" - x-internal: false - syncFinishedAt: - description: "\n\nThe date and time the most recent sync finished." - format: "date-time" - type: "string" - x-internal: false - syncMethod: - description: "\n\nThe method used for syncing email. Must be either 'ews', 'gmail_api', or 'imap'." - maxLength: 255 - type: "string" - x-internal: false - syncOutreachFolder: - description: "\n\nA boolean value whether the folder for syncing is named 'Outreach' instead of 'Inbox'. Only available for Exchange version 'Exchange2007_SP1'." - type: "boolean" - x-internal: false - syncPassiveFrequency: - description: "\n\nThe amount of time in seconds between syncing when the user is not actively using the application." - type: "integer" - x-internal: false - syncSuccessAt: - description: "\n\nThe date and time the most recent successful email sync occurred." - format: "date-time" - type: "string" - x-internal: false - updatedAt: - description: " \n\nThe date and time the mailbox was last updated." - format: "date-time" - type: "string" - x-internal: false - userId: - description: " \n\nThe id of the user associated with this mailbox." - type: "integer" - x-internal: false - username: - description: "\n\nThe username of the email account. While not a required field, a username is necessary for most email providers outside of OAuth. This value is normally the same as the email address." - maxLength: 255 - type: "string" - x-internal: false - validateSend: - description: "\n\nIf this is set to true then the record will only save successfully if the mailbox is properly configured to send emails." - type: "boolean" - x-internal: false - validateSync: - description: "\n\nIf this is set to true then the record will only save successfully if the mailbox is properly configured to sync emails." - type: "boolean" - x-internal: false - type: "object" - x-internal: false - mailboxContactRelationships: - properties: - mailbox: - description: "The mailbox associated with this contact." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "mailbox" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "mailbox" - type: "string" - title: "links" - title: "mailbox" - x-internal: false - type: "object" - mailboxRelationships: - properties: - creator: - description: "\n\nThe creator of the mailbox. Relationship creator cannot be used as a filter." - oneOf: - - - description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - mailAliases: - description: "\n\nThe email aliases associated with this mailbox Relationship mailAliases cannot be used as a filter." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "mailAlias" - type: "string" - title: "links" - title: "mailAlias" - type: "array" - x-internal: false - mailings: - description: "\n\nThe mailings sent via this mailbox. Relationship mailings cannot be used as a filter." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "mailing" - type: "string" - title: "links" - title: "mailing" - type: "array" - x-internal: false - updater: - description: "\n\nThe most recent updater of the mailbox. Relationship updater cannot be used as a filter." - oneOf: - - - description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - user: - description: "The user owning this mailbox. You can use only the attribute id to filter mailboxes by user (e.g. filter[user][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - mailboxResponse: - properties: - attributes: - $ref: "#/components/schemas/mailbox" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/mailboxRelationships" - type: - type: "string" - type: "object" - x-internal: false - mailing: - description: "A representation of a platform-related email." - properties: - bodyHtml: - description: "\n\nThe mailing's custom email body, represented in HTML. If provided this field will override any associated template." - type: "string" - x-internal: false - bodyText: - description: "\n\nThe plain-text representation of the 'bodyHTML' field." - type: "string" - x-internal: false - bouncedAt: - description: " \n\nThe date and time the email was bounced." - format: "date-time" - type: "string" - x-internal: false - clickCount: - description: "\n\nThe total number of times links within the email were clicked (if the message is tracking links)." - type: "integer" - x-internal: false - clickedAt: - description: " \n\nThe most recent date and time a link was clicked (if the message is tracking links)." - format: "date-time" - type: "string" - x-internal: false - createdAt: - description: " \n\nThe date and time the mailing was created." - format: "date-time" - type: "string" - x-internal: false - deliveredAt: - description: " \n\nThe date and time the email was delivered." - format: "date-time" - type: "string" - x-internal: false - errorBacktrace: - description: "\n\nTechnical details explaining the mailing's error." - maxLength: 65535 - type: "string" - x-internal: false - errorReason: - description: "\n\nA summary explaining the mailing's error." - maxLength: 255 - type: "string" - x-internal: false - followUpTaskScheduledAt: - description: "\n\nThe date and time of when a follow-up task should be due for this mailing." - format: "date-time" - type: "string" - x-internal: false - followUpTaskType: - description: "\n\nThe type of follow-up task to create. Possible values are 'follow_up' or 'no_reply'." - maxLength: 255 - type: "string" - x-internal: false - mailboxAddress: - description: "\n\nThe email address the mailing was sent from." - type: "string" - x-internal: false - mailingType: - description: " \n\nA description of the type of the emailing (e.g. \"sequence\", \"single\", \"campaign\")." - maxLength: 255 - type: "string" - x-internal: false - markedAsSpamAt: - description: "\n\nThe date and time the email was marked as spam." - format: "date-time" - type: "string" - x-internal: false - messageId: - description: " \n\nThe MIME content Message-ID of the delivered message." - maxLength: 255 - type: "string" - x-internal: false - notifyThreadCondition: - description: "\n\nThe condition of when to bump this mailing to the top of the user's inbox. Possible values are 'always' or 'no_reply'." - maxLength: 255 - type: "string" - x-internal: false - notifyThreadScheduledAt: - description: " \n\nThe date and time of when this mailing should be bumped to the top of the user's inbox." - format: "date-time" - type: "string" - x-internal: false - notifyThreadStatus: - description: " \n\nThe status of the bump. Possible values are 'pending', 'sent' or 'skipped'." - maxLength: 255 - type: "string" - x-internal: false - openCount: - description: "\n\nThe total number of times the email was opened (if the message is tracking opens)." - type: "integer" - x-internal: false - openedAt: - description: " \n\nThe most recent date and time the email was opened (if the message is tracking opens)." - format: "date-time" - type: "string" - x-internal: false - overrideSafetySettings: - description: "\n\nA boolean value whether users can override submission if template variables have not all been replaced." - type: "boolean" - x-internal: false - references: - description: "\n\nA list of references for the mailing taken from the email header." - items: - type: "string" - type: "array" - x-internal: false - repliedAt: - description: " \n\nThe date and time the email was replied to." - format: "date-time" - type: "string" - x-internal: false - retryAt: - description: " \n\nThe date and time the email will rety to send." - format: "date-time" - type: "string" - x-internal: false - retryCount: - description: "\n\nThe number of times the email has been retried to send." - type: "integer" - x-internal: false - retryInterval: - description: "\n\nThe amount of time in seconds between retry attempts." - type: "integer" - x-internal: false - scheduledAt: - description: " \n\nThe date and time the email is scheduled to send." - format: "date-time" - type: "string" - x-internal: false - state: - description: " \n\nThe current state of the mailing. Can be 'bounced', 'delivered', 'delivering', 'drafted', 'failed', 'opened', 'placeholder', 'queued', 'replied', or 'scheduled'." - maxLength: 255 - type: "string" - x-internal: false - stateChangedAt: - description: " \n\nThe date and time the state last changed." - format: "date-time" - type: "string" - x-internal: false - subject: - description: "\n\nThe subject line of the email." - type: "string" - x-internal: false - trackLinks: - description: "\n\nA boolean value whether the mailing is tracking link clicks." - type: "boolean" - x-internal: false - trackOpens: - description: "\n\nA boolean value whether the mailing is tracking email opens." - type: "boolean" - x-internal: false - unsubscribedAt: - description: " \n\nThe date and time the recepient unsubscribed from the mailing's sequence." - format: "date-time" - type: "string" - x-internal: false - updatedAt: - description: " \n\nThe date and time the mailing was last updated." - format: "date-time" - type: "string" - x-internal: false - type: "object" - x-internal: false - mailingRelationships: - properties: - followUpSequence: - description: "\n\nThe followup sequence associated with this mailing. You can use only the attribute id to filter mailings by followUpSequence (e.g. filter[followUpSequence][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "sequence" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "sequence" - type: "string" - title: "links" - title: "sequence" - x-internal: false - mailbox: - description: "The mailbox associated with this mailing. You can use only the attribute id to filter mailings by mailbox (e.g. filter[mailbox][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "mailbox" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "mailbox" - type: "string" - title: "links" - title: "mailbox" - x-internal: false - opportunity: - description: "\n\nThe associated opportunity. You can use only the attribute id to filter mailings by opportunity (e.g. filter[opportunity][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "opportunity" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "opportunity" - type: "string" - title: "links" - title: "opportunity" - x-internal: false - prospect: - description: "The prospect associated with this mailing. You can use only the attribute id to filter mailings by prospect (e.g. filter[prospect][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "prospect" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "prospect" - type: "string" - title: "links" - title: "prospect" - x-internal: false - recipients: - description: "Recipients of the mailing. Relationship recipients cannot be used as a filter." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "recipient" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "recipient" - type: "string" - title: "links" - title: "recipient" - type: "array" - x-internal: false - sequence: - description: "\n\nThe associated sequence. You can use only the attribute id to filter mailings by sequence (e.g. filter[sequence][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "sequence" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "sequence" - type: "string" - title: "links" - title: "sequence" - x-internal: false - sequenceState: - description: "\n\nThe associated sequence state. You can use only the attribute id to filter mailings by sequenceState (e.g. filter[sequenceState][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "sequenceState" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "sequenceState" - type: "string" - title: "links" - title: "sequenceState" - x-internal: false - sequenceStep: - description: "\n\nThe associated sequence step. You can use only the attribute id to filter mailings by sequenceStep (e.g. filter[sequenceStep][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "sequenceStep" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "sequenceStep" - type: "string" - title: "links" - title: "sequenceStep" - x-internal: false - task: - description: "\n\nThe task this mailing will or did complete upon sending. You can use only the attribute id to filter mailings by task (e.g. filter[task][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "task" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "task" - type: "string" - title: "links" - title: "task" - x-internal: false - tasks: - description: "\n\nAll tasks associated with this mailing, such as a follow-up task. Relationship tasks cannot be used as a filter." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "task" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "task" - type: "string" - title: "links" - title: "task" - type: "array" - x-internal: false - template: - description: "The template associated with this mailing. You can use only the attribute id to filter mailings by template (e.g. filter[template][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "template" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "template" - type: "string" - title: "links" - title: "template" - x-internal: false - user: - description: "\n\nThe user associated with this mailing. You can use only the attribute id to filter mailings by user (e.g. filter[user][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - mailingResponse: - properties: - attributes: - $ref: "#/components/schemas/mailing" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/mailingRelationships" - type: - type: "string" - type: "object" - x-internal: false - meetingFieldRelationships: - type: "object" - meetingRelationships: - type: "object" - meetingTypeRelationships: - properties: - creator: - description: "\n\nThe creator of the meeting type." - oneOf: - - - description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - owner: - description: "The user who owns this meeting type." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - team: - description: "" - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "team" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "team" - type: "string" - title: "links" - title: "team" - x-internal: false - type: "object" - modelSchemaVersionRelationships: - type: "object" - noteRelationships: - type: "object" - opportunity: - description: "An opportunity for a sale or pending deal. Requires the Opportunities SKU to be enabled in order to have access. Please contact support for more assistance." - properties: - amount: - description: "\n\nThe amount the opportunity is worth." - type: "integer" - x-internal: false - closeDate: - description: "\n\nThe date the opportunity is expected to close." - format: "date-time" - type: "string" - x-internal: false - createdAt: - description: " \n\nThe date the opportunity was created." - format: "date-time" - type: "string" - x-internal: false - currencyType: - description: "\n\nThe ISO code of the currency this opportunity is in." - maxLength: 255 - type: "string" - x-internal: false - custom1: - description: "\n\nThe value of the opportunity's first custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom2: - description: "\n\nThe value of the opportunity's second custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom3: - description: "\n\nThe value of the opportunity's third custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom4: - description: "\n\nThe value of the opportunity's fourth custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom5: - description: "\n\nThe value of the opportunity's fifth custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom6: - description: "\n\nThe value of the opportunity's sixth custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom7: - description: "\n\nThe value of the opportunity's seventh custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom8: - description: "\n\nThe value of the opportunity's eighth custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom9: - description: "\n\nThe value of the opportunity's ninth custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom10: - description: "\n\nThe value of the opportunity's 10th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom11: - description: "\n\nThe value of the opportunity's 11th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom12: - description: "\n\nThe value of the opportunity's 12th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom13: - description: "\n\nThe value of the opportunity's 13th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom14: - description: "\n\nThe value of the opportunity's 14th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom15: - description: "\n\nThe value of the opportunity's 15th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom16: - description: "\n\nThe value of the opportunity's 16th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom17: - description: "\n\nThe value of the opportunity's 17th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom18: - description: "\n\nThe value of the opportunity's 18th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom19: - description: "\n\nThe value of the opportunity's 19th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom20: - description: "\n\nThe value of the opportunity's 20th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom21: - description: "\n\nThe value of the opportunity's 21st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom22: - description: "\n\nThe value of the opportunity's 22nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom23: - description: "\n\nThe value of the opportunity's 23rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom24: - description: "\n\nThe value of the opportunity's 24th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom25: - description: "\n\nThe value of the opportunity's 25th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom26: - description: "\n\nThe value of the opportunity's 26th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom27: - description: "\n\nThe value of the opportunity's 27th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom28: - description: "\n\nThe value of the opportunity's 28th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom29: - description: "\n\nThe value of the opportunity's 29th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom30: - description: "\n\nThe value of the opportunity's 30th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom31: - description: "\n\nThe value of the opportunity's 31st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom32: - description: "\n\nThe value of the opportunity's 32nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom33: - description: "\n\nThe value of the opportunity's 33rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom34: - description: "\n\nThe value of the opportunity's 34th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom35: - description: "\n\nThe value of the opportunity's 35th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom36: - description: "\n\nThe value of the opportunity's 36th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom37: - description: "\n\nThe value of the opportunity's 37th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom38: - description: "\n\nThe value of the opportunity's 38th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom39: - description: "\n\nThe value of the opportunity's 39th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom40: - description: "\n\nThe value of the opportunity's 40th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom41: - description: "\n\nThe value of the opportunity's 41st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom42: - description: "\n\nThe value of the opportunity's 42nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom43: - description: "\n\nThe value of the opportunity's 43rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom44: - description: "\n\nThe value of the opportunity's 44th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom45: - description: "\n\nThe value of the opportunity's 45th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom46: - description: "\n\nThe value of the opportunity's 46th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom47: - description: "\n\nThe value of the opportunity's 47th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom48: - description: "\n\nThe value of the opportunity's 48th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom49: - description: "\n\nThe value of the opportunity's 49th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom50: - description: "\n\nThe value of the opportunity's 50th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom51: - description: "\n\nThe value of the opportunity's 51st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom52: - description: "\n\nThe value of the opportunity's 52nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom53: - description: "\n\nThe value of the opportunity's 53rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom54: - description: "\n\nThe value of the opportunity's 54th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom55: - description: "\n\nThe value of the opportunity's 55th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom56: - description: "\n\nThe value of the opportunity's 56th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom57: - description: "\n\nThe value of the opportunity's 57th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom58: - description: "\n\nThe value of the opportunity's 58th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom59: - description: "\n\nThe value of the opportunity's 59th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom60: - description: "\n\nThe value of the opportunity's 60th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom61: - description: "\n\nThe value of the opportunity's 61st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom62: - description: "\n\nThe value of the opportunity's 62nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom63: - description: "\n\nThe value of the opportunity's 63rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom64: - description: "\n\nThe value of the opportunity's 64th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom65: - description: "\n\nThe value of the opportunity's 65th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom66: - description: "\n\nThe value of the opportunity's 66th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom67: - description: "\n\nThe value of the opportunity's 67th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom68: - description: "\n\nThe value of the opportunity's 68th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom69: - description: "\n\nThe value of the opportunity's 69th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom70: - description: "\n\nThe value of the opportunity's 70th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom71: - description: "\n\nThe value of the opportunity's 71st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom72: - description: "\n\nThe value of the opportunity's 72nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom73: - description: "\n\nThe value of the opportunity's 73rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom74: - description: "\n\nThe value of the opportunity's 74th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom75: - description: "\n\nThe value of the opportunity's 75th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom76: - description: "\n\nThe value of the opportunity's 76th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom77: - description: "\n\nThe value of the opportunity's 77th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom78: - description: "\n\nThe value of the opportunity's 78th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom79: - description: "\n\nThe value of the opportunity's 79th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom80: - description: "\n\nThe value of the opportunity's 80th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom81: - description: "\n\nThe value of the opportunity's 81st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom82: - description: "\n\nThe value of the opportunity's 82nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom83: - description: "\n\nThe value of the opportunity's 83rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom84: - description: "\n\nThe value of the opportunity's 84th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom85: - description: "\n\nThe value of the opportunity's 85th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom86: - description: "\n\nThe value of the opportunity's 86th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom87: - description: "\n\nThe value of the opportunity's 87th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom88: - description: "\n\nThe value of the opportunity's 88th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom89: - description: "\n\nThe value of the opportunity's 89th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom90: - description: "\n\nThe value of the opportunity's 90th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom91: - description: "\n\nThe value of the opportunity's 91st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom92: - description: "\n\nThe value of the opportunity's 92nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom93: - description: "\n\nThe value of the opportunity's 93rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom94: - description: "\n\nThe value of the opportunity's 94th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom95: - description: "\n\nThe value of the opportunity's 95th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom96: - description: "\n\nThe value of the opportunity's 96th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom97: - description: "\n\nThe value of the opportunity's 97th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom98: - description: "\n\nThe value of the opportunity's 98th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom99: - description: "\n\nThe value of the opportunity's 99th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom100: - description: "\n\nThe value of the opportunity's 100th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom101: - description: "\n\nThe value of the opportunity’s 101st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom102: - description: "\n\nThe value of the opportunity’s 102nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom103: - description: "\n\nThe value of the opportunity’s 103rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom104: - description: "\n\nThe value of the opportunity’s 104th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom105: - description: "\n\nThe value of the opportunity’s 105th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom106: - description: "\n\nThe value of the opportunity’s 106th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom107: - description: "\n\nThe value of the opportunity’s 107th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom108: - description: "\n\nThe value of the opportunity’s 108th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom109: - description: "\n\nThe value of the opportunity’s 109th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom110: - description: "\n\nThe value of the opportunity’s 110th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom111: - description: "\n\nThe value of the opportunity’s 111th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom112: - description: "\n\nThe value of the opportunity’s 112th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom113: - description: "\n\nThe value of the opportunity’s 113th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom114: - description: "\n\nThe value of the opportunity’s 114th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom115: - description: "\n\nThe value of the opportunity’s 115th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom116: - description: "\n\nThe value of the opportunity’s 116th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom117: - description: "\n\nThe value of the opportunity’s 117th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom118: - description: "\n\nThe value of the opportunity’s 118th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom119: - description: "\n\nThe value of the opportunity’s 119th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom120: - description: "\n\nThe value of the opportunity’s 120th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom121: - description: "\n\nThe value of the opportunity’s 121st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom122: - description: "\n\nThe value of the opportunity’s 122nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom123: - description: "\n\nThe value of the opportunity’s 123rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom124: - description: "\n\nThe value of the opportunity’s 124th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom125: - description: "\n\nThe value of the opportunity’s 125th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom126: - description: "\n\nThe value of the opportunity’s 126th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom127: - description: "\n\nThe value of the opportunity’s 127th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom128: - description: "\n\nThe value of the opportunity’s 128th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom129: - description: "\n\nThe value of the opportunity’s 129th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom130: - description: "\n\nThe value of the opportunity’s 130th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom131: - description: "\n\nThe value of the opportunity’s 131st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom132: - description: "\n\nThe value of the opportunity’s 132nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom133: - description: "\n\nThe value of the opportunity’s 133rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom134: - description: "\n\nThe value of the opportunity’s 134th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom135: - description: "\n\nThe value of the opportunity’s 135th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom136: - description: "\n\nThe value of the opportunity’s 136th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom137: - description: "\n\nThe value of the opportunity’s 137th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom138: - description: "\n\nThe value of the opportunity’s 138th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom139: - description: "\n\nThe value of the opportunity’s 139th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom140: - description: "\n\nThe value of the opportunity’s 140th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom141: - description: "\n\nThe value of the opportunity’s 141st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom142: - description: "\n\nThe value of the opportunity’s 142nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom143: - description: "\n\nThe value of the opportunity’s 143rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom144: - description: "\n\nThe value of the opportunity’s 144th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom145: - description: "\n\nThe value of the opportunity’s 145th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom146: - description: "\n\nThe value of the opportunity’s 146th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom147: - description: "\n\nThe value of the opportunity’s 147th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom148: - description: "\n\nThe value of the opportunity’s 148th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom149: - description: "\n\nThe value of the opportunity’s 149th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom150: - description: "\n\nThe value of the opportunity’s 150th custom field." - maxLength: 32000 - type: "string" - x-internal: false - description: - description: "\n\nA description of the opportunity." - maxLength: 65535 - type: "string" - x-internal: false - externalCreatedAt: - description: "\n\nThe date the opportunity was created in the external system." - format: "date-time" - type: "string" - x-internal: false - mapLink: - description: "\n\nA link to the SamePlan MAP (Mutual Action Plan) associated with this opportunity." - maxLength: 255 - type: "string" - x-internal: false - mapNextSteps: - description: "\n\nThe next event in the timeline that has yet to be completed for the SamePlan MAP (Mutual Action Plan)." - maxLength: 255 - type: "string" - x-internal: false - mapStatus: - description: " \n\nThe status of the SamePlan MAP (Mutual Action Plan) based on how well both parties are trending towards the plan." - maxLength: 255 - type: "string" - x-internal: false - name: - description: " \n\nThe name of the opportunity." - maxLength: 255 - type: "string" - x-internal: false - nextStep: - description: "\n\nThe next step to take for the opportunity." - maxLength: 65535 - type: "string" - x-internal: false - opportunityType: - description: "\n\nThe type of opportunity." - maxLength: 255 - type: "string" - x-internal: false - probability: - description: " \n\nThe chances of the opportunity succeeding, represented as a percentage." - type: "integer" - x-internal: false - prospectingRepId: - description: "\n\nThe ID of the sales rep that prospects the opportunity." - maxLength: 255 - type: "string" - x-internal: false - sharingTeamId: - description: "\n\nThe ID of the sharing team associated with this object. Access is currently in beta." - maxLength: 255 - type: "string" - x-internal: false - tags: - description: "\n\nTags associated with the opportunity." - items: - type: "string" - type: "array" - x-internal: false - touchedAt: - description: " \n\nThe last time an event happened for an opportunity." - format: "date-time" - type: "string" - x-internal: false - updatedAt: - description: " \n\nThe date the opportunity was last updated." - format: "date-time" - type: "string" - x-internal: false - type: "object" - x-internal: false - opportunityHealthFactorRelationships: - properties: - opportunity: - description: "The opportunity the health factor apply to." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "opportunity" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "opportunity" - type: "string" - title: "links" - title: "opportunity" - x-internal: false - type: "object" - opportunityProspectRole: - description: "A prospect's role and association with an opportunity" - properties: - createdAt: - description: " \n\nThe date and time the role was created." - format: "date-time" - type: "string" - x-internal: false - primary: - description: "\n\nA boolean value indicating if this prospect is the primary contact within an opportunity." - type: "boolean" - x-internal: false - role: - description: " \n\nA string value representing the role." - maxLength: 255 - type: "string" - x-internal: false - updatedAt: - description: " \n\nThe date and time the role was last updated." - format: "date-time" - type: "string" - x-internal: false - type: "object" - x-internal: false - opportunityProspectRoleRelationships: - properties: - opportunity: - description: "The opportunity associated with the role. You can use only the attribute id to filter opportunityProspectRoles by opportunity (e.g. filter[opportunity][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "opportunity" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "opportunity" - type: "string" - title: "links" - title: "opportunity" - x-internal: false - prospect: - description: "The prospect associated with the role. You can use only the attribute id to filter opportunityProspectRoles by prospect (e.g. filter[prospect][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "prospect" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "prospect" - type: "string" - title: "links" - title: "prospect" - x-internal: false - type: "object" - opportunityProspectRoleResponse: - properties: - attributes: - $ref: "#/components/schemas/opportunityProspectRole" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/opportunityProspectRoleRelationships" - type: - type: "string" - type: "object" - x-internal: false - opportunityRelationships: - properties: - account: - description: "The account the opportunity is for. You can use attributes id and name to filter opportunities by account (e.g. filter[account][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "account" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "account" - type: "string" - title: "links" - title: "account" - x-internal: false - creator: - description: "\n\nThe creator of the opportunity. Relationship creator cannot be used as a filter." - oneOf: - - - description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - opportunityStage: - description: "The current stage of the opportunity. You can use only the attribute id to filter opportunities by stage (e.g. filter[stage][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "opportunityStage" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "opportunityStage" - type: "string" - title: "links" - title: "opportunityStage" - x-internal: false - owner: - description: "The user who owns the opportunity. You can use only the attribute id to filter opportunities by owner (e.g. filter[owner][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - prospects: - description: "\n\nThe prospects associated with this opportunity. You can use only the attribute id to filter opportunities by prospects (e.g. filter[prospects][id]=X)." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "prospect" - type: "string" - title: "links" - title: "prospect" - type: "array" - x-internal: false - stage: - description: "\n\nThe current stage of the opportunity. You can use only the attribute id to filter opportunities by stage (e.g. filter[stage][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "opportunityStage" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "opportunityStage" - type: "string" - title: "links" - title: "opportunityStage" - x-internal: false - updater: - description: "\n\nThe updater of the opportunity. Relationship updater cannot be used as a filter." - oneOf: - - - description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - opportunityResponse: - properties: - attributes: - $ref: "#/components/schemas/opportunity" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/opportunityRelationships" - type: - type: "string" - type: "object" - x-internal: false - opportunityStage: - description: "The stage an opportunity is in. Requires the Opportunities SKU to be enabled in order to have access. Please contact support for more assistance." - properties: - color: - description: "\n\nThe color used to label and highlight the opportunity stage." - maxLength: 255 - type: "string" - x-internal: false - createdAt: - description: " \n\nThe date and time the opportunity stage was created." - format: "date-time" - type: "string" - x-internal: false - isClosed: - description: " \n\nEither true or flase, whether or not the opportunity stage represents an open or closed state of an opportunity." - type: "boolean" - x-internal: false - name: - description: " \n\nThe name of the opportunity stage." - maxLength: 255 - type: "string" - x-internal: false - order: - description: " \n\nThe order of the opportunity stage." - type: "integer" - x-internal: false - updatedAt: - description: " \n\nThe date and time the opportunity stage was last updated." - format: "date-time" - type: "string" - x-internal: false - type: "object" - x-internal: false - opportunityStageRelationships: - properties: - creator: - description: "\n\nThe creator of the opportunity. Relationship creator cannot be used as a filter." - oneOf: - - - description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - opportunities: - description: "\n\nThe opportunities currently associated with the opportunity stage. Relationship opportunities cannot be used as a filter." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "opportunity" - type: "string" - title: "links" - title: "opportunity" - type: "array" - x-internal: false - type: "object" - opportunityStageResponse: - properties: - attributes: - $ref: "#/components/schemas/opportunityStage" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/opportunityStageRelationships" - type: - type: "string" - type: "object" - x-internal: false - orgSettingRelationships: - type: "object" - outboundVoicemailRelationships: - properties: - user: - description: "" - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - outlookAddInEwsItemRelationships: - properties: - mailbox: - description: "The mailbox this originated from" - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "mailbox" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "mailbox" - type: "string" - title: "links" - title: "mailbox" - x-internal: false - type: "object" - permissionGrantRelationships: - type: "object" - persona: - description: "A descriptor of a person, used for categorizing Prospects." - properties: - createdAt: - description: " \n\nThe date and time the persona was created." - format: "date-time" - type: "string" - x-internal: false - description: - description: "\n\nA description of the persona." - maxLength: 255 - type: "string" - x-internal: false - name: - description: " \n\nThe name of the persona (e.g. \"Sales Rep\")." - maxLength: 255 - type: "string" - x-internal: false - updatedAt: - description: " \n\nThe date and time the persona was last updated." - format: "date-time" - type: "string" - x-internal: false - type: "object" - x-internal: false - personaRelationships: - properties: - prospects: - description: "\n\nThe prospects with this persona. Relationship prospects cannot be used as a filter." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "prospect" - type: "string" - title: "links" - title: "prospect" - type: "array" - x-internal: false - type: "object" - personaResponse: - properties: - attributes: - $ref: "#/components/schemas/persona" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/personaRelationships" - type: - type: "string" - type: "object" - x-internal: false - phoneIdentityRelationships: - properties: - owner: - description: "The owner of this identity." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - phoneNumber: - description: "A prospect's phone number" - properties: - countryCode: - description: "\n\nThe country code (e.g. US)" - maxLength: 255 - type: "string" - x-internal: false - createdAt: - description: "\n\nThe date and time the phone number was created." - format: "date-time" - type: "string" - x-internal: false - extension: - description: "\n\nPhone number extension (e.g. 123)" - maxLength: 255 - type: "string" - x-internal: false - number: - description: " \n\nThe phone number (e.g. +18889387356)" - maxLength: 255 - type: "string" - x-internal: false - order: - description: " \n\nOrdered position in list of numbers" - type: "integer" - x-internal: false - phoneType: - description: " \n\nType of phone (mobile, work, home, voip, and other)" - maxLength: 255 - type: "string" - x-internal: false - rawNumber: - description: "\n\nUnformatted phone number" - maxLength: 255 - type: "string" - x-internal: false - status: - description: " \n\nThe status of the number" - maxLength: 255 - type: "string" - x-internal: false - statusChangedAt: - description: " \n\nTime the status was updated" - format: "date-time" - type: "string" - x-internal: false - updatedAt: - description: " \n\nThe date and time the phone number was last updated." - format: "date-time" - type: "string" - x-internal: false - type: "object" - x-internal: false - phoneNumberPredictionRelationships: - type: "object" - phoneNumberRelationships: - properties: - prospect: - description: "The owning prospect You can use only the attribute id to filter phoneNumbers by prospect (e.g. filter[prospect][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "prospect" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "prospect" - type: "string" - title: "links" - title: "prospect" - x-internal: false - type: "object" - phoneNumberResponse: - properties: - attributes: - $ref: "#/components/schemas/phoneNumber" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/phoneNumberRelationships" - type: - type: "string" - type: "object" - x-internal: false - phoneRelationships: - properties: - user: - description: "The User this phone belongs to." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - pluginErrorLogPreSignedUrlRelationships: - type: "object" - pluginMappingRelationships: - type: "object" - pluginRelationships: - type: "object" - profile: - description: "Controls what you can see and do within Outreach" - properties: - createdAt: - description: " \n\nThe date and time the team was created." - format: "date-time" - type: "string" - x-internal: false - isAdmin: - description: "\n\nFlag that indicates whether the profile provides admin access." - type: "boolean" - x-internal: false - name: - description: " \n\nThe name of the profile (e.g. \"Admin\")." - maxLength: 255 - type: "string" - x-internal: false - specialId: - description: " \n\nThe special id flag assigned to the profile (i.e. admin or default)" - maxLength: 255 - type: "string" - x-internal: false - updatedAt: - description: " \n\nThe date and time the team was last updated." - format: "date-time" - type: "string" - x-internal: false - type: "object" - x-internal: false - profileRelationships: - type: "object" - profileResponse: - properties: - attributes: - $ref: "#/components/schemas/profile" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/profileRelationships" - type: - type: "string" - type: "object" - x-internal: false - prospect: - description: "A descriptor of a person." - properties: - addedAt: - description: "\n\nThe date and time the prospect was added to any system." - format: "date-time" - type: "string" - x-internal: false - addressCity: - description: "\n\nThe prospect’s city (e.g. \"Seattle\")." - maxLength: 255 - type: "string" - x-internal: false - addressCountry: - description: "\n\nThe prospect’s country (e.g. \"USA\")." - maxLength: 255 - type: "string" - x-internal: false - addressState: - description: "\n\nThe prospect’s state (e.g. \"Washington\")." - maxLength: 255 - type: "string" - x-internal: false - addressStreet: - description: "\n\nThe prospect’s street address (e.g. \"1441 N 34th St\")." - maxLength: 255 - type: "string" - x-internal: false - addressStreet2: - description: "\n\nThe prospect’s second street address, if applicable." - maxLength: 255 - type: "string" - x-internal: false - addressZip: - description: "\n\nThe prospect’s postal code (e.g. \"98103\")." - maxLength: 255 - type: "string" - x-internal: false - angelListUrl: - description: "\n\nThe prospect’s AngelList URL." - maxLength: 255 - type: "string" - x-internal: false - availableAt: - description: "\n\nThe date and time the prospect is available to contact again." - format: "date-time" - type: "string" - x-internal: false - callOptedOut: - description: "\n\nWhether the prospect is opted out of calling, or opted out in general if granular opt-out is not enabled." - type: "boolean" - x-internal: false - callsOptStatus: - description: "\n\nA string (\"opted_in\", \"opted_out\", \"null\") that represents whether a prospect has opted into or out of calls." - maxLength: 255 - type: "string" - x-internal: false - callsOptedAt: - description: "\n\nThe date and time the prospect opted in/out of calls." - format: "date-time" - type: "string" - x-internal: false - campaignName: - description: "\n\nThe name of the campaign the prospect is associated with." - maxLength: 255 - type: "string" - x-internal: false - clickCount: - description: "\n\nThe number of clicks the prospect has made since the last touch point." - type: "integer" - x-internal: false - company: - description: "\n\nThe name of the company the prospect works at. If associated with an account, this is the name of the account. (e.g. Acme International)." - type: "string" - x-internal: false - contactHistogram: - description: "\n\nThe last 12 months of email contact history with the prospect, with the current month being the last element. The format for each month is '[inboundCount, outboundCount]'. Note: Retrieving this field will slow down the queries. Unless this field is required, it is best to filter it out. See Specify Sparse Fieldsets for examples" - items: - format: "contact histogram" - type: "array" - x-internal: false - createdAt: - description: " \n\nThe date and time the prospect was created." - format: "date-time" - type: "string" - x-internal: false - custom1: - description: "\n\nThe value of the prospect’s first custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom2: - description: "\n\nThe value of the prospect’s second custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom3: - description: "\n\nThe value of the prospect’s third custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom4: - description: "\n\nThe value of the prospect’s fourth custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom5: - description: "\n\nThe value of the prospect’s fifth custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom6: - description: "\n\nThe value of the prospect’s sixth custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom7: - description: "\n\nThe value of the prospect’s seventh custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom8: - description: "\n\nThe value of the prospect’s eight custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom9: - description: "\n\nThe value of the prospect’s ninth custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom10: - description: "\n\nThe value of the prospect’s 10th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom11: - description: "\n\nThe value of the prospect’s 11th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom12: - description: "\n\nThe value of the prospect’s 12th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom13: - description: "\n\nThe value of the prospect’s 13th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom14: - description: "\n\nThe value of the prospect’s 14th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom15: - description: "\n\nThe value of the prospect’s 15th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom16: - description: "\n\nThe value of the prospect’s 16th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom17: - description: "\n\nThe value of the prospect’s 17th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom18: - description: "\n\nThe value of the prospect’s 18th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom19: - description: "\n\nThe value of the prospect’s 19th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom20: - description: "\n\nThe value of the prospect’s 20th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom21: - description: "\n\nThe value of the prospect’s 21st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom22: - description: "\n\nThe value of the prospect’s 22nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom23: - description: "\n\nThe value of the prospect’s 23rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom24: - description: "\n\nThe value of the prospect’s 24th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom25: - description: "\n\nThe value of the prospect’s 25th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom26: - description: "\n\nThe value of the prospect’s 26th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom27: - description: "\n\nThe value of the prospect’s 27th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom28: - description: "\n\nThe value of the prospect’s 28th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom29: - description: "\n\nThe value of the prospect’s 29th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom30: - description: "\n\nThe value of the prospect’s 30th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom31: - description: "\n\nThe value of the prospect’s 31st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom32: - description: "\n\nThe value of the prospect’s 32nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom33: - description: "\n\nThe value of the prospect’s 33rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom34: - description: "\n\nThe value of the prospect’s 34th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom35: - description: "\n\nThe value of the prospect’s 35th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom36: - description: "\n\nThe value of the prospect’s 36th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom37: - description: "\n\nThe value of the prospect’s 37th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom38: - description: "\n\nThe value of the prospect’s 38th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom39: - description: "\n\nThe value of the prospect’s 39th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom40: - description: "\n\nThe value of the prospect’s 40th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom41: - description: "\n\nThe value of the prospect’s 41st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom42: - description: "\n\nThe value of the prospect’s 42nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom43: - description: "\n\nThe value of the prospect’s 43rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom44: - description: "\n\nThe value of the prospect’s 44th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom45: - description: "\n\nThe value of the prospect’s 45th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom46: - description: "\n\nThe value of the prospect’s 46th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom47: - description: "\n\nThe value of the prospect’s 47th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom48: - description: "\n\nThe value of the prospect’s 48th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom49: - description: "\n\nThe value of the prospect’s 49th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom50: - description: "\n\nThe value of the prospect’s 50th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom51: - description: "\n\nThe value of the prospect’s 51st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom52: - description: "\n\nThe value of the prospect’s 52nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom53: - description: "\n\nThe value of the prospect’s 53rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom54: - description: "\n\nThe value of the prospect’s 54th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom55: - description: "\n\nThe value of the prospect’s 55th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom56: - description: "\n\nThe value of the prospect’s 56th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom57: - description: "\n\nThe value of the prospect’s 57th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom58: - description: "\n\nThe value of the prospect’s 58th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom59: - description: "\n\nThe value of the prospect’s 59th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom60: - description: "\n\nThe value of the prospect’s 60th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom61: - description: "\n\nThe value of the prospect’s 61st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom62: - description: "\n\nThe value of the prospect’s 62nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom63: - description: "\n\nThe value of the prospect’s 63rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom64: - description: "\n\nThe value of the prospect’s 64th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom65: - description: "\n\nThe value of the prospect’s 65th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom66: - description: "\n\nThe value of the prospect’s 66th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom67: - description: "\n\nThe value of the prospect’s 67th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom68: - description: "\n\nThe value of the prospect’s 68th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom69: - description: "\n\nThe value of the prospect’s 69th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom70: - description: "\n\nThe value of the prospect’s 70th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom71: - description: "\n\nThe value of the prospect’s 71st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom72: - description: "\n\nThe value of the prospect’s 72nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom73: - description: "\n\nThe value of the prospect’s 73rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom74: - description: "\n\nThe value of the prospect’s 74th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom75: - description: "\n\nThe value of the prospect’s 75th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom76: - description: "\n\nThe value of the prospect’s 76th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom77: - description: "\n\nThe value of the prospect’s 77th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom78: - description: "\n\nThe value of the prospect’s 78th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom79: - description: "\n\nThe value of the prospect’s 79th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom80: - description: "\n\nThe value of the prospect’s 80th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom81: - description: "\n\nThe value of the prospect’s 81st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom82: - description: "\n\nThe value of the prospect’s 82nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom83: - description: "\n\nThe value of the prospect’s 83rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom84: - description: "\n\nThe value of the prospect’s 84th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom85: - description: "\n\nThe value of the prospect’s 85th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom86: - description: "\n\nThe value of the prospect’s 86th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom87: - description: "\n\nThe value of the prospect’s 87th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom88: - description: "\n\nThe value of the prospect’s 88th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom89: - description: "\n\nThe value of the prospect’s 89th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom90: - description: "\n\nThe value of the prospect’s 90th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom91: - description: "\n\nThe value of the prospect’s 91st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom92: - description: "\n\nThe value of the prospect’s 92nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom93: - description: "\n\nThe value of the prospect’s 93rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom94: - description: "\n\nThe value of the prospect’s 94th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom95: - description: "\n\nThe value of the prospect’s 95th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom96: - description: "\n\nThe value of the prospect’s 96th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom97: - description: "\n\nThe value of the prospect’s 97th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom98: - description: "\n\nThe value of the prospect’s 98th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom99: - description: "\n\nThe value of the prospect’s 99th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom100: - description: "\n\nThe value of the prospect’s 100th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom101: - description: "\n\nThe value of the prospect’s 101st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom102: - description: "\n\nThe value of the prospect’s 102nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom103: - description: "\n\nThe value of the prospect’s 103rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom104: - description: "\n\nThe value of the prospect’s 104th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom105: - description: "\n\nThe value of the prospect’s 105th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom106: - description: "\n\nThe value of the prospect’s 106th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom107: - description: "\n\nThe value of the prospect’s 107th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom108: - description: "\n\nThe value of the prospect’s 108th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom109: - description: "\n\nThe value of the prospect’s 109th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom110: - description: "\n\nThe value of the prospect’s 110th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom111: - description: "\n\nThe value of the prospect’s 111th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom112: - description: "\n\nThe value of the prospect’s 112th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom113: - description: "\n\nThe value of the prospect’s 113th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom114: - description: "\n\nThe value of the prospect’s 114th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom115: - description: "\n\nThe value of the prospect’s 115th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom116: - description: "\n\nThe value of the prospect’s 116th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom117: - description: "\n\nThe value of the prospect’s 117th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom118: - description: "\n\nThe value of the prospect’s 118th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom119: - description: "\n\nThe value of the prospect’s 119th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom120: - description: "\n\nThe value of the prospect’s 120th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom121: - description: "\n\nThe value of the prospect’s 121st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom122: - description: "\n\nThe value of the prospect’s 122nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom123: - description: "\n\nThe value of the prospect’s 123rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom124: - description: "\n\nThe value of the prospect’s 124th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom125: - description: "\n\nThe value of the prospect’s 125th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom126: - description: "\n\nThe value of the prospect’s 126th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom127: - description: "\n\nThe value of the prospect’s 127th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom128: - description: "\n\nThe value of the prospect’s 128th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom129: - description: "\n\nThe value of the prospect’s 129th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom130: - description: "\n\nThe value of the prospect’s 130th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom131: - description: "\n\nThe value of the prospect’s 131st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom132: - description: "\n\nThe value of the prospect’s 132nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom133: - description: "\n\nThe value of the prospect’s 133rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom134: - description: "\n\nThe value of the prospect’s 134th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom135: - description: "\n\nThe value of the prospect’s 135th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom136: - description: "\n\nThe value of the prospect’s 136th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom137: - description: "\n\nThe value of the prospect’s 137th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom138: - description: "\n\nThe value of the prospect’s 138th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom139: - description: "\n\nThe value of the prospect’s 139th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom140: - description: "\n\nThe value of the prospect’s 140th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom141: - description: "\n\nThe value of the prospect’s 141st custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom142: - description: "\n\nThe value of the prospect’s 142nd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom143: - description: "\n\nThe value of the prospect’s 143rd custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom144: - description: "\n\nThe value of the prospect’s 144th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom145: - description: "\n\nThe value of the prospect’s 145th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom146: - description: "\n\nThe value of the prospect’s 146th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom147: - description: "\n\nThe value of the prospect’s 147th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom148: - description: "\n\nThe value of the prospect’s 148th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom149: - description: "\n\nThe value of the prospect’s 149th custom field." - maxLength: 32000 - type: "string" - x-internal: false - custom150: - description: "\n\nThe value of the prospect’s 150th custom field." - maxLength: 32000 - type: "string" - x-internal: false - dateOfBirth: - description: "\n\nThe date the prospect was born." - format: "date" - type: "string" - x-internal: false - degree: - description: "\n\nThe degree(s) the prospect has received." - maxLength: 255 - type: "string" - x-internal: false - emailOptedOut: - description: "\n\nWhether the prospect is opted out of email, or opted out in general if granular opt-out is not enabled." - type: "boolean" - x-internal: false - emails: - description: "\n\nA list of email addresses associated with the prospect." - items: - format: "email" - type: "string" - type: "array" - x-internal: false - emailsOptStatus: - description: "\n\nA string (\"opted_in\", \"opted_out\", \"null\") that represents whether a prospect has opted into or out of emails." - maxLength: 255 - type: "string" - x-internal: false - emailsOptedAt: - description: "\n\nThe date and time the prospect opted in/out of emails." - format: "date-time" - type: "string" - x-internal: false - engagedAt: - description: " \n\nThe date and time the prospect last engaged." - format: "date-time" - type: "string" - x-internal: false - engagedScore: - description: " \n\nA number representing the quality of the lead, based on the number of the prospect’s opens, clicks and mailing replies." - format: "float" - type: "number" - x-internal: false - eventName: - description: "\n\nThe name of the event the prospect was met at." - maxLength: 255 - type: "string" - x-internal: false - externalId: - description: "\n\nA custom ID for the prospect, often referencing an ID in an external system." - maxLength: 255 - type: "string" - x-internal: false - externalOwner: - description: "\n\nA custom owner for the prospect, often referencing an ownering in an external system." - maxLength: 255 - type: "string" - x-internal: false - externalSource: - description: " \n\nThe source of the resource’s creation (e.g. \"outreach-api\")." - maxLength: 255 - type: "string" - x-internal: false - facebookUrl: - description: "\n\nThe prospect’s Facebook URL." - maxLength: 255 - type: "string" - x-internal: false - firstName: - description: " \n\nThe first name of the prospect." - maxLength: 255 - type: "string" - x-internal: false - gender: - description: "\n\nThe gender of the prospect." - maxLength: 255 - type: "string" - x-internal: false - githubUrl: - description: "\n\nThe prospect’s GitHub URL." - maxLength: 1000 - type: "string" - x-internal: false - githubUsername: - description: " \n\nThe prospect’s GitHub username." - maxLength: 255 - type: "string" - x-internal: false - googlePlusUrl: - description: "\n\nThe prospect’s Google+ URL." - maxLength: 255 - type: "string" - x-internal: false - graduationDate: - description: "\n\nThe graduation date of the prospect." - format: "date" - type: "string" - x-internal: false - homePhones: - description: "\n\nA list of home phone numbers associated with the prospect." - items: - type: "string" - type: "array" - x-internal: false - jobStartDate: - description: "\n\nThe starting date of the prospect’s current job." - format: "date" - type: "string" - x-internal: false - lastName: - description: " \n\nThe last name of the prospect." - maxLength: 255 - type: "string" - x-internal: false - linkedInConnections: - description: "\n\nThe number of connections on the prospect’s LinkedIn profile." - type: "integer" - x-internal: false - linkedInId: - description: " \n\nThe prospect’s LinkedIn ID." - maxLength: 255 - type: "string" - x-internal: false - linkedInSlug: - description: " \n\nThe prospect’s LinkedIn slug." - maxLength: 255 - type: "string" - x-internal: false - linkedInUrl: - description: "\n\nThe prospect’s LinkedIn URL." - maxLength: 1000 - type: "string" - x-internal: false - middleName: - description: "\n\nThe middle name of the prospect." - maxLength: 255 - type: "string" - x-internal: false - mobilePhones: - description: "\n\nA list of mobile phone numbers associated with the prospect." - items: - type: "string" - type: "array" - x-internal: false - name: - description: "\n\nThe full name of the prospect." - type: "string" - x-internal: false - nickname: - description: "\n\nThe nickname of the prospect." - maxLength: 255 - type: "string" - x-internal: false - occupation: - description: "\n\nThe occupation of the prospect (e.g. \"Purchasing Manager\")." - maxLength: 255 - type: "string" - x-internal: false - openCount: - description: "\n\nThe number of opens the prospect has made since the last touch point." - type: "integer" - x-internal: false - optedOut: - description: "\n\nA boolean value representing whether this prospect is currently opted out of all mailings. Set this value to true to opt out the prospect; the 'opted_out' timestamp will be updated to the time of the request. Set this value to false to revert the opt at and clear the opted out timestamp." - type: "boolean" - x-internal: false - optedOutAt: - description: "\n\nThe date and time the prospect opted out of emails." - format: "date-time" - type: "string" - x-internal: false - otherPhones: - description: "\n\nA list of other phone numbers associated with the prospect." - items: - type: "string" - type: "array" - x-internal: false - personalNote1: - description: "\n\nA custom note field related to the prospect." - maxLength: 65535 - type: "string" - x-internal: false - personalNote2: - description: "\n\nA second note field related to the prospect." - maxLength: 65535 - type: "string" - x-internal: false - preferredContact: - description: "\n\nThe preferred contact method for the prospect." - maxLength: 255 - type: "string" - x-internal: false - quoraUrl: - description: "\n\nThe prospect’s Quora URL." - maxLength: 255 - type: "string" - x-internal: false - region: - description: "\n\nThe primary geographic region of the prospect." - maxLength: 255 - type: "string" - x-internal: false - replyCount: - description: "\n\nThe number of replies the prospect has made since the last touch point." - type: "integer" - x-internal: false - school: - description: "\n\nThe school(s) the prospect has attended." - maxLength: 255 - type: "string" - x-internal: false - score: - description: "\n\nA custom score given to measure the quality of the lead." - format: "float" - type: "number" - x-internal: false - sharingTeamId: - description: "\n\nThe ID of the sharing team associated with this object. Access is currently in beta." - maxLength: 255 - type: "string" - x-internal: false - source: - description: "\n\nA custom source representing where the lead was first acquired." - maxLength: 255 - type: "string" - x-internal: false - specialties: - description: "\n\nA description of the prospect’s specialties." - maxLength: 65535 - type: "string" - x-internal: false - stackOverflowId: - description: " \n\nThe prospect’s StackOverflow ID." - maxLength: 255 - type: "string" - x-internal: false - stackOverflowUrl: - description: "\n\nThe prospect’s StackOverflow URL." - maxLength: 1000 - type: "string" - x-internal: false - tags: - description: "\n\nA list of tag values associated with the account (e.g. [\"Interested\", \"2017 Expo\"])." - items: - type: "string" - type: "array" - x-internal: false - timeZone: - description: "\n\nThe prospect’s current timezone, preferably in the IANA format (e.g. \"America/LosAngeles\")." - maxLength: 255 - type: "string" - x-internal: false - timeZoneIana: - description: "\n\nThe prospect’s current IANA timezone, if available." - type: "string" - x-internal: false - timeZoneInferred: - description: "\n\nThe prospect’s current inferred IANA timezone, if available." - maxLength: 255 - type: "string" - x-internal: false - title: - description: " \n\nThe title of the prospect." - maxLength: 255 - type: "string" - x-internal: false - touchedAt: - description: " \n\nThe date and time the prospect was last touched." - format: "date-time" - type: "string" - x-internal: false - trashedAt: - description: "\n\nThe date a prospect was soft deleted." - format: "date-time" - type: "string" - x-internal: false - twitterUrl: - description: "\n\nThe prospect’s Twitter URL." - maxLength: 1000 - type: "string" - x-internal: false - twitterUsername: - description: " \n\nThe prospect’s Twitter username." - maxLength: 255 - type: "string" - x-internal: false - updatedAt: - description: " \n\nThe date and time the prospect was last updated." - format: "date-time" - type: "string" - x-internal: false - voipPhones: - description: "\n\nA list of voip phone numbers associated with the prospect." - items: - type: "string" - type: "array" - x-internal: false - websiteUrl1: - description: "\n\nThe URL of the prospect’s website." - maxLength: 65535 - type: "string" - x-internal: false - websiteUrl2: - description: "\n\nThe value of the prospect’s second website URL field." - maxLength: 65535 - type: "string" - x-internal: false - websiteUrl3: - description: "\n\nThe value of the prospect’s third website URL field." - maxLength: 65535 - type: "string" - x-internal: false - workPhones: - description: "\n\nA list of work phone numbers associated with the prospect." - items: - type: "string" - type: "array" - x-internal: false - type: "object" - x-internal: false - prospectRelationships: - properties: - account: - description: "The prospect's associated account. You can use attributes id, customId, name, named and updatedAt to filter prospects by account (e.g. filter[account][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "account" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "account" - type: "string" - title: "links" - title: "account" - x-internal: false - activeSequenceStates: - description: "\n\nThe non-finished sequence states where this prospect is the primary recipient. This includes states of \"active\", \"paused\", \"failed\", \"bounced\", \"pending\" and \"disabled.\" You can use attributes id and state to filter prospects by activeSequenceStates (e.g. filter[activeSequenceStates][id]=X)." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "sequenceState" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "sequenceState" - type: "string" - title: "links" - title: "sequenceState" - type: "array" - x-internal: false - calls: - description: "\n\nThe calls associated with the prospect. Relationship calls cannot be used as a filter." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "call" - type: "string" - title: "links" - title: "call" - type: "array" - x-internal: false - creator: - description: "\n\nThe creater of the prospect. Relationship creator cannot be used as a filter." - oneOf: - - - description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - emailAddresses: - description: "The prospect's email addresses. Relationship emailAddresses cannot be used as a filter." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "emailAddress" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "emailAddress" - type: "string" - title: "links" - title: "emailAddress" - type: "array" - x-internal: false - favorites: - description: "The prospect's favorites. Relationship favorites cannot be used as a filter." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "favorite" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "favorite" - type: "string" - title: "links" - title: "favorite" - type: "array" - x-internal: false - mailings: - description: "\n\nThe mailings associated with the prospect. Relationship mailings cannot be used as a filter." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "mailing" - type: "string" - title: "links" - title: "mailing" - type: "array" - x-internal: false - opportunities: - description: "The opportunities associated with the prospect. Requires the Opportunities SKU to be enabled in order to have access. Please contact support@outreach.io for more assistance. You can use only the attribute id to filter prospects by opportunities (e.g. filter[opportunities][id]=X)." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "opportunity" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "opportunity" - type: "string" - title: "links" - title: "opportunity" - type: "array" - x-internal: false - opportunityProspectRoles: - description: "The roles that associate the prospect with opportunities. Relationship opportunityProspectRoles cannot be used as a filter." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "opportunityProspectRole" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "opportunityProspectRole" - type: "string" - title: "links" - title: "opportunityProspectRole" - type: "array" - x-internal: false - owner: - description: "The owner of the prospect. You can use only the attribute id to filter prospects by owner (e.g. filter[owner][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - persona: - description: "The persona of the prospect, if it has one. You can use only the attribute id to filter prospects by persona (e.g. filter[persona][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "persona" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "persona" - type: "string" - title: "links" - title: "persona" - x-internal: false - phoneNumbers: - description: "The prospect's phone numbers Relationship phoneNumbers cannot be used as a filter." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "phoneNumber" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "phoneNumber" - type: "string" - title: "links" - title: "phoneNumber" - type: "array" - x-internal: false - sequenceStates: - description: "\n\nThe sequence states where this prospect is the primary recipient. You can use attributes id and state to filter prospects by sequenceStates (e.g. filter[sequenceStates][id]=X)." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "sequenceState" - type: "string" - title: "links" - title: "sequenceState" - type: "array" - x-internal: false - stage: - description: "The stage the prospect is in. You can use attributes id and name to filter prospects by stage (e.g. filter[stage][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "stage" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "stage" - type: "string" - title: "links" - title: "stage" - x-internal: false - tasks: - description: "\n\nThe tasks associated with the prospect. Relationship tasks cannot be used as a filter." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "task" - type: "string" - title: "links" - title: "task" - type: "array" - x-internal: false - updater: - description: "\n\nThe most recent updater of the prospect. Relationship updater cannot be used as a filter." - oneOf: - - - description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - prospectResponse: - properties: - attributes: - $ref: "#/components/schemas/prospect" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/prospectRelationships" - type: - type: "string" - type: "object" - x-internal: false - recipient: - description: "Record for a recipient for some communication, such as email" - properties: - createdAt: - description: "\n\nThe date and time the team was created." - format: "date-time" - type: "string" - x-internal: false - emailHash: - description: "\n\nHash of email for recipient." - maxLength: 255 - type: "string" - x-internal: false - recipientType: - description: "\n\nThe type of action for the communcation to the recipient. Must be one of 'bcc', 'cc', or 'to'." - maxLength: 3 - type: "string" - x-internal: false - updatedAt: - description: "\n\nThe date and time the team was last updated." - format: "date-time" - type: "string" - x-internal: false - value: - description: "\n\nThe recipient contact information (i.e. email address)" - maxLength: 255 - type: "string" - x-internal: false - type: "object" - x-internal: false - recipientRelationships: - type: "object" - recipientResponse: - properties: - attributes: - $ref: "#/components/schemas/recipient" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/recipientRelationships" - type: - type: "string" - type: "object" - x-internal: false - recordActorAssignmentRelationships: - properties: - actor: - description: "" - oneOf: - - - description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - record: - description: "" - oneOf: - - - description: "A descriptor of a named company used to categorize prospects within an account-based sales approach." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "account" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "account" - type: "string" - title: "links" - title: "account" - x-internal: false - type: "object" - referralPredictionRelationships: - properties: - prospect: - description: "The prospect this prediction belongs to." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "prospect" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "prospect" - type: "string" - title: "links" - title: "prospect" - x-internal: false - sequenceState: - description: "The sequence state this prediction belongs to." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "sequenceState" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "sequenceState" - type: "string" - title: "links" - title: "sequenceState" - x-internal: false - type: "object" - returnDatePredictionRelationships: - properties: - prospect: - description: "The Prospect this prediction belongs to." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "prospect" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "prospect" - type: "string" - title: "links" - title: "prospect" - x-internal: false - sequenceState: - description: "The sequence state this prediction belongs to." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "sequenceState" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "sequenceState" - type: "string" - title: "links" - title: "sequenceState" - x-internal: false - type: "object" - role: - description: "Where you fall within your organization's structure." - properties: - createdAt: - description: " \n\nThe date and time the team was created." - format: "date-time" - type: "string" - x-internal: false - name: - description: " \n\nThe name of the role (e.g. \"Vice-President\")." - maxLength: 255 - type: "string" - x-internal: false - updatedAt: - description: " \n\nThe date and time the team was last updated." - format: "date-time" - type: "string" - x-internal: false - type: "object" - x-internal: false - roleRelationships: - properties: - parentRole: - description: "Roles are heirarchical. This is the parent of the current role. You can use only the attribute id to filter roles by parentRole (e.g. filter[parentRole][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "role" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "role" - type: "string" - title: "links" - title: "role" - x-internal: false - type: "object" - roleResponse: - properties: - attributes: - $ref: "#/components/schemas/role" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/roleRelationships" - type: - type: "string" - type: "object" - x-internal: false - ruleset: - description: "A reusable set of behaviors to be applied to Sequences" - properties: - applyCompletedStageIn: - description: "\n\nThe amount of time in seconds after the sequence has completed before the \"completedStage\" will be applied to the Prospect." - type: "integer" - x-internal: false - autoResumeOotoProspects: - description: " \n\nA boolean value whether out-of-the-office Prospects will be automatically resumed. See \"autoResumeOotoProspectsIn\" and \"autoResumeOotoProspectsExpiresIn\" for more information." - type: "boolean" - x-internal: false - autoResumeOotoProspectsExpiresIn: - description: "\n\nThe maximum amount of time in seconds to wait before opted-out Prospect will be resumed." - type: "integer" - x-internal: false - autoResumeOotoProspectsIn: - description: "\n\nThe default amount of time in seconds to wait before opted-out Prospects will be resumed." - type: "integer" - x-internal: false - callOptOutAction: - description: "\n\nDetermines if prospect can be added to sequences if they are opted out of calling." - maxLength: 4 - type: "string" - x-internal: false - clicksNeededBeforeCallTaskCreated: - description: "\n\nThe number of email clicks needed before a call task will be automatically created. This feature will be disabled unless a value is set." - type: "integer" - x-internal: false - createdAt: - description: " \n\nThe date and time the ruleset was created." - format: "date-time" - type: "string" - x-internal: false - emailOptOutAction: - description: "\n\nDetermines if prospect can be added to sequences if they are opted out of emails." - maxLength: 4 - type: "string" - x-internal: false - includeUnsubscribeLinks: - description: " \n\nA boolean value whether to include unsubscribe links within emails." - type: "boolean" - x-internal: false - meetingBookedAction: - description: "\n\nDetermines if a prospect is marked as finished when a meeting is booked." - maxLength: 255 - type: "string" - x-internal: false - minimumProspectTouchedInterval: - description: "\n\nThe minimum number of seconds that must elapse between when a Prospect was last contacted and when they may be added to a sequnce. This feature will be disabled unless a value is set." - type: "integer" - x-internal: false - name: - description: " \n\nThe name of the ruleset." - maxLength: 255 - type: "string" - x-internal: false - ootoAutoExtractionEnabled: - description: "\n\nA boolean value determining whether to use out of the office return date auto extraction." - type: "boolean" - x-internal: false - opensNeededBeforeCallTaskCreated: - description: "\n\nThe number of email opens needed before a call task will be automatically created. This feature will be disabled unless a value is set." - type: "integer" - x-internal: false - permitDuplicateProspects: - description: " \n\nA value determining whether a Prospect may be added to this Sequence multiple times or not. Permitted values include \"allow\", \"disallow\" (the default) and \"only_if_inactive\", which indicates that Prospects may be re-added to this sequence if their existing SequenceState is inactive." - maxLength: 255 - type: "string" - x-internal: false - sequenceExclusivity: - description: " \n\nA value determining whether Prospects may be added to multiple different Sequences. Permitted values include \"all_sequences\", \"exclusive_sequences\" and \"none\" (the default). If the value is \"all_sequences\", then Prospects may only be added if they are not active in any other Sequence; likewise, a Prospect active in a Sequence with \"all_sequences\" exclusivity cannot be added to any other Sequence. If the value is \"exclusive_sequences\", then Prospects may only be added if they are not active in any other Sequence with \"exclusive_sequences\" exclusivity; likewise, a Prospect active in a Sequence with \"exclusive_sequences\" exclusivity cannot be added to any other Sequence with \"exclusive_sequences\" exclusivity. If the value is \"none\", then no additional restrictions will be applied." - maxLength: 255 - type: "string" - x-internal: false - smsOptOutAction: - description: "\n\nDetermines if prospect can be added to sequences if they are opted out of SMS." - maxLength: 4 - type: "string" - x-internal: false - smsReceivedAction: - description: "\n\nDetermines if a prospect is marked as finished when a text message is received" - maxLength: 255 - type: "string" - x-internal: false - stepOverridesEnabled: - description: "\n\nA boolean value determining whether to allow users to customize step templates when adding to sequence." - type: "boolean" - x-internal: false - updatedAt: - description: " \n\nThe date and time the ruleset was last updated." - format: "date-time" - type: "string" - x-internal: false - type: "object" - x-internal: false - rulesetRelationships: - properties: - bouncedStage: - description: "The stage to assign to the prospect when a mailing in this sequence bounces. You can use only the attribute id to filter rulesets by bouncedStage (e.g. filter[bouncedStage][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "stage" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "stage" - type: "string" - title: "links" - title: "stage" - x-internal: false - callTaskPriority: - description: "The task priority to use when creating call tasks based on mail opens. You can use only the attribute id to filter rulesets by callTaskPriorityFromOpens (e.g. filter[callTaskPriorityFromOpens][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "taskPriority" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "taskPriority" - type: "string" - title: "links" - title: "taskPriority" - x-internal: false - callTaskPriorityFromClicks: - description: "The task priority to use when creating call tasks based on mail clicks. You can use only the attribute id to filter rulesets by callTaskPriorityFromClicks (e.g. filter[callTaskPriorityFromClicks][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "taskPriority" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "taskPriority" - type: "string" - title: "links" - title: "taskPriority" - x-internal: false - callTaskPriorityFromOpens: - description: "The task priority to use when creating call tasks based on mail opens. You can use only the attribute id to filter rulesets by callTaskPriorityFromOpens (e.g. filter[callTaskPriorityFromOpens][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "taskPriority" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "taskPriority" - type: "string" - title: "links" - title: "taskPriority" - x-internal: false - completedStage: - description: "The stage to assign to the prospect when this sequence completes. You can use only the attribute id to filter rulesets by completedStage (e.g. filter[completedStage][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "stage" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "stage" - type: "string" - title: "links" - title: "stage" - x-internal: false - deliveredStage: - description: "The stage to assign to the prospect when a mailing in this sequence is delivered. You can use only the attribute id to filter rulesets by deliveredStage (e.g. filter[deliveredStage][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "stage" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "stage" - type: "string" - title: "links" - title: "stage" - x-internal: false - finishedStage: - description: "The stage to assign to the prospect when this sequence finishes. You can use only the attribute id to filter rulesets by finishedStage (e.g. filter[finishedStage][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "stage" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "stage" - type: "string" - title: "links" - title: "stage" - x-internal: false - optedOutStage: - description: "The stage to assign to the prospect when they opt out of this sequence. You can use only the attribute id to filter rulesets by optedOutStage (e.g. filter[optedOutStage][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "stage" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "stage" - type: "string" - title: "links" - title: "stage" - x-internal: false - owner: - description: "The owner of the ruleset. You can use only the attribute id to filter rulesets by owner (e.g. filter[owner][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - repliedStage: - description: "The stage to assign to the prospect when a mailing in this sequence is replied to. You can use only the attribute id to filter rulesets by repliedStage (e.g. filter[repliedStage][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "stage" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "stage" - type: "string" - title: "links" - title: "stage" - x-internal: false - sequences: - description: "\n\nThe sequences associated with this ruleset. You can use only the attribute id to filter rulesets by sequences (e.g. filter[sequences][id]=X)." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "sequence" - type: "string" - title: "links" - title: "sequence" - type: "array" - x-internal: false - startedStage: - description: "The stage to assign to the prospect when this sequence starts. You can use only the attribute id to filter rulesets by startedStage (e.g. filter[startedStage][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "stage" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "stage" - type: "string" - title: "links" - title: "stage" - x-internal: false - type: "object" - rulesetResponse: - properties: - attributes: - $ref: "#/components/schemas/ruleset" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/rulesetRelationships" - type: - type: "string" - type: "object" - x-internal: false - scheduleRelationships: - properties: - owner: - description: "The owner of the schedule." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - sequence: - description: "Leverage emailing within Sequences to engage each individual persona more effectively, and queue up the right actions at the right time." - properties: - automationPercentage: - description: "\n\nThe percentage of \"auto_email\" sequence steps in this sequence." - format: "float" - type: "number" - x-internal: false - bounceCount: - description: "\n\nThe total count of bounced mailings during this sequence." - type: "integer" - x-internal: false - clickCount: - description: " \n\nThe total count of clicked mailings from this sequence." - type: "integer" - x-internal: false - createdAt: - description: " \n\nThe date and time the sequence was created." - format: "date-time" - type: "string" - x-internal: false - deliverCount: - description: " \n\nThe total count of delivered mailings from this sequence." - type: "integer" - x-internal: false - description: - description: "\n\nA custom description for the sequence." - maxLength: 1024 - type: "string" - x-internal: false - durationInDays: - description: "\n\nThe total number of days it takes to get through this sequence." - type: "integer" - x-internal: false - enabled: - description: "\n\nA boolean value determining whether the sequence is enabled or not." - type: "boolean" - x-internal: false - enabledAt: - description: " \n\nThe date and time the sequence was enabled, or null if currently disabled." - format: "date-time" - type: "string" - x-internal: false - failureCount: - description: "\n\nThe total count of failed mailings from this sequence." - type: "integer" - x-internal: false - finishOnReply: - description: "\n\nDeprecated. This boolean value exists only to maintain backward compatibility and primaryReplyAction should be used instead. True if primaryReplyAction is \"finish\", false otherwise." - type: "boolean" - x-internal: false - lastUsedAt: - description: " \n\nThe date and time the sequence was last used." - format: "date-time" - type: "string" - x-internal: false - locked: - description: "\n\nA boolean value determining whether the sequence is locked or not." - type: "boolean" - x-internal: false - lockedAt: - description: " \n\nThe date and time the sequence was locked, or null if currently unlocked." - format: "date-time" - type: "string" - x-internal: false - maxActivations: - description: "\n\nThe maximum number of prospects that can be associated with the sequence. Only applies if the sequence type is \"date\"." - type: "integer" - x-internal: false - name: - description: " \n\nThe name or the sequence." - maxLength: 255 - type: "string" - x-internal: false - negativeReplyCount: - description: "\n\nThe total count of negative reply mailings from this sequence." - type: "integer" - x-internal: false - neutralReplyCount: - description: "\n\nThe total count of neutral reply mailings from this sequence." - type: "integer" - x-internal: false - numContactedProspects: - description: "\n\nThe total count of prospects who have been either called or emailed." - type: "integer" - x-internal: false - numRepliedProspects: - description: "\n\nThe total count of prospects who have been marked as replied." - type: "integer" - x-internal: false - openCount: - description: " \n\nThe total count of opened mailings from this sequence." - type: "integer" - x-internal: false - optOutCount: - description: "\n\nThe total count of opted out mailings from this sequence." - type: "integer" - x-internal: false - positiveReplyCount: - description: "\n\nThe total count of positive reply mailings from this sequence." - type: "integer" - x-internal: false - primaryReplyAction: - description: "\n\nThe action to take when the primary prospect replies. Must be one of \"finish\", \"continue\", or \"pause\"." - maxLength: 4 - type: "string" - x-internal: false - primaryReplyPauseDuration: - description: "\n\nThe duration in seconds to pause for (before automatically finishing) after a reply from the primary prospect if the primaryReplyAction is \"pause\"." - type: "integer" - x-internal: false - replyCount: - description: " \n\nThe total count of replied mailings from this sequence." - type: "integer" - x-internal: false - scheduleCount: - description: "\n\nThe total count of scheduled mailings from this sequence." - type: "integer" - x-internal: false - scheduleIntervalType: - description: "\n\nThe schedule interval type must be either \"calendar\" or \"schedule\"" - maxLength: 255 - type: "string" - x-internal: false - secondaryReplyAction: - description: "\n\nThe action to take when someone other than the primary prospect replies. Must be one of \"finish\", \"continue\", or \"pause\"." - maxLength: 4 - type: "string" - x-internal: false - secondaryReplyPauseDuration: - description: "\n\nThe duration in seconds to pause for (before automatically finishing) after a reply from anyone other than the primary prospect if the secondaryReplyAction is \"pause\"." - type: "integer" - x-internal: false - sequenceStepCount: - description: "\n\nThe total number of sequence steps in this sequence." - type: "integer" - x-internal: false - sequenceType: - description: "\n\nThe sequence type must be either \"date\" or \"interval\"." - maxLength: 255 - type: "string" - x-internal: false - shareType: - description: " \n\nThe sequence share type must be either \"private\", \"read_only\" or \"shared\"." - maxLength: 255 - type: "string" - x-internal: false - tags: - description: "\n\nA list of tag values associated with the sequence (e.g. [\"Tier 1\", \"Inbound Leads\"])" - items: - type: "string" - type: "array" - x-internal: false - throttleCapacity: - description: " \n\nThe maximum number of associated sequence states per user that can be active at a one time." - type: "integer" - x-internal: false - throttleMaxAddsPerDay: - description: " \n\nThe maximum number of associated sequence states per user that can be added to the sequence each day." - type: "integer" - x-internal: false - throttlePaused: - description: "\n\nA boolean value determining whether the throttling of sequence states is paused or not." - type: "boolean" - x-internal: false - throttlePausedAt: - description: "\n\nThe date and time the sequence state throttling was paused, or null if not currently paused." - format: "date-time" - type: "string" - x-internal: false - transactional: - description: "\n\nA boolean value determining whether prospect opt out preferences are respected. Intended only for non-marketing sequences." - type: "boolean" - x-internal: false - updatedAt: - description: " \n\nThe date and time the sequence was last updated." - format: "date-time" - type: "string" - x-internal: false - type: "object" - x-internal: false - sequenceRelationships: - properties: - calls: - description: "\n\nThe associated calls. You can use only the attribute id to filter sequences by calls (e.g. filter[calls][id]=X)." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "call" - type: "string" - title: "links" - title: "call" - type: "array" - x-internal: false - contentCategoryMemberships: - description: "\n\nThe content categories (collections) of the sequence. You can use only the attribute id to filter sequences by contentCategoryMemberships (e.g. filter[contentCategoryMemberships][id]=X)." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "contentCategoryMembership" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "contentCategoryMembership" - type: "string" - title: "links" - title: "contentCategoryMembership" - type: "array" - x-internal: false - creator: - description: "\n\nThe creater of the sequence. You can use only the attribute id to filter sequences by creator (e.g. filter[creator][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - mailings: - description: "\n\nThe associated mailings. Relationship mailings cannot be used as a filter." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "mailing" - type: "string" - title: "links" - title: "mailing" - type: "array" - x-internal: false - owner: - description: "The owner of the sequence. You can use attributes id, email, firstName and lastName to filter sequences by owner (e.g. filter[owner][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - ruleset: - description: "The associated ruleset. You can use only the attribute id to filter sequences by ruleset (e.g. filter[ruleset][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "ruleset" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "ruleset" - type: "string" - title: "links" - title: "ruleset" - x-internal: false - sequenceStates: - description: "\n\nThe associated sequence states. You can use only the attribute id to filter sequences by sequenceStates (e.g. filter[sequenceStates][id]=X)." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "sequenceState" - type: "string" - title: "links" - title: "sequenceState" - type: "array" - x-internal: false - sequenceSteps: - description: "The associated sequence steps. You can use only the attribute id to filter sequences by sequenceSteps (e.g. filter[sequenceSteps][id]=X)." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "sequenceStep" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "sequenceStep" - type: "string" - title: "links" - title: "sequenceStep" - type: "array" - x-internal: false - tasks: - description: "\n\nThe associated tasks. You can use only the attribute id to filter sequences by tasks (e.g. filter[tasks][id]=X)." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "task" - type: "string" - title: "links" - title: "task" - type: "array" - x-internal: false - updater: - description: "\n\nThe most recent updater of the sequence. You can use only the attribute id to filter sequences by updater (e.g. filter[updater][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - sequenceResponse: - properties: - attributes: - $ref: "#/components/schemas/sequence" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/sequenceRelationships" - type: - type: "string" - type: "object" - x-internal: false - sequenceState: - description: "A descriptor of a currently sequenced prospect, which includes relationships to its sequence, prospect and user." - properties: - activeAt: - description: "\n\nThe date and time the sequence state was last active." - format: "date-time" - type: "string" - x-internal: false - bounceCount: - description: "\n\nThe total count of bounced mailings during this sequence state." - type: "integer" - x-internal: false - callCompletedAt: - description: " \n\nThe date and time the sequence state last had a call completed." - format: "date-time" - type: "string" - x-internal: false - clickCount: - description: " \n\nThe total count of clicked mailings from this sequence state." - type: "integer" - x-internal: false - createdAt: - description: " \n\nThe date and time the sequence state was created." - format: "date-time" - type: "string" - x-internal: false - deliverCount: - description: " \n\nThe total count of delivered mailings from this sequence state." - type: "integer" - x-internal: false - errorReason: - description: "\n\nThe reason for the most recent error." - maxLength: 255 - type: "string" - x-internal: false - failureCount: - description: "\n\nThe total count of failed mailings from this sequence state." - type: "integer" - x-internal: false - negativeReplyCount: - description: "\n\nThe total count of negative reply mailings from this sequence state." - type: "integer" - x-internal: false - neutralReplyCount: - description: "\n\nThe total count of neutral reply mailings from this sequence state." - type: "integer" - x-internal: false - openCount: - description: " \n\nThe total count of opened mailings from this sequence state." - type: "integer" - x-internal: false - optOutCount: - description: "\n\nThe total count of opted out mailings from this sequence state." - type: "integer" - x-internal: false - pauseReason: - description: " \n\nThe reason for the most recent pause." - maxLength: 255 - type: "string" - x-internal: false - positiveReplyCount: - description: "\n\nThe total count of positive reply mailings from this sequence state." - type: "integer" - x-internal: false - repliedAt: - description: " \n\nThe date and time the sequence state last had a mailing reply." - format: "date-time" - type: "string" - x-internal: false - replyCount: - description: " \n\nThe total count of replied mailings from this sequence state." - type: "integer" - x-internal: false - scheduleCount: - description: "\n\nThe total count of scheduled mailings from this sequence state." - type: "integer" - x-internal: false - state: - description: " \n\nThe current state of the sequence state." - maxLength: 255 - type: "string" - x-internal: false - stateChangedAt: - description: " \n\nThe date and time the sequence state’s state last changed." - format: "date-time" - type: "string" - x-internal: false - updatedAt: - description: " \n\nThe date and time the sequence state was last updated." - format: "date-time" - type: "string" - x-internal: false - type: "object" - x-internal: false - sequenceStateRecipientRelationships: - properties: - prospect: - description: "The prospect that is associated with this recipient." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "prospect" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "prospect" - type: "string" - title: "links" - title: "prospect" - x-internal: false - sequenceState: - description: "The sequence state that is associated with this recipient." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "sequenceState" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "sequenceState" - type: "string" - title: "links" - title: "sequenceState" - x-internal: false - type: "object" - sequenceStateRelationships: - properties: - account: - description: "\n\nThe account associated with the prospect the sequence state is targeting. You can use only the attribute id to filter sequenceStates by account (e.g. filter[account][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "account" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "account" - type: "string" - title: "links" - title: "account" - x-internal: false - activeStepMailings: - description: "\n\nAny undelivered mailings associated with the current sequence step. Relationship activeStepMailings cannot be used as a filter." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "mailing" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "mailing" - type: "string" - title: "links" - title: "mailing" - type: "array" - x-internal: false - activeStepTasks: - description: "\n\nAny incomplete tasks associated with the current sequence step. Relationship activeStepTasks cannot be used as a filter." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "task" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "task" - type: "string" - title: "links" - title: "task" - type: "array" - x-internal: false - calls: - description: "\n\nThe calls associated with the sequence state. You can use only the attribute id to filter sequenceStates by calls (e.g. filter[calls][id]=X)." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "call" - type: "string" - title: "links" - title: "call" - type: "array" - x-internal: false - creator: - description: "\n\nThe creator of the sequence state. Relationship creator cannot be used as a filter." - oneOf: - - - description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - mailbox: - description: "The mailbox to use for mailing steps. You can use attributes id and email to filter sequenceStates by mailbox (e.g. filter[mailbox][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "mailbox" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "mailbox" - type: "string" - title: "links" - title: "mailbox" - x-internal: false - mailings: - description: "\n\nThe mailings associated with the sequence state. Relationship mailings cannot be used as a filter." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "mailing" - type: "string" - title: "links" - title: "mailing" - type: "array" - x-internal: false - opportunity: - description: "\n\nThe associated opportunity. You can use only the attribute id to filter sequenceStates by opportunity (e.g. filter[opportunity][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "opportunity" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "opportunity" - type: "string" - title: "links" - title: "opportunity" - x-internal: false - prospect: - description: "The primary prospect this sequence state is targeting. You can use attributes id and emails to filter sequenceStates by prospect (e.g. filter[prospect][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "prospect" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "prospect" - type: "string" - title: "links" - title: "prospect" - x-internal: false - sequence: - description: "The sequence this prospect is engaged in. You can use any filterable attribute of sequence." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "sequence" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "sequence" - type: "string" - title: "links" - title: "sequence" - x-internal: false - sequenceStep: - description: "\n\nThe current sequence step the prospect is in. You can use any filterable attribute of sequenceStep." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "sequenceStep" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "sequenceStep" - type: "string" - title: "links" - title: "sequenceStep" - x-internal: false - tasks: - description: "\n\nThe tasks associated with the sequence state. You can use attributes id and dueAt to filter sequenceStates by tasks (e.g. filter[tasks][id]=X)." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "task" - type: "string" - title: "links" - title: "task" - type: "array" - x-internal: false - type: "object" - sequenceStateResponse: - properties: - attributes: - $ref: "#/components/schemas/sequenceState" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/sequenceStateRelationships" - type: - type: "string" - type: "object" - x-internal: false - sequenceStep: - description: "A descriptor of a single step within an automated sequence." - properties: - bounceCount: - description: "\n\nThe total count of bounced mailings during this sequence step." - type: "integer" - x-internal: false - clickCount: - description: "\n\nThe total count of clicked mailings from this sequence step." - type: "integer" - x-internal: false - createdAt: - description: " \n\nThe date and time the sequence step was created." - format: "date-time" - type: "string" - x-internal: false - date: - description: " \n\nThe date this step will activate; only applicable to date-based sequences." - format: "date" - type: "string" - x-internal: false - deliverCount: - description: "\n\nThe total count of delivered mailings from this sequence step." - type: "integer" - x-internal: false - displayName: - description: "\n\nA human-readable display name that captures the step’s type and order." - type: "string" - x-internal: false - failureCount: - description: "\n\nThe total count of failed mailings from this sequence step." - type: "integer" - x-internal: false - interval: - description: "\n\nThe interval (in seconds) until this step will activate; only applicable to interval-based sequences." - type: "integer" - x-internal: false - negativeReplyCount: - description: "\n\nThe total count of negative reply mailings from this sequence step." - type: "integer" - x-internal: false - neutralReplyCount: - description: "\n\nThe total count of neutral reply mailings from this sequence step." - type: "integer" - x-internal: false - openCount: - description: "\n\nThe total count of opened mailings from this sequence step." - type: "integer" - x-internal: false - optOutCount: - description: "\n\nThe total count of opted out mailings from this sequence step." - type: "integer" - x-internal: false - order: - description: " \n\nThe step’s display order within its sequence." - type: "integer" - x-internal: false - positiveReplyCount: - description: "\n\nThe total count of positive reply mailings from this sequence step." - type: "integer" - x-internal: false - replyCount: - description: "\n\nThe total count of replied mailings from this sequence step." - type: "integer" - x-internal: false - scheduleCount: - description: "\n\nThe total count of scheduled mailings from this sequence step." - type: "integer" - x-internal: false - stepType: - description: " \n\nThe step’s type; must be \"auto_email\", \"manual_email\", \"call\" or \"task\"." - maxLength: 255 - type: "string" - x-internal: false - taskAutoskipDelay: - description: "\n\nThe optional interval (in seconds) from when tasks created by this sequence step are overdue until they are automatically skipped." - type: "integer" - x-internal: false - taskNote: - description: "\n\nAn optional note to associate with created tasks." - maxLength: 65535 - type: "string" - x-internal: false - updatedAt: - description: " \n\nThe date and time the sequence step was last updated." - format: "date-time" - type: "string" - x-internal: false - type: "object" - x-internal: false - sequenceStepOverrideRelationships: - type: "object" - sequenceStepRelationships: - properties: - callPurpose: - description: "The default call purpose associated with the sequence step. You can use only the attribute id to filter sequenceSteps by callPurpose (e.g. filter[callPurpose][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "callPurpose" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "callPurpose" - type: "string" - title: "links" - title: "callPurpose" - x-internal: false - calls: - description: "\n\nThe calls associated with the sequence step. You can use only the attribute id to filter sequenceSteps by calls (e.g. filter[calls][id]=X)." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "call" - type: "string" - title: "links" - title: "call" - type: "array" - x-internal: false - creator: - description: "\n\nThe creator of the sequence step. You can use only the attribute id to filter sequenceSteps by creator (e.g. filter[creator][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - mailings: - description: "\n\nThe mailings associated with the sequence step. Relationship mailings cannot be used as a filter." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "mailing" - type: "string" - title: "links" - title: "mailing" - type: "array" - x-internal: false - sequence: - description: "The associated sequence. You can use attributes id, enabledAt and name to filter sequenceSteps by sequence (e.g. filter[sequence][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "sequence" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "sequence" - type: "string" - title: "links" - title: "sequence" - x-internal: false - sequenceTemplates: - description: "\n\nThe sequence templates in use by this sequence step. You can use any filterable attribute of sequenceTemplates." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "sequenceTemplate" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "sequenceTemplate" - type: "string" - title: "links" - title: "sequenceTemplate" - type: "array" - x-internal: false - taskPriority: - description: "The associated task priority. You can use only the attribute id to filter sequenceSteps by taskPriority (e.g. filter[taskPriority][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "taskPriority" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "taskPriority" - type: "string" - title: "links" - title: "taskPriority" - x-internal: false - tasks: - description: "\n\nThe tasks associated with the sequence step. You can use only the attribute id to filter sequenceSteps by tasks (e.g. filter[tasks][id]=X)." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "task" - type: "string" - title: "links" - title: "task" - type: "array" - x-internal: false - updater: - description: "\n\nThe most recent updater of the sequence step. You can use only the attribute id to filter sequenceSteps by updater (e.g. filter[updater][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - sequenceStepResponse: - properties: - attributes: - $ref: "#/components/schemas/sequenceStep" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/sequenceStepRelationships" - type: - type: "string" - type: "object" - x-internal: false - sequenceTemplate: - description: "An object used to track which templates are in use by which sequence steps." - properties: - bounceCount: - description: "\n\nThe total count of bounced mailings during this sequence template." - type: "integer" - x-internal: false - clickCount: - description: "\n\nThe total count of clicked mailings from this sequence template." - type: "integer" - x-internal: false - createdAt: - description: "\n\nThe date and time the sequence template was created." - format: "date-time" - type: "string" - x-internal: false - deliverCount: - description: "\n\nThe total count of delivered mailings from this sequence template." - type: "integer" - x-internal: false - enabled: - description: "\n\nBoolean indicating if the sequence template is currently enabled." - type: "boolean" - x-internal: false - enabledAt: - description: "\n\nDatetime for when the sequence template was enabled." - format: "date-time" - type: "string" - x-internal: false - failureCount: - description: "\n\nThe total count of failed mailings from this sequence template." - type: "integer" - x-internal: false - isReply: - description: "\n\nBoolean indicating if the sequence template should be a reply email or a new thread." - type: "boolean" - x-internal: false - negativeReplyCount: - description: "\n\nThe total count of negative reply mailings from this sequence template." - type: "integer" - x-internal: false - neutralReplyCount: - description: "\n\nThe total count of neutral reply mailings from this sequence template." - type: "integer" - x-internal: false - openCount: - description: "\n\nThe total count of opened mailings from this sequence template." - type: "integer" - x-internal: false - optOutCount: - description: "\n\nThe total count of opted out mailings from this sequence template." - type: "integer" - x-internal: false - positiveReplyCount: - description: "\n\nThe total count of positive reply mailings from this sequence template." - type: "integer" - x-internal: false - replyCount: - description: "\n\nThe total count of replied mailings from this sequence template." - type: "integer" - x-internal: false - scheduleCount: - description: "\n\nThe total count of scheduled mailings from this sequence template." - type: "integer" - x-internal: false - updatedAt: - description: "\n\nThe date and time the sequence template was last updated." - format: "date-time" - type: "string" - x-internal: false - type: "object" - x-internal: false - sequenceTemplateRelationships: - properties: - creator: - description: "\n\nUser that created the sequence template. You can use only the attribute id to filter sequenceTemplates by creator (e.g. filter[creator][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - sequenceStep: - description: "The sequence step that uses the sequence template. You can use any filterable attribute of sequenceStep." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "sequenceStep" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "sequenceStep" - type: "string" - title: "links" - title: "sequenceStep" - x-internal: false - template: - description: "The template used for this sequence template. You can use only the attribute id to filter sequenceTemplates by template (e.g. filter[template][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "template" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "template" - type: "string" - title: "links" - title: "template" - x-internal: false - updater: - description: "\n\nUser that last updated the sequence template. You can use only the attribute id to filter sequenceTemplates by updater (e.g. filter[updater][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - sequenceTemplateResponse: - properties: - attributes: - $ref: "#/components/schemas/sequenceTemplate" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/sequenceTemplateRelationships" - type: - type: "string" - type: "object" - x-internal: false - smartViewNotificationRelationships: - properties: - owner: - description: "The owner of the notificiation." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - smartViewRelationships: - properties: - owner: - description: "The owner of the smart view." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - snippet: - description: "A piece of an email to be reused in multiple messages." - properties: - bodyHtml: - description: "\n\nThe HTML of the snippet." - maxLength: 16777215 - type: "string" - x-internal: false - bodyText: - description: "\n\nThe text of the snippet." - maxLength: 16777215 - type: "string" - x-internal: false - createdAt: - description: " \n\nThe date and time the snippet was created." - format: "date-time" - type: "string" - x-internal: false - name: - description: " \n\nThe name of the snippet." - maxLength: 255 - type: "string" - x-internal: false - shareType: - description: " \n\nThe permissions for sharing the snippet; must be \"private\" or \"shared.\"" - maxLength: 255 - type: "string" - x-internal: false - tags: - description: "\n\nA list of tags associated with the snippet (e.g. [\"Useful\", \"Prospecting\"])." - items: - type: "string" - type: "array" - x-internal: false - updatedAt: - description: " \n\nThe date and time the snippet was last updated." - format: "date-time" - type: "string" - x-internal: false - type: "object" - x-internal: false - snippetRelationships: - properties: - contentCategoryMemberships: - description: "The content categories (collections) of the snippet. You can use only the attribute id to filter snippets by contentCategoryMemberships (e.g. filter[contentCategoryMemberships][id]=X)." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "contentCategoryMembership" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "contentCategoryMembership" - type: "string" - title: "links" - title: "contentCategoryMembership" - type: "array" - x-internal: false - creator: - description: "\n\nThe creator of the snippet. You can use only the attribute id to filter snippets by creator (e.g. filter[creator][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - owner: - description: "The owner of the snippet. You can use only the attribute id to filter snippets by owner (e.g. filter[owner][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - updater: - description: "\n\nThe updater of the snippet. You can use only the attribute id to filter snippets by updater (e.g. filter[updater][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - snippetResponse: - properties: - attributes: - $ref: "#/components/schemas/snippet" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/snippetRelationships" - type: - type: "string" - type: "object" - x-internal: false - stage: - description: "A descriptor of the point in the process, used for categorizing Prospects." - properties: - color: - description: "\n\nThe color the stage label will be highlighted in the interface, specified as a hexidecimal value (e.g. \"#5951ff\")." - maxLength: 255 - type: "string" - x-internal: false - createdAt: - description: " \n\nThe date and time the stage was created." - format: "date-time" - type: "string" - x-internal: false - name: - description: " \n\nThe name of the stage (e.g. \"Qualified Lead\")." - maxLength: 255 - type: "string" - x-internal: false - order: - description: " \n\nThe stage's display order within the collection." - type: "integer" - x-internal: false - updatedAt: - description: " \n\nThe date and time the stage was last updated." - format: "date-time" - type: "string" - x-internal: false - type: "object" - x-internal: false - stageRelationships: - properties: - creator: - description: "\n\nThe creator of the stage. Relationship creator cannot be used as a filter." - oneOf: - - - description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - prospects: - description: "\n\nThe prospects associated to the stage. You can use only the attribute id to filter stages by prospects (e.g. filter[prospects][id]=X)." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "prospect" - type: "string" - title: "links" - title: "prospect" - type: "array" - x-internal: false - updater: - description: "\n\nThe most recent updater of the stage. Relationship updater cannot be used as a filter." - oneOf: - - - description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - stageResponse: - properties: - attributes: - $ref: "#/components/schemas/stage" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/stageRelationships" - type: - type: "string" - type: "object" - x-internal: false - surveyQuestionOptionRelationships: - type: "object" - surveyQuestionRelationships: - type: "object" - surveyRelationships: - type: "object" - surveyUserResponseRelationships: - properties: - user: - description: "\n\nThe user who responded." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - tagRelationships: - type: "object" - task: - description: "An item that requires action to complete." - properties: - action: - description: "\n\nThe action type of the task. Can be 'action_item', 'call', 'email', or 'in_person'." - maxLength: 255 - type: "string" - x-internal: false - autoskipAt: - description: " \n\nThe optional date and time when the task will automatically be skipped. Tasks with an empty autoskip_at will never be autoskipped." - format: "date-time" - type: "string" - x-internal: false - compiledSequenceTemplateHtml: - description: "\n\nThe compiled template HTML of incomplete SMS or LinkedIn tasks associated with a sequence." - type: "string" - x-internal: false - completed: - description: "\n\nA boolean value whether the task has been completed." - type: "boolean" - x-internal: false - completedAt: - description: "\n\nThe date and time the task was completed." - format: "date-time" - type: "string" - x-internal: false - createdAt: - description: " \n\nThe date and time the task was created." - format: "date-time" - type: "string" - x-internal: false - dueAt: - description: " \n\nThe date and time the task is due." - format: "date-time" - type: "string" - x-internal: false - note: - description: "\n\nAn optional note for the task." - maxLength: 65535 - type: "string" - x-internal: false - opportunityAssociation: - description: "\n\nThe optional opportunity rule associated with the task. Can be 'recent_created', 'recent_updated', 'noop'." - maxLength: 255 - type: "string" - x-internal: false - scheduledAt: - description: " \n\nThe date and time the pending task is scheduled for." - format: "date-time" - type: "string" - x-internal: false - state: - description: " \n\nThe current state of the task. Can be 'pending', 'incomplete', or 'complete'." - maxLength: 255 - type: "string" - x-internal: false - stateChangedAt: - description: " \n\nThe date and time the state last changed." - format: "date-time" - type: "string" - x-internal: false - taskType: - description: " \n\nThe type of task. Can be 'follow_up', 'manual', 'no_reply', 'sequence_open', 'sequence_click', 'sequence_step_call', 'sequence_step_email', 'sequence_step_linkedin_interact_with_post', 'sequence_step_linkedin_other', 'sequence_step_linkedin_send_connection_request', 'sequence_step_linkedin_send_message', 'sequence_step_linkedin_view_profile', 'sequence_step_sms', 'sequence_step_task', or 'touch'. Tasks created through the API will automatically be 'manual' tasks." - maxLength: 255 - type: "string" - x-internal: false - updatedAt: - description: " \n\nThe date and time the task was last updated." - format: "date-time" - type: "string" - x-internal: false - type: "object" - x-internal: false - taskPriority: - description: "A descriptor of importance used for categorizing Tasks." - properties: - color: - description: "\n\nThe color the task priority label will be highlighted in the interface, specified as a hexadecimal value (e.g. \"0xFF5951FF\")." - type: "integer" - x-internal: false - createdAt: - description: " \n\nThe date and time the task priority was created." - format: "date-time" - type: "string" - x-internal: false - name: - description: " \n\nThe name of the task priority (e.g. \"High\")." - maxLength: 255 - type: "string" - x-internal: false - updatedAt: - description: " \n\nThe date and time the task priority was last updated." - format: "date-time" - type: "string" - x-internal: false - weight: - description: " \n\nA relative value used for display order. Task priorities are listed from lowest to highest weight." - type: "integer" - x-internal: false - type: "object" - x-internal: false - taskPriorityRelationships: - properties: - sequenceSteps: - description: "\n\nThe associated sequence steps. Relationship sequenceSteps cannot be used as a filter." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "sequenceStep" - type: "string" - title: "links" - title: "sequenceStep" - type: "array" - x-internal: false - tasks: - description: "\n\nThe associated tasks. Relationship tasks cannot be used as a filter." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "task" - type: "string" - title: "links" - title: "task" - type: "array" - x-internal: false - type: "object" - taskPriorityResponse: - properties: - attributes: - $ref: "#/components/schemas/taskPriority" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/taskPriorityRelationships" - type: - type: "string" - type: "object" - x-internal: false - taskRelationships: - properties: - account: - description: "\n\nThe associated account. You can use only the attribute id to filter tasks by account (e.g. filter[account][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "account" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "account" - type: "string" - title: "links" - title: "account" - x-internal: false - call: - description: "\n\nThe associated call, if a call task. You can use only the attribute id to filter tasks by call (e.g. filter[call][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "call" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "call" - type: "string" - title: "links" - title: "call" - x-internal: false - calls: - description: "\n\nThe associated calls, if a call task. You can use only the attribute id to filter tasks by calls (e.g. filter[calls][id]=X)." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "call" - type: "string" - title: "links" - title: "call" - type: "array" - x-internal: false - completer: - description: "\n\nThe completer of this task. You can use only the attribute id to filter tasks by completer (e.g. filter[completer][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - creator: - description: "\n\nThe creator of this task. Relationship creator cannot be used as a filter." - oneOf: - - - description: "A descriptor of a single step within an automated sequence." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "stage" - - "user" - - "sequenceStep" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "stage" - - "user" - - "sequenceStep" - type: "string" - title: "links" - title: "sequenceStep" - - - description: "A descriptor of the point in the process, used for categorizing Prospects." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "stage" - - "user" - - "sequenceStep" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "stage" - - "user" - - "sequenceStep" - type: "string" - title: "links" - title: "stage" - - - description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "stage" - - "user" - - "sequenceStep" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "stage" - - "user" - - "sequenceStep" - type: "string" - title: "links" - title: "user" - x-internal: false - mailing: - description: "\n\nThe associated mailing, if a mailing task. You can use only the attribute id to filter tasks by mailing (e.g. filter[mailing][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "mailing" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "mailing" - type: "string" - title: "links" - title: "mailing" - x-internal: false - mailings: - description: "\n\nThe associated mailings, if a mailing task. You can use only the attribute id to filter tasks by mailings (e.g. filter[mailings][id]=X)." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "mailing" - type: "string" - title: "links" - title: "mailing" - type: "array" - x-internal: false - opportunity: - description: "\n\nThe associated opportunity. You can use only the attribute id to filter tasks by opportunity (e.g. filter[opportunity][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "opportunity" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "opportunity" - type: "string" - title: "links" - title: "opportunity" - x-internal: false - owner: - description: "The owner of this task. You can use attributes id, email and firstName to filter tasks by owner (e.g. filter[owner][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - prospect: - description: "\n\nThe associated prospect. You can use attributes id, byPersonaId, byStageId, createdAt, firstName, tags, title and updatedAt to filter tasks by prospect (e.g. filter[prospect][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "prospect" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "prospect" - type: "string" - title: "links" - title: "prospect" - x-internal: false - sequence: - description: "\n\nThe associated sequence. You can use attributes id and tags to filter tasks by sequence (e.g. filter[sequence][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "sequence" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "sequence" - type: "string" - title: "links" - title: "sequence" - x-internal: false - sequenceSequenceSteps: - description: "\n\nThe sequence steps of the associated sequence. You can use only the attribute id to filter tasks by sequenceSequenceSteps (e.g. filter[sequenceSequenceSteps][id]=X)." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "sequenceStep" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "sequenceStep" - type: "string" - title: "links" - title: "sequenceStep" - type: "array" - x-internal: false - sequenceState: - description: "\n\nThe associated sequence state. You can use only the attribute id to filter tasks by sequenceState (e.g. filter[sequenceState][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "sequenceState" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "sequenceState" - type: "string" - title: "links" - title: "sequenceState" - x-internal: false - sequenceStep: - description: "\n\nThe associated sequence step. You can use attributes id and stepType to filter tasks by sequenceStep (e.g. filter[sequenceStep][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "sequenceStep" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "sequenceStep" - type: "string" - title: "links" - title: "sequenceStep" - x-internal: false - sequenceTemplate: - description: "\n\nThe associated sequence template. You can use only the attribute id to filter tasks by sequenceTemplate (e.g. filter[sequenceTemplate][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "sequenceTemplate" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "sequenceTemplate" - type: "string" - title: "links" - title: "sequenceTemplate" - x-internal: false - subject: - description: "The task's subject, either an account or prospect. Relationship subject cannot be used as a filter." - oneOf: - - - description: "A descriptor of a person." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "account" - - "opportunity" - - "prospect" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "account" - - "opportunity" - - "prospect" - type: "string" - title: "links" - title: "prospect" - - - description: "A descriptor of a named company used to categorize prospects within an account-based sales approach." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "account" - - "opportunity" - - "prospect" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "account" - - "opportunity" - - "prospect" - type: "string" - title: "links" - title: "account" - - - description: "An opportunity for a sale or pending deal. Requires the Opportunities SKU to be enabled in order to have access. Please contact support for more assistance." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "account" - - "opportunity" - - "prospect" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "account" - - "opportunity" - - "prospect" - type: "string" - title: "links" - title: "opportunity" - x-internal: false - taskPriority: - description: "The associated task priority. You can use attributes id and name to filter tasks by taskPriority (e.g. filter[taskPriority][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "taskPriority" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "taskPriority" - type: "string" - title: "links" - title: "taskPriority" - x-internal: false - template: - description: "\n\nThe associated template. You can use only the attribute id to filter tasks by template (e.g. filter[template][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "template" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "template" - type: "string" - title: "links" - title: "template" - x-internal: false - type: "object" - taskResponse: - properties: - attributes: - $ref: "#/components/schemas/task" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/taskRelationships" - type: - type: "string" - type: "object" - x-internal: false - taskThemeRelationships: - type: "object" - team: - description: "A descriptor of a group of users." - properties: - color: - description: "\n\nThe color used to label and highlight the team." - maxLength: 255 - type: "string" - x-internal: false - createdAt: - description: " \n\nThe date and time the team was created." - format: "date-time" - type: "string" - x-internal: false - name: - description: " \n\nThe name of the team (e.g. \"SDRs\")." - maxLength: 255 - type: "string" - x-internal: false - scimExternalId: - description: "\n\nThe ID from the SCIM provisioning service used to create the team." - maxLength: 255 - type: "string" - x-internal: false - scimSource: - description: "\n\nThe name of the SCIM provisioning source used to create the team." - maxLength: 255 - type: "string" - x-internal: false - updatedAt: - description: " \n\nThe date and time the team was last updated." - format: "date-time" - type: "string" - x-internal: false - type: "object" - x-internal: false - teamMembershipRelationships: - properties: - team: - description: "The team associated with the team membership." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "team" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "team" - type: "string" - title: "links" - title: "team" - x-internal: false - user: - description: "The user associated with the team membership." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - teamRelationships: - properties: - contentCategories: - description: "The content categories that are assigned to the team. Relationship contentCategories cannot be used as a filter." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "contentCategory" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "contentCategory" - type: "string" - title: "links" - title: "contentCategory" - type: "array" - x-internal: false - creator: - description: "\n\nThe creator of the team. Relationship creator cannot be used as a filter." - oneOf: - - - description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - updater: - description: "\n\nThe most recent updater of the team. Relationship updater cannot be used as a filter." - oneOf: - - - description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - users: - description: "The users associated with the team. You can use only the attribute id to filter teams by users (e.g. filter[users][id]=X)." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - type: "array" - x-internal: false - type: "object" - teamResponse: - properties: - attributes: - $ref: "#/components/schemas/team" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/teamRelationships" - type: - type: "string" - type: "object" - x-internal: false - teamSettingsRelationships: - properties: - profile: - description: "The governance profile that is applied to the team." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "profile" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "profile" - type: "string" - title: "links" - title: "profile" - x-internal: false - team: - description: "The team the settings apply to." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "team" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "team" - type: "string" - title: "links" - title: "team" - x-internal: false - type: "object" - template: - description: "A reusable template for building emails." - properties: - archived: - description: "\n\nBoolean value indicating if the template has been archived." - type: "boolean" - x-internal: false - archivedAt: - description: " \n\nThe date and time the template was archived." - format: "date-time" - type: "string" - x-internal: false - bccRecipients: - description: "\n\nA list of default person and email address pairs to receive this template in the \"bcc\" field (e.g. [Billy Bob ``])" - items: - type: "string" - type: "array" - x-internal: false - bodyHtml: - description: "\n\nThe body HTML of the template." - maxLength: 16777215 - type: "string" - x-internal: false - bodyText: - description: "\n\nThe body text of the template." - maxLength: 16777215 - type: "string" - x-internal: false - bounceCount: - description: "\n\nThe total count of bounced mailings during this template." - type: "integer" - x-internal: false - ccRecipients: - description: "\n\nA list of default person and email address pairs to receive this template in the \"cc\" field (e.g. [Billy Bob ``])" - items: - type: "string" - type: "array" - x-internal: false - clickCount: - description: " \n\nThe total count of clicked mailings from this template." - type: "integer" - x-internal: false - createdAt: - description: " \n\nThe date and time the template was created." - format: "date-time" - type: "string" - x-internal: false - deliverCount: - description: " \n\nThe total count of delivered mailings from this template." - type: "integer" - x-internal: false - failureCount: - description: "\n\nThe total count of failed mailings from this template." - type: "integer" - x-internal: false - lastUsedAt: - description: " \n\nThe last time the template was used." - format: "date-time" - type: "string" - x-internal: false - name: - description: " \n\nThe name of the template." - maxLength: 225 - type: "string" - x-internal: false - negativeReplyCount: - description: "\n\nThe total count of negative reply mailings from this template." - type: "integer" - x-internal: false - neutralReplyCount: - description: "\n\nThe total count of neutral reply mailings from this template." - type: "integer" - x-internal: false - openCount: - description: " \n\nThe total count of opened mailings from this template." - type: "integer" - x-internal: false - optOutCount: - description: "\n\nThe total count of opted out mailings from this template." - type: "integer" - x-internal: false - positiveReplyCount: - description: "\n\nThe total count of positive reply mailings from this template." - type: "integer" - x-internal: false - replyCount: - description: " \n\nThe total count of replied mailings from this template." - type: "integer" - x-internal: false - scheduleCount: - description: "\n\nThe total count of scheduled mailings from this template." - type: "integer" - x-internal: false - shareType: - description: " \n\nThe share type must be one of \"read_only,\" \"private,\" or \"shared\"." - maxLength: 255 - type: "string" - x-internal: false - subject: - description: "\n\nThe subject line for the email to be sent." - type: "string" - x-internal: false - tags: - description: "\n\nA list of tag values associated with the template (e.g. [\"Sequencing\", \"Quick Response\"])." - items: - type: "string" - type: "array" - x-internal: false - toRecipients: - description: "\n\nA list of default person and email address pairs to receive this template in the \"to\" field (e.g. [\"Billy Bob \"])" - items: - type: "string" - type: "array" - x-internal: false - trackLinks: - description: "\n\nBoolean value indicating if link tracking is on for the template." - type: "boolean" - x-internal: false - trackOpens: - description: "\n\nBoolean value indicating if open tracking is on for the template." - type: "boolean" - x-internal: false - updatedAt: - description: " \n\nThe date and time the template was last updated." - format: "date-time" - type: "string" - x-internal: false - type: "object" - x-internal: false - templateRelationships: - properties: - contentCategoryMemberships: - description: "The content cateogories with which this template is associated. Relationship contentCategoryMemberships cannot be used as a filter." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "contentCategoryMembership" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "contentCategoryMembership" - type: "string" - title: "links" - title: "contentCategoryMembership" - type: "array" - x-internal: false - creator: - description: "\n\nThe creator of the template. You can use only the attribute id to filter templates by creator (e.g. filter[creator][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - owner: - description: "The owner of the template. You can use only the attribute id to filter templates by owner (e.g. filter[owner][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - recipients: - description: "\n\nA list of default email addresses to receive this template. You can use only the attribute id to filter templates by recipients (e.g. filter[recipients][id]=X)." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "recipient" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "recipient" - type: "string" - title: "links" - title: "recipient" - type: "array" - x-internal: false - sequenceTemplates: - description: "\n\nThe sequence templates using the template for their content. Relationship sequenceTemplates cannot be used as a filter." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "sequenceTemplate" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "sequenceTemplate" - type: "string" - title: "links" - title: "sequenceTemplate" - type: "array" - x-internal: false - updater: - description: "\n\nThe creator of the template. You can use only the attribute id to filter templates by updater (e.g. filter[updater][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - templateResponse: - properties: - attributes: - $ref: "#/components/schemas/template" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/templateRelationships" - type: - type: "string" - type: "object" - x-internal: false - user: - description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." - properties: - accountsViewId: - description: "\n\nThe default smart view to load on the account index view." - type: "integer" - x-internal: false - activityNotificationsDisabled: - description: "\n\nA boolean value whether the user's activity notifications are disabled." - type: "boolean" - x-internal: false - bounceWarningEmailEnabled: - description: "\n\nA boolean value whether the user's bounce warning emails are enabled." - type: "boolean" - x-internal: false - bridgePhone: - description: "\n\nThe telephone number of the user's outbound bridge phone." - maxLength: 255 - type: "string" - x-internal: false - bridgePhoneExtension: - description: "\n\nThe extension number of the user's outbound bridge phone." - maxLength: 255 - type: "string" - x-internal: false - callsViewId: - description: "\n\nThe default smart view to load on the calls view." - type: "integer" - x-internal: false - controlledTabDefault: - description: "\n\nThe user's preferred default tab to open when in task flow." - maxLength: 255 - type: "string" - x-internal: false - createdAt: - description: " \n\nThe date and time the user was created." - format: "date-time" - type: "string" - x-internal: false - currentSignInAt: - description: " \n\nThe date and time the user most recently signed in." - format: "date-time" - type: "string" - x-internal: false - custom1: - description: "\n\nThe value of the user's first custom field." - maxLength: 225 - type: "string" - x-internal: false - custom2: - description: "\n\nThe value of the user's second custom field." - maxLength: 225 - type: "string" - x-internal: false - custom3: - description: "\n\nThe value of the user's third custom field." - maxLength: 225 - type: "string" - x-internal: false - custom4: - description: "\n\nThe value of the user's fourth custom field." - maxLength: 225 - type: "string" - x-internal: false - custom5: - description: "\n\nThe value of the user's fifth custom field." - maxLength: 225 - type: "string" - x-internal: false - dailyDigestEmailEnabled: - description: "\n\nA boolean value whether the user's daily digest emails are enabled." - type: "boolean" - x-internal: false - defaultRulesetId: - description: "\n\nThe id of the default ruleset assigned to the user." - type: "integer" - x-internal: false - duties: - description: "\n\nA collection of the user's work roles." - type: "object" - x-internal: false - email: - description: " \n\nThe email address of the user. Cannot be updated via the API." - format: "email" - maxLength: 255 - type: "string" - x-internal: false - enableVoiceRecordings: - description: "\n\nA boolean value whether the user has voice recordings enabled." - type: "boolean" - x-internal: false - engagementEmailsEnabled: - description: "\n\nA boolean value whether the user has engagement emails enabled." - type: "boolean" - x-internal: false - firstName: - description: " \n\nThe first name of the user." - maxLength: 255 - type: "string" - x-internal: false - inboundBridgePhone: - description: "\n\nThe telephone number of the user's inbound bridge phone." - maxLength: 255 - type: "string" - x-internal: false - inboundBridgePhoneExtension: - description: "\n\nThe extension number of the user's inbound bridge phone." - maxLength: 255 - type: "string" - x-internal: false - inboundCallBehavior: - description: "\n\nThe behavior of inbound calls. Must be either \"inbound_bridge\" or \"inbound_voicemail\"." - maxLength: 255 - type: "string" - x-internal: false - inboundPhoneType: - description: "\n\nThe user's type of telephone for inbound calls. Must be either \"bridge\", \"voip\" or \"bridge_and_voip\"." - maxLength: 255 - type: "string" - x-internal: false - inboundVoicemailCustomMessageText: - description: "\n\nThe message for inbound voicemails (e.g. \"Please leave a message and I will get back to you as soon I can\")." - maxLength: 1024 - type: "string" - x-internal: false - inboundVoicemailMessageTextVoice: - description: "\n\nThe gender of the voice that reads the voicemail message. Must be either \"man\" or \"woman\"." - maxLength: 255 - type: "string" - x-internal: false - inboundVoicemailPromptType: - description: "\n\nThe type of inbound voicemail to use. Must be either \"automated\", \"recorded\", or \"off\"." - maxLength: 255 - type: "string" - x-internal: false - kaiaRecordingsViewId: - description: "\n\nThe default smart view to load on the kaia recordings view." - type: "integer" - x-internal: false - keepBridgePhoneConnected: - description: "\n\nWhether to keep the user's bridge phone connected in-between outbound calls." - type: "boolean" - x-internal: false - lastName: - description: " \n\nThe last name of the user." - maxLength: 255 - type: "string" - x-internal: false - lastSignInAt: - description: "\n\nThe date and time the user previously signed in." - format: "date-time" - type: "string" - x-internal: false - locked: - description: " \n\nA boolean value whether the user is locked out of the application." - type: "boolean" - x-internal: false - mailboxErrorEmailEnabled: - description: "\n\nA boolean value whether the user's mailbox error emails are enabled." - type: "boolean" - x-internal: false - meetingEngagementNotificationEnabled: - description: "\n\nA boolean value whether the user's meeting engagement notifications are enabled." - type: "boolean" - x-internal: false - name: - description: "\n\nThe full name of the user." - type: "string" - x-internal: false - notificationsEnabled: - description: "\n\nA boolean value whether the user's notifications are enabled." - type: "boolean" - x-internal: false - oceClickToDialEverywhere: - description: "\n\nA boolean value indicating if phone calls will launch a call from Outreach (Salesforce, Github, Gmail, LinkedIn, and Twitter)." - type: "boolean" - x-internal: false - oceGmailToolbar: - description: "\n\nA boolean value indicating whether the Outreach Gmail toolbar is enabled." - type: "boolean" - x-internal: false - oceGmailTrackingState: - description: "\n\nThe user's current email tracking settings when using Outreach Everywhere with GMail." - maxLength: 255 - type: "string" - x-internal: false - oceSalesforceEmailDecorating: - description: "\n\nA boolean value indicating if emails are enabled in Outreach Everywhere with Salesforce." - type: "boolean" - x-internal: false - oceSalesforcePhoneDecorating: - description: "\n\nA boolean value indicating if phone calls are enabled in Outreach Everywhere with Salesforce." - type: "boolean" - x-internal: false - oceUniversalTaskFlow: - description: "\n\nA boolean value indicating whether Outreach Everywhere universal task flow is enabled." - type: "boolean" - x-internal: false - oceWindowMode: - description: "\n\nA boolean value indicating whether Outreach Everywhere window mode is enabled." - type: "boolean" - x-internal: false - opportunitiesViewId: - description: "\n\nThe default smart view to load on the opportunity index view." - type: "integer" - x-internal: false - passwordExpiresAt: - description: "\n\nThe date and time the current password expires." - format: "date-time" - type: "string" - x-internal: false - phoneCountryCode: - description: "\n\nThe country code of the user's phone." - maxLength: 2 - type: "string" - x-internal: false - phoneNumber: - description: "\n\nThe telephone number of the user's phone." - type: "string" - x-internal: false - phoneType: - description: "\n\nThe user's type of telephone for outbound calls. Must be either \"bridge\" or \"voip\"." - maxLength: 255 - type: "string" - x-internal: false - pluginAlertNotificationEnabled: - description: "\n\nA boolean value whether the user's plugin related error notifications are enabled." - type: "boolean" - x-internal: false - preferredVoiceRegion: - description: "\n\nA string that represents Twilio data center used to connect to Twilio." - maxLength: 255 - type: "string" - x-internal: false - prefersLocalPresence: - description: "\n\nA boolean value whether the user prefers that a voice call comes from a local phone number." - type: "boolean" - x-internal: false - primaryTimezone: - description: "\n\nThe primary preferred timezone to use when scheduling meetings." - maxLength: 255 - type: "string" - x-internal: false - prospectsViewId: - description: "\n\nThe default smart view to load on the prospect index view." - type: "integer" - x-internal: false - reportsTeamPerfViewId: - description: "\n\nThe default smart view to load on the team performance reports view." - type: "integer" - x-internal: false - reportsViewId: - description: "\n\nThe default smart view to load on the reports view." - type: "integer" - x-internal: false - scimExternalId: - description: "\n\nThe ID from the SCIM provisioning service used to create the user." - maxLength: 255 - type: "string" - x-internal: false - scimSource: - description: "\n\nThe name of the SCIM provisioning source used to create the user." - maxLength: 255 - type: "string" - x-internal: false - secondaryTimezone: - description: "\n\nThe secondary preferred timezone to use when scheduling meetings." - maxLength: 255 - type: "string" - x-internal: false - senderNotificationsExcluded: - description: "\n\nA boolean value whether the user's sender notifications are excluded." - type: "boolean" - x-internal: false - tasksViewId: - description: "\n\nThe default smart view to load on the tasks index view." - type: "integer" - x-internal: false - teamsViewId: - description: "\n\nThe default smart view to load on the teams index view." - type: "integer" - x-internal: false - tertiaryTimezone: - description: "\n\nThe tertiary preferred timezone to use when scheduling meetings." - maxLength: 255 - type: "string" - x-internal: false - textingEmailNotifications: - description: "\n\nA boolean value whether to send the user email notifications when a text message is missed." - type: "boolean" - x-internal: false - title: - description: "\n\nThe user's job title (e.g. \"Staff Accountant\")." - maxLength: 255 - type: "string" - x-internal: false - unknownReplyEmailEnabled: - description: "\n\nA boolean value whether the user's unknown reply emails are enabled." - type: "boolean" - x-internal: false - updatedAt: - description: " \n\nThe date and time the user was last updated." - format: "date-time" - type: "string" - x-internal: false - userGuid: - description: "\n\nThe globally unique ID (GUID) assigned to the user." - type: "string" - x-internal: false - username: - description: " \n\nA reader friendly unique identifier of the user." - maxLength: 255 - type: "string" - x-internal: false - usersViewId: - description: "\n\nThe default smart view to load on the users index view." - type: "integer" - x-internal: false - voicemailNotificationEnabled: - description: "\n\nA boolean value whether the user's voicemail notifications are enabled." - type: "boolean" - x-internal: false - weeklyDigestEmailEnabled: - description: "\n\nA boolean value whether the user's weekly digest email are enabled." - type: "boolean" - x-internal: false - type: "object" - x-internal: false - userRelationships: - properties: - contentCategories: - description: "The groupings of sequences, snippets and templates that this user has access to. Relationship contentCategories cannot be used as a filter." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "contentCategory" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "contentCategory" - type: "string" - title: "links" - title: "contentCategory" - type: "array" - x-internal: false - creator: - description: "\n\nThe creator of the user. Relationship creator cannot be used as a filter." - oneOf: - - - description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - mailbox: - description: "The default mailbox associated with the user. Relationship mailbox cannot be used as a filter." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "mailbox" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "mailbox" - type: "string" - title: "links" - title: "mailbox" - x-internal: false - mailboxes: - description: "All mailboxes associated with the user. Relationship mailboxes cannot be used as a filter." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "mailbox" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "mailbox" - type: "string" - title: "links" - title: "mailbox" - type: "array" - x-internal: false - profile: - description: "The user's profile in Outreach. You can use only the attribute id to filter users by profile (e.g. filter[profile][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "profile" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "profile" - type: "string" - title: "links" - title: "profile" - x-internal: false - recipients: - description: "Recipients that will be included by default in all emails composed by user. Relationship recipients cannot be used as a filter." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "recipient" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "recipient" - type: "string" - title: "links" - title: "recipient" - type: "array" - x-internal: false - role: - description: "The role associated with the user. You can use only the attribute id to filter users by role (e.g. filter[role][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "role" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "role" - type: "string" - title: "links" - title: "role" - x-internal: false - teams: - description: "The teams the user belongs to. You can use only the attribute id to filter users by teams (e.g. filter[teams][id]=X)." - items: - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "team" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "team" - type: "string" - title: "links" - title: "team" - type: "array" - x-internal: false - updater: - description: "\n\nThe most recent updater of the user. Relationship updater cannot be used as a filter." - oneOf: - - - description: "The individual that uses the application. See https://developers.outreach.io/api/common-patterns/#invite-new-users for more information on inviting new users." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - userResponse: - properties: - attributes: - $ref: "#/components/schemas/user" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/userRelationships" - type: - type: "string" - type: "object" - x-internal: false - voicePluginRelationships: - type: "object" - voicemailPromptRelationships: - properties: - user: - description: "" - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - webhook: - description: "A configurable notification that submits external JSON-API-formatted HTTP requests whenever resources are modified." - properties: - action: - description: " \n\nThe action that will trigger this webhook (e.g. \"*\", \"created\", \"updated\", \"destroyed\"). Webhooks will only execute if both the action and resource match." - maxLength: 255 - type: "string" - x-internal: false - active: - description: " \n\nA boolean value indicating whether the webhook is active." - type: "boolean" - x-internal: false - createdAt: - description: "\n\nThe date and time the webhook was created." - format: "date-time" - type: "string" - x-internal: false - resource: - description: " \n\nThe resource that will trigger this webhook (e.g. \"*\", \"prospect\", \"sequenceState\"). Webhooks will only execute if both the action and resource match." - maxLength: 255 - type: "string" - x-internal: false - secret: - description: "\n\nA private token used to verify the authenticity of incoming webhook payloads." - maxLength: 255 - type: "string" - x-internal: false - updatedAt: - description: "\n\nThe date and time the webhook was last updated." - format: "date-time" - type: "string" - x-internal: false - url: - description: "\n\nThe URL where the webhook will route its POST HTTP request." - maxLength: 1024 - type: "string" - x-internal: false - type: "object" - x-internal: false - webhookRelationships: - properties: - authorizer: - description: "\n\nThe authorizer of the webhook. The webhook will not deliver results if the authorizer does not have permission to read the resource being returned. Relationship authorizer cannot be used as a filter." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - creator: - description: "\n\nThe creator of the webhook. You can use only the attribute id to filter webhooks by creator (e.g. filter[creator][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - updater: - description: "\n\nThe most recent updater of the webhook. You can use only the attribute id to filter webhooks by updater (e.g. filter[updater][id]=X)." - oneOf: - - - description: "This Relationship object may contain one of following properties." - properties: - data: - properties: - id: - type: "integer" - type: - enum: - - "user" - type: "string" - title: "data" - - - description: "This Relationship object may contain one of following properties." - properties: - links: - properties: - related: - enum: - - "user" - type: "string" - title: "links" - title: "user" - x-internal: false - type: "object" - webhookResponse: - properties: - attributes: - $ref: "#/components/schemas/webhook" - id: - type: "integer" - relationships: - $ref: "#/components/schemas/webhookRelationships" - type: - type: "string" - type: "object" - x-internal: false - securitySchemes: - bearerAuth: - bearerFormat: "JWT" - scheme: "bearer" - type: "http" - s2sAuthToken: - bearerFormat: "JWT" - scheme: "bearer" - type: "http" - diff --git a/packages/core/remotes/impl/salesloft/salesloft.openapi.gen.d.ts b/packages/core/remotes/impl/salesloft/salesloft.openapi.gen.d.ts index 8d8dd47d2..09f0470ed 100644 --- a/packages/core/remotes/impl/salesloft/salesloft.openapi.gen.d.ts +++ b/packages/core/remotes/impl/salesloft/salesloft.openapi.gen.d.ts @@ -4424,7 +4424,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the Account was archived, if archived - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ archived_at?: string; /** @@ -4452,7 +4452,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the Account was created - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ created_at?: string; creator?: components["schemas"]["EmbeddedResource"]; @@ -4512,7 +4512,7 @@ export interface components { /** * Format: date-time * @description Datetime this Account was last contacted - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ last_contacted_at?: string; last_contacted_by?: components["schemas"]["EmbeddedResource"]; @@ -4589,7 +4589,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the Account was last updated - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ updated_at?: string; /** @@ -4610,7 +4610,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the Account Stage was created - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ created_at?: string; /** @@ -4631,7 +4631,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the Account Stage was last updated - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ updated_at?: string; }; @@ -4639,7 +4639,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the Account Tier was created - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ created_at?: string; /** @@ -4660,7 +4660,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the Account Tier was last updated - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ updated_at?: string; }; @@ -4675,7 +4675,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the Action was created - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ created_at?: string; /** @@ -4686,7 +4686,7 @@ export interface components { /** * Format: date-time * @description When action is due - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ due_on?: string; /** @@ -4721,7 +4721,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the Action was last updated - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ updated_at?: string; user?: components["schemas"]["EmbeddedResource"]; @@ -4730,7 +4730,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the Activity was last updated - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ updated_at?: string; }; @@ -4738,7 +4738,7 @@ export interface components { /** * Format: date-time * @description When this record was created - * @example "2019-01-01T00:00:00.000Z" + * @example 2019-01-01T00:00:00.000000Z */ created_at?: string; /** @@ -4769,13 +4769,13 @@ export interface components { /** * Format: date-time * @description When this activity occurred - * @example "2019-01-01T00:00:00.000Z" + * @example 2019-01-01T00:00:00.000000Z */ occurred_at?: string; /** * Format: date-time * @description When this record was pinned - * @example "2019-01-01T00:00:00.000Z" + * @example 2019-01-01T00:00:00.000000Z */ pinned_at?: string; /** @@ -4803,7 +4803,7 @@ export interface components { /** * Format: date-time * @description When this record was updated - * @example "2019-01-01T00:00:00.000Z" + * @example 2019-01-01T00:00:00.000000Z */ updated_at?: string; /** @@ -4816,7 +4816,7 @@ export interface components { /** * Format: date-time * @description When this bulk job was created - * @example "2019-01-01T05:00:00.000Z" + * @example 2019-01-01T00:00:00-05:00 */ created_at?: string; /** @@ -4827,7 +4827,7 @@ export interface components { /** * Format: date-time * @description When this bulk job finished processing - * @example "2019-01-02T05:00:00.000Z" + * @example 2019-01-02T00:00:00-05:00 */ finished_at?: string; /** @@ -4838,7 +4838,7 @@ export interface components { /** * Format: date-time * @description When this bulk job was marked as ready to execute - * @example "2019-01-02T05:00:00.000Z" + * @example 2019-01-02T00:00:00-05:00 */ marked_ready_at?: string; /** @@ -4866,7 +4866,7 @@ export interface components { /** * Format: date-time * @description When this bulk job started processing. null until bulk job is done - * @example "2019-01-02T05:00:00.000Z" + * @example 2019-01-02T00:00:00-05:00 */ started_at?: string; /** @@ -4887,7 +4887,7 @@ export interface components { /** * Format: date-time * @description When this bulk job was updated - * @example "2019-01-02T05:00:00.000Z" + * @example 2019-01-02T00:00:00-05:00 */ updated_at?: string; }; @@ -4923,7 +4923,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the cadence was archived, if archived - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ archived_at?: string; bounced_stage?: components["schemas"]["EmbeddedResource"]; @@ -4951,7 +4951,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the cadence was created - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ created_at?: string; creator?: components["schemas"]["EmbeddedResource"]; @@ -5024,7 +5024,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the cadence was last updated - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ updated_at?: string; }; @@ -5069,7 +5069,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the person was last added to this cadence - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ added_at?: string; cadence?: components["schemas"]["EmbeddedResource"]; @@ -5077,7 +5077,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the person was first added to this cadence - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ created_at?: string; /** @@ -5122,7 +5122,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the record was last updated - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ updated_at?: string; user?: components["schemas"]["EmbeddedResource"]; @@ -5230,7 +5230,7 @@ export interface components { /** * Format: date-time * @description The (exclusive) end time of the calendar event. - * @example "2022-08-23T08:18:47.853Z" + * @example 2022-08-23T08:18:47.853983Z */ end_time?: string; /** @@ -5276,7 +5276,7 @@ export interface components { /** * Format: date-time * @description The (inclusive) start time of the calendar event. - * @example "2022-08-23T08:18:47.832Z" + * @example 2022-08-23T08:18:47.832113Z */ start_time?: string; /** @@ -5312,7 +5312,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the call was created - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ created_at?: string; crm_activity?: components["schemas"]["EmbeddedResource"]; @@ -5357,7 +5357,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the call was last updated - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ updated_at?: string; user?: components["schemas"]["EmbeddedResource"]; @@ -5378,7 +5378,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the call was created - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ created_at?: string; /** @@ -5415,7 +5415,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the call was last updated - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ updated_at?: string; user?: components["schemas"]["EmbeddedResource"]; @@ -5424,7 +5424,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the call disposition was created - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ created_at?: string; /** @@ -5440,7 +5440,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the call disposition was last updated - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ updated_at?: string; }; @@ -5448,7 +5448,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the call instructions were created - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ created_at?: string; /** @@ -5464,7 +5464,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the call instructions were last updated - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ updated_at?: string; }; @@ -5472,7 +5472,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the call sentiment was created - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ created_at?: string; /** @@ -5488,7 +5488,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the call sentiment was last updated - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ updated_at?: string; }; @@ -5513,7 +5513,7 @@ export interface components { ConversationsCall: { /** * @description Timestamp for when the call started. If not provided, will default to the time the request was received - * @example "2022-07-22T01:00:00.000Z" + * @example 2022-07-22 01:00:00 */ call_created_at?: string; /** @@ -5558,7 +5558,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the crm activity was created - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ created_at?: string; /** @@ -5597,7 +5597,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the crm activity was last updated - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ updated_at?: string; user?: components["schemas"]["EmbeddedResource"]; @@ -5606,7 +5606,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the CrmActivityField was created - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ created_at?: string; /** @@ -5660,7 +5660,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the CrmActivityField was last updated - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ updated_at?: string; /** @@ -5675,7 +5675,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the crm user was created - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ created_at?: string; /** @@ -5691,7 +5691,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the crm user was last updated - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ updated_at?: string; user?: components["schemas"]["EmbeddedResource"]; @@ -5700,7 +5700,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the Custom Field was created - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ created_at?: string; /** @@ -5721,7 +5721,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the Custom Field was last updated - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ updated_at?: string; /** @@ -5747,7 +5747,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the email was created - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ created_at?: string; crm_activity?: components["schemas"]["EmbeddedResource"]; @@ -5782,13 +5782,13 @@ export interface components { /** * Format: date-time * @description When this email will be sent, or null if already sent - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ send_after?: string; /** * Format: date-time * @description When this email was sent, or null if it was not sent - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ sent_at?: string; /** @@ -5803,7 +5803,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the email was last updated - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ updated_at?: string; user?: components["schemas"]["EmbeddedResource"]; @@ -5856,7 +5856,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the email template was archived, if archived - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ archived_at?: string; /** @@ -5893,7 +5893,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the email template was created - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ created_at?: string; /** @@ -5914,7 +5914,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the email template was last used - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ last_used_at?: string; /** @@ -5950,7 +5950,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the email template was last updated - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ updated_at?: string; }; @@ -6035,7 +6035,7 @@ export interface components { /** * Format: date * @description Datetime of when the attendee was deleted - * @example "2022-12-19T14:49:17.930Z" + * @example 2022-12-19T16:49:17.930926+02:00 */ deleted_at?: string; /** @@ -6160,7 +6160,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the import was created - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ created_at?: string; /** @@ -6186,7 +6186,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the import was last updated, ignoring relationship changes - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ updated_at?: string; }; @@ -6199,7 +6199,7 @@ export interface components { /** * Format: date-time * @description When this job data record was created - * @example "2019-01-01T05:00:00.000Z" + * @example 2019-01-01T00:00:00-05:00 */ created_at?: string; /** @@ -6210,7 +6210,7 @@ export interface components { /** * Format: date-time * @description When this job data record finished processing - * @example "2019-01-01T05:00:00.000Z" + * @example 2019-01-01T00:00:00-05:00 */ finished_at?: string; /** @@ -6231,7 +6231,7 @@ export interface components { /** * Format: date-time * @description When this job data record started processing - * @example "2019-01-01T05:00:00.000Z" + * @example 2019-01-01T00:00:00-05:00 */ started_at?: string; /** @@ -6252,14 +6252,14 @@ export interface components { * @description Information about whether this event should trigger an alert * @example { * "should_alert": true, - * "should_alert_until": "2019-01-01T05:00:00.000Z" + * "should_alert_until": "2019-01-01T00:00:00-05:00" * } */ alert_metadata?: Record; /** * Format: date-time * @description When this event occurred - * @example "2019-01-01T05:00:00.000Z" + * @example 2019-01-01T00:00:00-05:00 */ event_occurred_at?: string; /** @@ -6360,13 +6360,13 @@ export interface components { /** * Format: date * @description Datetime of when the meeting was canceled - * @example "2022-12-19T14:49:17.931Z" + * @example 2022-12-19T16:49:17.931396+02:00 */ canceled_at?: string; /** * Format: date * @description Datetime of when the meeting was created - * @example "2022-12-19T14:49:17.930Z" + * @example 2022-12-19T16:49:17.930298+02:00 */ created_at?: string; /** @@ -6385,7 +6385,7 @@ export interface components { * "crm_object_type": "Opportunity", * "crm_url": "link_to_salesforce", * "description1": "Title of the opportunity", - * "description2": "2032-01-10T00:00:00.000Z", + * "description2": "2032-01-10", * "description3": "Prospecting" * }, * "who": { @@ -6408,7 +6408,7 @@ export interface components { /** * Format: date * @description End time of the meeting - * @example "2022-12-19T14:49:17.917Z" + * @example 2022-12-19T16:49:17.917861+02:00 */ end_time?: string; /** @@ -6469,7 +6469,7 @@ export interface components { /** * Format: date * @description Start time of the meeting - * @example "2022-12-19T14:49:17.917Z" + * @example 2022-12-19T16:49:17.917818+02:00 */ start_time?: string; /** @@ -6496,7 +6496,7 @@ export interface components { /** * Format: date * @description Datetime of when the meeting was last updated - * @example "2022-12-19T14:49:17.930Z" + * @example 2022-12-19T16:49:17.930340+02:00 */ updated_at?: string; }; @@ -6540,7 +6540,7 @@ export interface components { /** * Format: date * @description Datetime of when the MeetingSetting was created - * @example "2022-09-15T08:40:59.055Z" + * @example 2022-09-15T11:40:59.055583+03:00 */ created_at?: string; /** @@ -6632,7 +6632,7 @@ export interface components { /** * Format: date * @description Datetime of when the MeetingSetting was last updated - * @example "2022-09-15T08:40:59.055Z" + * @example 2022-09-15T11:40:59.055628+03:00 */ updated_at?: string; user?: components["schemas"]["EmbeddedResource"]; @@ -6654,13 +6654,13 @@ export interface components { /** * Format: date * @description Datetime of when MeetingUrl was created - * @example "2022-09-15T08:40:59.056Z" + * @example 2022-09-15T11:40:59.056237+03:00 */ created_at?: string; /** * Format: date * @description Datetime of when MeetingUrl was last updated - * @example "2022-09-15T08:40:59.056Z" + * @example 2022-09-15T11:40:59.056272+03:00 */ updated_at?: string; /** @@ -6707,7 +6707,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the note was created - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ created_at?: string; /** @@ -6718,7 +6718,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the note was last updated - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ updated_at?: string; user?: components["schemas"]["EmbeddedResource"]; @@ -6776,7 +6776,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the person was created - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ created_at?: string; /** @@ -6853,7 +6853,7 @@ export interface components { /** * Format: date-time * @description Last datetime this person was contacted - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ last_contacted_at?: string; last_contacted_by?: components["schemas"]["EmbeddedResource"]; @@ -6870,7 +6870,7 @@ export interface components { /** * Format: date-time * @description Last datetime this person replied to an email - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ last_replied_at?: string; /** @@ -6982,7 +6982,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the person was last updated - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ updated_at?: string; /** @@ -7037,7 +7037,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the Person Stage was created - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ created_at?: string; /** @@ -7058,7 +7058,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the Person Stage was last updated - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ updated_at?: string; }; @@ -7123,7 +7123,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the Step was created - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ created_at?: string; /** @@ -7171,7 +7171,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the Step was last updated - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ updated_at?: string; }; @@ -7217,7 +7217,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the success was created - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ created_at?: string; /** @@ -7234,19 +7234,19 @@ export interface components { /** * Format: date-time * @description Datetime of when the success was recorded - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ succeeded_at?: string; /** * Format: date-time * @description Datetime of when this person was first worked, leading up to the success - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ success_window_started_at?: string; /** * Format: date-time * @description Datetime of when the success was last updated - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ updated_at?: string; user?: components["schemas"]["EmbeddedResource"]; @@ -7284,14 +7284,14 @@ export interface components { /** * Format: date-time * @description Datetime of when the task was completed, ISO-8601 datetime format required - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ completed_at?: string; completed_by?: components["schemas"]["EmbeddedResource"]; /** * Format: date-time * @description Datetime of when the Task was created - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ created_at?: string; created_by_user?: components["schemas"]["EmbeddedResource"]; @@ -7308,13 +7308,13 @@ export interface components { /** * Format: date-time * @description Datetime of when the Task is due, can be null. ISO-8601 datetime format required - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ due_at?: string; /** * Format: date * @description Date of when the Task is due, ISO-8601 date format required - * @example "2024-01-01T00:00:00.000Z" + * @example 2024-01-01 */ due_date?: string; /** @@ -7326,7 +7326,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the user will be reminded of the task, ISO-8601 datetime format required - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ remind_at?: string; /** @@ -7342,7 +7342,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the Task was last updated - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ updated_at?: string; user?: components["schemas"]["EmbeddedResource"]; @@ -7371,7 +7371,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the team was created - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ created_at?: string; /** @@ -7454,7 +7454,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the team was last updated - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ updated_at?: string; }; @@ -7469,7 +7469,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the team template was archived, if archived - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ archived_at?: string; /** @@ -7501,7 +7501,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the team template was created - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ created_at?: string; /** @@ -7512,14 +7512,14 @@ export interface components { /** * Format: date-time * @description Datetime of when the team template was last modified - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ last_modified_at?: string; last_modified_user?: components["schemas"]["EmbeddedResource"]; /** * Format: date-time * @description Datetime of when the team template was last used - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ last_used_at?: string; /** @@ -7548,7 +7548,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the team template was last updated - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ updated_at?: string; }; @@ -7628,7 +7628,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the user was created - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ created_at?: string; /** @@ -7749,7 +7749,7 @@ export interface components { /** * Format: date-time * @description Datetime of when the user was last updated - * @example "2023-01-01T05:00:00.000Z" + * @example 2023-01-01T00:00:00.000000-05:00 */ updated_at?: string; /** diff --git a/packages/core/remotes/impl/salesloft/salesloft.openapi.json b/packages/core/remotes/impl/salesloft/salesloft.openapi.json new file mode 100644 index 000000000..30efd97fc --- /dev/null +++ b/packages/core/remotes/impl/salesloft/salesloft.openapi.json @@ -0,0 +1,13118 @@ +{ + "openapi": "3.0.0", + "servers": [ + { + "url": "https://api.salesloft.com" + } + ], + "info": { + "contact": { + "email": "integrations@salesloft.com", + "x-twitter": "SalesLoft" + }, + "description": "SalesLoft helps transform sales teams into modern sales organizations - converting more target accounts into customer accounts\n", + "title": "SalesLoft Platform", + "version": "v2", + "x-apisguru-categories": ["customer_relation"], + "x-logo": { + "url": "https://api.apis.guru/v2/cache/logo/https_twitter.com_SalesLoft_profile_image.jpeg" + }, + "x-origin": [ + { + "format": "openapi", + "url": "https://developers.salesloft.com/v2_api_def.json", + "version": "3.0" + } + ], + "x-providerName": "salesloft.com" + }, + "tags": [ + { + "description": "User Information", + "name": "Me" + }, + { + "description": "Team Information", + "name": "Team" + }, + { + "description": "Account Management", + "name": "Accounts" + }, + { + "description": "Account Stage Management", + "name": "Account Stages" + }, + { + "description": "Account Tier Information", + "name": "Account Tiers" + }, + { + "description": "Account Upsert", + "name": "Account Upsert" + }, + { + "description": "Actions", + "name": "Actions" + }, + { + "description": "Actions - Call Instructions", + "name": "Action Details - Call Instructions" + }, + { + "description": "Activities", + "name": "Activities" + }, + { + "description": "Activity Histories", + "name": "Activity Histories" + }, + { + "description": "Bulk Jobs", + "name": "Bulk Jobs" + }, + { + "description": "Bulk Jobs - Job Data", + "name": "Bulk Jobs - Job Data" + }, + { + "description": "Bulk Jobs - Results", + "name": "Bulk Jobs - Results" + }, + { + "description": "Cadence Exports", + "name": "Cadence Exports" + }, + { + "description": "Cadence Importing", + "name": "Cadence Imports" + }, + { + "description": "Cadence Management", + "name": "Cadences" + }, + { + "description": "Cadence Membership", + "name": "Cadence Memberships" + }, + { + "description": "Calendar Events", + "name": "Calendar Events" + }, + { + "description": "Call Data Record Management", + "name": "Call Data Records" + }, + { + "description": "Call Dispositions", + "name": "Call Dispositions" + }, + { + "description": "Call Management", + "name": "Calls" + }, + { + "description": "Call Sentiments", + "name": "Call Sentiments" + }, + { + "description": "Caller ID Information", + "name": "Caller IDs" + }, + { + "description": "Conversations Calls", + "name": "Conversations Calls" + }, + { + "description": "CRM Activity Fields", + "name": "CRM Activity Fields" + }, + { + "description": "CRM Activity Management", + "name": "CRM Activities" + }, + { + "description": "Crm Users", + "name": "Crm Users" + }, + { + "description": "Custom Field Management", + "name": "Custom Fields" + }, + { + "description": "Email Management", + "name": "Emails" + }, + { + "description": "Email Template Attachments", + "name": "Email Template Attachments" + }, + { + "description": "Email Templates Management", + "name": "Email Templates" + }, + { + "description": "External Emails", + "name": "External Emails" + }, + { + "description": "Group Management", + "name": "Groups" + }, + { + "description": "Import Management", + "name": "Imports" + }, + { + "description": "Live Feed Items", + "name": "Live Feed Items" + }, + { + "description": "Live Website Tracking Parameters", + "name": "Live Website Tracking Parameters" + }, + { + "description": "Meetings", + "name": "Meetings" + }, + { + "description": "Meetings Settings", + "name": "Meeting Settings" + }, + { + "description": "Meetings Settings - Searches", + "name": "Meetings Settings - Searches" + }, + { + "description": "MIME content for email", + "name": "Mime Email Payloads" + }, + { + "description": "Note Management", + "name": "Notes" + }, + { + "description": "Ongoing Actions", + "name": "Ongoing Actions" + }, + { + "description": "Pending Emails", + "name": "Pending Emails" + }, + { + "description": "Person Management", + "name": "People" + }, + { + "description": "Person Stage Management", + "name": "Person Stages" + }, + { + "description": "Person Upsert", + "name": "Person Upsert" + }, + { + "description": "Phone Number Assignments", + "name": "Phone Number Assignments" + }, + { + "description": "Recording Settings Information", + "name": "Recording Settings" + }, + { + "description": "Saved List Views", + "name": "Saved List Views" + }, + { + "description": "Steps", + "name": "Steps" + }, + { + "description": "Success Management", + "name": "Successes" + }, + { + "description": "Tags", + "name": "Tags" + }, + { + "description": "Tasks", + "name": "Tasks" + }, + { + "description": "Team Template Attachments", + "name": "Team Template Attachments" + }, + { + "description": "Team Template Management", + "name": "Team Templates" + }, + { + "description": "User Management", + "name": "Users" + }, + { + "description": "Webhook Subscriptions", + "name": "Webhook Subscriptions" + } + ], + "paths": { + "/v2/account_stages.json": { + "get": { + "description": "Fetches multiple account stage records. The records can be filtered, paged, and sorted according to\nthe respective parameters.\n", + "parameters": [ + { + "description": "IDs of account stages to fetch. If a record can't be found, that record won't be returned and your request will be successful", + "explode": false, + "in": "query", + "name": "ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range.\n\n---CUSTOM---\n{\"type\":\"object\",\"keys\":[{\"name\":\"gt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"gte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"}]}\n", + "explode": false, + "in": "query", + "name": "updated_at", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Key to sort on, must be one of: created_at, updated_at, order. Defaults to updated_at", + "in": "query", + "name": "sort_by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC", + "in": "query", + "name": "sort_direction", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data", + "in": "query", + "name": "limit_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/AccountStage" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List account stages", + "tags": ["Account Stages"] + } + }, + "/v2/account_stages/{id}.json": { + "get": { + "description": "Fetches an account stage, by ID only.\n", + "parameters": [ + { + "description": "Account Stage ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/AccountStage" + } + } + }, + "description": "Success" + } + }, + "summary": "Fetch an account stage", + "tags": ["Account Stages"] + } + }, + "/v2/account_tiers.json": { + "get": { + "description": "Fetches multiple account tier records. The records can be filtered, paged, and sorted according to\nthe respective parameters.\n", + "parameters": [ + { + "description": "IDs of Account Tiers to fetch. If a record can't be found, that record won't be returned and your request will be successful", + "explode": false, + "in": "query", + "name": "ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters Account Tiers by name. Multiple names can be applied", + "explode": false, + "in": "query", + "name": "name", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Key to sort on, must be one of: created_at, updated_at, order. Defaults to updated_at", + "in": "query", + "name": "sort_by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC", + "in": "query", + "name": "sort_direction", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data", + "in": "query", + "name": "limit_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/AccountTier" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List Account Tiers", + "tags": ["Account Tiers"] + } + }, + "/v2/account_tiers/{id}.json": { + "get": { + "description": "Fetches an account tier, by ID only.\n", + "parameters": [ + { + "description": "Account Tier ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/AccountTier" + } + } + }, + "description": "Success" + } + }, + "summary": "Fetch an account tier", + "tags": ["Account Tiers"] + } + }, + "/v2/account_upserts.json": { + "post": { + "description": "Upserts an account record. The upsert_key dictates how the upsert will be performed. The create and update behavior\nis exactly the same as the individual create and update endpoints.\n", + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "properties": { + "account_tier_id": { + "description": "ID of the Account Tier for this Account", + "type": "integer" + }, + "city": { + "description": "City", + "type": "string" + }, + "company_stage_id": { + "description": "ID of the CompanyStage assigned to this Account", + "type": "integer" + }, + "company_type": { + "description": "Type of the Account's company", + "type": "string" + }, + "conversational_name": { + "description": "Conversational name of the Account", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "crm_id": { + "description": "Requires Salesforce.\n\nID of the person in your external CRM. You must provide a crm_id_type if this is included.\n\nValidations will be applied to the crm_id depending on the crm_id_type. A \"salesforce\" ID must be exactly 18 characters. A \"salesforce\" ID must be either an Account (001) object. The type will be validated using the 18 character ID.\n\nThis field can only be used if your application or API key has the \"account:set_crm_id\" scope.\n\n", + "type": "string" + }, + "crm_id_type": { + "description": "The CRM that the provided crm_id is for. Must be one of: salesforce", + "type": "string" + }, + "custom_fields": { + "description": "Custom fields are defined by the user's team. Only fields with values are presented in the API.", + "items": { + "type": "object" + }, + "type": "array" + }, + "description": { + "description": "Description", + "type": "string" + }, + "do_not_contact": { + "description": "Whether this company can not be contacted. Values are either true or false. Setting this to true will remove all associated people from all active communications", + "type": "boolean" + }, + "domain": { + "description": "Website domain, not a fully qualified URI", + "type": "string" + }, + "founded": { + "description": "Date or year of founding", + "type": "string" + }, + "id": { + "description": "ID of the account to update. Used if the upsert_key=id. When id and another upsert_key are provided,\nthe request will fail if the upsert record id and id parameter don't match.\n", + "type": "integer" + }, + "industry": { + "description": "Industry", + "type": "string" + }, + "linkedin_url": { + "description": "Full LinkedIn url", + "type": "string" + }, + "locale": { + "description": "Time locale", + "type": "string" + }, + "name": { + "description": "Account Full Name", + "type": "string" + }, + "owner_id": { + "description": "ID of the User that owns this Account", + "type": "integer" + }, + "phone": { + "description": "Phone number without formatting", + "type": "string" + }, + "postal_code": { + "description": "Postal code", + "type": "string" + }, + "revenue_range": { + "description": "Estimated revenue range", + "type": "string" + }, + "size": { + "description": "Estimated number of people in employment", + "type": "string" + }, + "state": { + "description": "State", + "type": "string" + }, + "street": { + "description": "Street name and number", + "type": "string" + }, + "tags": { + "description": "All tags applied to this Account", + "items": { + "type": "string" + }, + "type": "array" + }, + "twitter_handle": { + "description": "Twitter handle, with @", + "type": "string" + }, + "upsert_key": { + "description": "Name of the parameter to upsert on. The field must be provided in the input parameters, or the request will fail.\nThe request will also fail if there are multiple records matched by the upsert field.\n\nIf upsert_key is not provided, this endpoint will not update an existing record.\n\nValid options are: id, crm_id, domain. If crm_id is provided, then a valid crm_id_type must be provided, as documented\nfor the account create and update endpoints.\n", + "type": "string" + }, + "website": { + "description": "Website", + "type": "string" + } + }, + "required": ["name", "domain"], + "type": "object" + } + } + } + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/AccountUpsert" + } + } + }, + "description": "Success" + } + }, + "summary": "Upsert an account", + "tags": ["Account Upsert"] + } + }, + "/v2/accounts.json": { + "get": { + "description": "Fetches multiple account records. The records can be filtered, paged, and sorted according to\nthe respective parameters.\n", + "parameters": [ + { + "description": "IDs of accounts to fetch. If a record can't be found, that record won't be returned and your request will be successful", + "explode": false, + "in": "query", + "name": "ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters accounts by crm_id. Multiple crm ids can be applied", + "explode": false, + "in": "query", + "name": "crm_id", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters accounts by the tags applied to the account. Multiple tags can be applied", + "explode": false, + "in": "query", + "name": "tag", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters accounts by the tag id's applied to the account. Multiple tag id's can be applied", + "explode": false, + "in": "query", + "name": "tag_id", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Equality filters that are applied to the created_at field. A single filter can be used by itself or combined with other filters to create a range.\n\n---CUSTOM---\n{\"type\":\"object\",\"keys\":[{\"name\":\"gt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"gte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"}]}\n", + "explode": false, + "in": "query", + "name": "created_at", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range.\n\n---CUSTOM---\n{\"type\":\"object\",\"keys\":[{\"name\":\"gt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"gte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"}]}\n", + "explode": false, + "in": "query", + "name": "updated_at", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Domain of the accounts to fetch. Domains are unique and lowercase", + "in": "query", + "name": "domain", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Filters accounts by website. Multiple websites can be applied. An additional value of \"_is_null\" can be passed to filter accounts that do not have a website.", + "explode": false, + "in": "query", + "name": "website", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters accounts by archived_at status. Returns only accounts where archived_at is not null if this field is true. Returns only accounts where archived_at is null if this field is false. Do not pass this parameter to return both archived and unarchived accounts. This filter is not applied if any value other than \"true\" or \"false\" is passed.", + "in": "query", + "name": "archived", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Names of accounts to fetch. Name matches are exact and case sensitive. Multiple names can be fetched.", + "explode": false, + "in": "query", + "name": "name", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters accounts by account_stage_id. Multiple account_stage_ids can be applied. An additional value of \"_is_null\" can be passed to filter accounts that do not have account_stage_id", + "explode": false, + "in": "query", + "name": "account_stage_id", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters accounts by account_tier_id. Multiple account tier ids can be applied", + "explode": false, + "in": "query", + "name": "account_tier_id", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters accounts by owner_id. Multiple owner_ids can be applied. An additional value of \"_is_null\" can be passed to filter accounts that are unowned", + "explode": false, + "in": "query", + "name": "owner_id", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters accounts by whether the owner is active or not.", + "in": "query", + "name": "owner_is_active", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Equality filters that are applied to the last_contacted field. A single filter can be used by itself or combined with other filters to create a range.\nAdditional values of \"_is_null\" or \"_is_not_null\" can be passed to filter records that either have no timestamp value or any timestamp value.\n---CUSTOM---\n{\"type\":\"object\",\"keys\":[{\"name\":\"gt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"gte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"}]}\n", + "in": "query", + "name": "last_contacted", + "required": false, + "schema": { + "type": "object" + } + }, + { + "description": "Filters by accounts matching all given custom fields. The custom field names are case-sensitive, but the provided values are case-insensitive. Example: v2/accounts?custom_fields[custom_field_name]=custom_field_value", + "in": "query", + "name": "custom_fields", + "required": false, + "schema": { + "type": "object" + } + }, + { + "description": "Filters accounts by industry by exact match. Supports partial matching", + "explode": false, + "in": "query", + "name": "industry", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters accounts by country by exact match. Supports partial matching", + "explode": false, + "in": "query", + "name": "country", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters accounts by state by exact match. Supports partial matching", + "explode": false, + "in": "query", + "name": "state", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters accounts by city by exact match. Supports partial matching", + "explode": false, + "in": "query", + "name": "city", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters accounts by owner_crm_id. Multiple owner_crm_ids can be applied. An additional value of \"_is_null\" can be passed to filter accounts that are unowned. A \"_not_in\" modifier can be used to exclude specific owner_crm_ids. Example: v2/accounts?owner_crm_id[_not_in]=id", + "explode": false, + "in": "query", + "name": "owner_crm_id", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters accounts by locale. Multiple locales are allowed", + "explode": false, + "in": "query", + "name": "locales", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters by accounts matching all given user relationship fields, _is_null or _unmapped can be passed to filter accounts with null or unmapped user relationship values. Example: v2/accounts?user_relationships[name]=value", + "in": "query", + "name": "user_relationships", + "required": false, + "schema": { + "type": "object" + } + }, + { + "description": "Key to sort on, must be one of: created_at, updated_at, last_contacted_at, account_stage, account_stage_name, account_tier, account_tier_name, name, counts_people. Defaults to updated_at", + "in": "query", + "name": "sort_by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC", + "in": "query", + "name": "sort_direction", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data", + "in": "query", + "name": "limit_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/Account" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List accounts", + "tags": ["Accounts"] + }, + "post": { + "description": "Creates an account.\n\n\"domain\" must be unique on the current team.\n", + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "properties": { + "account_tier_id": { + "description": "ID of the Account Tier for this Account", + "type": "integer" + }, + "city": { + "description": "City", + "type": "string" + }, + "company_stage_id": { + "description": "ID of the CompanyStage assigned to this Account", + "type": "integer" + }, + "company_type": { + "description": "Type of the Account's company", + "type": "string" + }, + "conversational_name": { + "description": "Conversational name of the Account", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "crm_id": { + "description": "Requires Salesforce.\n\nID of the person in your external CRM. You must provide a crm_id_type if this is included.\n\nValidations will be applied to the crm_id depending on the crm_id_type. A \"salesforce\" ID must be exactly 18 characters. A \"salesforce\" ID must be either an Account (001) object. The type will be validated using the 18 character ID.\n\nThis field can only be used if your application or API key has the \"account:set_crm_id\" scope.\n\n", + "type": "string" + }, + "crm_id_type": { + "description": "The CRM that the provided crm_id is for. Must be one of: salesforce", + "type": "string" + }, + "custom_fields": { + "description": "Custom fields are defined by the user's team. Only fields with values are presented in the API.", + "items": { + "type": "object" + }, + "type": "array" + }, + "description": { + "description": "Description", + "type": "string" + }, + "do_not_contact": { + "description": "Whether this company can not be contacted. Values are either true or false. Setting this to true will remove all associated people from all active communications", + "type": "boolean" + }, + "domain": { + "description": "Website domain, not a fully qualified URI", + "type": "string" + }, + "founded": { + "description": "Date or year of founding", + "type": "string" + }, + "industry": { + "description": "Industry", + "type": "string" + }, + "linkedin_url": { + "description": "Full LinkedIn url", + "type": "string" + }, + "locale": { + "description": "Time locale", + "type": "string" + }, + "name": { + "description": "Account Full Name", + "type": "string" + }, + "owner_id": { + "description": "ID of the User that owns this Account", + "type": "integer" + }, + "phone": { + "description": "Phone number without formatting", + "type": "string" + }, + "postal_code": { + "description": "Postal code", + "type": "string" + }, + "revenue_range": { + "description": "Estimated revenue range", + "type": "string" + }, + "size": { + "description": "Estimated number of people in employment", + "type": "string" + }, + "state": { + "description": "State", + "type": "string" + }, + "street": { + "description": "Street name and number", + "type": "string" + }, + "tags": { + "description": "All tags applied to this Account", + "items": { + "type": "string" + }, + "type": "array" + }, + "twitter_handle": { + "description": "Twitter handle, with @", + "type": "string" + }, + "website": { + "description": "Website", + "type": "string" + } + }, + "required": ["name", "domain"], + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Account" + } + } + }, + "description": "Success" + } + }, + "summary": "Create an account", + "tags": ["Accounts"] + } + }, + "/v2/accounts/{id}.json": { + "delete": { + "description": "Deletes an account. This operation is not reversible without contacting support.\nThis operation can be called multiple times successfully.\n\nDeleting an account will remove all connected people from that account.\n", + "parameters": [ + { + "description": "Account ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "The Account has been deleted successfully" + } + }, + "summary": "Delete an account", + "tags": ["Accounts"] + }, + "get": { + "description": "Fetches an account, by ID only.\n", + "parameters": [ + { + "description": "Account ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Account" + } + } + }, + "description": "Success" + } + }, + "summary": "Fetch an account", + "tags": ["Accounts"] + }, + "put": { + "description": "Updates an account.\n\n\"domain\" must be unique on the current team.\n", + "parameters": [ + { + "description": "Account ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "properties": { + "account_tier_id": { + "description": "ID of the Account Tier for this Account", + "type": "integer" + }, + "archived": { + "description": "Whether this Account should be archived or not. Setting this to true sets archived_at to the current time if it's not already set. Setting this to false will set archived_at to null", + "type": "boolean" + }, + "city": { + "description": "City", + "type": "string" + }, + "company_stage_id": { + "description": "ID of the CompanyStage assigned to this Account", + "type": "integer" + }, + "company_type": { + "description": "Type of the Account's company", + "type": "string" + }, + "conversational_name": { + "description": "Conversational name of the Account", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "crm_id": { + "description": "Requires Salesforce.\n\nID of the person in your external CRM. You must provide a crm_id_type if this is included.\n\nValidations will be applied to the crm_id depending on the crm_id_type. A \"salesforce\" ID must be exactly 18 characters. A \"salesforce\" ID must be either an Account (001) object. The type will be validated using the 18 character ID.\n\nThis field can only be used if your application or API key has the \"account:set_crm_id\" scope.\n\n", + "type": "string" + }, + "crm_id_type": { + "description": "The CRM that the provided crm_id is for. Must be one of: salesforce", + "type": "string" + }, + "custom_fields": { + "description": "Custom fields are defined by the user's team. Only fields with values are presented in the API.", + "items": { + "type": "object" + }, + "type": "array" + }, + "description": { + "description": "Description", + "type": "string" + }, + "do_not_contact": { + "description": "Whether this company can not be contacted. Values are either true or false. Setting this to true will remove all associated people from all active communications", + "type": "boolean" + }, + "domain": { + "description": "Website domain, not a fully qualified URI", + "type": "string" + }, + "founded": { + "description": "Date or year of founding", + "type": "string" + }, + "industry": { + "description": "Industry", + "type": "string" + }, + "linkedin_url": { + "description": "Full LinkedIn url", + "type": "string" + }, + "locale": { + "description": "Time locale", + "type": "string" + }, + "name": { + "description": "Account Full Name", + "type": "string" + }, + "owner_id": { + "description": "ID of the User that owns this Account", + "type": "integer" + }, + "phone": { + "description": "Phone number without formatting", + "type": "string" + }, + "postal_code": { + "description": "Postal code", + "type": "string" + }, + "revenue_range": { + "description": "Estimated revenue range", + "type": "string" + }, + "size": { + "description": "Estimated number of people in employment", + "type": "string" + }, + "state": { + "description": "State", + "type": "string" + }, + "street": { + "description": "Street name and number", + "type": "string" + }, + "tags": { + "description": "All tags applied to this Account", + "items": { + "type": "string" + }, + "type": "array" + }, + "twitter_handle": { + "description": "Twitter handle, with @", + "type": "string" + }, + "website": { + "description": "Website", + "type": "string" + } + }, + "required": ["name", "domain"], + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Account" + } + } + }, + "description": "Success" + } + }, + "summary": "Update an existing Account", + "tags": ["Accounts"] + } + }, + "/v2/action_details/call_instructions.json": { + "get": { + "description": "Fetches multiple call instruction records. The records can be filtered, paged, and sorted according to\nthe respective parameters.\n", + "parameters": [ + { + "description": "IDs of call instructions to fetch.", + "explode": false, + "in": "query", + "name": "ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at", + "in": "query", + "name": "sort_by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC", + "in": "query", + "name": "sort_direction", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data", + "in": "query", + "name": "limit_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/CallInstruction" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List call instructions", + "tags": ["Action Details - Call Instructions"] + } + }, + "/v2/action_details/call_instructions/{id}.json": { + "get": { + "description": "Fetches a call instruction, by ID only.\n", + "parameters": [ + { + "description": "Call instructions ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/CallInstruction" + } + } + }, + "description": "Success" + } + }, + "summary": "Fetch a call instructions", + "tags": ["Action Details - Call Instructions"] + } + }, + "/v2/actions.json": { + "get": { + "description": "Fetches multiple action records. The records can be filtered, paged, and sorted according to\nthe respective parameters. Only actions that are currently \"in_progess\" will be returned by\nthis endpoint.\n\nIf the requester is not an admin, this endpoint will only return actions belonging to the requester.\nIf the request is an admin, this endpoint will return actions for the entire team. Additionaly, an admin\nmay use the user_guid parameter to request actions that belong to specific users on the team.\n", + "parameters": [ + { + "description": "IDs of actions to fetch.", + "explode": false, + "in": "query", + "name": "ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Fetch actions by step ID", + "in": "query", + "name": "step_id", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Filter actions by type", + "in": "query", + "name": "type", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Equality filters that are applied to the due_on field. A single filter can be used by itself or combined with other filters to create a range.\n\n---CUSTOM---\n{\"type\":\"object\",\"keys\":[{\"name\":\"gt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"gte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"}]}\n", + "explode": false, + "in": "query", + "name": "due_on", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters actions by the user's guid. Multiple user guids can be applied. The user must be a team admin to filter other users' actions", + "explode": false, + "in": "query", + "name": "user_guid", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters actions by person_id. Multiple person ids can be applied", + "explode": false, + "in": "query", + "name": "person_id", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters actions by cadence_id. Multiple cadence ids can be applied", + "explode": false, + "in": "query", + "name": "cadence_id", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters actions by multitouch_group_id. Multiple multitouch group ids can be applied", + "explode": false, + "in": "query", + "name": "multitouch_group_id", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range.\n\n---CUSTOM---\n{\"type\":\"object\",\"keys\":[{\"name\":\"gt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"gte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"}]}\n", + "explode": false, + "in": "query", + "name": "updated_at", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at", + "in": "query", + "name": "sort_by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC", + "in": "query", + "name": "sort_direction", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data", + "in": "query", + "name": "limit_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/Action" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List actions", + "tags": ["Actions"] + } + }, + "/v2/actions/{id}.json": { + "get": { + "description": "Fetches an action, by ID only.\nThis endpoint will only return actions that are in_progress or pending_activity.\nOnce an action is complete, the request for that action will return a 404 status code.\n", + "parameters": [ + { + "description": "Action ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Action" + } + } + }, + "description": "Success" + } + }, + "summary": "Fetch an action", + "tags": ["Actions"] + } + }, + "/v2/activities.json": { + "post": { + "description": "Creates an activity. An activity will mark the associated action as completed. Currently,\nonly certain action types can have an activity explicitly created for them.\n", + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "properties": { + "action_id": { + "description": "Action that is being completed. This will validate that the action is still\nvalid before completed it. The same action can never be successfully passed twice to this endpoint.\nThe action must have a type of 'integration'.\n", + "type": "integer" + }, + "task_id": { + "description": "Task that is being completed. This will validate that the task is still\nvalid before completed it. The same action can never be successfully passed twice to this endpoint.\nThe task must have a type of 'integration'.\n", + "type": "integer" + } + }, + "type": "object" + } + } + } + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Activity" + } + } + }, + "description": "Success" + } + }, + "summary": "Create an activity", + "tags": ["Activities"] + } + }, + "/v2/activities/calls.json": { + "get": { + "description": "Fetches multiple call records. The records can be filtered, paged, and sorted according to\nthe respective parameters.\n", + "parameters": [ + { + "description": "IDs of calls to fetch. If a record can't be found, that record won't be returned and your request will be successful", + "explode": false, + "in": "query", + "name": "ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Equality filters that are applied to the created_at field. A single filter can be used by itself or combined with other filters to create a range.\n\n---CUSTOM---\n{\"type\":\"object\",\"keys\":[{\"name\":\"gt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"gte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"}]}\n", + "explode": false, + "in": "query", + "name": "created_at", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range.\n\n---CUSTOM---\n{\"type\":\"object\",\"keys\":[{\"name\":\"gt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"gte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"}]}\n", + "explode": false, + "in": "query", + "name": "updated_at", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters list to only include guids", + "explode": false, + "in": "query", + "name": "user_guid", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters calls by person_id. Multiple person ids can be applied", + "explode": false, + "in": "query", + "name": "person_id", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters calls by sentiment. Sentiment matches are exact and case sensitive. Multiple sentiments are allowed.", + "explode": false, + "in": "query", + "name": "sentiment", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters calls by disposition. Disposition matches are exact and case sensitive. Multiple dispositions are allowed.", + "explode": false, + "in": "query", + "name": "disposition", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at", + "in": "query", + "name": "sort_by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC", + "in": "query", + "name": "sort_direction", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data", + "in": "query", + "name": "limit_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/Call" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List calls", + "tags": ["Calls"] + }, + "post": { + "description": "Creates a call. The parameters of this endpoint can be used to create an action\nand ensure that the CRM Task is mapped correctly.\n", + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "properties": { + "action_id": { + "description": "Action that this call is being logged for. This will validate that the action is still\nvalid before completing it. The same action can never be successfully passed twice to this endpoint. The\naction must have a type of 'phone'.\n", + "type": "integer" + }, + "crm_params": { + "description": "CRM specific parameters. Some parameters are required on a per-team basis. Consume the\nCrmActivityFields endpoint to receive a list of valid parameters. The \"field\" property\nis passed as the key of this object, and the value of this object is the value that you\nwould like to set.\n\nIf CrmActivityField has a non-null value, then that value must be submitted, or excluded\nfrom API calls, as these values are automatically applied.\n", + "type": "object" + }, + "disposition": { + "description": "The disposition of the call. Can be required on a per-team basis. Must be present in the disposition list.", + "type": "string" + }, + "duration": { + "description": "The length of the call, in seconds", + "type": "integer" + }, + "linked_call_data_record_ids": { + "description": "CallDataRecord associations that will become linked to the created call. It is possible to pass\nmultiple CallDataRecord ids in this field; this can be used to represent multiple phone calls\nthat made up a single call.\n\nAny call data record that is used must not already be linked to a call. It is not possible\nto link a call data record to multiple calls, and it is not possible to re-assign a call data\nrecord to a different call.\n", + "items": { + "type": "integer" + }, + "type": "array" + }, + "notes": { + "description": "Notes to log for the call. This is similar to the notes endpoint, but ensures that the notes get synced to the user's CRM", + "type": "string" + }, + "person_id": { + "description": "The ID of the person whom this call will be logged for", + "type": "integer" + }, + "sentiment": { + "description": "The sentiment of the call. Can be required on a per-team basis. Must be present in the sentiment list.", + "type": "string" + }, + "to": { + "description": "The phone number that was called", + "type": "string" + }, + "user_guid": { + "description": "Guid of the user whom this call should be logged for. Defaults to the authenticated user. Only team admins can pass another user's guid", + "type": "string" + } + }, + "required": ["person_id"], + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Call" + } + } + }, + "description": "Success" + } + }, + "summary": "Create a call", + "tags": ["Calls"] + } + }, + "/v2/activities/calls/{id}.json": { + "get": { + "description": "Fetches a call, by ID only.\n", + "parameters": [ + { + "description": "Call ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Call" + } + } + }, + "description": "Success" + } + }, + "summary": "Fetch a call", + "tags": ["Calls"] + } + }, + "/v2/activities/emails.json": { + "get": { + "description": "Fetches multiple email records. The records can be filtered, paged, and sorted according to\nthe respective parameters.\n", + "parameters": [ + { + "description": "IDs of emails to fetch. If a record can't be found, that record won't be returned and your request will be successful", + "explode": false, + "in": "query", + "name": "ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range.\n\n---CUSTOM---\n{\"type\":\"object\",\"keys\":[{\"name\":\"gt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"gte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"}]}\n", + "explode": false, + "in": "query", + "name": "updated_at", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters emails by whether they have bounced or not", + "in": "query", + "name": "bounced", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Filters emails by crm_activity_id. Multiple crm activty ids can be applied", + "explode": false, + "in": "query", + "name": "crm_activity_id", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters emails by action_id. Multiple action ids can be applied", + "explode": false, + "in": "query", + "name": "action_id", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters emails by user_id. Multiple User ids can be applied", + "explode": false, + "in": "query", + "name": "user_id", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters emails by status. Multiple status can be applied, possible values are sent, sent_from_gmail, sent_from_external, pending, pending_reply_check, scheduled, sending, delivering, failed, cancelled, pending_through_gmail, pending_through_external", + "explode": false, + "in": "query", + "name": "status", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters emails by cadence. Multiple cadence ids can be applied", + "explode": false, + "in": "query", + "name": "cadence_id", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters emails by step. Multiple step ids can be applied", + "explode": false, + "in": "query", + "name": "step_id", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters emails by one-off only", + "in": "query", + "name": "one_off", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Specify explicit scoped fields desired on the Email Resource.", + "explode": false, + "in": "query", + "name": "scoped_fields", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters emails by person_id. Multiple person ids can be applied", + "explode": false, + "in": "query", + "name": "person_id", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters emails by recipient email address. Multiple emails can be applied.", + "explode": false, + "in": "query", + "name": "email_addresses", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters emails by personalization score", + "explode": false, + "in": "query", + "name": "personalization", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Equality filters that are applied to the sent_at field. A single filter can be used by itself or combined with other filters to create a range.\n\n---CUSTOM---\n{\"type\":\"object\",\"keys\":[{\"name\":\"gt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"gte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"}]}\n", + "explode": false, + "in": "query", + "name": "sent_at", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Key to sort on, must be one of: updated_at, send_time. Defaults to updated_at", + "in": "query", + "name": "sort_by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC", + "in": "query", + "name": "sort_direction", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data", + "in": "query", + "name": "limit_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/Email" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List emails", + "tags": ["Emails"] + } + }, + "/v2/activities/emails/{id}.json": { + "get": { + "description": "Fetches an email, by ID only.\n", + "parameters": [ + { + "description": "Email ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Email" + } + } + }, + "description": "Success" + } + }, + "summary": "Fetch an email", + "tags": ["Emails"] + } + }, + "/v2/activity_histories": { + "get": { + "description": "Fetches all of the customer's past activities for your application. Returns all the Activities that are found on the Salesloft Activity Feed. Visit here for more details.", + "parameters": [ + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Key to sort on, must be one of: occurred_at, updated_at. Defaults to occurred_at", + "in": "query", + "name": "sort_by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC", + "in": "query", + "name": "sort_direction", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Filter by the type of activity. Must be one of: added_to_cadence, completed_action, call, requested_email, sent_email, received_email, email_reply, note, success, dnc_event, residency_change, meeting, meeting_held, message_conversation, task, voicemail, opportunity_stage_change, opportunity_amount_change, opportunity_close_date_change. Can be provided as an array, or as an object of type[resource_type][]=type", + "in": "query", + "name": "type", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "For internal use only. This field does not comply with our backwards compatibility policies. This filter is for authenticated users of Salesloft only and will not work for OAuth Applications. Filter by the {resource_type, resource_id} of activity. Provide this in the format resource[]=person,1234", + "in": "query", + "name": "_resource", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Equality filters that are applied to the occurred_at field. A single filter can be used by itself or combined with other filters to create a range.\n---CUSTOM---\n{\"keys\":[{\"description\":\"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.\",\"name\":\"gt\",\"type\":\"iso8601 string\"},{\"description\":\"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\",\"name\":\"gte\",\"type\":\"iso8601 string\"},{\"description\":\"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.\",\"name\":\"lt\",\"type\":\"iso8601 string\"},{\"description\":\"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\",\"name\":\"lte\",\"type\":\"iso8601 string\"}],\"type\":\"object\"}\n", + "in": "query", + "name": "occurred_at", + "required": false, + "schema": { + "type": "object" + } + }, + { + "description": "Filter by the pinned status of activity. Must be 'true' or 'false'", + "in": "query", + "name": "pinned", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Filter by the resource type. A resource is a Salesloft object that the activity is attributed to. A valid resource types must be one of person, account, crm_opportunity. Can be provided as an array", + "in": "query", + "name": "resource_type", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Filter by the resource id. \"resource_type\" filter is required to use this filter.", + "explode": false, + "in": "query", + "name": "resource_id", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range.\n---CUSTOM---\n{\"keys\":[{\"description\":\"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.\",\"name\":\"gt\",\"type\":\"iso8601 string\"},{\"description\":\"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\",\"name\":\"gte\",\"type\":\"iso8601 string\"},{\"description\":\"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.\",\"name\":\"lt\",\"type\":\"iso8601 string\"},{\"description\":\"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\",\"name\":\"lte\",\"type\":\"iso8601 string\"}],\"type\":\"object\"}\n", + "in": "query", + "name": "updated_at", + "required": false, + "schema": { + "type": "object" + } + }, + { + "description": "Filter activities by a user's guid.", + "in": "query", + "name": "user_guid", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ActivityHistory" + } + } + }, + "description": "Success" + } + }, + "summary": "List Past Activities", + "tags": ["Activity Histories"] + } + }, + "/v2/bulk_jobs": { + "get": { + "description": "Fetches multiple bulk job records. The records can be filtered, paged, and sorted according to the respective parameters.", + "parameters": [ + { + "description": "The state of the bulk job. Accepts multiple states. Each state must be one of: open, executing, done", + "explode": false, + "in": "query", + "name": "state", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filter by id using comparison operators. Only supports greater than (gt) comparison (i.e. id[gt]=123)", + "in": "query", + "name": "id", + "required": false, + "schema": { + "type": "object" + } + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/BulkJob" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List bulk jobs", + "tags": ["Bulk Jobs"] + }, + "post": { + "description": "Creates a bulk job. The type of the bulk job must be included when created.\n\nFor additional information on creating bulk jobs, the types of supported bulk jobs, and examples of the bulk job flow, visit the bulk job details page.\n", + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "properties": { + "name": { + "description": "Name for your bulk job", + "type": "string" + }, + "type": { + "description": "Type of bulk job. Must be a valid type. Follow link to the bulk job details page above to view supported types.", + "type": "string" + } + }, + "required": ["type"], + "type": "object" + } + } + } + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/BulkJob" + } + } + }, + "description": "Success" + } + }, + "summary": "Create a bulk job", + "tags": ["Bulk Jobs"] + } + }, + "/v2/bulk_jobs/{bulk_jobs_id}/job_data": { + "get": { + "description": "Fetches multiple job data records for a given bulk job. Pagination is not supported, but cursor based polling is via use of the `id[gt]` filter. Pass the last id seen (i.e. `id[gt]=1234`) in order to get the next batch of records.", + "parameters": [ + { + "description": "The id for the bulk job to which the job data relates", + "in": "path", + "name": "bulk_jobs_id", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "description": "Filter by result status. Accepts multiple statuses. Each status must be one of pending, success, error, retrying", + "explode": false, + "in": "query", + "name": "status", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filter by id using comparison operators. Only supports greater than (gt) comparison (i.e. id[gt]=123)", + "in": "query", + "name": "id", + "required": false, + "schema": { + "type": "object" + } + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/BulkJobResult" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List job data for a bulk job", + "tags": ["Bulk Jobs - Job Data"] + }, + "post": { + "description": "Upload job data for the specified bulk job. Upload an array of objects, where element contains the parameters necessary to execute the individual calls. Each call to this endpoint can handle up to 5,000 records at a time. There is no limit to how many times you can create job data for a given bulk job.\n\nFor additional information on creating bulk jobs, the types of supported bulk jobs, and examples of the bulk job flow, visit the bulk job details page.\n", + "parameters": [ + { + "description": "The id for the bulk job to which the job data relates", + "in": "path", + "name": "bulk_jobs_id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "properties": { + "data": { + "description": "Array of objects containing parameters to be used to execute an instance of each. Array must be 5,000 records or less.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": ["data"], + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/JobDataCreationResult" + } + } + }, + "description": "Success" + } + }, + "summary": "Create job data for a bulk job", + "tags": ["Bulk Jobs - Job Data"] + } + }, + "/v2/bulk_jobs/{bulk_jobs_id}/results": { + "get": { + "description": "Fetches multiple job data records for a completed bulk job. Note that until a bulk job's state is set to `done` the returned `data` will be an empty array. Pagination is not supported, but cursor based polling is via use of the `id[gt]` filter. Pass the last id seen (i.e. `id[gt]=1234`) in order to get the next batch of records.", + "parameters": [ + { + "description": "The id for the Bulk Job", + "in": "path", + "name": "bulk_jobs_id", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "description": "Filter by result status. Accepts multiple statuses. Each status must be one of pending, success, error, retrying", + "explode": false, + "in": "query", + "name": "status", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filter by id using comparison operators. Only supports greater than (gt) comparison (i.e. id[gt]=123)", + "in": "query", + "name": "id", + "required": false, + "schema": { + "type": "object" + } + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/BulkJobResult" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List job data for a completed bulk job.", + "tags": ["Bulk Jobs - Results"] + } + }, + "/v2/bulk_jobs/{id}": { + "get": { + "description": "Fetches a bulk job, by ID only.", + "parameters": [ + { + "description": "The id for the Bulk Job", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/BulkJob" + } + } + }, + "description": "Success" + } + }, + "summary": "Fetch a bulk job", + "tags": ["Bulk Jobs"] + }, + "put": { + "description": "Updates a bulk job's name and / or marks a bulk job as 'ready_to_execute'. May only be updated if the bulk job is still in an \"open\" state.\n\nFor additional information on creating bulk jobs, the types of supported bulk jobs, and examples of the bulk job flow, visit the bulk job details page.\n", + "parameters": [ + { + "description": "The id for the bulk job to which the job data relates", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "properties": { + "name": { + "description": "Name for your bulk job", + "type": "string" + }, + "ready_to_execute": { + "description": "Whether the job is ready to be executed. Must be true or false.", + "type": "boolean" + } + }, + "type": "object" + } + } + } + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/BulkJob" + } + } + }, + "description": "Success" + } + }, + "summary": "Update a bulk job", + "tags": ["Bulk Jobs"] + } + }, + "/v2/cadence_exports/{id}.json": { + "get": { + "description": "Exports a cadence as JSON.\n", + "parameters": [ + { + "description": "Cadence ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/CadenceExport" + } + } + }, + "description": "Success" + } + }, + "summary": "Export a cadence", + "tags": ["Cadence Exports"] + } + }, + "/v2/cadence_imports.json": { + "post": { + "description": "New cadences can be created or steps can be imported onto existing cadences which do not have steps.\nVisit here for more details.\n", + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "properties": { + "cadence_content": { + "description": "Import data for cadence", + "type": "object" + }, + "settings": { + "description": "Settings for a cadence", + "type": "object" + }, + "sharing_settings": { + "description": "The shared settings for a cadence", + "type": "object" + } + }, + "type": "object" + } + } + } + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/CadenceImport" + } + } + }, + "description": "Success" + } + }, + "summary": "Import cadences from JSON", + "tags": ["Cadence Imports"] + } + }, + "/v2/cadence_memberships.json": { + "get": { + "description": "Fetches multiple cadence membership records. The records can be filtered, paged, and sorted according to\nthe respective parameters. A cadence membership is the association between a person and their current and\nhistorical time on a cadence. Cadence membership records are mutable and change over time. If a person is\nadded to a cadence and re-added to the same cadence in the future, there is a single membership record.\n", + "parameters": [ + { + "description": "IDs of cadence memberships to fetch. If a record can't be found, that record won't be returned and your request will be successful", + "explode": false, + "in": "query", + "name": "ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "ID of the person to find cadence memberships for", + "in": "query", + "name": "person_id", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "ID of the cadence to find cadence memberships for", + "in": "query", + "name": "cadence_id", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range.\n\n---CUSTOM---\n{\"type\":\"object\",\"keys\":[{\"name\":\"gt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"gte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"}]}\n", + "explode": false, + "in": "query", + "name": "updated_at", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "If true, return only cadence memberships for people currently on cadences. If false, return cadence memberships for people who have been removed from or have completed a cadence.", + "in": "query", + "name": "currently_on_cadence", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Key to sort on, must be one of: added_at, updated_at. Defaults to updated_at", + "in": "query", + "name": "sort_by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC", + "in": "query", + "name": "sort_direction", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data", + "in": "query", + "name": "limit_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/CadenceMembership" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List cadence memberships", + "tags": ["Cadence Memberships"] + }, + "post": { + "description": "Adds a person to a cadence. person_id and cadence_id are required, and must be visible to the authenticated user. user_id will\ndefault to the authenticated user, but can be set to any visible user on the authenticated team.\n\nA person cannot be added to a cadence on behalf of a teammate unless the cadence is a team cadence, the cadence is owned by\nthe teammate, or the teammate has the Personal Cadence Admin permission.\n", + "parameters": [ + { + "description": "ID of the person to create a cadence membership for", + "in": "query", + "name": "person_id", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "description": "ID of the cadence to create a cadence membership for", + "in": "query", + "name": "cadence_id", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "description": "ID of the user to create a cadence membership for. The associated cadence must be owned by the user, or it must be a team cadence", + "in": "query", + "name": "user_id", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "ID of the step on which the person should start the cadence. Start on first step is the default behavior without this parameter.", + "in": "query", + "name": "step_id", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/CadenceMembership" + } + } + }, + "description": "Success" + } + }, + "summary": "Create a cadence membership", + "tags": ["Cadence Memberships"] + } + }, + "/v2/cadence_memberships/{id}.json": { + "delete": { + "description": "Cadence Membership\n", + "parameters": [ + { + "description": "CadenceMembership ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "The person has been removed from the cadence successfully" + } + }, + "summary": "Delete a cadence membership", + "tags": ["Cadence Memberships"] + }, + "get": { + "description": "Fetches a cadence membership, by ID only.\n", + "parameters": [ + { + "description": "CadenceMembership ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/CadenceMembership" + } + } + }, + "description": "Success" + } + }, + "summary": "Fetch a cadence membership", + "tags": ["Cadence Memberships"] + } + }, + "/v2/cadences.json": { + "get": { + "description": "Fetches multiple cadence records. The records can be filtered, paged, and sorted according to\nthe respective parameters.\n", + "parameters": [ + { + "description": "IDs of cadences to fetch. If a record can't be found, that record won't be returned and your request will be successful", + "explode": false, + "in": "query", + "name": "ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range.\n\n---CUSTOM---\n{\"type\":\"object\",\"keys\":[{\"name\":\"gt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"gte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"}]}\n", + "explode": false, + "in": "query", + "name": "updated_at", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters cadences by whether they are a team cadence or not", + "in": "query", + "name": "team_cadence", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Filters cadences by whether they are shared", + "in": "query", + "name": "shared", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Filters cadences by the owner's guid. Multiple owner guids can be applied", + "explode": false, + "in": "query", + "name": "owned_by_guid", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters cadences by whether they are able to have people added to them", + "in": "query", + "name": "people_addable", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Filters cadences by name", + "explode": false, + "in": "query", + "name": "name", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters by group ids. Also supports group ids passed in as a JSON array string", + "in": "query", + "name": "group_ids", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Filters by whether the Cadences have been archived. Excluding this field will result in both archived and unarchived Cadences to return.", + "in": "query", + "name": "archived", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Key to sort on, must be one of: created_at, updated_at, name. Defaults to updated_at", + "in": "query", + "name": "sort_by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC", + "in": "query", + "name": "sort_direction", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data", + "in": "query", + "name": "limit_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/Cadence" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List cadences", + "tags": ["Cadences"] + } + }, + "/v2/cadences/{id}.json": { + "get": { + "description": "Fetches a cadence, by ID only.\n", + "parameters": [ + { + "description": "Cadence ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Cadence" + } + } + }, + "description": "Success" + } + }, + "summary": "Fetch a cadence", + "tags": ["Cadences"] + } + }, + "/v2/calendar/events": { + "get": { + "description": "Returns all calendar events, paginated and filtered by the date.", + "parameters": [ + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Key to sort on, must be one of: start_time. Defaults to start_time", + "in": "query", + "name": "sort_by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC", + "in": "query", + "name": "sort_direction", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Lower bound (inclusive) for a calendar event's end time to filter by.\nMust be in ISO 8601 format.\n\nExample: `2022-02-14T10:12:59+00:00`.\n", + "in": "query", + "name": "start_time", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Upper bound (exclusive) for a calendar event's start time to filter by.\nMust be in ISO 8601 format.\n\nExample: `2022-02-14T10:12:59+00:00`.\n", + "in": "query", + "name": "end_time", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "user_guid of the user who created or included as a guest to the event.\n", + "in": "query", + "name": "user_guid", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/CalendarEvent" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List calendar events", + "tags": ["Calendar Events"] + } + }, + "/v2/calendar/events/upsert": { + "post": { + "description": " Upserts a calendar event object.\n Upsert key is a combination of `id` and `i_cal_uid` scoped to the given `calendar_id`.\n Bulk operations:\n This endpoint is used for bulk operations, see https://developers.salesloft.com/bulk.html for integration instructions.\n Use `calendar/events/upsert` as an event type, and this spec as a data spec.\n This endpoint should be used directly for the time sensitive calendar event updates.\n", + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "properties": { + "all_day": { + "description": "Should be set to `true` for all day calendar events.", + "type": "boolean" + }, + "attendees": { + "description": " List of attendees of the calendar event.\n Example:\n ```\n {\n ...\n \"attendees\": [\n {\n \"name\": \"Alice\",\n \"email\": \"alice@example.com\",\n \"status\": \"accepted\",\n \"organizer\": true\n },\n {\n \"name\": \"Bob\",\n \"email\": \"bob@example.com\",\n \"status\": \"needsAction\",\n \"organizer\": false\n }\n ]\n }\n ```\n `name`: full name of the attendee\n\n `email`: email address of the attendee\n\n `status`: one of the following - needsAction, accepted, tentative, declined\n\n `organizer`: whether the attendee is the organizer of the calendar event\n", + "type": "object" + }, + "calendar_id": { + "description": " Calendar ID of the calendar event owner.\n For the External Calendar connection use `external_{salesloft_user_guid}` format.\n Example: `external_00210d1a-df8a-459f-af75-89b953b618b0`.\n", + "type": "string" + }, + "canceled_at": { + "description": " Cancellation time of the calendar event, as a combined date-time value in the ISO 8601 format with a time zone offset.\n Example: `2022-02-14T10:12:59+00:00`.\n", + "type": "string" + }, + "description": { + "description": "Description of the calendar event", + "type": "string" + }, + "end_time": { + "description": " End time of the calendar event, as a combined date-time value in the ISO 8601 format with a time zone offset.\n Example: `2022-02-14T10:12:59+00:00`.\n", + "format": "date", + "type": "string" + }, + "i_cal_uid": { + "description": " icalUID of the calendar event. Unique identifier for a calendar event across calendars.\n\n Used as an upsert key.\n", + "type": "string" + }, + "id": { + "description": " Id of the calendar event, different for each occurrence in a recurring series.\n\n Used as an upsert key.\n", + "type": "string" + }, + "location": { + "description": "Location of the calendar event as free-form text.", + "type": "string" + }, + "organizer": { + "description": " Email address of the organizer\n", + "type": "string" + }, + "recurring": { + "description": "Should be set to `true` if this is one of recurring series calendar event.", + "type": "boolean" + }, + "start_time": { + "description": " Start time of the calendar event, as a combined date-time value in the ISO 8601 format with a time zone offset.\n Example: `2022-02-14T10:12:59+00:00`.\n", + "format": "date", + "type": "string" + }, + "status": { + "description": " Status of the calendar event. Depending on the status, the calendar event will or will not impact user's availability.\n Possible values: `confirmed`, `tentative`, `cancelled`.\n Example: `confirmed`.\n", + "type": "string" + }, + "title": { + "description": "Title of the calendar event", + "type": "string" + } + }, + "required": ["id", "i_cal_uid", "start_time", "end_time", "calendar_id"], + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/CalendarEvent" + } + } + }, + "description": "Success" + } + }, + "summary": "Upsert a calendar event", + "tags": ["Calendar Events"] + } + }, + "/v2/call_data_records.json": { + "get": { + "description": "Fetches multiple call data records. The records can be filtered, paged, and sorted according to\nthe respective parameters.\n\nCall data records are records of all inbound and outbound calls through Salesloft. A call data record may\nbe associated with a call, but does not have to be.\n", + "parameters": [ + { + "description": "IDs of call data records to fetch. If a record can't be found, that record won't be returned and your request will be successful", + "explode": false, + "in": "query", + "name": "ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Return only call data records which have or do not have a call logged for them", + "in": "query", + "name": "has_call", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Equality filters that are applied to the created_at field. A single filter can be used by itself or combined with other filters to create a range.\n\n---CUSTOM---\n{\"type\":\"object\",\"keys\":[{\"name\":\"gt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"gte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"}]}\n", + "explode": false, + "in": "query", + "name": "created_at", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range.\n\n---CUSTOM---\n{\"type\":\"object\",\"keys\":[{\"name\":\"gt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"gte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"}]}\n", + "explode": false, + "in": "query", + "name": "updated_at", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters list to only include guids", + "explode": false, + "in": "query", + "name": "user_guid", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters list by person_id. Multiple person ids can be applied", + "explode": false, + "in": "query", + "name": "person_id", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at", + "in": "query", + "name": "sort_by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC", + "in": "query", + "name": "sort_direction", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data", + "in": "query", + "name": "limit_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/CallDataRecord" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List call data records", + "tags": ["Call Data Records"] + } + }, + "/v2/call_data_records/{id}.json": { + "get": { + "description": "Fetches a call data record, by ID only.\n", + "parameters": [ + { + "description": "CallDataRecord ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/CallDataRecord" + } + } + }, + "description": "Success" + } + }, + "summary": "Fetch a call data record", + "tags": ["Call Data Records"] + } + }, + "/v2/call_dispositions.json": { + "get": { + "description": "Fetches multiple call disposition records. The records can be sorted according to\nthe respective parameters. Call dispositions must be configured in application. This will\nchange in the future, but please contact us if you have a pressing use case.\n", + "parameters": [ + { + "description": "Key to sort on, must be one of: name, updated_at. Defaults to name", + "in": "query", + "name": "sort_by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Direction to sort in, must be one of: ASC, DESC. Defaults to ASC", + "in": "query", + "name": "sort_direction", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data", + "in": "query", + "name": "limit_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/CallDisposition" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List call dispositions", + "tags": ["Call Dispositions"] + } + }, + "/v2/call_sentiments.json": { + "get": { + "description": "Fetches multiple call sentiment records. The records can be sorted according to\nthe respective parameters. Call sentiments must be configured in application. This will\nchange in the future, but please contact us if you have a pressing use case.\n", + "parameters": [ + { + "description": "Filters call sentiments by name", + "in": "query", + "name": "name", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Key to sort on, must be one of: name, updated_at. Defaults to name", + "in": "query", + "name": "sort_by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Direction to sort in, must be one of: ASC, DESC. Defaults to ASC", + "in": "query", + "name": "sort_direction", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data", + "in": "query", + "name": "limit_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/CallSentiment" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List call sentiments", + "tags": ["Call Sentiments"] + } + }, + "/v2/conversations/calls": { + "post": { + "description": "Enqueue a Conversations Call for processing", + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "properties": { + "call_created_at": { + "description": "Timestamp for when the call started. If not provided, will default to the time the request was received", + "type": "string" + }, + "direction": { + "description": "Call direction", + "type": "string" + }, + "duration": { + "description": "Duration of call in seconds", + "type": "number" + }, + "from": { + "description": "Phone number that call was made from", + "type": "string" + }, + "recording": { + "description": "Object containing recording info including the audio file (.mp3, .wav, .ogg, .m4a)", + "type": "object" + }, + "to": { + "description": " Phone number that was called", + "type": "string" + }, + "user_guid": { + "description": "Guid of the Salesloft User to assign the call to. If not provided, will default to the user within the authentication token", + "type": "string" + } + }, + "required": ["to", "from", "duration", "recording"], + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ConversationsCall" + } + } + }, + "description": "Success" + } + }, + "summary": "Create Conversations Call", + "tags": ["Conversations Calls"] + } + }, + "/v2/crm_activities.json": { + "get": { + "description": "Fetches multiple crm activity records. The records can be filtered, paged, and sorted according to\nthe respective parameters.\n", + "parameters": [ + { + "description": "IDs of crm activities to fetch.", + "explode": false, + "in": "query", + "name": "ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range.\n\n---CUSTOM---\n{\"type\":\"object\",\"keys\":[{\"name\":\"gt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"gte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"}]}\n", + "explode": false, + "in": "query", + "name": "updated_at", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at", + "in": "query", + "name": "sort_by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC", + "in": "query", + "name": "sort_direction", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data", + "in": "query", + "name": "limit_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/CrmActivity" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List crm activities", + "tags": ["CRM Activities"] + } + }, + "/v2/crm_activities/{id}.json": { + "get": { + "description": "Fetches a crm activity, by ID only.\n", + "parameters": [ + { + "description": "Crm activity ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/CrmActivity" + } + } + }, + "description": "Success" + } + }, + "summary": "Fetch a crm activity", + "tags": ["CRM Activities"] + } + }, + "/v2/crm_activity_fields.json": { + "get": { + "description": "Fetches multiple crm activity field records. The records can be filtered, paged, and sorted according to\nthe respective parameters.\n", + "parameters": [ + { + "description": "Return only records with this source", + "in": "query", + "name": "source", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Key to sort on, must be one of: title, updated_at. Defaults to title", + "in": "query", + "name": "sort_by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Direction to sort in, must be one of: ASC, DESC. Defaults to ASC", + "in": "query", + "name": "sort_direction", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data", + "in": "query", + "name": "limit_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/CrmActivityField" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List crm activity fields", + "tags": ["CRM Activity Fields"] + } + }, + "/v2/crm_users.json": { + "get": { + "description": "Crm Users\n", + "parameters": [ + { + "description": "IDs of crm users to fetch. If a record can't be found, that record won't be returned and your request will be successful", + "explode": false, + "in": "query", + "name": "ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters crm users by crm_ids", + "explode": false, + "in": "query", + "name": "crm_id", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters crm users by user_ids", + "explode": false, + "in": "query", + "name": "user_id", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters crm users by user guids", + "explode": false, + "in": "query", + "name": "user_guid", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data", + "in": "query", + "name": "limit_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Key to sort on, must be one of: id, updated_at. Defaults to id", + "in": "query", + "name": "sort_by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC", + "in": "query", + "name": "sort_direction", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/CrmUser" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List crm users", + "tags": ["Crm Users"] + } + }, + "/v2/custom_fields.json": { + "get": { + "description": "Fetches multiple custom field records. The records can be filtered, paged, and sorted according to\nthe respective parameters.\n", + "parameters": [ + { + "description": "IDs of custom fields to fetch.", + "explode": false, + "in": "query", + "name": "ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Type of field to fetch. Value must be one of: person, company, opportunity", + "in": "query", + "name": "field_type", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Key to sort on, must be one of: created_at, updated_at, name. Defaults to updated_at", + "in": "query", + "name": "sort_by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC", + "in": "query", + "name": "sort_direction", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data", + "in": "query", + "name": "limit_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/CustomField" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List custom fields", + "tags": ["Custom Fields"] + }, + "post": { + "description": "Creates a custom field.\n", + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "properties": { + "field_type": { + "description": "The field type of the custom field. Value must be one of: person, company, opportunity", + "type": "string" + }, + "name": { + "description": "The name of the custom field", + "type": "string" + } + }, + "required": ["name"], + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/CustomField" + } + } + }, + "description": "Success" + } + }, + "summary": "Create a custom field", + "tags": ["Custom Fields"] + } + }, + "/v2/custom_fields/{id}.json": { + "delete": { + "description": "Deletes a custom field.\n", + "parameters": [ + { + "description": "Custom Field ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "The Custom Field has been deleted successfully" + } + }, + "summary": "Delete a custom field", + "tags": ["Custom Fields"] + }, + "get": { + "description": "Fetches a custom field, by ID only.\n", + "parameters": [ + { + "description": "Custom Field ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/CustomField" + } + } + }, + "description": "Success" + } + }, + "summary": "Fetch a custom field", + "tags": ["Custom Fields"] + }, + "put": { + "description": "Update a custom field.\n", + "parameters": [ + { + "description": "Custom Field ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "properties": { + "field_type": { + "description": "The field type of the custom field. Value must be one of: person, company, opportunity", + "type": "string" + }, + "name": { + "description": "The name of the custom field", + "type": "string" + } + }, + "type": "object" + } + } + } + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/CustomField" + } + } + }, + "description": "Success" + } + }, + "summary": "Update a custom field", + "tags": ["Custom Fields"] + } + }, + "/v2/email_template_attachments.json": { + "get": { + "description": "Fetches multiple email template attachment records. The records can be filtered and paged according to\nthe respective parameters.\n", + "parameters": [ + { + "description": "IDs of email template attachments to fetch. If a record can't be found, that record won't be returned and your request will be successful", + "explode": false, + "in": "query", + "name": "ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters email template attachments by email template IDs", + "explode": false, + "in": "query", + "name": "email_template_id", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data", + "in": "query", + "name": "limit_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/EmailTemplateAttachment" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List email template attachments", + "tags": ["Email Template Attachments"] + } + }, + "/v2/email_templates.json": { + "get": { + "description": "Fetches multiple email template records. The records can be filtered, paged, and sorted according to\nthe respective parameters.\n", + "parameters": [ + { + "description": "IDs of email templates to fetch. If a record can't be found, that record won't be returned and your request will be successful", + "explode": false, + "in": "query", + "name": "ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range.\n\n---CUSTOM---\n{\"type\":\"object\",\"keys\":[{\"name\":\"gt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"gte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"}]}\n", + "explode": false, + "in": "query", + "name": "updated_at", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters email templates by whether they are linked to a team template or not", + "in": "query", + "name": "linked_to_team_template", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Filters email templates by title or subject", + "in": "query", + "name": "search", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Filters email templates by tags applied to the template by tag ID, not to exceed 100 IDs", + "explode": false, + "in": "query", + "name": "tag_ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters email templates by tags applied to the template, not to exceed 100 tags", + "explode": false, + "in": "query", + "name": "tag", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters email templates by current authenticated user", + "in": "query", + "name": "filter_by_owner", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Filters email templates by groups applied to the template by group ID. Not to exceed 500 IDs. Returns templates that are assigned to any of the group ids.", + "explode": false, + "in": "query", + "name": "group_id", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters email templates based on whether or not the template has been used on a cadence", + "in": "query", + "name": "include_cadence_templates", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Filters email templates to include archived templates or not", + "in": "query", + "name": "include_archived_templates", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Filters email templates to those belonging to the cadence. Not to exceed 100 IDs. If a record can't be found, that record won't be returned and your request will be successful", + "explode": false, + "in": "query", + "name": "cadence_id", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Key to sort on, must be one of: created_at, updated_at, last_used_at. Defaults to updated_at", + "in": "query", + "name": "sort_by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC", + "in": "query", + "name": "sort_direction", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data", + "in": "query", + "name": "limit_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/EmailTemplate" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List email templates", + "tags": ["Email Templates"] + } + }, + "/v2/email_templates/{id}.json": { + "get": { + "description": "Fetches an email template, by ID only.\n", + "parameters": [ + { + "description": "EmailTemplate ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "Optionally will return the templates with the current user's email signature", + "in": "query", + "name": "include_signature", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/EmailTemplate" + } + } + }, + "description": "Success" + } + }, + "summary": "Fetch an email template", + "tags": ["Email Templates"] + } + }, + "/v2/external_emails.json": { + "post": { + "description": "Creates an external email object.\n", + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "properties": { + "mailbox": { + "description": "Email address of mailbox email was sent to", + "type": "string" + }, + "raw": { + "description": "Base64 encoded MIME email content", + "type": "string" + } + }, + "required": ["mailbox", "raw"], + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ExternalEmail" + } + } + }, + "description": "Success" + } + }, + "summary": "Create an External Email", + "tags": ["External Emails"] + } + }, + "/v2/groups.json": { + "get": { + "description": "Fetches multiple group records. The records can be filtered, and sorted according to\nthe respective parameters.\n", + "parameters": [ + { + "description": "IDs of groups to fetch.", + "explode": false, + "in": "query", + "name": "ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at", + "in": "query", + "name": "sort_by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC", + "in": "query", + "name": "sort_direction", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/Group" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List groups", + "tags": ["Groups"] + } + }, + "/v2/groups/{id}.json": { + "get": { + "description": "Fetches a group, by ID only.\n", + "parameters": [ + { + "description": "Group ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Group" + } + } + }, + "description": "Success" + } + }, + "summary": "Fetch a group", + "tags": ["Groups"] + } + }, + "/v2/imports.json": { + "get": { + "description": "Fetches multiple imports.\n", + "parameters": [ + { + "description": "IDs of imports to fetch. If a record can't be found, that record won't be returned and your request will be successful", + "explode": false, + "in": "query", + "name": "ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "ID of users to fetch imports for. Using this filter will return an empty array for non-admin users who request other user's imports", + "explode": false, + "in": "query", + "name": "user_ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Key to sort on, must be one of: created_at, updated_at. Defaults to created_at", + "in": "query", + "name": "sort_by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC", + "in": "query", + "name": "sort_direction", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data", + "in": "query", + "name": "limit_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/Import" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List imports", + "tags": ["Imports"] + }, + "post": { + "description": "Creates an import.\n", + "requestBody": { + "$ref": "#/components/requestBodies/postV2ImportsJson" + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Import" + } + } + }, + "description": "Success" + } + }, + "summary": "Create an import", + "tags": ["Imports"] + } + }, + "/v2/imports/{id}.json": { + "delete": { + "description": "Deletes an import, by ID only. The associated people can be deleted as part of the deletion process.\n\nAdmin users can access imports for the entire team, but non-admin users can only access their own imports.\n", + "parameters": [ + { + "description": "Import ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "Whether to delete people on this Import. Possible values are: [not present], all, single.\n\n'single' will delete people who are only present in this Import.\n'all' will delete people even if they are present in other Imports.\nNot specifying this parameter will not delete any people\n", + "in": "query", + "name": "undo", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "The import has been deleted successfully" + } + }, + "summary": "Delete an import", + "tags": ["Imports"] + }, + "get": { + "description": "Fetches an import, by ID only.\n\nAdmin users can access imports for the entire team, but non-admin users can only access their own imports.\n", + "parameters": [ + { + "description": "Import ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Import" + } + } + }, + "description": "Success" + } + }, + "summary": "Fetch an import", + "tags": ["Imports"] + }, + "put": { + "description": "Updates an import, by ID only.\n\nAdmin users can access imports for the entire team, but non-admin users can only access their own imports.\n", + "parameters": [ + { + "description": "Import ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/postV2ImportsJson" + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Import" + } + } + }, + "description": "Success" + } + }, + "summary": "Update an import", + "tags": ["Imports"] + } + }, + "/v2/live_website_tracking_parameters.json": { + "post": { + "description": "Creates a Live Website Tracking parameter to identify a person\n", + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "properties": { + "person_id": { + "description": "The person to create the LiveWebsiteTrackingParameter for", + "type": "integer" + } + }, + "required": ["person_id"], + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/LiveWebsiteTrackingParameter" + } + } + }, + "description": "Success" + } + }, + "summary": "Create an Live Website Tracking Parameter", + "tags": ["Live Website Tracking Parameters"] + } + }, + "/v2/me.json": { + "get": { + "description": "Authenticated user information. This endpoint does not accept any parameters as it is\nrepresents your authenticated user. The \"Users\" resource provides user information\nfor other users on the team.\n", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/User" + } + } + }, + "description": "Success" + } + }, + "summary": "Fetch current user", + "tags": ["Me"] + } + }, + "/v2/meetings.json": { + "get": { + "description": "Fetches multiple meeting records. The records can be filtered, paged, and sorted according to the respective parameters.\nMeetings resource is responsible for events created via the Salesloft platform using calendaring features.\nThese events can relate to cadences, people, and accounts.\n", + "parameters": [ + { + "description": "IDs of meetings to fetch. If a record can't be found, that record won't be returned and your request will be successful", + "explode": false, + "in": "query", + "name": "ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters meetings by status. Possible values are: pending, booked, failed, retry", + "in": "query", + "name": "status", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Filters meetings by person_id. Multiple person ids can be applied", + "in": "query", + "name": "person_id", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Filters meetings by account_id. Multiple account ids can be applied", + "in": "query", + "name": "account_id", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Filters meetings by person_id. Multiple person ids can be applied", + "explode": false, + "in": "query", + "name": "person_ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters meetings by event IDs", + "explode": false, + "in": "query", + "name": "event_ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters meetings by UIDs provided by calendar provider", + "explode": false, + "in": "query", + "name": "i_cal_uids", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters meetings by task_id. Multiple task ids can be applied", + "explode": false, + "in": "query", + "name": "task_ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Flag to indicate whether to include owned_by_meetings_settings and booked_by_meetings_settings objects", + "in": "query", + "name": "include_meetings_settings", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Equality filters that are applied to the start_time field. A single filter can be used by itself or combined with other filters to create a range.\n\n---CUSTOM---\n{\"type\":\"object\",\"keys\":[{\"name\":\"gt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"gte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"}]}\n", + "explode": false, + "in": "query", + "name": "start_time", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters meetings by user_guid. Multiple user guids can be applied", + "explode": false, + "in": "query", + "name": "user_guids", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Whether to include deleted events in the result", + "in": "query", + "name": "show_deleted", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Key to sort on, must be one of: start_time, created_at, updated_at. Defaults to start_time", + "in": "query", + "name": "sort_by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC", + "in": "query", + "name": "sort_direction", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data", + "in": "query", + "name": "limit_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/Meeting" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List meetings", + "tags": ["Meetings"] + } + }, + "/v2/meetings/settings/searches.json": { + "post": { + "description": "Fetches multiple meeting setting records. The records can be filtered, paged, and sorted according to the respective parameters.\n", + "parameters": [ + { + "description": "Filters meeting settings by array of user_guids", + "explode": false, + "in": "query", + "name": "user_guids", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range.\n\n---CUSTOM---\n{\"type\":\"object\",\"keys\":[{\"name\":\"gt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"gte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"}]}\n", + "explode": false, + "in": "query", + "name": "updated_at", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters meeting settings by calendar type", + "in": "query", + "name": "calendar_type", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data", + "in": "query", + "name": "limit_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/MeetingSetting" + }, + "type": "array" + } + } + }, + "description": "Success" + }, + "403": { + "description": "This endpoint is not available without the following permissions: manage_team" + } + }, + "summary": "List meeting settings", + "tags": ["Meetings Settings - Searches"] + } + }, + "/v2/meetings/settings/{id}.json": { + "put": { + "description": "Updates a meeting setting, by ID only.\n", + "parameters": [ + { + "description": "MeetingSetting ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "properties": { + "allow_booking_on_behalf": { + "description": "Allow other team members to schedule on you behalf.", + "type": "boolean" + }, + "allow_booking_overtime": { + "description": "Allow team members to insert available time outside your working hours.", + "type": "boolean" + }, + "allow_event_overlap": { + "description": "Allow team members to double book events on your calendar.", + "type": "boolean" + }, + "availability_limit": { + "description": "The number of days out the user allows a prospect to schedule a meeting", + "type": "integer" + }, + "availability_limit_enabled": { + "description": "If Availability Limits have been turned on", + "type": "boolean" + }, + "buffer_time_duration": { + "description": "Default buffer duration in minutes set by a user", + "type": "integer" + }, + "calendar_type": { + "description": "Calendar type", + "type": "string" + }, + "default_meeting_length": { + "description": "Default meeting length in minutes set by the user", + "type": "integer" + }, + "description": { + "description": "Default description of the meeting", + "type": "string" + }, + "enable_calendar_sync": { + "description": "Determines if a user enabled Calendar Sync feature", + "type": "boolean" + }, + "enable_dynamic_location": { + "description": "Determines if location will be filled via third-party service (Zoom, GoToMeeting, etc.)", + "type": "boolean" + }, + "location": { + "description": "Default location of the meeting", + "type": "string" + }, + "primary_calendar_connection_failed": { + "description": "Determines if the user lost calendar connection", + "type": "boolean" + }, + "primary_calendar_id": { + "description": "ID of the primary calendar", + "type": "string" + }, + "primary_calendar_name": { + "description": "Display name of the primary calendar", + "type": "string" + }, + "schedule_buffer_enabled": { + "description": "Determines if meetings are scheduled with a 15 minute buffer between them", + "type": "boolean" + }, + "schedule_delay": { + "description": "The number of hours in advance a user requires someone to a book a meeting with them", + "type": "integer" + }, + "share_event_detail": { + "description": "Allow team members to see the details of events on your calendar.", + "type": "boolean" + }, + "time_zone": { + "description": "Time zone for current calendar", + "type": "string" + }, + "times_available": { + "description": "Times available set by a user that can be used to book meetings", + "type": "object" + }, + "title": { + "description": "Default title of the meeting", + "type": "string" + } + }, + "type": "object" + } + } + } + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/MeetingSetting" + } + } + }, + "description": "Success" + } + }, + "summary": "Update a meeting setting", + "tags": ["Meeting Settings"] + } + }, + "/v2/meetings/{id}.json": { + "put": { + "description": "Updates a meeting, by ID only.\n", + "parameters": [ + { + "description": "Meeting ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "properties": { + "event_id": { + "description": "Meeting ID from the calendar provider", + "type": "string" + }, + "i_cal_uid": { + "description": "Meeting unique identifier (iCalUID)", + "type": "string" + }, + "no_show": { + "description": "Whether the meeting is a No Show meeting", + "type": "boolean" + }, + "status": { + "description": "Status of the meeting creation progress. Possible values are: pending, booked, failed, retry", + "type": "string" + } + }, + "type": "object" + } + } + } + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Meeting" + } + } + }, + "description": "Success" + } + }, + "summary": "Update a meeting", + "tags": ["Meetings"] + } + }, + "/v2/mime_email_payloads/{id}.json": { + "get": { + "description": "Fetch the MIME content for email.\n", + "parameters": [ + { + "description": "ID of Email", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/MimeEmailPayload" + } + } + }, + "description": "Success" + } + }, + "summary": "Fetch the MIME content for email", + "tags": ["Mime Email Payloads"] + } + }, + "/v2/notes.json": { + "get": { + "description": "Fetches multiple note records. The records can be filtered, paged, and sorted according to\nthe respective parameters.\n", + "parameters": [ + { + "description": "Case insensitive type of item with which the note is associated. Value must be one of: person, account", + "in": "query", + "name": "associated_with_type", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "ID of the item with which the note is associated. The associated_with_type must also be present if this parameter is used", + "in": "query", + "name": "associated_with_id", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range.\n\n---CUSTOM---\n{\"type\":\"object\",\"keys\":[{\"name\":\"gt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"gte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"}]}\n", + "explode": false, + "in": "query", + "name": "updated_at", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "IDs of notes to fetch. If a record can't be found, that record won't be returned and your request will be successful", + "explode": false, + "in": "query", + "name": "ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at", + "in": "query", + "name": "sort_by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC", + "in": "query", + "name": "sort_direction", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data", + "in": "query", + "name": "limit_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/Note" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List notes", + "tags": ["Notes"] + }, + "post": { + "description": "Creates a note.\n", + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "properties": { + "associated_with_id": { + "description": "ID of the item with which the note is associated", + "type": "integer" + }, + "associated_with_type": { + "description": "Case insensitive type of item with which the note is associated. Value must be one of: person, account", + "type": "string" + }, + "call_id": { + "description": "ID of the call with which the note is associated. The call cannot already have a note", + "type": "integer" + }, + "content": { + "description": "The content of the note", + "type": "string" + }, + "skip_crm_sync": { + "description": "Boolean indicating if the CRM sync should be skipped. No syncing will occur if true", + "type": "boolean" + }, + "subject": { + "description": "The subject of the note's crm activity, defaults to 'Note'", + "type": "string" + }, + "user_guid": { + "description": "The user to create the note for. Only team admins may create notes on behalf of other users. Defaults to the requesting user", + "type": "string" + } + }, + "required": ["content", "associated_with_type", "associated_with_id"], + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Note" + } + } + }, + "description": "Success" + } + }, + "summary": "Create a note", + "tags": ["Notes"] + } + }, + "/v2/notes/{id}.json": { + "delete": { + "description": "Deletes a note owned by authorized account.\nThis operation is not reversible without contacting support.\nThis operation can be called multiple times successfully.\n", + "parameters": [ + { + "description": "Note ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "The Note has been deleted successfully" + } + }, + "summary": "Delete a note", + "tags": ["Notes"] + }, + "get": { + "description": "Fetches a note, by ID only.\n", + "parameters": [ + { + "description": "Note ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Note" + } + } + }, + "description": "Success" + } + }, + "summary": "Fetch a note", + "tags": ["Notes"] + }, + "put": { + "description": "Updates a note. Any changes to the note or associated records will not reflect in your CRM.\n", + "parameters": [ + { + "description": "Note ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "properties": { + "call_id": { + "description": "ID of the call with which the note is associated. The call cannot already have a note. If the note is associated to a call already, it will become associated to the requested call", + "type": "integer" + }, + "content": { + "description": "The content of the note", + "type": "string" + } + }, + "required": ["content"], + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Person" + } + } + }, + "description": "Success" + } + }, + "summary": "Update a note", + "tags": ["Notes"] + } + }, + "/v2/ongoing_actions.json": { + "post": { + "description": "Creates an ongoing action. An ongoing action is an action that is not yet completed,\nbut progress has been made towards the completion. The user should not need to do\nanything for an ongoing action to be completed. An ongoing action can be later completed\nby creating an activity.\n\nOngoing actions are marked as status=pending_activity.\n", + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "properties": { + "action_id": { + "description": "Action that is being marked ongoing. This will validate that the action is still\nvalid before modifying it. Ongoing actions can not be marked ongoing.\n", + "type": "integer" + } + }, + "type": "object" + } + } + } + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Action" + } + } + }, + "description": "Success" + } + }, + "summary": "Create an ongoing action", + "tags": ["Ongoing Actions"] + } + }, + "/v2/pending_emails.json": { + "get": { + "description": "Fetches a list of emails ready to be sent by an external email service.\n", + "parameters": [ + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data", + "in": "query", + "name": "limit_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/PendingEmail" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "Fetches a list of emails ready to be sent by an external email service. Only emails sent with an External Email Client will appear here.", + "tags": ["Pending Emails"] + } + }, + "/v2/pending_emails/{id}.json": { + "put": { + "description": "Updates the status of an email sent by an External Email Client. Does not affect lofted emails.\n", + "parameters": [ + { + "description": "Email ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "properties": { + "error_message": { + "description": "The error message indicating why the email failed to send", + "type": "string" + }, + "message_id": { + "description": "The message id of the email that was sent", + "type": "string" + }, + "sent_at": { + "description": "The time that the email was actually sent in iso8601 format", + "type": "string" + }, + "status": { + "description": "Delivery status of the email. Valid statuses are 'sent' and 'failed'", + "type": "string" + } + }, + "required": ["message_id", "status"], + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/PendingEmail" + } + } + }, + "description": "Success" + } + }, + "summary": "Updates the status of an email sent by an External Email Client", + "tags": ["Pending Emails"] + } + }, + "/v2/people.json": { + "get": { + "description": "Fetches multiple person records. The records can be filtered, paged, and sorted according to\nthe respective parameters.\n", + "parameters": [ + { + "description": "IDs of people to fetch. If a record can't be found, that record won't be returned and your request will be successful", + "explode": false, + "in": "query", + "name": "ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range.\n\n---CUSTOM---\n{\"type\":\"object\",\"keys\":[{\"name\":\"gt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"gte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"}]}\n", + "explode": false, + "in": "query", + "name": "updated_at", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters people by email address. Multiple emails can be applied. An additional value of \"_is_null\" can be passed to filter people that do not have an email address.", + "explode": false, + "in": "query", + "name": "email_addresses", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters people by the owner's guid. Multiple owner guids can be applied", + "explode": false, + "in": "query", + "name": "owned_by_guid", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Includes people that have a given person_stage. Multiple person stage ids can be applied. An additional value of \"_is_null\" can be passed to filter people that do not have a stage set.", + "explode": false, + "in": "query", + "name": "person_stage_id", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters people by crm_id. Multiple crm ids can be applied", + "explode": false, + "in": "query", + "name": "crm_id", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters people by owner_crm_id. Multiple owner_crm_ids can be applied. An additional value of \"_is_null\" can be passed to filter people that are unowned. A \"_not_in\" modifier can be used to exclude specific owner_crm_ids. Example: v2/people?owner_crm_id[_not_in]=id", + "explode": false, + "in": "query", + "name": "owner_crm_id", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Includes people that have a given do_not_contact property", + "in": "query", + "name": "do_not_contact", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Includes people that can be emailed given do_not_contact and contact_restrictions property", + "in": "query", + "name": "can_email", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Includes people that can be called given do_not_contact and contact_restrictions property", + "in": "query", + "name": "can_call", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Includes people that can be sent a text message given do_not_contact and contact_restrictions property", + "in": "query", + "name": "can_text", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Filters people by the account they are linked to. Multiple account ids can be applied", + "explode": false, + "in": "query", + "name": "account_id", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters by people matching all given custom fields. The custom field names are case-sensitive, but the provided values are case-insensitive. Example: v2/people?custom_fields[custom_field_name]=custom_field_value", + "in": "query", + "name": "custom_fields", + "required": false, + "schema": { + "type": "object" + } + }, + { + "description": "Filters people that were imported by the given import ids. Multiple import ids can be applied. An additional value of \"_is_null\" can be passed to filter people that were not imported.", + "explode": false, + "in": "query", + "name": "import_id", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters people by job seniorty. Multiple job seniorities can be applied. An additional value of \"_is_null\" can be passed to filter people do not have a job_seniority.", + "explode": false, + "in": "query", + "name": "job_seniority", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters people by the tag ids applied to the person. Multiple tag ids can be applied.", + "explode": false, + "in": "query", + "name": "tag_id", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters people by whether the owner is active or not.", + "in": "query", + "name": "owner_is_active", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Filters people by the cadence that they are currently on. Multiple cadence_ids can be applied. An additional value of \"_is_null\" can be passed to filter people that are not on a cadence.", + "explode": false, + "in": "query", + "name": "cadence_id", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters people who have been starred by the user guids given.", + "explode": false, + "in": "query", + "name": "starred_by_guid", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters people by whether or not they have replied to an email or not.", + "in": "query", + "name": "replied", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Filters people by whether an email that was sent to them bounced or not.", + "in": "query", + "name": "bounced", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Filters people by whether or not they have been marked as a success or not.", + "in": "query", + "name": "success", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Filters people by whether or not they are marked as an European Union Resident or not.", + "in": "query", + "name": "eu_resident", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Filters people by their title by exact match. Supports partial matching", + "explode": false, + "in": "query", + "name": "title", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters people by their country by exact match. Supports partial matching", + "explode": false, + "in": "query", + "name": "country", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters people by their state by exact match. Supports partial matching", + "explode": false, + "in": "query", + "name": "state", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters people by their city by exact match. Supports partial matching", + "explode": false, + "in": "query", + "name": "city", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Equality filters that are applied to the last_contacted field. A single filter can be used by itself or combined with other filters to create a range.\nAdditional values of \"_is_null\" or \"_is_not_null\" can be passed to filter records that either have no timestamp value or any timestamp value.\n---CUSTOM---\n{\"type\":\"object\",\"keys\":[{\"name\":\"gt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"gte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"}]}\n", + "in": "query", + "name": "last_contacted", + "required": false, + "schema": { + "type": "object" + } + }, + { + "description": "Equality filters that are applied to the last_contacted field. A single filter can be used by itself or combined with other filters to create a range.\n\n---CUSTOM---\n{\"type\":\"object\",\"keys\":[{\"name\":\"gt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"gte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"}]}\n", + "in": "query", + "name": "created_at", + "required": false, + "schema": { + "type": "object" + } + }, + { + "description": "Filters people by whether or not that person is on a cadence or if they have been contacted in any way.", + "in": "query", + "name": "new", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Filter people by whether or not they have a phone number or not", + "in": "query", + "name": "phone_number", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Filters people by locales. Multiple locales can be applied. An additional value of \"Null\" can be passed to filter people that do not have a locale.", + "explode": false, + "in": "query", + "name": "locales", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters people by owner_id. Multiple owner_ids can be applied.", + "explode": false, + "in": "query", + "name": "owner_id", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "For internal use only. This field does not comply with our backwards compatibility policies. This filter is for authenticated users of Salesloft only and will not work for OAuth Applications. Filters people by the string provided. Can search and filter by name, title, industry, email_address and linked account name.", + "in": "query", + "name": "_query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Key to sort on, must be one of: created_at, updated_at, last_contacted_at, name, title, job_seniority, call_count, sent_emails, clicked_emails, replied_emails, viewed_emails, account, cadence_stage_name. Defaults to updated_at", + "in": "query", + "name": "sort_by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC", + "in": "query", + "name": "sort_direction", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data", + "in": "query", + "name": "limit_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/Person" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List people", + "tags": ["People"] + }, + "post": { + "description": "Creates a person. Either email_address or phone/last_name must be provided as a unique lookup\non the team.\n", + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "properties": { + "account_id": { + "description": "ID of the Account to link this person to", + "type": "integer" + }, + "autotag_date": { + "description": "Whether the date should be added to this person as a tag. Default is false. The tag will be Y-m-d format.", + "type": "boolean" + }, + "city": { + "description": "City", + "type": "string" + }, + "contact_restrictions": { + "description": "Specific methods of communication to prevent for this person. This will prevent individual execution of these communication types as well as automatically skip cadence steps of this communication type for this person in SalesLoft. Values currently accepted: call, email, message", + "items": { + "type": "string" + }, + "type": "array" + }, + "country": { + "description": "Country", + "type": "string" + }, + "crm_id": { + "description": "Requires Salesforce.\n\nID of the person in your external CRM. You must provide a crm_id_type if this is included.\n\nValidations will be applied to the crm_id depending on the crm_id_type. A \"salesforce\" ID must be exactly 18 characters. A \"salesforce\" ID must be either a Lead (00Q) or Contact (003) object. The type will be validated using the 18 character ID.\n\nThis field can only be used if your application or API key has the \"person:set_crm_id\" scope.\n\n", + "type": "string" + }, + "crm_id_type": { + "description": "The CRM that the provided crm_id is for. Must be one of: salesforce", + "type": "string" + }, + "custom_fields": { + "description": "Custom fields are defined by the user's team. Only fields with values are presented in the API.", + "type": "object" + }, + "do_not_contact": { + "description": "Whether or not this person has opted out of all communication. Setting this value to true prevents this person from being called, emailed, or added to a cadence in SalesLoft. If this person is currently in a cadence, they will be removed.", + "type": "boolean" + }, + "email_address": { + "description": "Email address", + "type": "string" + }, + "first_name": { + "description": "First name", + "type": "string" + }, + "home_phone": { + "description": "Home phone without formatting", + "type": "string" + }, + "import_id": { + "description": "ID of the Import this person is a part of. A person can be part of multiple imports, but this ID will always be the most recent Import", + "type": "integer" + }, + "job_seniority": { + "description": "The Job Seniority of a Person, must be one of director, executive, individual_contributor, manager, vice_president, unknown", + "type": "string" + }, + "last_name": { + "description": "Last name", + "type": "string" + }, + "linkedin_url": { + "description": "Linkedin URL", + "type": "string" + }, + "locale": { + "description": "Time locale of the person", + "type": "string" + }, + "mobile_phone": { + "description": "Mobile phone without formatting", + "type": "string" + }, + "owner_id": { + "description": "ID of the User that owns this person", + "type": "integer" + }, + "person_company_industry": { + "description": "Company industry. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended", + "type": "string" + }, + "person_company_name": { + "description": "Company name. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended", + "type": "string" + }, + "person_company_website": { + "description": "Company website. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended", + "type": "string" + }, + "person_stage_id": { + "description": "ID of the PersonStage of this person", + "type": "integer" + }, + "personal_email_address": { + "description": "Personal email address", + "type": "string" + }, + "personal_website": { + "description": "The website of this person", + "type": "string" + }, + "phone": { + "description": "Phone without formatting", + "type": "string" + }, + "phone_extension": { + "description": "Phone extension without formatting", + "type": "string" + }, + "secondary_email_address": { + "description": "Alternate email address", + "type": "string" + }, + "state": { + "description": "State", + "type": "string" + }, + "tags": { + "description": "All tags applied to this person", + "items": { + "type": "string" + }, + "type": "array" + }, + "title": { + "description": "Job title", + "type": "string" + }, + "twitter_handle": { + "description": "The twitter handle of this person", + "type": "string" + }, + "work_city": { + "description": "Work location - city", + "type": "string" + }, + "work_country": { + "description": "Work location - country", + "type": "string" + }, + "work_state": { + "description": "Work location - state", + "type": "string" + } + }, + "type": "object" + } + } + } + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Person" + } + } + }, + "description": "Success" + } + }, + "summary": "Create a person", + "tags": ["People"] + } + }, + "/v2/people/{id}.json": { + "delete": { + "description": "Deletes a person. This operation is not reversible without contacting support.\nThis operation can be called multiple times successfully.\n", + "parameters": [ + { + "description": "Person id", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "The person has been deleted successfully" + } + }, + "summary": "Delete a person", + "tags": ["People"] + }, + "get": { + "description": "Fetches a person, by ID only.\n", + "parameters": [ + { + "description": "Person ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Person" + } + } + }, + "description": "Success" + } + }, + "summary": "Fetch a person", + "tags": ["People"] + }, + "put": { + "description": "Updates a person.\n", + "parameters": [ + { + "description": "Person id", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "properties": { + "account_id": { + "description": "ID of the Account to link this person to", + "type": "integer" + }, + "city": { + "description": "City", + "type": "string" + }, + "contact_restrictions": { + "description": "Specific methods of communication to prevent for this person. This will prevent individual execution of these communication types as well as automatically skip cadence steps of this communication type for this person in SalesLoft. Values currently accepted: call, email, message", + "items": { + "type": "string" + }, + "type": "array" + }, + "country": { + "description": "Country", + "type": "string" + }, + "crm_id": { + "description": "Requires Salesforce.\n\nID of the person in your external CRM. You must provide a crm_id_type if this is included.\n\nValidations will be applied to the crm_id depending on the crm_id_type. A \"salesforce\" ID must be exactly 18 characters. A \"salesforce\" ID must be either a Lead (00Q) or Contact (003) object. The type will be validated using the 18 character ID.\n\nThis field can only be used if your application or API key has the \"person:set_crm_id\" scope.\n\n", + "type": "string" + }, + "crm_id_type": { + "description": "The CRM that the provided crm_id is for. Must be one of: salesforce", + "type": "string" + }, + "custom_fields": { + "description": "Custom fields are defined by the user's team. Only fields with values are presented in the API.", + "type": "object" + }, + "do_not_contact": { + "description": "Whether or not this person has opted out of all communication. Setting this value to true prevents this person from being called, emailed, or added to a cadence in SalesLoft. If this person is currently in a cadence, they will be removed.", + "type": "boolean" + }, + "email_address": { + "description": "Email address", + "type": "string" + }, + "first_name": { + "description": "First name", + "type": "string" + }, + "home_phone": { + "description": "Home phone without formatting", + "type": "string" + }, + "import_id": { + "description": "ID of the Import this person is a part of. A person can be part of multiple imports, but this ID will always be the most recent Import", + "type": "integer" + }, + "job_seniority": { + "description": "The Job Seniority of a Person, must be one of director, executive, individual_contributor, manager, vice_president, unknown", + "type": "string" + }, + "last_name": { + "description": "Last name", + "type": "string" + }, + "linkedin_url": { + "description": "Linkedin URL", + "type": "string" + }, + "locale": { + "description": "Time locale of the person", + "type": "string" + }, + "mobile_phone": { + "description": "Mobile phone without formatting", + "type": "string" + }, + "owner_id": { + "description": "ID of the User that owns this person", + "type": "integer" + }, + "person_company_industry": { + "description": "Company industry. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended", + "type": "string" + }, + "person_company_name": { + "description": "Company name. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended", + "type": "string" + }, + "person_company_website": { + "description": "Company website. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended", + "type": "string" + }, + "person_stage_id": { + "description": "ID of the PersonStage of this person", + "type": "integer" + }, + "personal_email_address": { + "description": "Personal email address", + "type": "string" + }, + "personal_website": { + "description": "The website of this person", + "type": "string" + }, + "phone": { + "description": "Phone without formatting", + "type": "string" + }, + "phone_extension": { + "description": "Phone extension without formatting", + "type": "string" + }, + "secondary_email_address": { + "description": "Alternate email address", + "type": "string" + }, + "state": { + "description": "State", + "type": "string" + }, + "tags": { + "description": "All tags applied to this person", + "items": { + "type": "string" + }, + "type": "array" + }, + "title": { + "description": "Job title", + "type": "string" + }, + "twitter_handle": { + "description": "The twitter handle of this person", + "type": "string" + }, + "work_city": { + "description": "Work location - city", + "type": "string" + }, + "work_country": { + "description": "Work location - country", + "type": "string" + }, + "work_state": { + "description": "Work location - state", + "type": "string" + } + }, + "type": "object" + } + } + } + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Person" + } + } + }, + "description": "Success" + } + }, + "summary": "Update a person", + "tags": ["People"] + } + }, + "/v2/person_stages.json": { + "get": { + "description": "Fetches multiple person stage records. The records can be filtered, paged, and sorted according to\nthe respective parameters.\n", + "parameters": [ + { + "description": "IDs of person stages to fetch.", + "explode": false, + "in": "query", + "name": "ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at", + "in": "query", + "name": "sort_by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC", + "in": "query", + "name": "sort_direction", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data", + "in": "query", + "name": "limit_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/PersonStage" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List person stages", + "tags": ["Person Stages"] + }, + "post": { + "description": "Creates a person stage.\n", + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "properties": { + "name": { + "description": "The name of the new stage", + "type": "string" + } + }, + "required": ["name"], + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/PersonStage" + } + } + }, + "description": "Success" + } + }, + "summary": "Create a person stage", + "tags": ["Person Stages"] + } + }, + "/v2/person_stages/{id}.json": { + "delete": { + "description": "Deletes a person stage. This operation is not reversible without contacting support.\nThis operation can be called multiple times successfully.\n", + "parameters": [ + { + "description": "Stage ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "The Person Stage has been deleted successfully" + } + }, + "summary": "Delete an person stage", + "tags": ["Person Stages"] + }, + "get": { + "description": "Fetches a person stage, by ID only.\n", + "parameters": [ + { + "description": "Stage ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/PersonStage" + } + } + }, + "description": "Success" + } + }, + "summary": "Fetch a person stage", + "tags": ["Person Stages"] + }, + "put": { + "description": "Updates a person stage.\n", + "parameters": [ + { + "description": "Stage ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "properties": { + "name": { + "description": "The name of the stage.", + "type": "string" + } + }, + "required": ["name"], + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/PersonStage" + } + } + }, + "description": "Success" + } + }, + "summary": "Update a person stage", + "tags": ["Person Stages"] + } + }, + "/v2/person_upserts.json": { + "post": { + "description": "Upserts a person record. The upsert_key dictates how the upsert will be performed. The create and update behavior\nis exactly the same as the individual create and update endpoints.\n", + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "properties": { + "account_id": { + "description": "ID of the Account to link this person to", + "type": "integer" + }, + "city": { + "description": "City", + "type": "string" + }, + "contact_restrictions": { + "description": "Specific methods of communication to prevent for this person. This will prevent individual execution of these communication types as well as automatically skip cadence steps of this communication type for this person in SalesLoft. Values currently accepted: call, email, message", + "items": { + "type": "string" + }, + "type": "array" + }, + "country": { + "description": "Country", + "type": "string" + }, + "crm_id": { + "description": "Requires Salesforce.\n\nID of the person in your external CRM. You must provide a crm_id_type if this is included.\n\nValidations will be applied to the crm_id depending on the crm_id_type. A \"salesforce\" ID must be exactly 18 characters. A \"salesforce\" ID must be either a Lead (00Q) or Contact (003) object. The type will be validated using the 18 character ID.\n\nThis field can only be used if your application or API key has the \"person:set_crm_id\" scope.\n\n", + "type": "string" + }, + "crm_id_type": { + "description": "The CRM that the provided crm_id is for. Must be one of: salesforce", + "type": "string" + }, + "custom_fields": { + "description": "Custom fields are defined by the user's team. Only fields with values are presented in the API.", + "type": "object" + }, + "do_not_contact": { + "description": "Whether or not this person has opted out of all communication. Setting this value to true prevents this person from being called, emailed, or added to a cadence in SalesLoft. If this person is currently in a cadence, they will be removed.", + "type": "boolean" + }, + "email_address": { + "description": "Email address", + "type": "string" + }, + "first_name": { + "description": "First name", + "type": "string" + }, + "home_phone": { + "description": "Home phone without formatting", + "type": "string" + }, + "id": { + "description": "ID of the person to update. Used if the upsert_key=id. When id and another upsert_key are provided,\nthe request will fail if the upsert record id and id parameter don't match.\n", + "type": "integer" + }, + "import_id": { + "description": "ID of the Import this person is a part of. A person can be part of multiple imports, but this ID will always be the most recent Import", + "type": "integer" + }, + "job_seniority": { + "description": "The Job Seniority of a Person, must be one of director, executive, individual_contributor, manager, vice_president, unknown", + "type": "string" + }, + "last_name": { + "description": "Last name", + "type": "string" + }, + "linkedin_url": { + "description": "Linkedin URL", + "type": "string" + }, + "locale": { + "description": "Time locale of the person", + "type": "string" + }, + "mobile_phone": { + "description": "Mobile phone without formatting", + "type": "string" + }, + "owner_id": { + "description": "ID of the User that owns this person", + "type": "integer" + }, + "person_company_industry": { + "description": "Company industry. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended", + "type": "string" + }, + "person_company_name": { + "description": "Company name. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended", + "type": "string" + }, + "person_company_website": { + "description": "Company website. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended", + "type": "string" + }, + "person_stage_id": { + "description": "ID of the PersonStage of this person", + "type": "integer" + }, + "personal_email_address": { + "description": "Personal email address", + "type": "string" + }, + "personal_website": { + "description": "The website of this person", + "type": "string" + }, + "phone": { + "description": "Phone without formatting", + "type": "string" + }, + "phone_extension": { + "description": "Phone extension without formatting", + "type": "string" + }, + "secondary_email_address": { + "description": "Alternate email address", + "type": "string" + }, + "state": { + "description": "State", + "type": "string" + }, + "tags": { + "description": "All tags applied to this person", + "items": { + "type": "string" + }, + "type": "array" + }, + "title": { + "description": "Job title", + "type": "string" + }, + "twitter_handle": { + "description": "The twitter handle of this person", + "type": "string" + }, + "upsert_key": { + "description": "Name of the parameter to upsert on. The field must be provided in the input parameters, or the request will fail.\nThe request will also fail if there are multiple records matched by the upsert field. This can occur if intentional duplicates\nby email address is enabled.\n\nIf upsert_key is not provided, this endpoint will not update an existing record.\n\nValid options are: id, crm_id, email_address. If crm_id is provided, then a valid crm_id_type must be provided, as documented\nfor the person create and update endpoints.\n", + "type": "string" + }, + "work_city": { + "description": "Work location - city", + "type": "string" + }, + "work_country": { + "description": "Work location - country", + "type": "string" + }, + "work_state": { + "description": "Work location - state", + "type": "string" + } + }, + "type": "object" + } + } + } + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/PersonUpsert" + } + } + }, + "description": "Success" + } + }, + "summary": "Upsert a person", + "tags": ["Person Upsert"] + } + }, + "/v2/phone_number_assignments.json": { + "get": { + "description": "Fetches multiple phone number assignment records. The records can be filtered, paged, and sorted according to\nthe respective parameters.\n", + "parameters": [ + { + "description": "IDs of phone number assignments to fetch", + "explode": false, + "in": "query", + "name": "ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at", + "in": "query", + "name": "sort_by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC", + "in": "query", + "name": "sort_direction", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data", + "in": "query", + "name": "limit_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/PhoneNumberAssignment" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List phone number assignments", + "tags": ["Phone Number Assignments"] + } + }, + "/v2/phone_number_assignments/{id}.json": { + "get": { + "description": "Fetches a phone number assignment, by ID only.\n", + "parameters": [ + { + "description": "PhoneNumberAssignment ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/PhoneNumberAssignment" + } + } + }, + "description": "Success" + } + }, + "summary": "Fetch a phone number assignment", + "tags": ["Phone Number Assignments"] + } + }, + "/v2/phone_numbers/caller_ids.json": { + "get": { + "description": "Each entry is a possible caller ID match for the number. Multiple\nentries may be returned if the phone number is present on more than one\nperson in the system. Phone number should be in E.164 format.\n", + "parameters": [ + { + "description": "E.164 Phone Number", + "in": "query", + "name": "phone_number", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/CallerId" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List caller ids", + "tags": ["Caller IDs"] + } + }, + "/v2/phone_numbers/recording_settings/{id}.json": { + "get": { + "description": "Fetches the recording status for a given phone number, based on Do Not Record and Recording Governance for your team.\nPhone number should be in E.164 format.\n", + "parameters": [ + { + "description": "E.164 Phone Number", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/RecordingSetting" + } + } + }, + "description": "Success" + } + }, + "summary": "Fetch recording setting", + "tags": ["Recording Settings"] + } + }, + "/v2/saved_list_views.json": { + "get": { + "description": "Fetches multiple saved list view records. The records can be filtered, paged, and sorted according to\nthe respective parameters.\n", + "parameters": [ + { + "description": "IDs of saved list views to fetch. If a record can't be found, that record won't be returned and your request will be successful", + "explode": false, + "in": "query", + "name": "ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Type of saved list views to fetch.", + "in": "query", + "name": "view", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Key to sort on, must be one of: name. Defaults to name", + "in": "query", + "name": "sort_by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC", + "in": "query", + "name": "sort_direction", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data", + "in": "query", + "name": "limit_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/SavedListView" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List saved list views", + "tags": ["Saved List Views"] + }, + "post": { + "description": "Creates a saved list view.\n", + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "properties": { + "is_default": { + "description": "Whether the saved list view is the default", + "type": "boolean" + }, + "name": { + "description": "The name of the saved list view", + "type": "string" + }, + "view": { + "description": "The type of objects in the saved list view. Value must be one of: people, companies, or recordings", + "type": "string" + }, + "view_params": { + "description": "JSON object of list view parameters", + "type": "string" + } + }, + "required": ["name", "view"], + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/SavedListView" + } + } + }, + "description": "Success" + } + }, + "summary": "Create a saved list view", + "tags": ["Saved List Views"] + } + }, + "/v2/saved_list_views/{id}.json": { + "delete": { + "description": "Deletes a saved list view. This operation is not reversible without contacting support.\nThis operation can be called multiple times successfully.\n", + "parameters": [ + { + "description": "Saved List View ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "The saved list view has been deleted successfully" + } + }, + "summary": "Delete a saved list view", + "tags": ["Saved List Views"] + }, + "get": { + "description": "Fetches a saved list view, by ID only.\n", + "parameters": [ + { + "description": "Saved List View ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/SavedListView" + } + } + }, + "description": "Success" + } + }, + "summary": "Fetch a saved list view", + "tags": ["Saved List Views"] + }, + "put": { + "description": "Updates a saved list view.\n", + "parameters": [ + { + "description": "Saved List View ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "properties": { + "is_default": { + "description": "Whether the saved list view is the default", + "type": "boolean" + }, + "name": { + "description": "The name of the saved list view", + "type": "string" + }, + "view_params": { + "description": "JSON object of list view parameters", + "type": "string" + } + }, + "type": "object" + } + } + } + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/SavedListView" + } + } + }, + "description": "Success" + } + }, + "summary": "Update a saved list view", + "tags": ["Saved List Views"] + } + }, + "/v2/steps.json": { + "get": { + "description": "Fetches multiple step records. The records can be filtered, paged, and sorted according to\nthe respective parameters.\n", + "parameters": [ + { + "description": "IDs of steps to fetch.", + "explode": false, + "in": "query", + "name": "ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filter by cadence ID", + "in": "query", + "name": "cadence_id", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Filter by step type", + "in": "query", + "name": "type", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Filter by whether a step has due actions", + "in": "query", + "name": "has_due_actions", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at", + "in": "query", + "name": "sort_by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC", + "in": "query", + "name": "sort_direction", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data", + "in": "query", + "name": "limit_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/Step" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List steps", + "tags": ["Steps"] + } + }, + "/v2/steps/{id}.json": { + "get": { + "description": "Fetches a step, by ID only.\n", + "parameters": [ + { + "description": "Step ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Step" + } + } + }, + "description": "Success" + } + }, + "summary": "Fetch a step", + "tags": ["Steps"] + } + }, + "/v2/successes.json": { + "get": { + "description": "Fetches multiple success records. The records can be filtered, paged, and sorted according to\nthe respective parameters.\n", + "parameters": [ + { + "description": "IDs of successes to fetch. If a record can't be found, that record won't be returned and your request will be successful", + "explode": false, + "in": "query", + "name": "ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters successes by person_id. Multiple person ids can be applied", + "explode": false, + "in": "query", + "name": "person_id", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range.\n\n---CUSTOM---\n{\"type\":\"object\",\"keys\":[{\"name\":\"gt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"gte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"}]}\n", + "explode": false, + "in": "query", + "name": "updated_at", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Key to sort on, must be one of: created_at, updated_at, succeeded_at. Defaults to updated_at", + "in": "query", + "name": "sort_by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC", + "in": "query", + "name": "sort_direction", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data", + "in": "query", + "name": "limit_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/Success" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List successes", + "tags": ["Successes"] + } + }, + "/v2/tags.json": { + "get": { + "description": "Fetches a list of the tags used for a team. The records can be filtered, paged, and sorted according to\nthe respective parameters.\n\nTags can be applied to mulitple resource types.\n", + "parameters": [ + { + "description": "Filters tags by name", + "in": "query", + "name": "search", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Filters tags by their IDs", + "explode": false, + "in": "query", + "name": "ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Key to sort on, must be one of: name. Defaults to name", + "in": "query", + "name": "sort_by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC", + "in": "query", + "name": "sort_direction", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data", + "in": "query", + "name": "limit_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/Tag" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List team tags", + "tags": ["Tags"] + } + }, + "/v2/tasks.json": { + "get": { + "description": "Fetches multiple task records. The records can be filtered, paged, and sorted according to\nthe respective parameters.\n", + "parameters": [ + { + "description": "IDs of tasks to fetch.", + "explode": false, + "in": "query", + "name": "ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters tasks by the user to which they are assigned.", + "explode": false, + "in": "query", + "name": "user_id", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters tasks by the person to which they are associated.", + "explode": false, + "in": "query", + "name": "person_id", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters tasks by the account to which they are associated.", + "explode": false, + "in": "query", + "name": "account_id", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters tasks by their current state. Valid current_states include: ['scheduled', 'completed'].", + "explode": false, + "in": "query", + "name": "current_state", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters tasks by their task type. Valid task_types include: ['call', 'email', 'general'].", + "explode": false, + "in": "query", + "name": "task_type", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters tasks by time interval. Valid time_intervals include: ['overdue', 'today', 'tomorrow', 'this_week', 'next_week'].", + "in": "query", + "name": "time_interval_filter", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Filters tasks by idempotency key.", + "in": "query", + "name": "idempotency_key", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Filters tasks by locale of the person to which they are associated.", + "explode": false, + "in": "query", + "name": "locale", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Key to sort on, must be one of: due_date, due_at. Defaults to due_date", + "in": "query", + "name": "sort_by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Direction to sort in, must be one of: ASC, DESC. Defaults to ASC", + "in": "query", + "name": "sort_direction", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data", + "in": "query", + "name": "limit_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/Task" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List tasks", + "tags": ["Tasks"] + }, + "post": { + "description": "Creates a task.\n", + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "properties": { + "current_state": { + "description": "Current state of the task, valid options are: scheduled", + "type": "string" + }, + "description": { + "description": "A description of the task recorded for person at completion time", + "type": "string" + }, + "due_date": { + "description": "Date of when the Task is due, ISO-8601 date format required", + "type": "string" + }, + "idempotency_key": { + "description": "Establishes a unique identifier to prevent duplicates from being created", + "type": "string" + }, + "person_id": { + "description": "ID of the person to be contacted", + "type": "string" + }, + "remind_at": { + "description": "Datetime of when the user will be reminded of the task, ISO-8601 datetime format required", + "type": "string" + }, + "subject": { + "description": "Subject line of the task.", + "type": "string" + }, + "task_type": { + "description": "Task type, valid options are: call, email, general", + "type": "string" + }, + "user_id": { + "description": "ID of the user linked to the task", + "type": "integer" + } + }, + "required": ["subject", "person_id", "user_id", "task_type", "due_date", "current_state"], + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Task" + } + } + }, + "description": "Success" + } + }, + "summary": "Create a Task", + "tags": ["Tasks"] + } + }, + "/v2/tasks/{id}.json": { + "get": { + "description": "Fetches a task, by ID only.\n", + "parameters": [ + { + "description": "Task ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Step" + } + } + }, + "description": "Success" + } + }, + "summary": "Fetch a task", + "tags": ["Tasks"] + }, + "put": { + "description": "Updates a task.\n", + "parameters": [ + { + "description": "Task ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "properties": { + "current_state": { + "description": "Current state of the task, valid options are: completed", + "type": "string" + }, + "description": { + "description": "A description of the task recorded for person at completion time", + "type": "string" + }, + "due_date": { + "description": "Date of when the Task is due, ISO-8601 date format required", + "type": "string" + }, + "is_logged": { + "description": "A flag to indicate that the task should only be logged", + "type": "boolean" + }, + "remind_at": { + "description": "Datetime of when the user will be reminded of the task, ISO-8601 datetime format required", + "type": "string" + }, + "subject": { + "description": "Subject line of the task", + "type": "string" + } + }, + "type": "object" + } + } + } + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Task" + } + } + }, + "description": "Success" + } + }, + "summary": "Update a Task", + "tags": ["Tasks"] + } + }, + "/v2/team.json": { + "get": { + "description": "Fetches the team of the authenticated user.\n", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Team" + } + } + }, + "description": "Success" + } + }, + "summary": "Fetch current team", + "tags": ["Team"] + } + }, + "/v2/team_template_attachments.json": { + "get": { + "description": "Fetches multiple team template attachment records. The records can be filtered and paged according to\nthe respective parameters.\n", + "parameters": [ + { + "description": "IDs of team template attachments to fetch. If a record can't be found, that record won't be returned and your request will be successful", + "explode": false, + "in": "query", + "name": "ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters template attachments by team template IDs", + "explode": false, + "in": "query", + "name": "team_template_id", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data", + "in": "query", + "name": "limit_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/TeamTemplateAttachment" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List team template attachments", + "tags": ["Team Template Attachments"] + } + }, + "/v2/team_templates.json": { + "get": { + "description": "Fetches multiple team template records. The records can be filtered, paged, and sorted according to\nthe respective parameters.\n\nTeam templates are templates that are available team-wide. Admins may use\nteam templates to create original content for the entire team, monitor version control to ensure templates are always up to date,\nand track template performance across the entire organization. All metrics on a team template reflect usage across the team; individual metrics can be found with the email_templates API endpoint.\n", + "parameters": [ + { + "description": "IDs of team templates to fetch. If a record can't be found, that record won't be returned and your request will be successful", + "explode": false, + "in": "query", + "name": "ids", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range.\n\n---CUSTOM---\n{\"type\":\"object\",\"keys\":[{\"name\":\"gt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"gte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lt\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.\"},{\"name\":\"lte\",\"type\":\"iso8601 string\",\"description\":\"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\"}]}\n", + "explode": false, + "in": "query", + "name": "updated_at", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters email templates by title or subject", + "in": "query", + "name": "search", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Filters email templates by tags applied to the template by tag ID, not to exceed 100 IDs", + "explode": false, + "in": "query", + "name": "tag_ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters team templates by tags applied to the template, not to exceed 100 tags", + "explode": false, + "in": "query", + "name": "tag", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters email templates to include archived templates or not", + "in": "query", + "name": "include_archived_templates", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Key to sort on, must be one of: created_at, updated_at, last_used_at. Defaults to updated_at", + "in": "query", + "name": "sort_by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC", + "in": "query", + "name": "sort_direction", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "How many records to show per page in the range [1, 100]. Defaults to 25", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch results from. Defaults to 1", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data", + "in": "query", + "name": "limit_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/TeamTemplate" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List team templates", + "tags": ["Team Templates"] + } + }, + "/v2/team_templates/{id}.json": { + "get": { + "description": "Fetches a team template, by ID only.\n", + "parameters": [ + { + "description": "Team Template ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "Optionally will return the templates with the current user's email signature", + "in": "query", + "name": "include_signature", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/TeamTemplate" + } + } + }, + "description": "Success" + } + }, + "summary": "Fetch a team template", + "tags": ["Team Templates"] + } + }, + "/v2/third_party_live_feed_items": { + "post": { + "description": "Creates a live feed item that can be sent to users. May only be used by whitelisted Frontend Integrations. Reference the Salesloft App Directory and Frontend Integrations sections for additional details.", + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "properties": { + "event_occurred_at": { + "description": "Equality filters that are applied to the event_occurred_at field. A single filter can be used by itself or combined with other filters to create a range.\n---CUSTOM---\n{\"keys\":[{\"description\":\"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.\",\"name\":\"gt\",\"type\":\"iso8601 string\"},{\"description\":\"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\",\"name\":\"gte\",\"type\":\"iso8601 string\"},{\"description\":\"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.\",\"name\":\"lt\",\"type\":\"iso8601 string\"},{\"description\":\"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.\",\"name\":\"lte\",\"type\":\"iso8601 string\"}],\"type\":\"object\"}\n", + "type": "string" + }, + "idempotency_key": { + "description": "Uniquely provided string specific to this event. This should be a value which can't be duplicated between external systems, meaning that an id is not sufficient.", + "type": "string" + }, + "message": { + "description": "The message that relates to the subject. This message should start with a lower-case past-tense verb and end with a period (e.g. \"received a package.\"). When live feed items are displayed to users, the subject's name is concatenated with the message and a joining space. Only HTML tags with an \"href\" attribute are allowed. Other attributes and tags will be stripped.", + "type": "string" + }, + "subject_id": { + "description": "The ID of the subject of the live feed item (i.e. the \"person\" id).", + "type": "integer" + }, + "subject_type": { + "description": "The type of the subject of the live feed item. Currently only \"person\" is supported.", + "type": "string" + }, + "user_guid": { + "description": "The guid for the user that this live feed item should be shown to.", + "type": "string" + } + }, + "required": [ + "subject_type", + "subject_id", + "event_occurred_at", + "user_guid", + "message", + "idempotency_key" + ], + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/LiveFeedItem" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "Create a live feed item", + "tags": ["Live Feed Items"] + } + }, + "/v2/users.json": { + "get": { + "description": "Non Admin: Lists only your user, or all on team depending on group visibility policy\nTeam Admin: Lists users associated with your team\n", + "parameters": [ + { + "description": "IDs of users to fetch. If a record can't be found, that record won't be returned and your request will be successful", + "explode": false, + "in": "query", + "name": "ids", + "required": false, + "schema": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters list to only include guids", + "explode": false, + "in": "query", + "name": "guid", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters users by group_id. An additional value of \"_is_null\" can be passed to filter users that are not in a group", + "explode": false, + "in": "query", + "name": "group_id", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Filters users by role_id", + "explode": false, + "in": "query", + "name": "role_id", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Space-separated list of keywords used to find case-insensitive substring matches against First Name, Last Name, or Email", + "in": "query", + "name": "search", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Filters users based on active attribute. Defaults to not applied", + "in": "query", + "name": "active", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Defaults to true.\n\nWhen true, only shows users that are actionable based on the team's privacy settings.\nWhen false, shows all users on the team, even if you can't take action on that user. Deactivated users are also included when false.\n", + "in": "query", + "name": "visible_only", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "How many users to show per page in the range [1, 100]. Defaults to 25. Results are only paginated if the page parameter is defined", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "The current page to fetch users from. Defaults to returning all users", + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Whether to include total_pages and total_count in the metadata. Defaults to false", + "in": "query", + "name": "include_paging_counts", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Filters users based on if they have a crm user mapped or not.", + "in": "query", + "name": "has_crm_user", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Filters users based on assigned work_country.", + "explode": false, + "in": "query", + "name": "work_country", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Key to sort on, must be one of: id, email, name, group, role. Defaults to id", + "in": "query", + "name": "sort_by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC", + "in": "query", + "name": "sort_direction", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/User" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List users", + "tags": ["Users"] + } + }, + "/v2/users/{id}.json": { + "get": { + "description": "Fetches a user, by ID only.\n", + "parameters": [ + { + "description": "User ID", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/User" + } + } + }, + "description": "Success" + } + }, + "summary": "Fetch a user", + "tags": ["Users"] + } + }, + "/v2/webhook_subscriptions": { + "get": { + "description": "Fetches all of the customer's webhook subscriptions for your application.", + "parameters": [ + { + "description": "Filters webhook subscriptions by whether is enabled or not.", + "in": "query", + "name": "enabled", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/Subscription" + }, + "type": "array" + } + } + }, + "description": "Success" + } + }, + "summary": "List webhook subscriptions", + "tags": ["Webhook Subscriptions"] + }, + "post": { + "description": "Creates a webhook subscription. Visit the webhooks page for additional details and a list of available webhooks.\nRequest must be made with a valid Oauth token or API key.", + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "properties": { + "callback_token": { + "description": "Any string to be used as a shared secret when subscription events are published. SalesLoft will send the value of this callback_token in the payload of each event so the receiver may verify it matches the original value. This ensures webhook events are being delivered by SalesLoft.", + "type": "string" + }, + "callback_url": { + "description": "URL for your callback handler", + "type": "string" + }, + "event_type": { + "description": "Type of event the subscription is for. Visit the \"Event Types\" section of the webhooks page to find a list of supported event types.", + "type": "string" + } + }, + "required": ["callback_url", "callback_token", "event_type"], + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Subscription" + } + } + }, + "description": "Success" + } + }, + "summary": "Create a webhook subscription", + "tags": ["Webhook Subscriptions"] + } + }, + "/v2/webhook_subscriptions/{id}": { + "delete": { + "description": "Deletes a webhook subscription. This operation is not reversible without contacting support. This operation can be called multiple times successfully.", + "parameters": [ + { + "description": "The id of the Webhook Subscription to delete", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "description": "This webhook subscription has been deleted successfully" + } + }, + "summary": "Delete a webhook subscription", + "tags": ["Webhook Subscriptions"] + }, + "get": { + "description": "Fetches a webhook subscription, by ID only.", + "parameters": [ + { + "description": "The id for the Webhook Subscription", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Subscription" + } + } + }, + "description": "Success" + } + }, + "summary": "Fetch a webhook subscription", + "tags": ["Webhook Subscriptions"] + }, + "put": { + "description": "Updates a webhook subscription.\nRequest must be made with a valid Oauth token or API key.", + "parameters": [ + { + "description": "The Webhook Suscription id to update", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "properties": { + "enabled": { + "description": "Enable or disable the webhook subscription", + "type": "boolean" + } + }, + "type": "object" + } + } + } + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Subscription" + } + } + }, + "description": "Success" + } + }, + "summary": "Update a webhook subscription", + "tags": ["Webhook Subscriptions"] + } + } + }, + "components": { + "requestBodies": { + "postV2ImportsJson": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "properties": { + "name": { + "description": "Name, recommended to be easily identifiable to a user", + "type": "string" + }, + "user_id": { + "description": "ID of the User that owns this Import", + "type": "integer" + } + }, + "type": "object" + } + } + } + } + }, + "schemas": { + "Account": { + "properties": { + "account_tier": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "archived_at": { + "description": "Datetime of when the Account was archived, if archived", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "city": { + "description": "City", + "example": "Dufftown", + "type": "string" + }, + "company_stage": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "company_type": { + "description": "Type of the Account's company", + "example": "Private", + "type": "string" + }, + "conversational_name": { + "description": "Conversational name of the Account", + "example": "Hogwarts", + "type": "string" + }, + "country": { + "description": "Country", + "example": "Scotland", + "type": "string" + }, + "counts": { + "$ref": "#/components/schemas/EmbeddedAccountCounts" + }, + "created_at": { + "description": "Datetime of when the Account was created", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "creator": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "crm_id": { + "description": "CRM ID", + "example": "003i000001mnhpD", + "type": "string" + }, + "crm_object_type": { + "description": "CRM object type", + "example": "account", + "type": "string" + }, + "crm_url": { + "description": "CRM url", + "example": "https://na15.salesforce.com/003i000001mnhpD", + "type": "string" + }, + "custom_fields": { + "description": "Custom fields are defined by the user's team. Only fields with values are presented in the API.", + "example": { + "MyField": "A Value", + "Other": "Field" + }, + "type": "object" + }, + "description": { + "description": "Description", + "example": "British school of magic for students", + "type": "string" + }, + "do_not_contact": { + "description": "Whether this company has opted out of communications. Do not contact someone at this company when this is set to true", + "example": true, + "type": "boolean" + }, + "domain": { + "description": "Website domain, not a fully qualified URI", + "example": "salesloft.com", + "type": "string" + }, + "founded": { + "description": "Date or year of founding", + "example": "March 1st, 1820", + "type": "string" + }, + "id": { + "description": "ID of Account", + "example": 1, + "type": "integer" + }, + "industry": { + "description": "Industry", + "example": "Education", + "type": "string" + }, + "last_contacted_at": { + "description": "Datetime this Account was last contacted", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "last_contacted_by": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "last_contacted_person": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "last_contacted_type": { + "description": "The type of the last touch to this Account. Can be call, email, other", + "example": "call", + "type": "string" + }, + "linkedin_url": { + "description": "Full LinkedIn url", + "example": "https://www.linkedin.com/company/2296178/", + "type": "string" + }, + "locale": { + "description": "Time locale", + "example": "Europe/London", + "type": "string" + }, + "name": { + "description": "Account Full Name", + "example": "Hogwarts School of Witchcraft and Wizardry", + "type": "string" + }, + "owner": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "owner_crm_id": { + "description": "Mapped owner field from the CRM", + "example": "003i000001mnhpD", + "type": "string" + }, + "phone": { + "description": "Phone number without formatting", + "example": "+1 444 555 6666", + "type": "string" + }, + "postal_code": { + "description": "Postal code", + "example": "55555", + "type": "string" + }, + "revenue_range": { + "description": "Estimated revenue range", + "example": "1,000,000-2,000,000", + "type": "string" + }, + "size": { + "description": "Estimated number of people in employment", + "example": "1500", + "type": "string" + }, + "state": { + "description": "State", + "example": "Mortlach", + "type": "string" + }, + "street": { + "description": "Street name and number", + "example": "4 Picket Drive", + "type": "string" + }, + "tags": { + "description": "All tags applied to this Account", + "example": ["7-23-2017", "dreamforce"], + "items": { + "type": "string" + }, + "type": "array" + }, + "twitter_handle": { + "description": "Twitter handle, with @", + "example": "@kyleporter", + "type": "string" + }, + "updated_at": { + "description": "Datetime of when the Account was last updated", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "user_relationships": { + "description": "Filters by accounts matching all given user relationship fields, _is_null or _unmapped can be passed to filter accounts with null or unmapped user relationship values", + "example": { + "Other": "_is_null", + "bff": "0037h00000d78aAAAQ" + }, + "type": "object" + }, + "website": { + "description": "Website", + "example": "https://salesloft.com", + "type": "string" + } + } + }, + "AccountStage": { + "properties": { + "created_at": { + "description": "Datetime of when the Account Stage was created", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "id": { + "description": "ID of Account Stage", + "example": 1, + "type": "integer" + }, + "name": { + "description": "Name of Account Stage", + "example": "In Progress", + "type": "string" + }, + "order": { + "description": "Order of Account Stage", + "example": 3, + "type": "integer" + }, + "updated_at": { + "description": "Datetime of when the Account Stage was last updated", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + } + } + }, + "AccountTier": { + "properties": { + "created_at": { + "description": "Datetime of when the Account Tier was created", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "id": { + "description": "ID of Account Tier", + "example": 1, + "type": "integer" + }, + "name": { + "description": "Name of the Account Tier", + "example": "High Priority", + "type": "string" + }, + "order": { + "description": "The order of the account tier", + "example": 2, + "type": "integer" + }, + "updated_at": { + "description": "Datetime of when the Account Tier was last updated", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + } + } + }, + "AccountUpsert": { + "properties": { + "account": { + "$ref": "#/components/schemas/Account" + }, + "upsert_type": { + "description": "The type of upsert. One of: create, update", + "type": "string" + } + } + }, + "Action": { + "properties": { + "action_details": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "cadence": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "created_at": { + "description": "Datetime of when the Action was created", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "due": { + "description": "Whether this step is due", + "example": true, + "type": "boolean" + }, + "due_on": { + "description": "When action is due", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "id": { + "description": "ID of Action", + "example": 1, + "type": "integer" + }, + "multitouch_group_id": { + "description": "ID of the multitouch group", + "example": 1, + "type": "integer" + }, + "person": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "status": { + "description": "The current state of the person on the cadence. Possible values are:\n\nin_progress: this action has not been completed\n\npending_activity: this action has been acted upon, but the action has not been completed.\n(i.e. the email is scheduled to send, but has not been delivered yet)\n", + "example": "in_progress", + "type": "string" + }, + "step": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "type": { + "description": "The type of this action. Valid types are: email, phone, other. New types may be added in the future.\n", + "example": "phone", + "type": "string" + }, + "updated_at": { + "description": "Datetime of when the Action was last updated", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "user": { + "$ref": "#/components/schemas/EmbeddedResource" + } + } + }, + "Activity": { + "properties": { + "updated_at": { + "description": "Datetime of when the Activity was last updated", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + } + } + }, + "ActivityHistory": { + "properties": { + "created_at": { + "description": "When this record was created", + "example": "2019-01-01T00:00:00.000000Z", + "format": "date-time", + "type": "string" + }, + "dynamic_data": { + "description": "Attributes from associated records. This is specific to the type of activity and may change over time. Not returned for create requests", + "example": { + "counts": { + "clicks": 2, + "replies": 1, + "views": 3 + }, + "status": "sent", + "subject": "Welcome to SalesLoft" + }, + "type": "object" + }, + "failed_dynamic_resources": { + "description": "A list of remote resource names that failed to load. This is specific to the type of activity and may change over time. Not returned for create requests", + "example": ["email"], + "type": "object" + }, + "id": { + "description": "ID of this activity", + "example": 1, + "type": "integer" + }, + "occurred_at": { + "description": "When this activity occurred", + "example": "2019-01-01T00:00:00.000000Z", + "format": "date-time", + "type": "string" + }, + "pinned_at": { + "description": "When this record was pinned", + "example": "2019-01-01T00:00:00.000000Z", + "format": "date-time", + "type": "string" + }, + "resource_id": { + "description": "ID of the resource this activity is for. It will be a string for the following resource types: crm_opportunity", + "example": 1, + "type": "integer" + }, + "resource_type": { + "description": "Type of the resource this activity is for. One of: account, person", + "example": "person", + "type": "integer" + }, + "static_data": { + "description": "The static data for this activity", + "example": { + "email_id": 2 + }, + "type": "object" + }, + "type": { + "description": "The type of activity", + "example": "email", + "type": "string" + }, + "updated_at": { + "description": "When this record was updated", + "example": "2019-01-01T00:00:00.000000Z", + "format": "date-time", + "type": "string" + }, + "user_guid": { + "description": "UUID of the user this activity is for", + "example": "51398ccd-309e-467f-aae2-4b0f66b5c11d", + "type": "string" + } + } + }, + "BulkJob": { + "properties": { + "created_at": { + "description": "When this bulk job was created", + "example": "2019-01-01T00:00:00-05:00", + "format": "date-time", + "type": "string" + }, + "errors": { + "description": "Number of errored records at the time of request for this Bulk Job", + "example": 23, + "type": "integer" + }, + "finished_at": { + "description": "When this bulk job finished processing", + "example": "2019-01-02T00:00:00-05:00", + "format": "date-time", + "type": "string" + }, + "id": { + "description": "ID of this Bulk Job", + "example": 1, + "type": "integer" + }, + "marked_ready_at": { + "description": "When this bulk job was marked as ready to execute", + "example": "2019-01-02T00:00:00-05:00", + "format": "date-time", + "type": "string" + }, + "name": { + "description": "Name of this Bulk Job", + "example": "Job Name", + "type": "string" + }, + "processed": { + "description": "Number of processed records at the time of request for this Bulk Job", + "example": 50, + "type": "integer" + }, + "ready_to_execute": { + "description": "Whether the Bulk Job is ready to be executed", + "example": false, + "type": "boolean" + }, + "scopes": { + "description": "Scopes", + "example": ["person:set_crm_id"], + "items": {}, + "type": "array" + }, + "started_at": { + "description": "When this bulk job started processing. null until bulk job is done", + "example": "2019-01-02T00:00:00-05:00", + "format": "date-time", + "type": "string" + }, + "state": { + "description": "State of the Bulk Job. Must be one of: open, executing, done.", + "example": "open", + "type": "string" + }, + "total": { + "description": "Number of total records for this Bulk Job", + "example": 1234, + "type": "integer" + }, + "type": { + "description": "Type of the Bulk Job.", + "example": "person/upsert", + "type": "string" + }, + "updated_at": { + "description": "When this bulk job was updated", + "example": "2019-01-02T00:00:00-05:00", + "format": "date-time", + "type": "string" + } + } + }, + "BulkJobResult": { + "properties": { + "error": { + "description": "Error message for the record that was processed. Will be null if there was no error.", + "example": "Missing required field: email address", + "type": "string" + }, + "id": { + "description": "ID of the record that was processed", + "example": 1, + "type": "integer" + }, + "record": { + "description": "The data that was used to process the operation", + "example": "{first_name: \"John\", last_name: \"Smith\"}", + "type": "object" + }, + "resource": { + "description": "The object containing the resulting resource from performing the bulk action on this record", + "example": "{person: {...}, upsert_type: \"create\"}", + "type": "object" + }, + "status": { + "description": "Status of the record that was processed. Will be one of: success, error", + "example": "error", + "type": "string" + } + } + }, + "Cadence": { + "properties": { + "added_stage": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "archived_at": { + "description": "Datetime of when the cadence was archived, if archived", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "bounced_stage": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "cadence_framework_id": { + "description": "ID of the cadence framework used to create steps for the cadence", + "example": 1, + "type": "integer" + }, + "cadence_function": { + "description": "The use case of the cadence. Possible values are:\n\noutbound: Denotes an outbound cadence, typically for sales purposes\n\ninbound: Denotes an inbound sales cadence\n\nevent: Denotes a cadence used for an upcoming event\n\nother: Denotes a cadence outside of the standard process\n", + "example": "outbound", + "type": "string" + }, + "cadence_priority": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "counts": { + "$ref": "#/components/schemas/CadenceCounts" + }, + "created_at": { + "description": "Datetime of when the cadence was created", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "creator": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "draft": { + "description": "Whether this cadence is in draft mode", + "example": false, + "type": "boolean" + }, + "external_identifier": { + "description": "Cadence External ID", + "example": "This is my external id", + "type": "string" + }, + "finished_stage": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "groups": { + "description": "Groups to which this cadence is assigned, if any", + "example": [ + { + "_href": "https://api.salesloft.com/v2/groups/921", + "id": 921 + } + ], + "items": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "type": "array" + }, + "id": { + "description": "ID of cadence", + "example": 1, + "type": "integer" + }, + "name": { + "description": "Cadence name", + "example": "Prospecting - VP of Sales", + "type": "string" + }, + "opt_out_link_included": { + "description": "Whether this cadence is configured to include an opt-out link by default", + "example": true, + "type": "boolean" + }, + "owner": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "remove_bounces_enabled": { + "description": "Whether this cadence is configured to automatically remove people who have bounced", + "example": true, + "type": "boolean" + }, + "remove_replies_enabled": { + "description": "Whether this cadence is configured to automatically remove people who have replied", + "example": true, + "type": "boolean" + }, + "replied_stage": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "shared": { + "description": "Whether this cadence is visible to team members (shared)", + "example": false, + "type": "boolean" + }, + "tags": { + "description": "All tags applied to this cadence", + "example": ["7-23-2017", "dreamforce"], + "items": { + "type": "string" + }, + "type": "array" + }, + "team_cadence": { + "description": "Whether this cadence is a team cadence. A team cadence is created by an admin and can be run by all users", + "example": false, + "type": "boolean" + }, + "updated_at": { + "description": "Datetime of when the cadence was last updated", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + } + } + }, + "CadenceCounts": { + "properties": { + "cadence_people": { + "description": "The number of people that have ever been added to the cadence", + "example": 59, + "type": "integer" + }, + "meetings_booked": { + "description": "The number of meetings booked and attributed to the cadence", + "example": 10, + "type": "integer" + }, + "opportunities_created": { + "description": "The number of opportunities created and attributed to the cadence", + "example": 10, + "type": "integer" + }, + "people_acted_on_count": { + "description": "The number of people that have been skipped, scheduled, or advanced in a cadence", + "example": 1, + "type": "integer" + }, + "target_daily_people": { + "description": "The user defined target for number of people to add to the cadence each day", + "example": 10, + "type": "integer" + } + } + }, + "CadenceExport": { + "properties": { + "cadence_content": { + "description": "The content of the cadence", + "example": {}, + "type": "object" + } + } + }, + "CadenceImport": { + "properties": { + "cadence": { + "$ref": "#/components/schemas/EmbeddedResource" + } + } + }, + "CadenceMembership": { + "properties": { + "added_at": { + "description": "Datetime of when the person was last added to this cadence", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "cadence": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "counts": { + "$ref": "#/components/schemas/CadenceMembershipCounts" + }, + "created_at": { + "description": "Datetime of when the person was first added to this cadence", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "current_state": { + "description": "The current state of the person on the cadence. Possible values are:\n\nprocessing: The person is being processed on a cadence. Cadence-related changes cannot be made at this time\n\nstaged: The person is waiting for the first step in the cadence to occur\n\nactive: The cadence has begun processing this person and is still in the process, but idle\n\nscheduled: The cadence has begun processing this person and is still in the process, with an activity scheduled to occur\n\ncompleted: The cadence has been completed for this person\n\nremoved: The person was manually or automatically removed from the cadence\n\nremoved_no_action: The person was removed from the cadence before any action occurred\n\nreassigned: The person's cadence execution was transferred to a different user, ending this user's interaction\n", + "example": "staged", + "type": "string" + }, + "currently_on_cadence": { + "description": "Whether the person is currently on the cadence", + "example": false, + "type": "boolean" + }, + "id": { + "description": "Cadence membership ID", + "example": 1, + "type": "integer" + }, + "latest_action": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "person": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "person_deleted": { + "description": "Whether the associated person has since been deleted", + "example": false, + "type": "boolean" + }, + "updated_at": { + "description": "Datetime of when the record was last updated", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "user": { + "$ref": "#/components/schemas/EmbeddedResource" + } + } + }, + "CadenceMembershipCounts": { + "properties": { + "bounces": { + "description": "The number of times emails sent from the cadence to the person bounced", + "example": 0, + "type": "integer" + }, + "calls": { + "description": "The number of times a call was logged from the cadence to the person", + "example": 2, + "type": "integer" + }, + "clicks": { + "description": "The number of times emails sent from the cadence to the person were clicked", + "example": 5, + "type": "integer" + }, + "replies": { + "description": "The number of times emails sent from the cadence to the person were replied to", + "example": 2, + "type": "integer" + }, + "sent_emails": { + "description": "The number of times emails were sent from the cadence to the person", + "example": 4, + "type": "integer" + }, + "views": { + "description": "The number of times emails sent from the cadence to the person were opened", + "example": 10, + "type": "integer" + } + } + }, + "CalendarEvent": { + "properties": { + "all_day": { + "description": "Whether the calendar event is an all-day event.", + "example": false, + "type": "string" + }, + "attendees": { + "description": "The attendees of the calendar event.", + "example": [ + { + "deleted_at": null, + "email": "alice@example.com", + "name": "Alice", + "organizer": true, + "status": "accepted", + "status_changed": false + }, + { + "deleted_at": null, + "email": "bob@example.com", + "name": "Bob", + "organizer": false, + "status": "accepted", + "status_changed": false + } + ], + "type": "object" + }, + "body_html": { + "description": "Raw body content from Microsoft calendar events", + "example": "some html text", + "type": "string" + }, + "busy": { + "description": "Busy/free status of the calendar event", + "example": false, + "type": "boolean" + }, + "calendar_id": { + "description": "Calendar ID of the user calendar.", + "example": "test@example.com", + "type": "string" + }, + "canceled_at": { + "description": "The canceled date of the calendar event.", + "example": "iso8601_now", + "type": "string" + }, + "conference_data": { + "description": "The conference-related information, such as details of a Google Meet conference.", + "example": {}, + "type": "object" + }, + "created_at": { + "description": "Creation time of the calendar event.", + "example": "iso8601_now", + "type": "string" + }, + "creator": { + "description": "The creator email of the calendar event.", + "example": "creator@example.com", + "type": "object" + }, + "description": { + "description": "Description of the calendar event", + "example": "Calendar event description", + "type": "string" + }, + "end_time": { + "description": "The (exclusive) end time of the calendar event.", + "example": "2022-08-23T08:18:47.853983Z", + "format": "date-time", + "type": "string" + }, + "extended_properties": { + "description": "Extended properties of the calendar event.", + "example": {}, + "type": "object" + }, + "html_link": { + "description": "An absolute link to this calendar event in the Google Calendar Web UI.", + "example": "https://www.google.com/calendar/event?eid=Y2N", + "type": "string" + }, + "i_cal_uid": { + "description": "Calendar event unique identifier (iCalUID)", + "example": "1p1oilmc4mt3m6ah6rmf6ik8mm@google.com", + "type": "string" + }, + "id": { + "description": "The calendar event original ID from calendar provider", + "example": "AAMkADQ0NjE4YmY5LTc3ZDYtNDc5NC1-UlgAAAAAAENAAB3eGoN5TIDTp8dXXDpxUlgAACQlfLuAAA=", + "type": "string" + }, + "location": { + "description": "Location of the calendar event", + "example": "Event location", + "type": "string" + }, + "organizer": { + "description": "The organizer email of the calendar event.", + "example": "organizer@example.com", + "type": "string" + }, + "provider": { + "description": "The provider of the calendar event.", + "example": "google", + "type": "string" + }, + "recurring": { + "description": "Whether the calendar event is a recurring event.", + "example": false, + "type": "string" + }, + "start_time": { + "description": "The (inclusive) start time of the calendar event.", + "example": "2022-08-23T08:18:47.832113Z", + "format": "date-time", + "type": "string" + }, + "status": { + "description": "The status of the calendar event. It can be empty for non-google events.", + "example": "confirmed", + "type": "string" + }, + "tenant_id": { + "description": "Tenant ID of the user calendar", + "example": 1, + "type": "integer" + }, + "title": { + "description": "Title of the calendar event", + "example": "Calendar event title", + "type": "string" + }, + "updated_at": { + "description": "Last modification time of the calendar event.", + "example": "iso8601_now", + "type": "string" + }, + "user_guid": { + "description": "User GUID of the user calendar.", + "example": "9ccb7701-52e7-4d3e-91b0-b142a2fef2ec", + "type": "string" + } + } + }, + "Call": { + "properties": { + "action": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "cadence": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "called_person": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "created_at": { + "description": "Datetime of when the call was created", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "crm_activity": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "disposition": { + "description": "Result of the call", + "example": "Connected", + "type": "string" + }, + "duration": { + "description": "Length of the call in seconds", + "example": 60, + "type": "integer" + }, + "id": { + "description": "ID of Call", + "example": 1, + "type": "integer" + }, + "note": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "recordings": { + "description": "The recordings for this this call and their status", + "example": [ + { + "recording_status": "completed", + "status": "completed", + "url": "https://example.com/recording1" + } + ], + "items": { + "$ref": "#/components/schemas/EmbeddedRecordingResource" + }, + "type": "array" + }, + "sentiment": { + "description": "Outcome of the conversation", + "example": "Demo Scheduled", + "type": "string" + }, + "step": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "to": { + "description": "Phone number that received the call", + "example": "7705551234", + "type": "string" + }, + "updated_at": { + "description": "Datetime of when the call was last updated", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "user": { + "$ref": "#/components/schemas/EmbeddedResource" + } + } + }, + "CallDataRecord": { + "properties": { + "call": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "call_type": { + "description": "Type of the call. Can be one of: call, bridge, collaboration. Though exact values may change over time", + "example": "call", + "type": "string" + }, + "call_uuid": { + "description": "UUID of the call. Legs of the same call will have the same call_uuid.", + "example": "5c5c1f32-bff1-4b7c-8f2a-bd650b829c67", + "type": "string" + }, + "called_person": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "created_at": { + "description": "Datetime of when the call was created", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "direction": { + "description": "Direction of the call. Can be one of: inbound, outbound", + "example": "outbound", + "type": "string" + }, + "duration": { + "description": "Length of the call in seconds", + "example": 60, + "type": "integer" + }, + "from": { + "description": "Phone number that placed the call", + "example": "7705551234", + "type": "string" + }, + "id": { + "description": "ID of CallDataRecord", + "example": 1, + "type": "integer" + }, + "recording": { + "$ref": "#/components/schemas/EmbeddedRecordingResource" + }, + "status": { + "description": "The outcome of the call. Can be one of: queued, initiated, ringing, in-progress, completed, busy, no-answer, canceled, failed", + "example": "completed", + "type": "string" + }, + "to": { + "description": "Phone number that received the call", + "example": "7705551234", + "type": "string" + }, + "updated_at": { + "description": "Datetime of when the call was last updated", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "user": { + "$ref": "#/components/schemas/EmbeddedResource" + } + } + }, + "CallDisposition": { + "properties": { + "created_at": { + "description": "Datetime of when the call disposition was created", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "id": { + "description": "ID of CallDisposition", + "example": 1, + "type": "integer" + }, + "name": { + "description": "An available call disposition text", + "example": "Connected", + "type": "string" + }, + "updated_at": { + "description": "Datetime of when the call disposition was last updated", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + } + } + }, + "CallInstruction": { + "properties": { + "created_at": { + "description": "Datetime of when the call instructions were created", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "id": { + "description": "ID of call instructions", + "example": 1, + "type": "integer" + }, + "instructions": { + "description": "The instructions", + "example": "Call once, leave voicemail if not answered. Conference conversation.", + "type": "string" + }, + "updated_at": { + "description": "Datetime of when the call instructions were last updated", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + } + } + }, + "CallSentiment": { + "properties": { + "created_at": { + "description": "Datetime of when the call sentiment was created", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "id": { + "description": "ID of CallSentiment", + "example": 1, + "type": "integer" + }, + "name": { + "description": "An available call sentiment text", + "example": "Interested", + "type": "string" + }, + "updated_at": { + "description": "Datetime of when the call sentiment was last updated", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + } + } + }, + "CallerId": { + "properties": { + "account_name": { + "description": "The account of the person calling", + "example": "Bunty Soap Company", + "type": "string" + }, + "display_name": { + "description": "The name of the person calling", + "example": "Frank Galikanokus", + "type": "string" + }, + "person": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "title": { + "description": "The title of the person calling", + "example": "Transportation Coordinator", + "type": "string" + } + } + }, + "ConversationsCall": { + "properties": { + "call_created_at": { + "description": "Timestamp for when the call started. If not provided, will default to the time the request was received", + "example": "2022-07-22 01:00:00", + "type": "string" + }, + "direction": { + "description": "Call direction", + "example": "Outbound", + "type": "string" + }, + "duration": { + "description": "Duration of call in seconds", + "example": 120, + "type": "number" + }, + "from": { + "description": "Phone number that call was made from", + "example": "123-456-7890", + "type": "string" + }, + "recording": { + "description": "Object containing recording info including the audio file (.mp3, .wav, .ogg, .m4a)", + "example": { + "url": "www.example.com/audio.mp3" + }, + "type": "object" + }, + "to": { + "description": "Phone number that was called", + "example": "123-456-7890", + "type": "string" + }, + "user_guid": { + "description": "Guid of the Salesloft User to assign the call to. If not provided, will default to the user within the authentication token", + "example": "aa111111-11aa-1111-a1a1-11aa11a1a1a1", + "type": "string" + } + } + }, + "CrmActivity": { + "properties": { + "activity_type": { + "description": "The type of activity that is being recorded, if available. The values can change over time, but could be one of: email, phone, email reminder, inmail", + "example": "phone", + "type": "string" + }, + "created_at": { + "description": "Datetime of when the crm activity was created", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "crm_id": { + "description": "The ID of the activity in your CRM, if written to your CRM", + "example": "00T0H00003w2FBhUAM", + "type": "string" + }, + "custom_crm_fields": { + "description": "Additional fields that are logged to your CRM, if mapped by the team at the time of writing to your CRM", + "example": { + "ecorp__Call_Type__c": "inbound follow up" + }, + "type": "object" + }, + "description": { + "description": "The description field of the activity in your CRM", + "example": "Timeline is 2 weeks for demo, set with Kate", + "type": "string" + }, + "error": { + "description": "Information about why this crm activity failed to sync, if it did fail to sync. Failed activities will be automatically retried and may become successful in the future", + "example": "Could not find a CRM account link.", + "type": "string" + }, + "id": { + "description": "CrmActivity ID", + "example": 1, + "type": "integer" + }, + "person": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "subject": { + "description": "The subject field of the activity in your CRM", + "example": "Call: Connected | Interested", + "type": "string" + }, + "updated_at": { + "description": "Datetime of when the crm activity was last updated", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "user": { + "$ref": "#/components/schemas/EmbeddedResource" + } + } + }, + "CrmActivityField": { + "properties": { + "created_at": { + "description": "Datetime of when the CrmActivityField was created", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "crm_object_type": { + "description": "The CRM object type that this field maps to. Valid object types are CRM dependent: Task, Phonecall, Email.\n", + "example": "Task", + "type": "string" + }, + "field": { + "description": "The CRM field name", + "example": "orgName__Field_Name__c", + "type": "string" + }, + "field_type": { + "description": "The type of this field in your CRM. Certain field types can only accept structured input.", + "example": "boolean", + "type": "string" + }, + "id": { + "description": "ID of CrmActivityField", + "example": 1, + "type": "integer" + }, + "picklist_values": { + "description": "Valid picklist values, if present for this field. The format is {label => value}. If present, only\nvalues in the picklist structure can be used as a crm param.\n", + "example": { + "High": "High", + "Low": "Low" + }, + "type": "object" + }, + "salesforce_object_type": { + "description": "The Salesforce object type that this field maps to. Valid object types are: Task.\nMore object types may be added in the future.\n", + "example": "Task", + "type": "string" + }, + "source": { + "description": "SalesLoft object that this field is mapped for. Valid sources are: email, phone", + "example": "phone", + "type": "string" + }, + "title": { + "description": "A human friendly title for this field", + "example": "Field Name", + "type": "string" + }, + "updated_at": { + "description": "Datetime of when the CrmActivityField was last updated", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "value": { + "description": "A value to always be written. This value does not need to be sent to other endpoints' crm params,\nbut must be the exact value if sent. Email source fields will always have a value present.\n", + "example": "Email", + "type": "string" + } + } + }, + "CrmUser": { + "properties": { + "created_at": { + "description": "Datetime of when the crm user was created", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "crm_id": { + "description": "CRM ID", + "example": "5003000000D8cuIQAA", + "type": "string" + }, + "id": { + "description": "Crm User ID", + "example": 1, + "type": "integer" + }, + "updated_at": { + "description": "Datetime of when the crm user was last updated", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "user": { + "$ref": "#/components/schemas/EmbeddedResource" + } + } + }, + "CustomField": { + "properties": { + "created_at": { + "description": "Datetime of when the Custom Field was created", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "field_type": { + "description": "Type of the Custom Field. Value must be one of: person, company, opportunity.", + "example": "person", + "type": "string" + }, + "id": { + "description": "ID of Custom Field", + "example": 1, + "type": "integer" + }, + "name": { + "description": "Name of the Custom Field", + "example": "My Custom Field", + "type": "string" + }, + "updated_at": { + "description": "Datetime of when the Custom Field was last updated", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "value_type": { + "description": "Value Type of the Custom Field. Value must be one of: text, date.", + "example": "text", + "type": "string" + } + } + }, + "Email": { + "properties": { + "action": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "bounced": { + "description": "Whether this email bounced", + "example": false, + "type": "boolean" + }, + "cadence": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "click_tracking": { + "description": "Whether this email had click tracking enabled", + "example": true, + "type": "boolean" + }, + "counts": { + "$ref": "#/components/schemas/EmailCounts" + }, + "created_at": { + "description": "Datetime of when the email was created", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "crm_activity": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "email_template": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "error_message": { + "description": "Error message of the email. This field has been determined sensitive and requires a specific scope to access it.", + "type": "string" + }, + "headers": { + "description": "Selected headers that are included if this email used them. Available keys are: cc, bcc", + "example": { + "bcc": "track@salesforce.com", + "cc": "sb@salesloft.com" + }, + "type": "object" + }, + "id": { + "description": "ID of Email", + "example": 1, + "type": "integer" + }, + "mailing": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "personalization": { + "description": "Percentage of this email that has been personalized", + "example": "13.4", + "type": "string" + }, + "recipient": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "recipient_email_address": { + "description": "Email address of the recipient", + "example": "bob.smith@example.com", + "type": "string" + }, + "send_after": { + "description": "When this email will be sent, or null if already sent", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "sent_at": { + "description": "When this email was sent, or null if it was not sent", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "status": { + "description": "Status of this email through the sending process. Possible values are: sent, sent_from_gmail, sent_from_external, pending, pending_reply_check, scheduled, sending, delivering, failed, cancelled, pending_through_gmail, pending_through_external", + "example": "sent", + "type": "string" + }, + "step": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "subject": { + "description": "Subject of the email. This field has been determined sensitive and requires a specific scope to access it.", + "type": "string" + }, + "task": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "updated_at": { + "description": "Datetime of when the email was last updated", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "user": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "view_tracking": { + "description": "Whether this email had view tracking enabled", + "example": true, + "type": "boolean" + } + } + }, + "EmailCounts": { + "properties": { + "attachments": { + "description": "The number of attachments on the email", + "example": 0, + "type": "integer" + }, + "clicks": { + "description": "The number of times links in the email were clicked", + "example": 2, + "type": "integer" + }, + "replies": { + "description": "The number of replies the email received", + "example": 1, + "type": "integer" + }, + "unique_devices": { + "description": "The number of unique devices that opened the email", + "example": 4, + "type": "integer" + }, + "unique_locations": { + "description": "The number of unique locations that opened the email", + "example": 3, + "type": "integer" + }, + "views": { + "description": "The number of times the email was opened", + "example": 3, + "type": "integer" + } + } + }, + "EmailTemplate": { + "properties": { + "_links": { + "description": "Links to attachments and tags resources for this email template.", + "example": { + "attachments": "https://api.salesloft.com/v2/email_template_attachments?email_template_id[]=1" + }, + "type": "object" + }, + "archived_at": { + "description": "Datetime of when the email template was archived, if archived", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "body": { + "description": "Sanitized body of the email template without email signature", + "example": "

Welcome to the SalesLoft family! My name is Sarah and I’m your implementation consultant. I’m here to get you up and running. It's my job to help you configure your team's SalesLoft access, provide customized training for your specific goals, and make sure that you and your team are ready to crush your goals.

Thank you,
", + "type": "string" + }, + "body_preview": { + "description": "A plain text version of the first 100 characters of the body of the email template", + "example": "hello\n\nhey sounds good\n\nok\n\nok\n\nwith an edit\n\nok now i'm comic sans 14", + "type": "string" + }, + "cadence_template": { + "description": "Whether this email template is only used on a cadence step. These templates are not visible in the SalesLoft application template list. If false, this email template is visible in the SalesLoft application, and may be used when composing an email or creating a cadence step.", + "example": true, + "type": "boolean" + }, + "click_tracking_enabled": { + "description": "Whether click tracking is enabled for this email template", + "example": true, + "type": "boolean" + }, + "counts": { + "$ref": "#/components/schemas/EmailTemplateCounts" + }, + "created_at": { + "description": "Datetime of when the email template was created", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "groups": { + "description": "Groups to which this template is assigned, if any", + "example": [ + { + "_href": "https://api.salesloft.com/v2/groups/921", + "id": 921 + } + ], + "items": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "type": "array" + }, + "id": { + "description": "ID of email template", + "example": 5, + "type": "integer" + }, + "last_used_at": { + "description": "Datetime of when the email template was last used", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "open_tracking_enabled": { + "description": "Whether open tracking is enabled for this email template", + "example": true, + "type": "boolean" + }, + "shared": { + "description": "Whether this email template is visible to team members (shared)", + "example": false, + "type": "boolean" + }, + "subject": { + "description": "Subject of the email template", + "example": "Welcome to SalesLoft!", + "type": "string" + }, + "tags": { + "description": "All tags applied to this email template", + "example": ["7-23-2017", "internal"], + "items": { + "type": "string" + }, + "type": "array" + }, + "team_template": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "template_owner": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "title": { + "description": "Title of the email template", + "example": "Welcome email", + "type": "string" + }, + "updated_at": { + "description": "Datetime of when the email template was last updated", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + } + } + }, + "EmailTemplateAttachment": { + "properties": { + "attachment_content_type": { + "description": "Content type of the attachment", + "example": "pdf, jpeg", + "type": "string" + }, + "attachment_file_size": { + "description": "The size of the attachment", + "example": 2, + "type": "integer" + }, + "attachment_fingerprint": { + "description": "Unique attachment Identifier", + "example": 13231232, + "type": "integer" + }, + "attachment_id": { + "description": "ID of the email template attachment", + "example": 10, + "type": "integer" + }, + "download_url": { + "description": "Download url of the attachment", + "example": "https://path/to/example_attachment.gif", + "type": "string" + }, + "email_template": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "id": { + "description": "ID of email template attachment association", + "example": 5, + "type": "integer" + }, + "name": { + "description": "Name of the attachment", + "example": "example_attachment.gif", + "type": "string" + }, + "scanned": { + "description": "Checks if attachment has been scanned", + "example": true, + "type": "boolean" + } + } + }, + "EmailTemplateCounts": { + "properties": { + "bounces": { + "description": "The number of bounces the email template received", + "example": 10, + "type": "integer" + }, + "clicks": { + "description": "The number of times links in the email template were clicked", + "example": 20, + "type": "integer" + }, + "replies": { + "description": "The number of replies the email template received", + "example": 1, + "type": "integer" + }, + "sent_emails": { + "description": "The number of times the email template was sent out", + "example": 59, + "type": "integer" + }, + "views": { + "description": "The number of times the email template was opened", + "example": 3, + "type": "integer" + } + } + }, + "EmbeddedAccountCounts": { + "properties": { + "people": { + "description": "Number of people in SalesLoft associated with this Account", + "example": 15, + "type": "integer" + } + } + }, + "EmbeddedAttendeeResource": { + "properties": { + "deleted_at": { + "description": "Datetime of when the attendee was deleted", + "example": "2022-12-19T16:49:17.930926+02:00", + "format": "date", + "type": "string" + }, + "email": { + "description": "Email of the attendee", + "example": "calendar@example.com", + "type": "string" + }, + "name": { + "description": "Name of the attendee", + "example": "John", + "type": "string" + }, + "organizer": { + "description": "Whether the attendee is the organizer of the event.", + "example": false, + "type": "boolean" + }, + "status": { + "description": "The attendee's response status. Possible values are: needsAction, accepted, tentative, declined", + "example": "accepted", + "type": "string" + }, + "status_changed": { + "description": "Whether the attendee changed response status", + "example": false, + "type": "boolean" + } + } + }, + "EmbeddedRecordingResource": { + "properties": { + "recording_status": { + "description": "The processing status of the recording. Possible values are (but not limited to):\n\nnot_recorded: there is no recording available, and there will not be one becoming available\n\npending: the recording is currently being processed by the system\n\nprocessing: the recording is currently being processed by the system\n\ncompleted: the recording processing has been completed\n", + "example": "completed", + "type": "string" + }, + "status": { + "description": "The status of the call that produced this recording. Possible values are (but not limited to):\n\nno-answer: The call was not answered\n\nfailed: The call was not able to be placed\n\nbusy: The call was busy\n\nringing: The call is ringing\n\nin-progress: The call is ongoing\n\ncompleted: The call is finished\n", + "example": "completed", + "type": "string" + }, + "url": { + "description": "The url of the recording", + "example": "http://example.com/recording/1", + "type": "string" + } + } + }, + "EmbeddedResource": { + "properties": { + "_href": { + "description": "Resource URL, pointed at your API version, present if this resource is available in the API", + "example": "https://api.salesloft.com/v2/widgets/10", + "type": "string" + }, + "id": { + "description": "ID of the resource", + "example": 10, + "type": "integer" + } + } + }, + "EventMeetingSetting": { + "properties": { + "email_address": { + "description": "Calendar owner's email address", + "example": "calendar.owner@example.com", + "type": "string" + } + } + }, + "ExternalEmail": { + "properties": { + "message_id": { + "description": "Message id present in the External Email header", + "example": "CAKseEdbTMcU-U0CeTkUSo5X4jyW8QPReVTyPA6CrUCf0ggZwHQ@mail.salesloft.com", + "type": "string" + } + } + }, + "Group": { + "properties": { + "accessible_groups": { + "description": "Groups accessible if any", + "example": [ + { + "_href": "https://api.salesloft.com/v2/groups/921", + "id": 921 + } + ], + "items": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "type": "array" + }, + "id": { + "description": "ID of the Group", + "example": 1, + "type": "integer" + }, + "name": { + "description": "Name of the Group", + "example": "Test name", + "type": "string" + }, + "parent_id": { + "description": "ID of the parent Group", + "example": 2, + "type": "integer" + } + } + }, + "Import": { + "properties": { + "created_at": { + "description": "Datetime of when the import was created", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "current_people_count": { + "description": "Count of People that have not been deleted", + "example": 5, + "type": "integer" + }, + "id": { + "description": "Import ID", + "example": 1, + "type": "integer" + }, + "imported_people_count": { + "description": "Count of People that have ever been on this Import", + "example": 7, + "type": "integer" + }, + "name": { + "description": "Name of Import", + "example": "DataProvider -> SalesLoft 9/1/17", + "type": "string" + }, + "updated_at": { + "description": "Datetime of when the import was last updated, ignoring relationship changes", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + } + } + }, + "JobData": { + "properties": { + "bulk_job": { + "description": "Associated bulk job", + "example": "{\"id\": 123, \"_href\": \"https://api.salesloft.com/v2/bulk_jobs/123\"", + "type": "object" + }, + "created_at": { + "description": "When this job data record was created", + "example": "2019-01-01T00:00:00-05:00", + "format": "date-time", + "type": "string" + }, + "error": { + "description": "Error associated with this record", + "example": "Not found", + "type": "string" + }, + "finished_at": { + "description": "When this job data record finished processing", + "example": "2019-01-01T00:00:00-05:00", + "format": "date-time", + "type": "string" + }, + "id": { + "description": "ID of this Job Data", + "example": 1, + "type": "integer" + }, + "record": { + "description": "The data that was used to process the operation", + "example": "{first_name: \"John\", last_name: \"Smith\"}", + "type": "object" + }, + "resource": { + "description": "The object containing the resulting resource from performing the bulk action on this record", + "example": "{person: {...}, upsert_type: \"create\"}", + "type": "object" + }, + "started_at": { + "description": "When this job data record started processing", + "example": "2019-01-01T00:00:00-05:00", + "format": "date-time", + "type": "string" + }, + "status": { + "description": "Status of this job data. Must be one of: pending, success, error, retrying", + "example": "success", + "type": "string" + } + } + }, + "JobDataCreationResult": { + "properties": { + "records": { + "description": "Number of records created", + "example": 100, + "type": "integer" + } + } + }, + "LiveFeedItem": { + "properties": { + "alert_metadata": { + "description": "Information about whether this event should trigger an alert", + "example": { + "should_alert": true, + "should_alert_until": "2019-01-01T00:00:00-05:00" + }, + "type": "object" + }, + "event_occurred_at": { + "description": "When this event occurred", + "example": "2019-01-01T00:00:00-05:00", + "format": "date-time", + "type": "string" + }, + "event_type": { + "description": "The type of event", + "example": "email_click", + "type": "string" + }, + "id": { + "description": "ID of this item", + "example": 1, + "type": "integer" + }, + "message": { + "description": "A plaintext message for this event", + "example": "Steve is visiting your website.", + "type": "string" + }, + "metadata": { + "description": "The metadata created for this event", + "example": { + "email_id": 2, + "email_subject": "Come join us at Rainmaker, Jon!", + "mailing_id": 3, + "person_id": 1 + }, + "type": "object" + }, + "path": { + "description": "The path to the application that should be followed", + "example": "/app/emails/detail/1", + "type": "string" + }, + "rollup_key": { + "description": "The key that should be used to rollup events client side. null or empty values should not be rolled up", + "example": "email_click:10", + "type": "string" + }, + "title": { + "description": "A plaintext title for this event", + "example": "Website Visit", + "type": "string" + }, + "user_guid": { + "description": "UUID of the user this item is for", + "example": "51398ccd-309e-467f-aae2-4b0f66b5c11d", + "type": "string" + } + } + }, + "LiveWebsiteTrackingParameter": { + "properties": { + "parameters": { + "description": "A SalesLoft identifier", + "example": [ + { + "name": "sbrc", + "value": "tracking parameter" + } + ], + "items": { + "type": "object" + }, + "type": "array" + } + } + }, + "Meeting": { + "properties": { + "account_id": { + "description": "ID of the account the recipient associated to", + "example": "1", + "type": "string" + }, + "all_day": { + "description": "Whether the meeting is an all-day meeting", + "example": false, + "type": "boolean" + }, + "attendees": { + "description": "The attendees of the meeting. Each attendee includes the following fields: status, email, name, organizer", + "example": [ + { + "deleted_at": null, + "email": "john@example.com", + "name": "John", + "organizer": true, + "status": "accepted" + } + ], + "items": { + "$ref": "#/components/schemas/EmbeddedAttendeeResource" + }, + "type": "array" + }, + "booked_by_meetings_settings": { + "$ref": "#/components/schemas/EventMeetingSetting" + }, + "booked_by_user": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "cadence": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "calendar_id": { + "description": "Calendar ID of the meeting owner", + "example": "calendar-id-google.com", + "type": "string" + }, + "calendar_type": { + "description": "Calendar type of the meeting owner. Possible values are: gmail, azure, nylas, linkedin_azure, cerebro, external", + "example": "gmail", + "type": "string" + }, + "canceled_at": { + "description": "Datetime of when the meeting was canceled", + "example": "2022-12-19T16:49:17.931396+02:00", + "format": "date", + "type": "string" + }, + "created_at": { + "description": "Datetime of when the meeting was created", + "example": "2022-12-19T16:49:17.930298+02:00", + "format": "date", + "type": "string" + }, + "crm_custom_fields": { + "description": "List of crm custom fields which will be logged to SFDC", + "example": { + "Event_Calendar_Type__c": "Google" + }, + "type": "object" + }, + "crm_references": { + "description": "List of crm references associated with the meeting", + "example": { + "what": { + "crm_id": "0063X000018fDmMQAU", + "crm_object_label": "Opportunity", + "crm_object_type": "Opportunity", + "crm_url": "link_to_salesforce", + "description1": "Title of the opportunity", + "description2": "2032-01-10", + "description3": "Prospecting" + }, + "who": { + "crm_id": "0033X00004GOywtQAD", + "crm_object_label": "Contact", + "crm_object_type": "Contact", + "crm_url": "link_to_salesforce", + "description1": "John Doe", + "description2": "john.doe@example.com", + "description3": null + } + }, + "type": "object" + }, + "description": { + "description": "Description of the meeting", + "example": "Introducing interview", + "type": "string" + }, + "end_time": { + "description": "End time of the meeting", + "example": "2022-12-19T16:49:17.917861+02:00", + "format": "date", + "type": "string" + }, + "event_id": { + "description": "ID of the meeting created by target calendar", + "example": "123468796", + "type": "string" + }, + "event_source": { + "description": "Source of the meeting. Possible values are: 'external' - The event was synced to Salesloft platform via Calendar Sync, 'internal' - The event was created via Salesloft platform", + "example": "external", + "type": "string" + }, + "guests": { + "description": "The list of attendees emails of the meeting", + "example": ["email1@sloft.com", "email2@sloft.com"], + "items": { + "type": "string" + }, + "type": "array" + }, + "i_cal_uid": { + "description": "UID of the meeting provided by target calendar provider", + "example": "040P00B08200E00074C5B7101A82EF", + "type": "string" + }, + "id": { + "description": "ID of the meeting", + "example": 1, + "type": "integer" + }, + "location": { + "description": "Location of the meeting", + "example": "Atlanta, GA", + "type": "string" + }, + "meeting_type": { + "description": "Meeting type", + "example": "Demo call", + "type": "string" + }, + "no_show": { + "description": "Whether the meeting is a No Show meeting", + "example": false, + "type": "boolean" + }, + "owned_by_meetings_settings": { + "$ref": "#/components/schemas/EventMeetingSetting" + }, + "person": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "recipient_email": { + "description": "Email of the meeting invite recipient", + "example": "email@sloft.com", + "type": "string" + }, + "recipient_name": { + "description": "Name of the meeting invite recipient", + "example": "John Doe", + "type": "string" + }, + "start_time": { + "description": "Start time of the meeting", + "example": "2022-12-19T16:49:17.917818+02:00", + "format": "date", + "type": "string" + }, + "status": { + "description": "Status of the meeting. Possible values are: pending, booked, failed, retry", + "example": "booked", + "type": "string" + }, + "step": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "strict_attribution": { + "description": "Strict attribution means that we 100% sure which cadence generate the meeting", + "example": false, + "type": "boolean" + }, + "task_id": { + "description": "ID of the created task", + "example": "123", + "type": "string" + }, + "title": { + "description": "Title of the meeting", + "example": "Meeting with John", + "type": "string" + }, + "updated_at": { + "description": "Datetime of when the meeting was last updated", + "example": "2022-12-19T16:49:17.930340+02:00", + "format": "date", + "type": "string" + } + } + }, + "MeetingSetting": { + "properties": { + "active_meeting_url": { + "$ref": "#/components/schemas/MeetingUrl" + }, + "allow_booking_on_behalf": { + "description": "Allow other team members to schedule on you behalf.", + "example": true, + "type": "boolean" + }, + "allow_booking_overtime": { + "description": "Allow team members to insert available time outside your working hours.", + "example": true, + "type": "boolean" + }, + "allow_event_overlap": { + "description": "Allow team members to double book events on your calendar.", + "example": false, + "type": "boolean" + }, + "availability_limit": { + "description": "The number of days out the user allows a prospect to schedule a meeting", + "example": 14, + "type": "integer" + }, + "availability_limit_enabled": { + "description": "If Availability Limits have been turned on", + "example": true, + "type": "boolean" + }, + "buffer_time_duration": { + "description": "Default buffer duration in minutes set by a user", + "example": "15", + "type": "integer" + }, + "calendar_type": { + "description": "Calendar type", + "example": "gmail", + "type": "string" + }, + "created_at": { + "description": "Datetime of when the MeetingSetting was created", + "example": "2022-09-15T11:40:59.055583+03:00", + "format": "date", + "type": "string" + }, + "default_meeting_length": { + "description": "Default meeting length in minutes set by the user", + "example": "30", + "type": "integer" + }, + "description": { + "description": "Default description of the meeting", + "example": "This meeting is held on a daily basis", + "type": "string" + }, + "email_address": { + "description": "Calendar owner's email address", + "example": "calendar.owner@example.com", + "type": "string" + }, + "enable_calendar_sync": { + "description": "Determines if a user enabled Calendar Sync feature", + "example": false, + "type": "boolean" + }, + "enable_dynamic_location": { + "description": "Determines if location will be filled via third-party service (Zoom, GoToMeeting, etc.)", + "example": false, + "type": "boolean" + }, + "id": { + "description": "ID of the MeetingSetting", + "example": 1, + "type": "integer" + }, + "location": { + "description": "Default location of the meeting", + "example": "Atlanta, GA", + "type": "string" + }, + "primary_calendar_connection_failed": { + "description": "Gets true when any issue with fetching calendar occurs", + "example": false, + "type": "boolean" + }, + "primary_calendar_id": { + "description": "ID of the primary calendar", + "example": "a98iu0@group.calendar.google.com", + "type": "string" + }, + "primary_calendar_name": { + "description": "Display name of the primary calendar", + "example": "My Meetings Calendar", + "type": "string" + }, + "schedule_buffer_enabled": { + "description": "Determines if meetings are scheduled with a 15 minute buffer between them", + "example": true, + "type": "boolean" + }, + "schedule_delay": { + "description": "The number of hours in advance a user requires someone to a book a meeting with them", + "example": 2, + "type": "integer" + }, + "share_event_detail": { + "description": "Allow team members to see the details of events on your calendar.", + "example": false, + "type": "boolean" + }, + "time_zone": { + "description": "Time zone for current calendar", + "example": "US/Eastern", + "type": "string" + }, + "times_available": { + "description": "Times available set by a user that can be used to book meetings", + "example": { + "monday": { + "enabled": true, + "end_time": "17:00", + "start_time": "09:00" + } + }, + "type": "object" + }, + "title": { + "description": "Default title of the meeting", + "example": "Daily stand-up", + "type": "string" + }, + "updated_at": { + "description": "Datetime of when the MeetingSetting was last updated", + "example": "2022-09-15T11:40:59.055628+03:00", + "format": "date", + "type": "string" + }, + "user": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "user_details": { + "description": "User details", + "example": { + "email": "john.doe@salesloft.com", + "name": "John Doe" + }, + "type": "object" + }, + "user_slug": { + "description": "User slug generated with a full name of the user", + "example": "john-doe", + "type": "string" + } + } + }, + "MeetingUrl": { + "properties": { + "created_at": { + "description": "Datetime of when MeetingUrl was created", + "example": "2022-09-15T11:40:59.056237+03:00", + "format": "date", + "type": "string" + }, + "updated_at": { + "description": "Datetime of when MeetingUrl was last updated", + "example": "2022-09-15T11:40:59.056272+03:00", + "format": "date", + "type": "string" + }, + "url": { + "description": "Full url of the meeting", + "example": "https://example.com/team/user", + "type": "string" + } + } + }, + "MimeEmailPayload": { + "properties": { + "id": { + "description": "Email ID", + "example": 1, + "type": "integer" + }, + "mailbox": { + "description": "Email Address of Sender's mailbox", + "example": "example@salesloft.com", + "type": "string" + }, + "message_id": { + "description": "Unique Message ID", + "example": "CAKseEdbTMcU-U0CeTkUSo5X4jyW8QPReVTyPA6CrUCf0ggZwHQ@mail.salesloft.com", + "type": "string" + }, + "raw": { + "description": "Base64 encoded MIME email content", + "example": "ZW1haWwgZXhhbXBsZQ==\n", + "type": "string" + } + } + }, + "Note": { + "properties": { + "associated_type": { + "description": "Type of associated resource ('person' or 'account')", + "example": "person", + "type": "string" + }, + "associated_with": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "call": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "content": { + "description": "The content of the note", + "example": "Was very interested in a demo at a later time", + "type": "string" + }, + "created_at": { + "description": "Datetime of when the note was created", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "id": { + "description": "Note ID", + "example": 1, + "type": "integer" + }, + "updated_at": { + "description": "Datetime of when the note was last updated", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "user": { + "$ref": "#/components/schemas/EmbeddedResource" + } + } + }, + "PendingEmail": { + "properties": { + "id": { + "description": "ID of the email", + "example": 1, + "type": "integer" + }, + "mailbox": { + "description": "Email Address of the pending email", + "example": "example@salesloft.com", + "type": "string" + }, + "mime_email_payload": { + "$ref": "#/components/schemas/EmbeddedResource" + } + } + }, + "Person": { + "properties": { + "account": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "bouncing": { + "description": "Whether this person's current email address has bounced", + "example": false, + "type": "boolean" + }, + "cadences": { + "description": "The list of active cadences person is added to", + "example": [ + { + "_href": "https://api.salesloft.com/v2/cadences/1", + "id": 1 + } + ], + "items": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "type": "array" + }, + "city": { + "description": "City", + "example": "Atlanta", + "type": "string" + }, + "contact_restrictions": { + "description": "Specific methods of communication to prevent for this person. This will prevent individual execution of these communication types as well as automatically skip cadence steps of this communication type for this person in SalesLoft. Values currently accepted: call, email, message", + "example": ["call", "email", "message"], + "items": { + "type": "string" + }, + "type": "array" + }, + "country": { + "description": "Country", + "example": "United States", + "type": "string" + }, + "counts": { + "$ref": "#/components/schemas/PersonCounts" + }, + "created_at": { + "description": "Datetime of when the person was created", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "crm_id": { + "description": "CRM ID", + "example": "003i000001mnhpD", + "type": "string" + }, + "crm_object_type": { + "description": "CRM object type", + "example": "Lead", + "type": "string" + }, + "crm_url": { + "description": "CRM url", + "example": "https://na15.salesforce.com/003i000001mnhpD", + "type": "string" + }, + "custom_fields": { + "description": "Custom fields are defined by the user's team. Only fields with values are presented in the API.", + "example": { + "MyField": "A Value", + "Other": "Field" + }, + "type": "object" + }, + "display_name": { + "description": "Either the full name or the email address. Use this when showing a person's name", + "example": "Pat Johnson", + "type": "string" + }, + "do_not_contact": { + "description": "Whether or not this person has opted out of all communication. Setting this value to true prevents this person from being called, emailed, or added to a cadence in SalesLoft. If this person is currently in a cadence, they will be removed.", + "example": true, + "type": "boolean" + }, + "email_address": { + "description": "Email address", + "example": "pat.johnson@example.com", + "type": "string" + }, + "eu_resident": { + "description": "Whether this person is marked as a European Union Resident or not", + "example": false, + "type": "boolean" + }, + "first_name": { + "description": "First name", + "example": "Pat", + "type": "string" + }, + "full_email_address": { + "description": "Full email address with name", + "example": "Pat Johnson ", + "type": "string" + }, + "home_phone": { + "description": "Home phone without formatting", + "example": "+1 444 555 6666", + "type": "string" + }, + "id": { + "description": "Person ID", + "example": 1, + "type": "integer" + }, + "import": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "job_seniority": { + "description": "The Job Seniority of a Person, must be one of director, executive, individual_contributor, manager, vice_president, unknown", + "example": "vice_president", + "type": "string" + }, + "last_completed_step": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "last_completed_step_cadence": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "last_contacted_at": { + "description": "Last datetime this person was contacted", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "last_contacted_by": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "last_contacted_type": { + "description": "The type of the last touch to this person. Can be call, email, other", + "example": "call", + "type": "string" + }, + "last_name": { + "description": "Last name", + "example": "Johnson", + "type": "string" + }, + "last_replied_at": { + "description": "Last datetime this person replied to an email", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "linkedin_url": { + "description": "Linkedin URL", + "example": "https://www.linkedin.com/in/username", + "type": "string" + }, + "locale": { + "description": "Time locale of the person", + "example": "US/Eastern", + "type": "string" + }, + "locale_utc_offset": { + "description": "The locale's timezone offset from UTC in minutes", + "example": -480, + "type": "integer" + }, + "mobile_phone": { + "description": "Mobile phone without formatting", + "example": "+1 444 555 6666", + "type": "string" + }, + "most_recent_cadence": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "owner": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "owner_crm_id": { + "description": "Mapped owner field from your CRM", + "example": "003i000001mnhpD", + "type": "string" + }, + "person_company_industry": { + "description": "Company industry. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended", + "example": "Information Technology", + "type": "string" + }, + "person_company_name": { + "description": "Company name. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended", + "example": "SalesLoft", + "type": "string" + }, + "person_company_website": { + "description": "Company website. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended", + "example": "https://salesloft.com", + "type": "string" + }, + "person_stage": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "personal_email_address": { + "description": "Personal email address", + "example": "pat.johnson@example.com", + "type": "string" + }, + "personal_website": { + "description": "The website of this person", + "example": "https://salesloft.com", + "type": "string" + }, + "phone": { + "description": "Phone without formatting", + "example": "+1 444 555 6666", + "type": "string" + }, + "phone_extension": { + "description": "Phone extension without formatting", + "example": "x123", + "type": "string" + }, + "secondary_email_address": { + "description": "Alternate email address", + "example": "pat.johnson@example.com", + "type": "string" + }, + "starred": { + "description": "Whether this person is starred by the current user", + "example": true, + "type": "boolean" + }, + "state": { + "description": "State", + "example": "Georgia", + "type": "string" + }, + "success_count": { + "description": "The person's success count. 1 if person has any active successes, 0 otherwise.", + "example": 1, + "type": "integer" + }, + "tags": { + "description": "All tags applied to this person", + "example": ["7-23-2017", "dreamforce"], + "items": { + "type": "string" + }, + "type": "array" + }, + "title": { + "description": "Job title", + "example": "Sales Development Representative", + "type": "string" + }, + "twitter_handle": { + "description": "The twitter handle of this person", + "example": "@kyleporter", + "type": "string" + }, + "untouched": { + "description": "The person's untouched status", + "example": false, + "type": "boolean" + }, + "updated_at": { + "description": "Datetime of when the person was last updated", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "work_city": { + "description": "Work location - city", + "example": "Atlanta", + "type": "string" + }, + "work_country": { + "description": "Work location - country", + "example": "United States", + "type": "string" + }, + "work_state": { + "description": "Work location - state", + "example": "Georgia", + "type": "string" + } + } + }, + "PersonCounts": { + "properties": { + "calls": { + "description": "The number of calls logged to this person", + "example": 4, + "type": "integer" + }, + "emails_bounced": { + "description": "The number of unique emails sent to this person that bounced", + "example": 0, + "type": "integer" + }, + "emails_clicked": { + "description": "The number of unique emails clicked by this person", + "example": 1, + "type": "integer" + }, + "emails_replied_to": { + "description": "The number of unique emails replied to by this person", + "example": 0, + "type": "integer" + }, + "emails_sent": { + "description": "The number of emails sent to this person", + "example": 3, + "type": "integer" + }, + "emails_viewed": { + "description": "The number of unique emails viewed by this person", + "example": 2, + "type": "integer" + } + } + }, + "PersonStage": { + "properties": { + "created_at": { + "description": "Datetime of when the Person Stage was created", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "id": { + "description": "ID of Person Stage", + "example": 1, + "type": "integer" + }, + "name": { + "description": "Name of Person Stage", + "example": "Entry Stage", + "type": "string" + }, + "order": { + "description": "Sortable value of Person Stage order", + "example": 16, + "type": "integer" + }, + "updated_at": { + "description": "Datetime of when the Person Stage was last updated", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + } + } + }, + "PersonUpsert": { + "properties": { + "person": { + "$ref": "#/components/schemas/Person" + }, + "upsert_type": { + "description": "The type of upsert. One of: create, update", + "type": "string" + } + } + }, + "PhoneNumberAssignment": { + "properties": { + "id": { + "description": "PhoneNumberAssignment ID", + "example": 1, + "type": "integer" + }, + "number": { + "description": "The phone number associated with this assignment", + "example": "+12223334444", + "type": "string" + }, + "user": { + "$ref": "#/components/schemas/EmbeddedResource" + } + } + }, + "RecordingSetting": { + "properties": { + "recording_default": { + "description": "Whether this phone number should record by default", + "example": true, + "type": "boolean" + } + } + }, + "SavedListView": { + "properties": { + "id": { + "description": "ID of Ssaved list view", + "example": 1, + "type": "integer" + }, + "is_default": { + "description": "Whether the saved list view is the default view", + "example": true, + "type": "boolean" + }, + "name": { + "description": "Name of saved list view", + "example": "Tom's Prospects", + "type": "string" + }, + "view": { + "description": "Type of saved list view", + "example": "companies", + "type": "string" + }, + "view_params": { + "description": "List of set filters in saved list view", + "example": { + "owner": "unowned", + "stage": "28865", + "unowned": true + }, + "type": "object" + } + } + }, + "Step": { + "properties": { + "cadence": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "created_at": { + "description": "Datetime of when the Step was created", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "day": { + "description": "Day this step is associated with up", + "example": 1, + "type": "integer" + }, + "details": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "disabled": { + "description": "Whether this step is currently active", + "example": true, + "type": "boolean" + }, + "display_name": { + "description": "Display name of the step", + "example": "Day 1: Step 2 - Phone", + "type": "string" + }, + "id": { + "description": "ID of Step", + "example": 1, + "type": "integer" + }, + "multitouch_enabled": { + "description": "Whether this step is a multitouch cadence step", + "example": false, + "type": "boolean" + }, + "name": { + "description": "Name of the step", + "example": "VP Email Short", + "type": "string" + }, + "step_number": { + "description": "The number of the step for this day", + "example": 1, + "type": "integer" + }, + "type": { + "description": "The type of the action scheduled by this step. Valid types are: email, phone, integration, other. New types may be added in the future.\n", + "example": "phone", + "type": "string" + }, + "updated_at": { + "description": "Datetime of when the Step was last updated", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + } + } + }, + "Subscription": { + "properties": { + "callback_token": { + "description": "SalesLoft will include this token in the webhook event payload when calling your callback_url. It is strongly encouraged for your handler to verify this value in order to ensure the request came from SalesLoft.", + "example": "xT7/Buu0Vz2ffiIPuMlBGu+cwku1dr7G5jeiM0iyfYIT0l4z3azNGjiXWTOX/8OT", + "type": "string" + }, + "callback_url": { + "description": "URL for your callback handler", + "example": "https://mycompany.com/api/person_called_handler", + "type": "string" + }, + "enabled": { + "description": "Is the Webhook Subscription enabled or not", + "example": true, + "type": "boolean" + }, + "event_type": { + "description": "Type of event the subscription is for", + "example": "link_swap", + "type": "string" + }, + "id": { + "description": "ID for the Webhook Subscription", + "example": 1, + "type": "integer" + }, + "tenant_id": { + "description": "ID for the tenant to which user is assigned", + "example": 16, + "type": "integer" + }, + "user_guid": { + "description": "UUID of the user the token is associated with", + "example": "51398ccd-309e-467f-aae2-4b0f66b5c11d", + "type": "string" + } + } + }, + "Success": { + "properties": { + "counts": { + "$ref": "#/components/schemas/SuccessCounts" + }, + "created_at": { + "description": "Datetime of when the success was created", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "id": { + "description": "ID of success", + "example": 1, + "type": "integer" + }, + "latest_action": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "latest_cadence": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "latest_call": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "latest_email": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "latest_step": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "person": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "succeeded_at": { + "description": "Datetime of when the success was recorded", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "success_window_started_at": { + "description": "Datetime of when this person was first worked, leading up to the success", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "updated_at": { + "description": "Datetime of when the success was last updated", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "user": { + "$ref": "#/components/schemas/EmbeddedResource" + } + } + }, + "SuccessCounts": { + "properties": { + "total_calls": { + "description": "The total number of calls made in this success window", + "example": 5, + "type": "integer" + }, + "total_emails": { + "description": "The total number of emails made in this success window", + "example": 2, + "type": "integer" + }, + "total_other_touches": { + "description": "The total number of other touches made in this success window", + "example": 3, + "type": "integer" + } + } + }, + "Tag": { + "properties": { + "id": { + "description": "ID of Tag", + "example": 1, + "type": "integer" + }, + "name": { + "description": "Name of the tag", + "example": "marketing", + "type": "string" + } + } + }, + "Task": { + "properties": { + "completed_at": { + "description": "Datetime of when the task was completed, ISO-8601 datetime format required", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "completed_by": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "created_at": { + "description": "Datetime of when the Task was created", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "created_by_user": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "current_state": { + "description": "The state of the task. Valid states are: scheduled, completed", + "example": "scheduled", + "type": "string" + }, + "description": { + "description": "A description of the task recorded for person at completion time", + "example": "Ask John Wick about his dog.", + "type": "string" + }, + "due_at": { + "description": "Datetime of when the Task is due, can be null. ISO-8601 datetime format required", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "due_date": { + "description": "Date of when the Task is due, ISO-8601 date format required", + "example": "2024-01-01", + "format": "date", + "type": "string" + }, + "id": { + "description": "ID of Task", + "example": 1, + "type": "integer" + }, + "person": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "remind_at": { + "description": "Datetime of when the user will be reminded of the task, ISO-8601 datetime format required", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "subject": { + "description": "Subject line of the task", + "example": "Call John Wick", + "type": "string" + }, + "task_type": { + "description": "The type of the task. Valid types are: call, email, general", + "example": "call", + "type": "string" + }, + "updated_at": { + "description": "Datetime of when the Task was last updated", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "user": { + "$ref": "#/components/schemas/EmbeddedResource" + } + } + }, + "Team": { + "properties": { + "_private_fields": { + "description": "For internal use only. This field does not comply with our backwards compatability policies.", + "example": {}, + "type": "object" + }, + "allow_automated_email_steps": { + "description": "Whether team members are allowed to have automated email steps", + "example": true, + "type": "boolean" + }, + "call_recording_disabled": { + "description": "Whether all call recording is disabled", + "example": false, + "type": "boolean" + }, + "click_tracking_default": { + "description": "The team default for click tracking when composing emails", + "example": true, + "type": "boolean" + }, + "created_at": { + "description": "Datetime of when the team was created", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "custom_tracking_domain": { + "description": "The domain click and open tracking will be proxied through", + "example": "examplecompany.com", + "type": "string" + }, + "deactivated": { + "description": "Indicates if the team has been deactivated", + "example": true, + "type": "boolean" + }, + "dispositions_required": { + "description": "Whether team members are required to mark disposition at the end of calls", + "example": false, + "type": "boolean" + }, + "email_daily_limit": { + "description": "Daily email limit for each member on the team", + "example": 1000, + "type": "integer" + }, + "group_privacy_setting": { + "description": "Visibility setting for resources across the team. Possible values are: group_public, all_public.\nWhen the value is group_public, certain resources will only be visible to members of the same group.\nWhen the value is all_public, all resources are visible to all users on this team.\n", + "example": "all_public", + "type": "string" + }, + "id": { + "description": "Team ID", + "example": 1, + "type": "integer" + }, + "license_limit": { + "description": "Count of seats that this team has licensed", + "example": 100, + "type": "integer" + }, + "local_dial_enabled": { + "description": "Whether this team has local dial enabled", + "example": true, + "type": "boolean" + }, + "name": { + "description": "Team name", + "example": "The A-Team", + "type": "string" + }, + "plan": { + "description": "Plan type of the team, Possible values are: group, professional, enterprise", + "example": "professional", + "type": "string" + }, + "plan_features": { + "description": "Add on features for this team", + "example": { + "opportunity_management": "Opportunity Management" + }, + "type": "object" + }, + "record_by_default": { + "description": "Whether calls will record by default", + "example": true, + "type": "boolean" + }, + "sentiments_required": { + "description": "Whether team members are required to log sentiments", + "example": false, + "type": "boolean" + }, + "team_visibility_default": { + "description": "The default visibility of resources on the team, in the UI only. The API does not utilize this default.\nPossible values are: public, private.\n", + "example": "public", + "type": "string" + }, + "updated_at": { + "description": "Datetime of when the team was last updated", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + } + } + }, + "TeamTemplate": { + "properties": { + "_links": { + "description": "Links to attachments resource for this template ", + "example": { + "attachments": "https://api.salesloft.com/v2/team_template_attachments?team_template_id[]=1" + }, + "type": "object" + }, + "archived_at": { + "description": "Datetime of when the team template was archived, if archived", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "body": { + "description": "Body of the team template", + "example": "
Do you know about birds?
", + "type": "string" + }, + "body_preview": { + "description": "A plain text version of the first 100 characters of the body of the team template", + "example": "hello\n\nhey sounds good\n\nok\n\nok\n\nwith an edit\n\nok now i'm comic sans 14", + "type": "string" + }, + "click_tracking_enabled": { + "description": "Whether click tracking is enabled for this team template", + "example": true, + "type": "boolean" + }, + "counts": { + "$ref": "#/components/schemas/TeamTemplateCounts" + }, + "created_at": { + "description": "Datetime of when the team template was created", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "id": { + "description": "ID of team template", + "example": "51226150-3108-4dea-883b-0c0d7388f456", + "type": "string" + }, + "last_modified_at": { + "description": "Datetime of when the team template was last modified", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "last_modified_user": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "last_used_at": { + "description": "Datetime of when the team template was last used", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "open_tracking_enabled": { + "description": "Whether open tracking is enabled for this team template", + "example": true, + "type": "boolean" + }, + "subject": { + "description": "Subject of the team template", + "example": "It’s time to say goodbye", + "type": "string" + }, + "tags": { + "description": "All tags applied to this team template", + "example": ["7-23-2017", "internal"], + "items": { + "type": "string" + }, + "type": "array" + }, + "title": { + "description": "Title of the team template", + "example": "VP Breakup Email", + "type": "string" + }, + "updated_at": { + "description": "Datetime of when the team template was last updated", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + } + } + }, + "TeamTemplateAttachment": { + "properties": { + "attachment_file_size": { + "description": "The size of the attachment", + "example": 2, + "type": "integer" + }, + "attachment_id": { + "description": "ID of the team template attachment", + "type": "integer" + }, + "download_url": { + "description": "Download url of the attachment", + "example": "https://path/to/example_attachment.gif", + "type": "string" + }, + "id": { + "description": "ID of team template attachment association", + "example": 5, + "type": "integer" + }, + "name": { + "description": "Name of the attachment", + "example": "example_attachment.gif", + "type": "string" + }, + "team_template": { + "$ref": "#/components/schemas/EmbeddedResource" + } + } + }, + "TeamTemplateCounts": { + "properties": { + "bounces": { + "description": "The number of bounces the team template received", + "example": 10, + "type": "integer" + }, + "clicks": { + "description": "The number of times links in the team template were clicked", + "example": 20, + "type": "integer" + }, + "replies": { + "description": "The number of replies the team template received", + "example": 1, + "type": "integer" + }, + "sent_emails": { + "description": "The number of times the team template was sent out", + "example": 59, + "type": "integer" + }, + "views": { + "description": "The number of times the team template was opened", + "example": 3, + "type": "integer" + } + } + }, + "User": { + "properties": { + "_private_fields": { + "description": "For internal use only. This field does not comply with our backwards compatability policies.", + "example": {}, + "type": "object" + }, + "active": { + "description": "Whether an user is currently active in SalesLoft", + "example": true, + "type": "boolean" + }, + "bcc_email_address": { + "description": "Address that will be BBC'd on all emails from this user", + "example": "fake@salesloft.com", + "type": "string" + }, + "click_to_call_enabled": { + "description": "Whether this user has click to call enabled", + "example": true, + "type": "boolean" + }, + "created_at": { + "description": "Datetime of when the user was created", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "crm_connected": { + "description": "Whether the user has a crm connected", + "example": true, + "type": "boolean" + }, + "email": { + "description": "Email address provided to accounts.salesloft.com", + "example": "fake@salesloft.com", + "type": "string" + }, + "email_client_configured": { + "description": "Whether this user has a email client configured", + "example": true, + "type": "boolean" + }, + "email_client_email_address": { + "description": "Email address associated with the email client of the user", + "example": "fake@salesloft.com", + "type": "string" + }, + "email_signature": { + "description": "Email signature", + "example": "Benjamin Franklin
", + "type": "string" + }, + "email_signature_click_tracking_disabled": { + "description": "Whether this user has click tracking disabled in email signature", + "example": false, + "type": "boolean" + }, + "email_signature_type": { + "description": "Email signature type", + "example": "html", + "type": "string" + }, + "external_feature_flags": { + "description": "Feature flags that are for this user. New flags may appear or disappear at any time", + "example": {}, + "type": "object" + }, + "first_name": { + "description": "First name of user", + "example": "Benjamin", + "type": "string" + }, + "from_address": { + "description": "The from address of this user", + "example": "fake@salesloft.com", + "type": "string" + }, + "full_email_address": { + "description": "RFC 5322 compliant email address", + "example": "\"Benjamin Franklin\" ", + "type": "string" + }, + "group": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "guid": { + "description": "Globally unique user ID. New endpoints will explicitly accept this over id", + "example": "9cc6da15-d403-4f5b-aeed-c4b8463cf9ae", + "type": "string" + }, + "id": { + "description": "User ID", + "example": 1, + "type": "integer" + }, + "job_role": { + "description": "Job role of user", + "example": "SDR / BDR", + "type": "string" + }, + "last_name": { + "description": "Last name of user", + "example": "Franklin", + "type": "string" + }, + "local_dial_enabled": { + "description": "Whether this user has Local Dial enabled", + "example": true, + "type": "boolean" + }, + "name": { + "description": "Display name of user", + "example": "Benjamin Franklin", + "type": "string" + }, + "phone_client": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "phone_number_assignment": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "role": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "sending_email_address": { + "description": "The email address that email of the user will be sent from, resolved in the following resolution order: from_user, email_client_email_address, email", + "example": "fake@salesloft.com", + "type": "string" + }, + "slack_username": { + "description": "Slack username", + "example": "benjamin-franklin", + "type": "string" + }, + "team": { + "$ref": "#/components/schemas/EmbeddedResource" + }, + "team_admin": { + "description": "Team Admin", + "example": true, + "type": "boolean" + }, + "time_zone": { + "description": "User Time Zone", + "example": "US/Eastern", + "type": "string" + }, + "twitter_handle": { + "description": "Twitter handle", + "example": "@benjamin-franklin", + "type": "string" + }, + "updated_at": { + "description": "Datetime of when the user was last updated", + "example": "2023-01-01T00:00:00.000000-05:00", + "format": "date-time", + "type": "string" + }, + "work_country": { + "description": "Work Country", + "example": "PE", + "type": "string" + } + } + } + }, + "securitySchemes": { + "OAuth2": { + "flows": { + "clientCredentials": { + "scopes": {}, + "tokenUrl": "https://accounts.salesloft.com/oauth/token" + } + }, + "type": "oauth2" + } + } + } +} diff --git a/packages/core/remotes/impl/salesloft/salesloft.openapi.yaml b/packages/core/remotes/impl/salesloft/salesloft.openapi.yaml deleted file mode 100644 index aa2832c9b..000000000 --- a/packages/core/remotes/impl/salesloft/salesloft.openapi.yaml +++ /dev/null @@ -1,9868 +0,0 @@ -openapi: 3.0.0 -servers: - - url: https://api.salesloft.com -info: - contact: - email: integrations@salesloft.com - x-twitter: SalesLoft - description: | - SalesLoft helps transform sales teams into modern sales organizations - converting more target accounts into customer accounts - title: SalesLoft Platform - version: v2 - x-apisguru-categories: - - customer_relation - x-logo: - url: https://api.apis.guru/v2/cache/logo/https_twitter.com_SalesLoft_profile_image.jpeg - x-origin: - - format: openapi - url: https://developers.salesloft.com/v2_api_def.json - version: "3.0" - x-providerName: salesloft.com -tags: - - description: User Information - name: Me - - description: Team Information - name: Team - - description: Account Management - name: Accounts - - description: Account Stage Management - name: Account Stages - - description: Account Tier Information - name: Account Tiers - - description: Account Upsert - name: Account Upsert - - description: Actions - name: Actions - - description: Actions - Call Instructions - name: Action Details - Call Instructions - - description: Activities - name: Activities - - description: Activity Histories - name: Activity Histories - - description: Bulk Jobs - name: Bulk Jobs - - description: Bulk Jobs - Job Data - name: Bulk Jobs - Job Data - - description: Bulk Jobs - Results - name: Bulk Jobs - Results - - description: Cadence Exports - name: Cadence Exports - - description: Cadence Importing - name: Cadence Imports - - description: Cadence Management - name: Cadences - - description: Cadence Membership - name: Cadence Memberships - - description: Calendar Events - name: Calendar Events - - description: Call Data Record Management - name: Call Data Records - - description: Call Dispositions - name: Call Dispositions - - description: Call Management - name: Calls - - description: Call Sentiments - name: Call Sentiments - - description: Caller ID Information - name: Caller IDs - - description: Conversations Calls - name: Conversations Calls - - description: CRM Activity Fields - name: CRM Activity Fields - - description: CRM Activity Management - name: CRM Activities - - description: Crm Users - name: Crm Users - - description: Custom Field Management - name: Custom Fields - - description: Email Management - name: Emails - - description: Email Template Attachments - name: Email Template Attachments - - description: Email Templates Management - name: Email Templates - - description: External Emails - name: External Emails - - description: Group Management - name: Groups - - description: Import Management - name: Imports - - description: Live Feed Items - name: Live Feed Items - - description: Live Website Tracking Parameters - name: Live Website Tracking Parameters - - description: Meetings - name: Meetings - - description: Meetings Settings - name: Meeting Settings - - description: Meetings Settings - Searches - name: Meetings Settings - Searches - - description: MIME content for email - name: Mime Email Payloads - - description: Note Management - name: Notes - - description: Ongoing Actions - name: Ongoing Actions - - description: Pending Emails - name: Pending Emails - - description: Person Management - name: People - - description: Person Stage Management - name: Person Stages - - description: Person Upsert - name: Person Upsert - - description: Phone Number Assignments - name: Phone Number Assignments - - description: Recording Settings Information - name: Recording Settings - - description: Saved List Views - name: Saved List Views - - description: Steps - name: Steps - - description: Success Management - name: Successes - - description: Tags - name: Tags - - description: Tasks - name: Tasks - - description: Team Template Attachments - name: Team Template Attachments - - description: Team Template Management - name: Team Templates - - description: User Management - name: Users - - description: Webhook Subscriptions - name: Webhook Subscriptions -paths: - /v2/account_stages.json: - get: - description: | - Fetches multiple account stage records. The records can be filtered, paged, and sorted according to - the respective parameters. - parameters: - - description: IDs of account stages to fetch. If a record can't be found, that record won't be returned and your request will be successful - explode: false - in: query - name: ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: | - Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. - - ---CUSTOM--- - {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} - explode: false - in: query - name: updated_at - required: false - schema: - items: - type: string - type: array - style: form - - description: "Key to sort on, must be one of: created_at, updated_at, order. Defaults to updated_at" - in: query - name: sort_by - required: false - schema: - type: string - - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" - in: query - name: sort_direction - required: false - schema: - type: string - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data - in: query - name: limit_paging_counts - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/AccountStage" - type: array - description: Success - summary: List account stages - tags: - - Account Stages - "/v2/account_stages/{id}.json": - get: - description: | - Fetches an account stage, by ID only. - parameters: - - description: Account Stage ID - in: path - name: id - required: true - schema: - type: string - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/AccountStage" - description: Success - summary: Fetch an account stage - tags: - - Account Stages - /v2/account_tiers.json: - get: - description: | - Fetches multiple account tier records. The records can be filtered, paged, and sorted according to - the respective parameters. - parameters: - - description: IDs of Account Tiers to fetch. If a record can't be found, that record won't be returned and your request will be successful - explode: false - in: query - name: ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: Filters Account Tiers by name. Multiple names can be applied - explode: false - in: query - name: name - required: false - schema: - items: - type: string - type: array - style: form - - description: "Key to sort on, must be one of: created_at, updated_at, order. Defaults to updated_at" - in: query - name: sort_by - required: false - schema: - type: string - - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" - in: query - name: sort_direction - required: false - schema: - type: string - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data - in: query - name: limit_paging_counts - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/AccountTier" - type: array - description: Success - summary: List Account Tiers - tags: - - Account Tiers - "/v2/account_tiers/{id}.json": - get: - description: | - Fetches an account tier, by ID only. - parameters: - - description: Account Tier ID - in: path - name: id - required: true - schema: - type: string - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/AccountTier" - description: Success - summary: Fetch an account tier - tags: - - Account Tiers - /v2/account_upserts.json: - post: - description: | - Upserts an account record. The upsert_key dictates how the upsert will be performed. The create and update behavior - is exactly the same as the individual create and update endpoints. - requestBody: - content: - application/x-www-form-urlencoded: - schema: - properties: - account_tier_id: - description: ID of the Account Tier for this Account - type: integer - city: - description: City - type: string - company_stage_id: - description: ID of the CompanyStage assigned to this Account - type: integer - company_type: - description: Type of the Account's company - type: string - conversational_name: - description: Conversational name of the Account - type: string - country: - description: Country - type: string - crm_id: - description: |+ - Requires Salesforce. - - ID of the person in your external CRM. You must provide a crm_id_type if this is included. - - Validations will be applied to the crm_id depending on the crm_id_type. A "salesforce" ID must be exactly 18 characters. A "salesforce" ID must be either an Account (001) object. The type will be validated using the 18 character ID. - - This field can only be used if your application or API key has the "account:set_crm_id" scope. - - type: string - crm_id_type: - description: "The CRM that the provided crm_id is for. Must be one of: salesforce" - type: string - custom_fields: - description: Custom fields are defined by the user's team. Only fields with values are presented in the API. - items: - type: object - type: array - description: - description: Description - type: string - do_not_contact: - description: Whether this company can not be contacted. Values are either true or false. Setting this to true will remove all associated people from all active communications - type: boolean - domain: - description: Website domain, not a fully qualified URI - type: string - founded: - description: Date or year of founding - type: string - id: - description: | - ID of the account to update. Used if the upsert_key=id. When id and another upsert_key are provided, - the request will fail if the upsert record id and id parameter don't match. - type: integer - industry: - description: Industry - type: string - linkedin_url: - description: Full LinkedIn url - type: string - locale: - description: Time locale - type: string - name: - description: Account Full Name - type: string - owner_id: - description: ID of the User that owns this Account - type: integer - phone: - description: Phone number without formatting - type: string - postal_code: - description: Postal code - type: string - revenue_range: - description: Estimated revenue range - type: string - size: - description: Estimated number of people in employment - type: string - state: - description: State - type: string - street: - description: Street name and number - type: string - tags: - description: All tags applied to this Account - items: - type: string - type: array - twitter_handle: - description: Twitter handle, with @ - type: string - upsert_key: - description: | - Name of the parameter to upsert on. The field must be provided in the input parameters, or the request will fail. - The request will also fail if there are multiple records matched by the upsert field. - - If upsert_key is not provided, this endpoint will not update an existing record. - - Valid options are: id, crm_id, domain. If crm_id is provided, then a valid crm_id_type must be provided, as documented - for the account create and update endpoints. - type: string - website: - description: Website - type: string - required: - - name - - domain - type: object - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/AccountUpsert" - description: Success - summary: Upsert an account - tags: - - Account Upsert - /v2/accounts.json: - get: - description: | - Fetches multiple account records. The records can be filtered, paged, and sorted according to - the respective parameters. - parameters: - - description: IDs of accounts to fetch. If a record can't be found, that record won't be returned and your request will be successful - explode: false - in: query - name: ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: Filters accounts by crm_id. Multiple crm ids can be applied - explode: false - in: query - name: crm_id - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters accounts by the tags applied to the account. Multiple tags can be applied - explode: false - in: query - name: tag - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters accounts by the tag id's applied to the account. Multiple tag id's can be applied - explode: false - in: query - name: tag_id - required: false - schema: - items: - type: integer - type: array - style: form - - description: | - Equality filters that are applied to the created_at field. A single filter can be used by itself or combined with other filters to create a range. - - ---CUSTOM--- - {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} - explode: false - in: query - name: created_at - required: false - schema: - items: - type: string - type: array - style: form - - description: | - Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. - - ---CUSTOM--- - {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} - explode: false - in: query - name: updated_at - required: false - schema: - items: - type: string - type: array - style: form - - description: Domain of the accounts to fetch. Domains are unique and lowercase - in: query - name: domain - required: false - schema: - type: string - - description: Filters accounts by website. Multiple websites can be applied. An additional value of "_is_null" can be passed to filter accounts that do not have a website. - explode: false - in: query - name: website - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters accounts by archived_at status. Returns only accounts where archived_at is not null if this field is true. Returns only accounts where archived_at is null if this field is false. Do not pass this parameter to return both archived and unarchived accounts. This filter is not applied if any value other than "true" or "false" is passed. - in: query - name: archived - required: false - schema: - type: boolean - - description: Names of accounts to fetch. Name matches are exact and case sensitive. Multiple names can be fetched. - explode: false - in: query - name: name - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters accounts by account_stage_id. Multiple account_stage_ids can be applied. An additional value of "_is_null" can be passed to filter accounts that do not have account_stage_id - explode: false - in: query - name: account_stage_id - required: false - schema: - items: - type: integer - type: array - style: form - - description: Filters accounts by account_tier_id. Multiple account tier ids can be applied - explode: false - in: query - name: account_tier_id - required: false - schema: - items: - type: integer - type: array - style: form - - description: Filters accounts by owner_id. Multiple owner_ids can be applied. An additional value of "_is_null" can be passed to filter accounts that are unowned - explode: false - in: query - name: owner_id - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters accounts by whether the owner is active or not. - in: query - name: owner_is_active - required: false - schema: - type: boolean - - description: | - Equality filters that are applied to the last_contacted field. A single filter can be used by itself or combined with other filters to create a range. - Additional values of "_is_null" or "_is_not_null" can be passed to filter records that either have no timestamp value or any timestamp value. - ---CUSTOM--- - {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} - in: query - name: last_contacted - required: false - schema: - type: object - - description: "Filters by accounts matching all given custom fields. The custom field names are case-sensitive, but the provided values are case-insensitive. Example: v2/accounts?custom_fields[custom_field_name]=custom_field_value" - in: query - name: custom_fields - required: false - schema: - type: object - - description: Filters accounts by industry by exact match. Supports partial matching - explode: false - in: query - name: industry - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters accounts by country by exact match. Supports partial matching - explode: false - in: query - name: country - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters accounts by state by exact match. Supports partial matching - explode: false - in: query - name: state - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters accounts by city by exact match. Supports partial matching - explode: false - in: query - name: city - required: false - schema: - items: - type: string - type: array - style: form - - description: 'Filters accounts by owner_crm_id. Multiple owner_crm_ids can be applied. An additional value of "_is_null" can be passed to filter accounts that are unowned. A "_not_in" modifier can be used to exclude specific owner_crm_ids. Example: v2/accounts?owner_crm_id[_not_in]=id' - explode: false - in: query - name: owner_crm_id - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters accounts by locale. Multiple locales are allowed - explode: false - in: query - name: locales - required: false - schema: - items: - type: string - type: array - style: form - - description: "Filters by accounts matching all given user relationship fields, _is_null or _unmapped can be passed to filter accounts with null or unmapped user relationship values. Example: v2/accounts?user_relationships[name]=value" - in: query - name: user_relationships - required: false - schema: - type: object - - description: "Key to sort on, must be one of: created_at, updated_at, last_contacted_at, account_stage, account_stage_name, account_tier, account_tier_name, name, counts_people. Defaults to updated_at" - in: query - name: sort_by - required: false - schema: - type: string - - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" - in: query - name: sort_direction - required: false - schema: - type: string - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data - in: query - name: limit_paging_counts - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/Account" - type: array - description: Success - summary: List accounts - tags: - - Accounts - post: - description: | - Creates an account. - - "domain" must be unique on the current team. - requestBody: - content: - application/x-www-form-urlencoded: - schema: - properties: - account_tier_id: - description: ID of the Account Tier for this Account - type: integer - city: - description: City - type: string - company_stage_id: - description: ID of the CompanyStage assigned to this Account - type: integer - company_type: - description: Type of the Account's company - type: string - conversational_name: - description: Conversational name of the Account - type: string - country: - description: Country - type: string - crm_id: - description: |+ - Requires Salesforce. - - ID of the person in your external CRM. You must provide a crm_id_type if this is included. - - Validations will be applied to the crm_id depending on the crm_id_type. A "salesforce" ID must be exactly 18 characters. A "salesforce" ID must be either an Account (001) object. The type will be validated using the 18 character ID. - - This field can only be used if your application or API key has the "account:set_crm_id" scope. - - type: string - crm_id_type: - description: "The CRM that the provided crm_id is for. Must be one of: salesforce" - type: string - custom_fields: - description: Custom fields are defined by the user's team. Only fields with values are presented in the API. - items: - type: object - type: array - description: - description: Description - type: string - do_not_contact: - description: Whether this company can not be contacted. Values are either true or false. Setting this to true will remove all associated people from all active communications - type: boolean - domain: - description: Website domain, not a fully qualified URI - type: string - founded: - description: Date or year of founding - type: string - industry: - description: Industry - type: string - linkedin_url: - description: Full LinkedIn url - type: string - locale: - description: Time locale - type: string - name: - description: Account Full Name - type: string - owner_id: - description: ID of the User that owns this Account - type: integer - phone: - description: Phone number without formatting - type: string - postal_code: - description: Postal code - type: string - revenue_range: - description: Estimated revenue range - type: string - size: - description: Estimated number of people in employment - type: string - state: - description: State - type: string - street: - description: Street name and number - type: string - tags: - description: All tags applied to this Account - items: - type: string - type: array - twitter_handle: - description: Twitter handle, with @ - type: string - website: - description: Website - type: string - required: - - name - - domain - type: object - required: true - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/Account" - description: Success - summary: Create an account - tags: - - Accounts - "/v2/accounts/{id}.json": - delete: - description: | - Deletes an account. This operation is not reversible without contacting support. - This operation can be called multiple times successfully. - - Deleting an account will remove all connected people from that account. - parameters: - - description: Account ID - in: path - name: id - required: true - schema: - type: string - responses: - "204": - description: The Account has been deleted successfully - summary: Delete an account - tags: - - Accounts - get: - description: | - Fetches an account, by ID only. - parameters: - - description: Account ID - in: path - name: id - required: true - schema: - type: string - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/Account" - description: Success - summary: Fetch an account - tags: - - Accounts - put: - description: | - Updates an account. - - "domain" must be unique on the current team. - parameters: - - description: Account ID - in: path - name: id - required: true - schema: - type: string - requestBody: - content: - application/x-www-form-urlencoded: - schema: - properties: - account_tier_id: - description: ID of the Account Tier for this Account - type: integer - archived: - description: Whether this Account should be archived or not. Setting this to true sets archived_at to the current time if it's not already set. Setting this to false will set archived_at to null - type: boolean - city: - description: City - type: string - company_stage_id: - description: ID of the CompanyStage assigned to this Account - type: integer - company_type: - description: Type of the Account's company - type: string - conversational_name: - description: Conversational name of the Account - type: string - country: - description: Country - type: string - crm_id: - description: |+ - Requires Salesforce. - - ID of the person in your external CRM. You must provide a crm_id_type if this is included. - - Validations will be applied to the crm_id depending on the crm_id_type. A "salesforce" ID must be exactly 18 characters. A "salesforce" ID must be either an Account (001) object. The type will be validated using the 18 character ID. - - This field can only be used if your application or API key has the "account:set_crm_id" scope. - - type: string - crm_id_type: - description: "The CRM that the provided crm_id is for. Must be one of: salesforce" - type: string - custom_fields: - description: Custom fields are defined by the user's team. Only fields with values are presented in the API. - items: - type: object - type: array - description: - description: Description - type: string - do_not_contact: - description: Whether this company can not be contacted. Values are either true or false. Setting this to true will remove all associated people from all active communications - type: boolean - domain: - description: Website domain, not a fully qualified URI - type: string - founded: - description: Date or year of founding - type: string - industry: - description: Industry - type: string - linkedin_url: - description: Full LinkedIn url - type: string - locale: - description: Time locale - type: string - name: - description: Account Full Name - type: string - owner_id: - description: ID of the User that owns this Account - type: integer - phone: - description: Phone number without formatting - type: string - postal_code: - description: Postal code - type: string - revenue_range: - description: Estimated revenue range - type: string - size: - description: Estimated number of people in employment - type: string - state: - description: State - type: string - street: - description: Street name and number - type: string - tags: - description: All tags applied to this Account - items: - type: string - type: array - twitter_handle: - description: Twitter handle, with @ - type: string - website: - description: Website - type: string - required: - - name - - domain - type: object - required: true - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/Account" - description: Success - summary: Update an existing Account - tags: - - Accounts - /v2/action_details/call_instructions.json: - get: - description: | - Fetches multiple call instruction records. The records can be filtered, paged, and sorted according to - the respective parameters. - parameters: - - description: IDs of call instructions to fetch. - explode: false - in: query - name: ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: "Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at" - in: query - name: sort_by - required: false - schema: - type: string - - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" - in: query - name: sort_direction - required: false - schema: - type: string - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data - in: query - name: limit_paging_counts - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/CallInstruction" - type: array - description: Success - summary: List call instructions - tags: - - Action Details - Call Instructions - "/v2/action_details/call_instructions/{id}.json": - get: - description: | - Fetches a call instruction, by ID only. - parameters: - - description: Call instructions ID - in: path - name: id - required: true - schema: - type: string - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/CallInstruction" - description: Success - summary: Fetch a call instructions - tags: - - Action Details - Call Instructions - /v2/actions.json: - get: - description: | - Fetches multiple action records. The records can be filtered, paged, and sorted according to - the respective parameters. Only actions that are currently "in_progess" will be returned by - this endpoint. - - If the requester is not an admin, this endpoint will only return actions belonging to the requester. - If the request is an admin, this endpoint will return actions for the entire team. Additionaly, an admin - may use the user_guid parameter to request actions that belong to specific users on the team. - parameters: - - description: IDs of actions to fetch. - explode: false - in: query - name: ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: Fetch actions by step ID - in: query - name: step_id - required: false - schema: - type: integer - - description: Filter actions by type - in: query - name: type - required: false - schema: - type: string - - description: | - Equality filters that are applied to the due_on field. A single filter can be used by itself or combined with other filters to create a range. - - ---CUSTOM--- - {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} - explode: false - in: query - name: due_on - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters actions by the user's guid. Multiple user guids can be applied. The user must be a team admin to filter other users' actions - explode: false - in: query - name: user_guid - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters actions by person_id. Multiple person ids can be applied - explode: false - in: query - name: person_id - required: false - schema: - items: - type: integer - type: array - style: form - - description: Filters actions by cadence_id. Multiple cadence ids can be applied - explode: false - in: query - name: cadence_id - required: false - schema: - items: - type: integer - type: array - style: form - - description: Filters actions by multitouch_group_id. Multiple multitouch group ids can be applied - explode: false - in: query - name: multitouch_group_id - required: false - schema: - items: - type: integer - type: array - style: form - - description: | - Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. - - ---CUSTOM--- - {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} - explode: false - in: query - name: updated_at - required: false - schema: - items: - type: string - type: array - style: form - - description: "Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at" - in: query - name: sort_by - required: false - schema: - type: string - - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" - in: query - name: sort_direction - required: false - schema: - type: string - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data - in: query - name: limit_paging_counts - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/Action" - type: array - description: Success - summary: List actions - tags: - - Actions - "/v2/actions/{id}.json": - get: - description: | - Fetches an action, by ID only. - This endpoint will only return actions that are in_progress or pending_activity. - Once an action is complete, the request for that action will return a 404 status code. - parameters: - - description: Action ID - in: path - name: id - required: true - schema: - type: string - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/Action" - description: Success - summary: Fetch an action - tags: - - Actions - /v2/activities.json: - post: - description: | - Creates an activity. An activity will mark the associated action as completed. Currently, - only certain action types can have an activity explicitly created for them. - requestBody: - content: - application/x-www-form-urlencoded: - schema: - properties: - action_id: - description: | - Action that is being completed. This will validate that the action is still - valid before completed it. The same action can never be successfully passed twice to this endpoint. - The action must have a type of 'integration'. - type: integer - task_id: - description: | - Task that is being completed. This will validate that the task is still - valid before completed it. The same action can never be successfully passed twice to this endpoint. - The task must have a type of 'integration'. - type: integer - type: object - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/Activity" - description: Success - summary: Create an activity - tags: - - Activities - /v2/activities/calls.json: - get: - description: | - Fetches multiple call records. The records can be filtered, paged, and sorted according to - the respective parameters. - parameters: - - description: IDs of calls to fetch. If a record can't be found, that record won't be returned and your request will be successful - explode: false - in: query - name: ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: | - Equality filters that are applied to the created_at field. A single filter can be used by itself or combined with other filters to create a range. - - ---CUSTOM--- - {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} - explode: false - in: query - name: created_at - required: false - schema: - items: - type: string - type: array - style: form - - description: | - Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. - - ---CUSTOM--- - {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} - explode: false - in: query - name: updated_at - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters list to only include guids - explode: false - in: query - name: user_guid - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters calls by person_id. Multiple person ids can be applied - explode: false - in: query - name: person_id - required: false - schema: - items: - type: integer - type: array - style: form - - description: Filters calls by sentiment. Sentiment matches are exact and case sensitive. Multiple sentiments are allowed. - explode: false - in: query - name: sentiment - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters calls by disposition. Disposition matches are exact and case sensitive. Multiple dispositions are allowed. - explode: false - in: query - name: disposition - required: false - schema: - items: - type: string - type: array - style: form - - description: "Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at" - in: query - name: sort_by - required: false - schema: - type: string - - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" - in: query - name: sort_direction - required: false - schema: - type: string - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data - in: query - name: limit_paging_counts - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/Call" - type: array - description: Success - summary: List calls - tags: - - Calls - post: - description: | - Creates a call. The parameters of this endpoint can be used to create an action - and ensure that the CRM Task is mapped correctly. - requestBody: - content: - application/x-www-form-urlencoded: - schema: - properties: - action_id: - description: | - Action that this call is being logged for. This will validate that the action is still - valid before completing it. The same action can never be successfully passed twice to this endpoint. The - action must have a type of 'phone'. - type: integer - crm_params: - description: | - CRM specific parameters. Some parameters are required on a per-team basis. Consume the - CrmActivityFields endpoint to receive a list of valid parameters. The "field" property - is passed as the key of this object, and the value of this object is the value that you - would like to set. - - If CrmActivityField has a non-null value, then that value must be submitted, or excluded - from API calls, as these values are automatically applied. - type: object - disposition: - description: The disposition of the call. Can be required on a per-team basis. Must be present in the disposition list. - type: string - duration: - description: The length of the call, in seconds - type: integer - linked_call_data_record_ids: - description: | - CallDataRecord associations that will become linked to the created call. It is possible to pass - multiple CallDataRecord ids in this field; this can be used to represent multiple phone calls - that made up a single call. - - Any call data record that is used must not already be linked to a call. It is not possible - to link a call data record to multiple calls, and it is not possible to re-assign a call data - record to a different call. - items: - type: integer - type: array - notes: - description: Notes to log for the call. This is similar to the notes endpoint, but ensures that the notes get synced to the user's CRM - type: string - person_id: - description: The ID of the person whom this call will be logged for - type: integer - sentiment: - description: The sentiment of the call. Can be required on a per-team basis. Must be present in the sentiment list. - type: string - to: - description: The phone number that was called - type: string - user_guid: - description: Guid of the user whom this call should be logged for. Defaults to the authenticated user. Only team admins can pass another user's guid - type: string - required: - - person_id - type: object - required: true - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/Call" - description: Success - summary: Create a call - tags: - - Calls - "/v2/activities/calls/{id}.json": - get: - description: | - Fetches a call, by ID only. - parameters: - - description: Call ID - in: path - name: id - required: true - schema: - type: string - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/Call" - description: Success - summary: Fetch a call - tags: - - Calls - /v2/activities/emails.json: - get: - description: | - Fetches multiple email records. The records can be filtered, paged, and sorted according to - the respective parameters. - parameters: - - description: IDs of emails to fetch. If a record can't be found, that record won't be returned and your request will be successful - explode: false - in: query - name: ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: | - Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. - - ---CUSTOM--- - {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} - explode: false - in: query - name: updated_at - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters emails by whether they have bounced or not - in: query - name: bounced - required: false - schema: - type: boolean - - description: Filters emails by crm_activity_id. Multiple crm activty ids can be applied - explode: false - in: query - name: crm_activity_id - required: false - schema: - items: - type: integer - type: array - style: form - - description: Filters emails by action_id. Multiple action ids can be applied - explode: false - in: query - name: action_id - required: false - schema: - items: - type: integer - type: array - style: form - - description: Filters emails by user_id. Multiple User ids can be applied - explode: false - in: query - name: user_id - required: false - schema: - items: - type: integer - type: array - style: form - - description: Filters emails by status. Multiple status can be applied, possible values are sent, sent_from_gmail, sent_from_external, pending, pending_reply_check, scheduled, sending, delivering, failed, cancelled, pending_through_gmail, pending_through_external - explode: false - in: query - name: status - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters emails by cadence. Multiple cadence ids can be applied - explode: false - in: query - name: cadence_id - required: false - schema: - items: - type: integer - type: array - style: form - - description: Filters emails by step. Multiple step ids can be applied - explode: false - in: query - name: step_id - required: false - schema: - items: - type: integer - type: array - style: form - - description: Filters emails by one-off only - in: query - name: one_off - required: false - schema: - type: boolean - - description: Specify explicit scoped fields desired on the Email Resource. - explode: false - in: query - name: scoped_fields - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters emails by person_id. Multiple person ids can be applied - explode: false - in: query - name: person_id - required: false - schema: - items: - type: integer - type: array - style: form - - description: Filters emails by recipient email address. Multiple emails can be applied. - explode: false - in: query - name: email_addresses - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters emails by personalization score - explode: false - in: query - name: personalization - required: false - schema: - items: - type: string - type: array - style: form - - description: | - Equality filters that are applied to the sent_at field. A single filter can be used by itself or combined with other filters to create a range. - - ---CUSTOM--- - {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} - explode: false - in: query - name: sent_at - required: false - schema: - items: - type: string - type: array - style: form - - description: "Key to sort on, must be one of: updated_at, send_time. Defaults to updated_at" - in: query - name: sort_by - required: false - schema: - type: string - - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" - in: query - name: sort_direction - required: false - schema: - type: string - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data - in: query - name: limit_paging_counts - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/Email" - type: array - description: Success - summary: List emails - tags: - - Emails - "/v2/activities/emails/{id}.json": - get: - description: | - Fetches an email, by ID only. - parameters: - - description: Email ID - in: path - name: id - required: true - schema: - type: string - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/Email" - description: Success - summary: Fetch an email - tags: - - Emails - /v2/activity_histories: - get: - description: Fetches all of the customer's past activities for your application. Returns all the Activities that are found on the Salesloft Activity Feed. Visit here for more details. - parameters: - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: "Key to sort on, must be one of: occurred_at, updated_at. Defaults to occurred_at" - in: query - name: sort_by - required: false - schema: - type: string - - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" - in: query - name: sort_direction - required: false - schema: - type: string - - description: "Filter by the type of activity. Must be one of: added_to_cadence, completed_action, call, requested_email, sent_email, received_email, email_reply, note, success, dnc_event, residency_change, meeting, meeting_held, message_conversation, task, voicemail, opportunity_stage_change, opportunity_amount_change, opportunity_close_date_change. Can be provided as an array, or as an object of type[resource_type][]=type" - in: query - name: type - required: false - schema: - type: string - - description: For internal use only. This field does not comply with our backwards compatibility policies. This filter is for authenticated users of Salesloft only and will not work for OAuth Applications. Filter by the {resource_type, resource_id} of activity. Provide this in the format resource[]=person,1234 - in: query - name: _resource - required: false - schema: - type: string - - description: | - Equality filters that are applied to the occurred_at field. A single filter can be used by itself or combined with other filters to create a range. - ---CUSTOM--- - {"keys":[{"description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"gt","type":"iso8601 string"},{"description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"gte","type":"iso8601 string"},{"description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"lt","type":"iso8601 string"},{"description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"lte","type":"iso8601 string"}],"type":"object"} - in: query - name: occurred_at - required: false - schema: - type: object - - description: Filter by the pinned status of activity. Must be 'true' or 'false' - in: query - name: pinned - required: false - schema: - type: boolean - - description: Filter by the resource type. A resource is a Salesloft object that the activity is attributed to. A valid resource types must be one of person, account, crm_opportunity. Can be provided as an array - in: query - name: resource_type - required: false - schema: - type: string - - description: Filter by the resource id. "resource_type" filter is required to use this filter. - explode: false - in: query - name: resource_id - required: false - schema: - items: - type: string - type: array - style: form - - description: | - Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. - ---CUSTOM--- - {"keys":[{"description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"gt","type":"iso8601 string"},{"description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"gte","type":"iso8601 string"},{"description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"lt","type":"iso8601 string"},{"description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"lte","type":"iso8601 string"}],"type":"object"} - in: query - name: updated_at - required: false - schema: - type: object - - description: Filter activities by a user's guid. - in: query - name: user_guid - required: false - schema: - type: string - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/ActivityHistory" - description: Success - summary: List Past Activities - tags: - - Activity Histories - /v2/bulk_jobs: - get: - description: Fetches multiple bulk job records. The records can be filtered, paged, and sorted according to the respective parameters. - parameters: - - description: "The state of the bulk job. Accepts multiple states. Each state must be one of: open, executing, done" - explode: false - in: query - name: state - required: false - schema: - items: - type: string - type: array - style: form - - description: Filter by id using comparison operators. Only supports greater than (gt) comparison (i.e. id[gt]=123) - in: query - name: id - required: false - schema: - type: object - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/BulkJob" - type: array - description: Success - summary: List bulk jobs - tags: - - Bulk Jobs - post: - description: | - Creates a bulk job. The type of the bulk job must be included when created. - - For additional information on creating bulk jobs, the types of supported bulk jobs, and examples of the bulk job flow, visit the bulk job details page. - requestBody: - content: - application/x-www-form-urlencoded: - schema: - properties: - name: - description: Name for your bulk job - type: string - type: - description: Type of bulk job. Must be a valid type. Follow link to the bulk job details page above to view supported types. - type: string - required: - - type - type: object - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/BulkJob" - description: Success - summary: Create a bulk job - tags: - - Bulk Jobs - "/v2/bulk_jobs/{bulk_jobs_id}/job_data": - get: - description: Fetches multiple job data records for a given bulk job. Pagination is not supported, but cursor based polling is via use of the `id[gt]` filter. Pass the last id seen (i.e. `id[gt]=1234`) in order to get the next batch of records. - parameters: - - description: The id for the bulk job to which the job data relates - in: path - name: bulk_jobs_id - required: true - schema: - type: integer - - description: Filter by result status. Accepts multiple statuses. Each status must be one of pending, success, error, retrying - explode: false - in: query - name: status - required: false - schema: - items: - type: string - type: array - style: form - - description: Filter by id using comparison operators. Only supports greater than (gt) comparison (i.e. id[gt]=123) - in: query - name: id - required: false - schema: - type: object - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/BulkJobResult" - type: array - description: Success - summary: List job data for a bulk job - tags: - - Bulk Jobs - Job Data - post: - description: | - Upload job data for the specified bulk job. Upload an array of objects, where element contains the parameters necessary to execute the individual calls. Each call to this endpoint can handle up to 5,000 records at a time. There is no limit to how many times you can create job data for a given bulk job. - - For additional information on creating bulk jobs, the types of supported bulk jobs, and examples of the bulk job flow, visit the bulk job details page. - parameters: - - description: The id for the bulk job to which the job data relates - in: path - name: bulk_jobs_id - required: true - schema: - type: integer - requestBody: - content: - application/x-www-form-urlencoded: - schema: - properties: - data: - description: Array of objects containing parameters to be used to execute an instance of each. Array must be 5,000 records or less. - items: - type: string - type: array - required: - - data - type: object - required: true - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/JobDataCreationResult" - description: Success - summary: Create job data for a bulk job - tags: - - Bulk Jobs - Job Data - "/v2/bulk_jobs/{bulk_jobs_id}/results": - get: - description: Fetches multiple job data records for a completed bulk job. Note that until a bulk job's state is set to `done` the returned `data` will be an empty array. Pagination is not supported, but cursor based polling is via use of the `id[gt]` filter. Pass the last id seen (i.e. `id[gt]=1234`) in order to get the next batch of records. - parameters: - - description: The id for the Bulk Job - in: path - name: bulk_jobs_id - required: true - schema: - type: integer - - description: Filter by result status. Accepts multiple statuses. Each status must be one of pending, success, error, retrying - explode: false - in: query - name: status - required: false - schema: - items: - type: string - type: array - style: form - - description: Filter by id using comparison operators. Only supports greater than (gt) comparison (i.e. id[gt]=123) - in: query - name: id - required: false - schema: - type: object - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/BulkJobResult" - type: array - description: Success - summary: List job data for a completed bulk job. - tags: - - Bulk Jobs - Results - "/v2/bulk_jobs/{id}": - get: - description: Fetches a bulk job, by ID only. - parameters: - - description: The id for the Bulk Job - in: path - name: id - required: true - schema: - type: integer - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/BulkJob" - description: Success - summary: Fetch a bulk job - tags: - - Bulk Jobs - put: - description: | - Updates a bulk job's name and / or marks a bulk job as 'ready_to_execute'. May only be updated if the bulk job is still in an "open" state. - - For additional information on creating bulk jobs, the types of supported bulk jobs, and examples of the bulk job flow, visit the bulk job details page. - parameters: - - description: The id for the bulk job to which the job data relates - in: path - name: id - required: true - schema: - type: integer - requestBody: - content: - application/x-www-form-urlencoded: - schema: - properties: - name: - description: Name for your bulk job - type: string - ready_to_execute: - description: Whether the job is ready to be executed. Must be true or false. - type: boolean - type: object - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/BulkJob" - description: Success - summary: Update a bulk job - tags: - - Bulk Jobs - "/v2/cadence_exports/{id}.json": - get: - description: | - Exports a cadence as JSON. - parameters: - - description: Cadence ID - in: path - name: id - required: true - schema: - type: string - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/CadenceExport" - description: Success - summary: Export a cadence - tags: - - Cadence Exports - /v2/cadence_imports.json: - post: - description: | - New cadences can be created or steps can be imported onto existing cadences which do not have steps. - Visit here for more details. - requestBody: - content: - application/x-www-form-urlencoded: - schema: - properties: - cadence_content: - description: Import data for cadence - type: object - settings: - description: Settings for a cadence - type: object - sharing_settings: - description: The shared settings for a cadence - type: object - type: object - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/CadenceImport" - description: Success - summary: Import cadences from JSON - tags: - - Cadence Imports - /v2/cadence_memberships.json: - get: - description: | - Fetches multiple cadence membership records. The records can be filtered, paged, and sorted according to - the respective parameters. A cadence membership is the association between a person and their current and - historical time on a cadence. Cadence membership records are mutable and change over time. If a person is - added to a cadence and re-added to the same cadence in the future, there is a single membership record. - parameters: - - description: IDs of cadence memberships to fetch. If a record can't be found, that record won't be returned and your request will be successful - explode: false - in: query - name: ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: ID of the person to find cadence memberships for - in: query - name: person_id - required: false - schema: - type: integer - - description: ID of the cadence to find cadence memberships for - in: query - name: cadence_id - required: false - schema: - type: integer - - description: | - Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. - - ---CUSTOM--- - {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} - explode: false - in: query - name: updated_at - required: false - schema: - items: - type: string - type: array - style: form - - description: If true, return only cadence memberships for people currently on cadences. If false, return cadence memberships for people who have been removed from or have completed a cadence. - in: query - name: currently_on_cadence - required: false - schema: - type: boolean - - description: "Key to sort on, must be one of: added_at, updated_at. Defaults to updated_at" - in: query - name: sort_by - required: false - schema: - type: string - - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" - in: query - name: sort_direction - required: false - schema: - type: string - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data - in: query - name: limit_paging_counts - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/CadenceMembership" - type: array - description: Success - summary: List cadence memberships - tags: - - Cadence Memberships - post: - description: | - Adds a person to a cadence. person_id and cadence_id are required, and must be visible to the authenticated user. user_id will - default to the authenticated user, but can be set to any visible user on the authenticated team. - - A person cannot be added to a cadence on behalf of a teammate unless the cadence is a team cadence, the cadence is owned by - the teammate, or the teammate has the Personal Cadence Admin permission. - parameters: - - description: ID of the person to create a cadence membership for - in: query - name: person_id - required: true - schema: - type: integer - - description: ID of the cadence to create a cadence membership for - in: query - name: cadence_id - required: true - schema: - type: integer - - description: ID of the user to create a cadence membership for. The associated cadence must be owned by the user, or it must be a team cadence - in: query - name: user_id - required: false - schema: - type: integer - - description: ID of the step on which the person should start the cadence. Start on first step is the default behavior without this parameter. - in: query - name: step_id - required: false - schema: - type: integer - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/CadenceMembership" - description: Success - summary: Create a cadence membership - tags: - - Cadence Memberships - "/v2/cadence_memberships/{id}.json": - delete: - description: | - Cadence Membership - parameters: - - description: CadenceMembership ID - in: path - name: id - required: true - schema: - type: string - responses: - "204": - description: The person has been removed from the cadence successfully - summary: Delete a cadence membership - tags: - - Cadence Memberships - get: - description: | - Fetches a cadence membership, by ID only. - parameters: - - description: CadenceMembership ID - in: path - name: id - required: true - schema: - type: string - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/CadenceMembership" - description: Success - summary: Fetch a cadence membership - tags: - - Cadence Memberships - /v2/cadences.json: - get: - description: | - Fetches multiple cadence records. The records can be filtered, paged, and sorted according to - the respective parameters. - parameters: - - description: IDs of cadences to fetch. If a record can't be found, that record won't be returned and your request will be successful - explode: false - in: query - name: ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: | - Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. - - ---CUSTOM--- - {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} - explode: false - in: query - name: updated_at - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters cadences by whether they are a team cadence or not - in: query - name: team_cadence - required: false - schema: - type: boolean - - description: Filters cadences by whether they are shared - in: query - name: shared - required: false - schema: - type: boolean - - description: Filters cadences by the owner's guid. Multiple owner guids can be applied - explode: false - in: query - name: owned_by_guid - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters cadences by whether they are able to have people added to them - in: query - name: people_addable - required: false - schema: - type: boolean - - description: Filters cadences by name - explode: false - in: query - name: name - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters by group ids. Also supports group ids passed in as a JSON array string - in: query - name: group_ids - required: false - schema: - type: string - - description: Filters by whether the Cadences have been archived. Excluding this field will result in both archived and unarchived Cadences to return. - in: query - name: archived - required: false - schema: - type: boolean - - description: "Key to sort on, must be one of: created_at, updated_at, name. Defaults to updated_at" - in: query - name: sort_by - required: false - schema: - type: string - - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" - in: query - name: sort_direction - required: false - schema: - type: string - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data - in: query - name: limit_paging_counts - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/Cadence" - type: array - description: Success - summary: List cadences - tags: - - Cadences - "/v2/cadences/{id}.json": - get: - description: | - Fetches a cadence, by ID only. - parameters: - - description: Cadence ID - in: path - name: id - required: true - schema: - type: string - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/Cadence" - description: Success - summary: Fetch a cadence - tags: - - Cadences - /v2/calendar/events: - get: - description: Returns all calendar events, paginated and filtered by the date. - parameters: - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: "Key to sort on, must be one of: start_time. Defaults to start_time" - in: query - name: sort_by - required: false - schema: - type: string - - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" - in: query - name: sort_direction - required: false - schema: - type: string - - description: | - Lower bound (inclusive) for a calendar event's end time to filter by. - Must be in ISO 8601 format. - - Example: `2022-02-14T10:12:59+00:00`. - in: query - name: start_time - required: false - schema: - type: string - - description: | - Upper bound (exclusive) for a calendar event's start time to filter by. - Must be in ISO 8601 format. - - Example: `2022-02-14T10:12:59+00:00`. - in: query - name: end_time - required: false - schema: - type: string - - description: | - user_guid of the user who created or included as a guest to the event. - in: query - name: user_guid - required: false - schema: - type: string - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/CalendarEvent" - type: array - description: Success - summary: List calendar events - tags: - - Calendar Events - /v2/calendar/events/upsert: - post: - description: |2 - Upserts a calendar event object. - Upsert key is a combination of `id` and `i_cal_uid` scoped to the given `calendar_id`. - Bulk operations: - This endpoint is used for bulk operations, see https://developers.salesloft.com/bulk.html for integration instructions. - Use `calendar/events/upsert` as an event type, and this spec as a data spec. - This endpoint should be used directly for the time sensitive calendar event updates. - requestBody: - content: - application/x-www-form-urlencoded: - schema: - properties: - all_day: - description: Should be set to `true` for all day calendar events. - type: boolean - attendees: - description: |2 - List of attendees of the calendar event. - Example: - ``` - { - ... - "attendees": [ - { - "name": "Alice", - "email": "alice@example.com", - "status": "accepted", - "organizer": true - }, - { - "name": "Bob", - "email": "bob@example.com", - "status": "needsAction", - "organizer": false - } - ] - } - ``` - `name`: full name of the attendee - - `email`: email address of the attendee - - `status`: one of the following - needsAction, accepted, tentative, declined - - `organizer`: whether the attendee is the organizer of the calendar event - type: object - calendar_id: - description: |2 - Calendar ID of the calendar event owner. - For the External Calendar connection use `external_{salesloft_user_guid}` format. - Example: `external_00210d1a-df8a-459f-af75-89b953b618b0`. - type: string - canceled_at: - description: |2 - Cancellation time of the calendar event, as a combined date-time value in the ISO 8601 format with a time zone offset. - Example: `2022-02-14T10:12:59+00:00`. - type: string - description: - description: Description of the calendar event - type: string - end_time: - description: |2 - End time of the calendar event, as a combined date-time value in the ISO 8601 format with a time zone offset. - Example: `2022-02-14T10:12:59+00:00`. - format: date - type: string - i_cal_uid: - description: |2 - icalUID of the calendar event. Unique identifier for a calendar event across calendars. - - Used as an upsert key. - type: string - id: - description: |2 - Id of the calendar event, different for each occurrence in a recurring series. - - Used as an upsert key. - type: string - location: - description: Location of the calendar event as free-form text. - type: string - organizer: - description: |2 - Email address of the organizer - type: string - recurring: - description: Should be set to `true` if this is one of recurring series calendar event. - type: boolean - start_time: - description: |2 - Start time of the calendar event, as a combined date-time value in the ISO 8601 format with a time zone offset. - Example: `2022-02-14T10:12:59+00:00`. - format: date - type: string - status: - description: |2 - Status of the calendar event. Depending on the status, the calendar event will or will not impact user's availability. - Possible values: `confirmed`, `tentative`, `cancelled`. - Example: `confirmed`. - type: string - title: - description: Title of the calendar event - type: string - required: - - id - - i_cal_uid - - start_time - - end_time - - calendar_id - type: object - required: true - responses: - "201": - content: - "*/*": - schema: - $ref: "#/components/schemas/CalendarEvent" - description: Success - summary: Upsert a calendar event - tags: - - Calendar Events - /v2/call_data_records.json: - get: - description: | - Fetches multiple call data records. The records can be filtered, paged, and sorted according to - the respective parameters. - - Call data records are records of all inbound and outbound calls through Salesloft. A call data record may - be associated with a call, but does not have to be. - parameters: - - description: IDs of call data records to fetch. If a record can't be found, that record won't be returned and your request will be successful - explode: false - in: query - name: ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: Return only call data records which have or do not have a call logged for them - in: query - name: has_call - required: false - schema: - type: boolean - - description: | - Equality filters that are applied to the created_at field. A single filter can be used by itself or combined with other filters to create a range. - - ---CUSTOM--- - {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} - explode: false - in: query - name: created_at - required: false - schema: - items: - type: string - type: array - style: form - - description: | - Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. - - ---CUSTOM--- - {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} - explode: false - in: query - name: updated_at - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters list to only include guids - explode: false - in: query - name: user_guid - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters list by person_id. Multiple person ids can be applied - explode: false - in: query - name: person_id - required: false - schema: - items: - type: integer - type: array - style: form - - description: "Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at" - in: query - name: sort_by - required: false - schema: - type: string - - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" - in: query - name: sort_direction - required: false - schema: - type: string - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data - in: query - name: limit_paging_counts - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/CallDataRecord" - type: array - description: Success - summary: List call data records - tags: - - Call Data Records - "/v2/call_data_records/{id}.json": - get: - description: | - Fetches a call data record, by ID only. - parameters: - - description: CallDataRecord ID - in: path - name: id - required: true - schema: - type: string - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/CallDataRecord" - description: Success - summary: Fetch a call data record - tags: - - Call Data Records - /v2/call_dispositions.json: - get: - description: | - Fetches multiple call disposition records. The records can be sorted according to - the respective parameters. Call dispositions must be configured in application. This will - change in the future, but please contact us if you have a pressing use case. - parameters: - - description: "Key to sort on, must be one of: name, updated_at. Defaults to name" - in: query - name: sort_by - required: false - schema: - type: string - - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to ASC" - in: query - name: sort_direction - required: false - schema: - type: string - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data - in: query - name: limit_paging_counts - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/CallDisposition" - type: array - description: Success - summary: List call dispositions - tags: - - Call Dispositions - /v2/call_sentiments.json: - get: - description: | - Fetches multiple call sentiment records. The records can be sorted according to - the respective parameters. Call sentiments must be configured in application. This will - change in the future, but please contact us if you have a pressing use case. - parameters: - - description: Filters call sentiments by name - in: query - name: name - required: false - schema: - type: string - - description: "Key to sort on, must be one of: name, updated_at. Defaults to name" - in: query - name: sort_by - required: false - schema: - type: string - - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to ASC" - in: query - name: sort_direction - required: false - schema: - type: string - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data - in: query - name: limit_paging_counts - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/CallSentiment" - type: array - description: Success - summary: List call sentiments - tags: - - Call Sentiments - /v2/conversations/calls: - post: - description: Enqueue a Conversations Call for processing - requestBody: - content: - application/x-www-form-urlencoded: - schema: - properties: - call_created_at: - description: Timestamp for when the call started. If not provided, will default to the time the request was received - type: string - direction: - description: Call direction - type: string - duration: - description: Duration of call in seconds - type: number - from: - description: Phone number that call was made from - type: string - recording: - description: Object containing recording info including the audio file (.mp3, .wav, .ogg, .m4a) - type: object - to: - description: " Phone number that was called" - type: string - user_guid: - description: Guid of the Salesloft User to assign the call to. If not provided, will default to the user within the authentication token - type: string - required: - - to - - from - - duration - - recording - type: object - required: true - responses: - "201": - content: - "*/*": - schema: - $ref: "#/components/schemas/ConversationsCall" - description: Success - summary: Create Conversations Call - tags: - - Conversations Calls - /v2/crm_activities.json: - get: - description: | - Fetches multiple crm activity records. The records can be filtered, paged, and sorted according to - the respective parameters. - parameters: - - description: IDs of crm activities to fetch. - explode: false - in: query - name: ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: | - Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. - - ---CUSTOM--- - {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} - explode: false - in: query - name: updated_at - required: false - schema: - items: - type: string - type: array - style: form - - description: "Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at" - in: query - name: sort_by - required: false - schema: - type: string - - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" - in: query - name: sort_direction - required: false - schema: - type: string - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data - in: query - name: limit_paging_counts - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/CrmActivity" - type: array - description: Success - summary: List crm activities - tags: - - CRM Activities - "/v2/crm_activities/{id}.json": - get: - description: | - Fetches a crm activity, by ID only. - parameters: - - description: Crm activity ID - in: path - name: id - required: true - schema: - type: string - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/CrmActivity" - description: Success - summary: Fetch a crm activity - tags: - - CRM Activities - /v2/crm_activity_fields.json: - get: - description: | - Fetches multiple crm activity field records. The records can be filtered, paged, and sorted according to - the respective parameters. - parameters: - - description: Return only records with this source - in: query - name: source - required: false - schema: - type: string - - description: "Key to sort on, must be one of: title, updated_at. Defaults to title" - in: query - name: sort_by - required: false - schema: - type: string - - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to ASC" - in: query - name: sort_direction - required: false - schema: - type: string - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data - in: query - name: limit_paging_counts - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/CrmActivityField" - type: array - description: Success - summary: List crm activity fields - tags: - - CRM Activity Fields - /v2/crm_users.json: - get: - description: | - Crm Users - parameters: - - description: IDs of crm users to fetch. If a record can't be found, that record won't be returned and your request will be successful - explode: false - in: query - name: ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: Filters crm users by crm_ids - explode: false - in: query - name: crm_id - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters crm users by user_ids - explode: false - in: query - name: user_id - required: false - schema: - items: - type: integer - type: array - style: form - - description: Filters crm users by user guids - explode: false - in: query - name: user_guid - required: false - schema: - items: - type: string - type: array - style: form - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data - in: query - name: limit_paging_counts - required: false - schema: - type: boolean - - description: "Key to sort on, must be one of: id, updated_at. Defaults to id" - in: query - name: sort_by - required: false - schema: - type: string - - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" - in: query - name: sort_direction - required: false - schema: - type: string - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/CrmUser" - type: array - description: Success - summary: List crm users - tags: - - Crm Users - /v2/custom_fields.json: - get: - description: | - Fetches multiple custom field records. The records can be filtered, paged, and sorted according to - the respective parameters. - parameters: - - description: IDs of custom fields to fetch. - explode: false - in: query - name: ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: "Type of field to fetch. Value must be one of: person, company, opportunity" - in: query - name: field_type - required: false - schema: - type: string - - description: "Key to sort on, must be one of: created_at, updated_at, name. Defaults to updated_at" - in: query - name: sort_by - required: false - schema: - type: string - - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" - in: query - name: sort_direction - required: false - schema: - type: string - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data - in: query - name: limit_paging_counts - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/CustomField" - type: array - description: Success - summary: List custom fields - tags: - - Custom Fields - post: - description: | - Creates a custom field. - requestBody: - content: - application/x-www-form-urlencoded: - schema: - properties: - field_type: - description: "The field type of the custom field. Value must be one of: person, company, opportunity" - type: string - name: - description: The name of the custom field - type: string - required: - - name - type: object - required: true - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/CustomField" - description: Success - summary: Create a custom field - tags: - - Custom Fields - "/v2/custom_fields/{id}.json": - delete: - description: | - Deletes a custom field. - parameters: - - description: Custom Field ID - in: path - name: id - required: true - schema: - type: string - responses: - "204": - description: The Custom Field has been deleted successfully - summary: Delete a custom field - tags: - - Custom Fields - get: - description: | - Fetches a custom field, by ID only. - parameters: - - description: Custom Field ID - in: path - name: id - required: true - schema: - type: string - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/CustomField" - description: Success - summary: Fetch a custom field - tags: - - Custom Fields - put: - description: | - Update a custom field. - parameters: - - description: Custom Field ID - in: path - name: id - required: true - schema: - type: string - requestBody: - content: - application/x-www-form-urlencoded: - schema: - properties: - field_type: - description: "The field type of the custom field. Value must be one of: person, company, opportunity" - type: string - name: - description: The name of the custom field - type: string - type: object - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/CustomField" - description: Success - summary: Update a custom field - tags: - - Custom Fields - /v2/email_template_attachments.json: - get: - description: | - Fetches multiple email template attachment records. The records can be filtered and paged according to - the respective parameters. - parameters: - - description: IDs of email template attachments to fetch. If a record can't be found, that record won't be returned and your request will be successful - explode: false - in: query - name: ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: Filters email template attachments by email template IDs - explode: false - in: query - name: email_template_id - required: false - schema: - items: - type: integer - type: array - style: form - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data - in: query - name: limit_paging_counts - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/EmailTemplateAttachment" - type: array - description: Success - summary: List email template attachments - tags: - - Email Template Attachments - /v2/email_templates.json: - get: - description: | - Fetches multiple email template records. The records can be filtered, paged, and sorted according to - the respective parameters. - parameters: - - description: IDs of email templates to fetch. If a record can't be found, that record won't be returned and your request will be successful - explode: false - in: query - name: ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: | - Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. - - ---CUSTOM--- - {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} - explode: false - in: query - name: updated_at - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters email templates by whether they are linked to a team template or not - in: query - name: linked_to_team_template - required: false - schema: - type: boolean - - description: Filters email templates by title or subject - in: query - name: search - required: false - schema: - type: string - - description: Filters email templates by tags applied to the template by tag ID, not to exceed 100 IDs - explode: false - in: query - name: tag_ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: Filters email templates by tags applied to the template, not to exceed 100 tags - explode: false - in: query - name: tag - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters email templates by current authenticated user - in: query - name: filter_by_owner - required: false - schema: - type: boolean - - description: Filters email templates by groups applied to the template by group ID. Not to exceed 500 IDs. Returns templates that are assigned to any of the group ids. - explode: false - in: query - name: group_id - required: false - schema: - items: - type: integer - type: array - style: form - - description: Filters email templates based on whether or not the template has been used on a cadence - in: query - name: include_cadence_templates - required: false - schema: - type: boolean - - description: Filters email templates to include archived templates or not - in: query - name: include_archived_templates - required: false - schema: - type: boolean - - description: Filters email templates to those belonging to the cadence. Not to exceed 100 IDs. If a record can't be found, that record won't be returned and your request will be successful - explode: false - in: query - name: cadence_id - required: false - schema: - items: - type: integer - type: array - style: form - - description: "Key to sort on, must be one of: created_at, updated_at, last_used_at. Defaults to updated_at" - in: query - name: sort_by - required: false - schema: - type: string - - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" - in: query - name: sort_direction - required: false - schema: - type: string - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data - in: query - name: limit_paging_counts - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/EmailTemplate" - type: array - description: Success - summary: List email templates - tags: - - Email Templates - "/v2/email_templates/{id}.json": - get: - description: | - Fetches an email template, by ID only. - parameters: - - description: EmailTemplate ID - in: path - name: id - required: true - schema: - type: string - - description: Optionally will return the templates with the current user's email signature - in: query - name: include_signature - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/EmailTemplate" - description: Success - summary: Fetch an email template - tags: - - Email Templates - /v2/external_emails.json: - post: - description: | - Creates an external email object. - requestBody: - content: - application/x-www-form-urlencoded: - schema: - properties: - mailbox: - description: Email address of mailbox email was sent to - type: string - raw: - description: Base64 encoded MIME email content - type: string - required: - - mailbox - - raw - type: object - required: true - responses: - "201": - content: - "*/*": - schema: - $ref: "#/components/schemas/ExternalEmail" - description: Success - summary: Create an External Email - tags: - - External Emails - /v2/groups.json: - get: - description: | - Fetches multiple group records. The records can be filtered, and sorted according to - the respective parameters. - parameters: - - description: IDs of groups to fetch. - explode: false - in: query - name: ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: "Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at" - in: query - name: sort_by - required: false - schema: - type: string - - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" - in: query - name: sort_direction - required: false - schema: - type: string - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/Group" - type: array - description: Success - summary: List groups - tags: - - Groups - "/v2/groups/{id}.json": - get: - description: | - Fetches a group, by ID only. - parameters: - - description: Group ID - in: path - name: id - required: true - schema: - type: string - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/Group" - description: Success - summary: Fetch a group - tags: - - Groups - /v2/imports.json: - get: - description: | - Fetches multiple imports. - parameters: - - description: IDs of imports to fetch. If a record can't be found, that record won't be returned and your request will be successful - explode: false - in: query - name: ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: ID of users to fetch imports for. Using this filter will return an empty array for non-admin users who request other user's imports - explode: false - in: query - name: user_ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: "Key to sort on, must be one of: created_at, updated_at. Defaults to created_at" - in: query - name: sort_by - required: false - schema: - type: string - - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" - in: query - name: sort_direction - required: false - schema: - type: string - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data - in: query - name: limit_paging_counts - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/Import" - type: array - description: Success - summary: List imports - tags: - - Imports - post: - description: | - Creates an import. - requestBody: - $ref: "#/components/requestBodies/postV2ImportsJson" - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/Import" - description: Success - summary: Create an import - tags: - - Imports - "/v2/imports/{id}.json": - delete: - description: | - Deletes an import, by ID only. The associated people can be deleted as part of the deletion process. - - Admin users can access imports for the entire team, but non-admin users can only access their own imports. - parameters: - - description: Import ID - in: path - name: id - required: true - schema: - type: string - - description: | - Whether to delete people on this Import. Possible values are: [not present], all, single. - - 'single' will delete people who are only present in this Import. - 'all' will delete people even if they are present in other Imports. - Not specifying this parameter will not delete any people - in: query - name: undo - required: false - schema: - type: string - responses: - "204": - description: The import has been deleted successfully - summary: Delete an import - tags: - - Imports - get: - description: | - Fetches an import, by ID only. - - Admin users can access imports for the entire team, but non-admin users can only access their own imports. - parameters: - - description: Import ID - in: path - name: id - required: true - schema: - type: string - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/Import" - description: Success - summary: Fetch an import - tags: - - Imports - put: - description: | - Updates an import, by ID only. - - Admin users can access imports for the entire team, but non-admin users can only access their own imports. - parameters: - - description: Import ID - in: path - name: id - required: true - schema: - type: string - requestBody: - $ref: "#/components/requestBodies/postV2ImportsJson" - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/Import" - description: Success - summary: Update an import - tags: - - Imports - /v2/live_website_tracking_parameters.json: - post: - description: | - Creates a Live Website Tracking parameter to identify a person - requestBody: - content: - application/x-www-form-urlencoded: - schema: - properties: - person_id: - description: The person to create the LiveWebsiteTrackingParameter for - type: integer - required: - - person_id - type: object - required: true - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/LiveWebsiteTrackingParameter" - description: Success - summary: Create an Live Website Tracking Parameter - tags: - - Live Website Tracking Parameters - /v2/me.json: - get: - description: | - Authenticated user information. This endpoint does not accept any parameters as it is - represents your authenticated user. The "Users" resource provides user information - for other users on the team. - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/User" - description: Success - summary: Fetch current user - tags: - - Me - /v2/meetings.json: - get: - description: | - Fetches multiple meeting records. The records can be filtered, paged, and sorted according to the respective parameters. - Meetings resource is responsible for events created via the Salesloft platform using calendaring features. - These events can relate to cadences, people, and accounts. - parameters: - - description: IDs of meetings to fetch. If a record can't be found, that record won't be returned and your request will be successful - explode: false - in: query - name: ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: "Filters meetings by status. Possible values are: pending, booked, failed, retry" - in: query - name: status - required: false - schema: - type: string - - description: Filters meetings by person_id. Multiple person ids can be applied - in: query - name: person_id - required: false - schema: - type: string - - description: Filters meetings by account_id. Multiple account ids can be applied - in: query - name: account_id - required: false - schema: - type: string - - description: Filters meetings by person_id. Multiple person ids can be applied - explode: false - in: query - name: person_ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: Filters meetings by event IDs - explode: false - in: query - name: event_ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: Filters meetings by UIDs provided by calendar provider - explode: false - in: query - name: i_cal_uids - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters meetings by task_id. Multiple task ids can be applied - explode: false - in: query - name: task_ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: Flag to indicate whether to include owned_by_meetings_settings and booked_by_meetings_settings objects - in: query - name: include_meetings_settings - required: false - schema: - type: boolean - - description: | - Equality filters that are applied to the start_time field. A single filter can be used by itself or combined with other filters to create a range. - - ---CUSTOM--- - {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} - explode: false - in: query - name: start_time - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters meetings by user_guid. Multiple user guids can be applied - explode: false - in: query - name: user_guids - required: false - schema: - items: - type: string - type: array - style: form - - description: Whether to include deleted events in the result - in: query - name: show_deleted - required: false - schema: - type: boolean - - description: "Key to sort on, must be one of: start_time, created_at, updated_at. Defaults to start_time" - in: query - name: sort_by - required: false - schema: - type: string - - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" - in: query - name: sort_direction - required: false - schema: - type: string - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data - in: query - name: limit_paging_counts - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/Meeting" - type: array - description: Success - summary: List meetings - tags: - - Meetings - /v2/meetings/settings/searches.json: - post: - description: | - Fetches multiple meeting setting records. The records can be filtered, paged, and sorted according to the respective parameters. - parameters: - - description: Filters meeting settings by array of user_guids - explode: false - in: query - name: user_guids - required: false - schema: - items: - type: string - type: array - style: form - - description: | - Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. - - ---CUSTOM--- - {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} - explode: false - in: query - name: updated_at - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters meeting settings by calendar type - in: query - name: calendar_type - required: false - schema: - type: string - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data - in: query - name: limit_paging_counts - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/MeetingSetting" - type: array - description: Success - "403": - description: "This endpoint is not available without the following permissions: manage_team" - summary: List meeting settings - tags: - - Meetings Settings - Searches - "/v2/meetings/settings/{id}.json": - put: - description: | - Updates a meeting setting, by ID only. - parameters: - - description: MeetingSetting ID - in: path - name: id - required: true - schema: - type: string - requestBody: - content: - application/x-www-form-urlencoded: - schema: - properties: - allow_booking_on_behalf: - description: Allow other team members to schedule on you behalf. - type: boolean - allow_booking_overtime: - description: Allow team members to insert available time outside your working hours. - type: boolean - allow_event_overlap: - description: Allow team members to double book events on your calendar. - type: boolean - availability_limit: - description: The number of days out the user allows a prospect to schedule a meeting - type: integer - availability_limit_enabled: - description: If Availability Limits have been turned on - type: boolean - buffer_time_duration: - description: Default buffer duration in minutes set by a user - type: integer - calendar_type: - description: Calendar type - type: string - default_meeting_length: - description: Default meeting length in minutes set by the user - type: integer - description: - description: Default description of the meeting - type: string - enable_calendar_sync: - description: Determines if a user enabled Calendar Sync feature - type: boolean - enable_dynamic_location: - description: Determines if location will be filled via third-party service (Zoom, GoToMeeting, etc.) - type: boolean - location: - description: Default location of the meeting - type: string - primary_calendar_connection_failed: - description: Determines if the user lost calendar connection - type: boolean - primary_calendar_id: - description: ID of the primary calendar - type: string - primary_calendar_name: - description: Display name of the primary calendar - type: string - schedule_buffer_enabled: - description: Determines if meetings are scheduled with a 15 minute buffer between them - type: boolean - schedule_delay: - description: The number of hours in advance a user requires someone to a book a meeting with them - type: integer - share_event_detail: - description: Allow team members to see the details of events on your calendar. - type: boolean - time_zone: - description: Time zone for current calendar - type: string - times_available: - description: Times available set by a user that can be used to book meetings - type: object - title: - description: Default title of the meeting - type: string - type: object - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/MeetingSetting" - description: Success - summary: Update a meeting setting - tags: - - Meeting Settings - "/v2/meetings/{id}.json": - put: - description: | - Updates a meeting, by ID only. - parameters: - - description: Meeting ID - in: path - name: id - required: true - schema: - type: string - requestBody: - content: - application/x-www-form-urlencoded: - schema: - properties: - event_id: - description: Meeting ID from the calendar provider - type: string - i_cal_uid: - description: Meeting unique identifier (iCalUID) - type: string - no_show: - description: Whether the meeting is a No Show meeting - type: boolean - status: - description: "Status of the meeting creation progress. Possible values are: pending, booked, failed, retry" - type: string - type: object - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/Meeting" - description: Success - summary: Update a meeting - tags: - - Meetings - "/v2/mime_email_payloads/{id}.json": - get: - description: | - Fetch the MIME content for email. - parameters: - - description: ID of Email - in: path - name: id - required: true - schema: - type: string - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/MimeEmailPayload" - description: Success - summary: Fetch the MIME content for email - tags: - - Mime Email Payloads - /v2/notes.json: - get: - description: | - Fetches multiple note records. The records can be filtered, paged, and sorted according to - the respective parameters. - parameters: - - description: "Case insensitive type of item with which the note is associated. Value must be one of: person, account" - in: query - name: associated_with_type - required: false - schema: - type: string - - description: ID of the item with which the note is associated. The associated_with_type must also be present if this parameter is used - in: query - name: associated_with_id - required: false - schema: - type: integer - - description: | - Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. - - ---CUSTOM--- - {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} - explode: false - in: query - name: updated_at - required: false - schema: - items: - type: string - type: array - style: form - - description: IDs of notes to fetch. If a record can't be found, that record won't be returned and your request will be successful - explode: false - in: query - name: ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: "Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at" - in: query - name: sort_by - required: false - schema: - type: string - - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" - in: query - name: sort_direction - required: false - schema: - type: string - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data - in: query - name: limit_paging_counts - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/Note" - type: array - description: Success - summary: List notes - tags: - - Notes - post: - description: | - Creates a note. - requestBody: - content: - application/x-www-form-urlencoded: - schema: - properties: - associated_with_id: - description: ID of the item with which the note is associated - type: integer - associated_with_type: - description: "Case insensitive type of item with which the note is associated. Value must be one of: person, account" - type: string - call_id: - description: ID of the call with which the note is associated. The call cannot already have a note - type: integer - content: - description: The content of the note - type: string - skip_crm_sync: - description: Boolean indicating if the CRM sync should be skipped. No syncing will occur if true - type: boolean - subject: - description: The subject of the note's crm activity, defaults to 'Note' - type: string - user_guid: - description: The user to create the note for. Only team admins may create notes on behalf of other users. Defaults to the requesting user - type: string - required: - - content - - associated_with_type - - associated_with_id - type: object - required: true - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/Note" - description: Success - summary: Create a note - tags: - - Notes - "/v2/notes/{id}.json": - delete: - description: | - Deletes a note owned by authorized account. - This operation is not reversible without contacting support. - This operation can be called multiple times successfully. - parameters: - - description: Note ID - in: path - name: id - required: true - schema: - type: string - responses: - "204": - description: The Note has been deleted successfully - summary: Delete a note - tags: - - Notes - get: - description: | - Fetches a note, by ID only. - parameters: - - description: Note ID - in: path - name: id - required: true - schema: - type: string - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/Note" - description: Success - summary: Fetch a note - tags: - - Notes - put: - description: | - Updates a note. Any changes to the note or associated records will not reflect in your CRM. - parameters: - - description: Note ID - in: path - name: id - required: true - schema: - type: string - requestBody: - content: - application/x-www-form-urlencoded: - schema: - properties: - call_id: - description: ID of the call with which the note is associated. The call cannot already have a note. If the note is associated to a call already, it will become associated to the requested call - type: integer - content: - description: The content of the note - type: string - required: - - content - type: object - required: true - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/Person" - description: Success - summary: Update a note - tags: - - Notes - /v2/ongoing_actions.json: - post: - description: | - Creates an ongoing action. An ongoing action is an action that is not yet completed, - but progress has been made towards the completion. The user should not need to do - anything for an ongoing action to be completed. An ongoing action can be later completed - by creating an activity. - - Ongoing actions are marked as status=pending_activity. - requestBody: - content: - application/x-www-form-urlencoded: - schema: - properties: - action_id: - description: | - Action that is being marked ongoing. This will validate that the action is still - valid before modifying it. Ongoing actions can not be marked ongoing. - type: integer - type: object - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/Action" - description: Success - summary: Create an ongoing action - tags: - - Ongoing Actions - /v2/pending_emails.json: - get: - description: | - Fetches a list of emails ready to be sent by an external email service. - parameters: - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data - in: query - name: limit_paging_counts - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/PendingEmail" - type: array - description: Success - summary: Fetches a list of emails ready to be sent by an external email service. Only emails sent with an External Email Client will appear here. - tags: - - Pending Emails - "/v2/pending_emails/{id}.json": - put: - description: | - Updates the status of an email sent by an External Email Client. Does not affect lofted emails. - parameters: - - description: Email ID - in: path - name: id - required: true - schema: - type: string - requestBody: - content: - application/x-www-form-urlencoded: - schema: - properties: - error_message: - description: The error message indicating why the email failed to send - type: string - message_id: - description: The message id of the email that was sent - type: string - sent_at: - description: The time that the email was actually sent in iso8601 format - type: string - status: - description: Delivery status of the email. Valid statuses are 'sent' and 'failed' - type: string - required: - - message_id - - status - type: object - required: true - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/PendingEmail" - description: Success - summary: Updates the status of an email sent by an External Email Client - tags: - - Pending Emails - /v2/people.json: - get: - description: | - Fetches multiple person records. The records can be filtered, paged, and sorted according to - the respective parameters. - parameters: - - description: IDs of people to fetch. If a record can't be found, that record won't be returned and your request will be successful - explode: false - in: query - name: ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: | - Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. - - ---CUSTOM--- - {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} - explode: false - in: query - name: updated_at - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters people by email address. Multiple emails can be applied. An additional value of "_is_null" can be passed to filter people that do not have an email address. - explode: false - in: query - name: email_addresses - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters people by the owner's guid. Multiple owner guids can be applied - explode: false - in: query - name: owned_by_guid - required: false - schema: - items: - type: string - type: array - style: form - - description: Includes people that have a given person_stage. Multiple person stage ids can be applied. An additional value of "_is_null" can be passed to filter people that do not have a stage set. - explode: false - in: query - name: person_stage_id - required: false - schema: - items: - type: integer - type: array - style: form - - description: Filters people by crm_id. Multiple crm ids can be applied - explode: false - in: query - name: crm_id - required: false - schema: - items: - type: string - type: array - style: form - - description: 'Filters people by owner_crm_id. Multiple owner_crm_ids can be applied. An additional value of "_is_null" can be passed to filter people that are unowned. A "_not_in" modifier can be used to exclude specific owner_crm_ids. Example: v2/people?owner_crm_id[_not_in]=id' - explode: false - in: query - name: owner_crm_id - required: false - schema: - items: - type: string - type: array - style: form - - description: Includes people that have a given do_not_contact property - in: query - name: do_not_contact - required: false - schema: - type: boolean - - description: Includes people that can be emailed given do_not_contact and contact_restrictions property - in: query - name: can_email - required: false - schema: - type: boolean - - description: Includes people that can be called given do_not_contact and contact_restrictions property - in: query - name: can_call - required: false - schema: - type: boolean - - description: Includes people that can be sent a text message given do_not_contact and contact_restrictions property - in: query - name: can_text - required: false - schema: - type: boolean - - description: Filters people by the account they are linked to. Multiple account ids can be applied - explode: false - in: query - name: account_id - required: false - schema: - items: - type: integer - type: array - style: form - - description: "Filters by people matching all given custom fields. The custom field names are case-sensitive, but the provided values are case-insensitive. Example: v2/people?custom_fields[custom_field_name]=custom_field_value" - in: query - name: custom_fields - required: false - schema: - type: object - - description: Filters people that were imported by the given import ids. Multiple import ids can be applied. An additional value of "_is_null" can be passed to filter people that were not imported. - explode: false - in: query - name: import_id - required: false - schema: - items: - type: integer - type: array - style: form - - description: Filters people by job seniorty. Multiple job seniorities can be applied. An additional value of "_is_null" can be passed to filter people do not have a job_seniority. - explode: false - in: query - name: job_seniority - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters people by the tag ids applied to the person. Multiple tag ids can be applied. - explode: false - in: query - name: tag_id - required: false - schema: - items: - type: integer - type: array - style: form - - description: Filters people by whether the owner is active or not. - in: query - name: owner_is_active - required: false - schema: - type: boolean - - description: Filters people by the cadence that they are currently on. Multiple cadence_ids can be applied. An additional value of "_is_null" can be passed to filter people that are not on a cadence. - explode: false - in: query - name: cadence_id - required: false - schema: - items: - type: integer - type: array - style: form - - description: Filters people who have been starred by the user guids given. - explode: false - in: query - name: starred_by_guid - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters people by whether or not they have replied to an email or not. - in: query - name: replied - required: false - schema: - type: boolean - - description: Filters people by whether an email that was sent to them bounced or not. - in: query - name: bounced - required: false - schema: - type: boolean - - description: Filters people by whether or not they have been marked as a success or not. - in: query - name: success - required: false - schema: - type: boolean - - description: Filters people by whether or not they are marked as an European Union Resident or not. - in: query - name: eu_resident - required: false - schema: - type: boolean - - description: Filters people by their title by exact match. Supports partial matching - explode: false - in: query - name: title - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters people by their country by exact match. Supports partial matching - explode: false - in: query - name: country - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters people by their state by exact match. Supports partial matching - explode: false - in: query - name: state - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters people by their city by exact match. Supports partial matching - explode: false - in: query - name: city - required: false - schema: - items: - type: string - type: array - style: form - - description: | - Equality filters that are applied to the last_contacted field. A single filter can be used by itself or combined with other filters to create a range. - Additional values of "_is_null" or "_is_not_null" can be passed to filter records that either have no timestamp value or any timestamp value. - ---CUSTOM--- - {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} - in: query - name: last_contacted - required: false - schema: - type: object - - description: | - Equality filters that are applied to the last_contacted field. A single filter can be used by itself or combined with other filters to create a range. - - ---CUSTOM--- - {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} - in: query - name: created_at - required: false - schema: - type: object - - description: Filters people by whether or not that person is on a cadence or if they have been contacted in any way. - in: query - name: new - required: false - schema: - type: boolean - - description: Filter people by whether or not they have a phone number or not - in: query - name: phone_number - required: false - schema: - type: boolean - - description: Filters people by locales. Multiple locales can be applied. An additional value of "Null" can be passed to filter people that do not have a locale. - explode: false - in: query - name: locales - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters people by owner_id. Multiple owner_ids can be applied. - explode: false - in: query - name: owner_id - required: false - schema: - items: - type: integer - type: array - style: form - - description: For internal use only. This field does not comply with our backwards compatibility policies. This filter is for authenticated users of Salesloft only and will not work for OAuth Applications. Filters people by the string provided. Can search and filter by name, title, industry, email_address and linked account name. - in: query - name: _query - required: false - schema: - type: string - - description: "Key to sort on, must be one of: created_at, updated_at, last_contacted_at, name, title, job_seniority, call_count, sent_emails, clicked_emails, replied_emails, viewed_emails, account, cadence_stage_name. Defaults to updated_at" - in: query - name: sort_by - required: false - schema: - type: string - - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" - in: query - name: sort_direction - required: false - schema: - type: string - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data - in: query - name: limit_paging_counts - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/Person" - type: array - description: Success - summary: List people - tags: - - People - post: - description: | - Creates a person. Either email_address or phone/last_name must be provided as a unique lookup - on the team. - requestBody: - content: - application/x-www-form-urlencoded: - schema: - properties: - account_id: - description: ID of the Account to link this person to - type: integer - autotag_date: - description: Whether the date should be added to this person as a tag. Default is false. The tag will be Y-m-d format. - type: boolean - city: - description: City - type: string - contact_restrictions: - description: "Specific methods of communication to prevent for this person. This will prevent individual execution of these communication types as well as automatically skip cadence steps of this communication type for this person in SalesLoft. Values currently accepted: call, email, message" - items: - type: string - type: array - country: - description: Country - type: string - crm_id: - description: |+ - Requires Salesforce. - - ID of the person in your external CRM. You must provide a crm_id_type if this is included. - - Validations will be applied to the crm_id depending on the crm_id_type. A "salesforce" ID must be exactly 18 characters. A "salesforce" ID must be either a Lead (00Q) or Contact (003) object. The type will be validated using the 18 character ID. - - This field can only be used if your application or API key has the "person:set_crm_id" scope. - - type: string - crm_id_type: - description: "The CRM that the provided crm_id is for. Must be one of: salesforce" - type: string - custom_fields: - description: Custom fields are defined by the user's team. Only fields with values are presented in the API. - type: object - do_not_contact: - description: Whether or not this person has opted out of all communication. Setting this value to true prevents this person from being called, emailed, or added to a cadence in SalesLoft. If this person is currently in a cadence, they will be removed. - type: boolean - email_address: - description: Email address - type: string - first_name: - description: First name - type: string - home_phone: - description: Home phone without formatting - type: string - import_id: - description: ID of the Import this person is a part of. A person can be part of multiple imports, but this ID will always be the most recent Import - type: integer - job_seniority: - description: The Job Seniority of a Person, must be one of director, executive, individual_contributor, manager, vice_president, unknown - type: string - last_name: - description: Last name - type: string - linkedin_url: - description: Linkedin URL - type: string - locale: - description: Time locale of the person - type: string - mobile_phone: - description: Mobile phone without formatting - type: string - owner_id: - description: ID of the User that owns this person - type: integer - person_company_industry: - description: Company industry. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended - type: string - person_company_name: - description: Company name. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended - type: string - person_company_website: - description: Company website. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended - type: string - person_stage_id: - description: ID of the PersonStage of this person - type: integer - personal_email_address: - description: Personal email address - type: string - personal_website: - description: The website of this person - type: string - phone: - description: Phone without formatting - type: string - phone_extension: - description: Phone extension without formatting - type: string - secondary_email_address: - description: Alternate email address - type: string - state: - description: State - type: string - tags: - description: All tags applied to this person - items: - type: string - type: array - title: - description: Job title - type: string - twitter_handle: - description: The twitter handle of this person - type: string - work_city: - description: Work location - city - type: string - work_country: - description: Work location - country - type: string - work_state: - description: Work location - state - type: string - type: object - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/Person" - description: Success - summary: Create a person - tags: - - People - "/v2/people/{id}.json": - delete: - description: | - Deletes a person. This operation is not reversible without contacting support. - This operation can be called multiple times successfully. - parameters: - - description: Person id - in: path - name: id - required: true - schema: - type: string - responses: - "204": - description: The person has been deleted successfully - summary: Delete a person - tags: - - People - get: - description: | - Fetches a person, by ID only. - parameters: - - description: Person ID - in: path - name: id - required: true - schema: - type: string - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/Person" - description: Success - summary: Fetch a person - tags: - - People - put: - description: | - Updates a person. - parameters: - - description: Person id - in: path - name: id - required: true - schema: - type: string - requestBody: - content: - application/x-www-form-urlencoded: - schema: - properties: - account_id: - description: ID of the Account to link this person to - type: integer - city: - description: City - type: string - contact_restrictions: - description: "Specific methods of communication to prevent for this person. This will prevent individual execution of these communication types as well as automatically skip cadence steps of this communication type for this person in SalesLoft. Values currently accepted: call, email, message" - items: - type: string - type: array - country: - description: Country - type: string - crm_id: - description: |+ - Requires Salesforce. - - ID of the person in your external CRM. You must provide a crm_id_type if this is included. - - Validations will be applied to the crm_id depending on the crm_id_type. A "salesforce" ID must be exactly 18 characters. A "salesforce" ID must be either a Lead (00Q) or Contact (003) object. The type will be validated using the 18 character ID. - - This field can only be used if your application or API key has the "person:set_crm_id" scope. - - type: string - crm_id_type: - description: "The CRM that the provided crm_id is for. Must be one of: salesforce" - type: string - custom_fields: - description: Custom fields are defined by the user's team. Only fields with values are presented in the API. - type: object - do_not_contact: - description: Whether or not this person has opted out of all communication. Setting this value to true prevents this person from being called, emailed, or added to a cadence in SalesLoft. If this person is currently in a cadence, they will be removed. - type: boolean - email_address: - description: Email address - type: string - first_name: - description: First name - type: string - home_phone: - description: Home phone without formatting - type: string - import_id: - description: ID of the Import this person is a part of. A person can be part of multiple imports, but this ID will always be the most recent Import - type: integer - job_seniority: - description: The Job Seniority of a Person, must be one of director, executive, individual_contributor, manager, vice_president, unknown - type: string - last_name: - description: Last name - type: string - linkedin_url: - description: Linkedin URL - type: string - locale: - description: Time locale of the person - type: string - mobile_phone: - description: Mobile phone without formatting - type: string - owner_id: - description: ID of the User that owns this person - type: integer - person_company_industry: - description: Company industry. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended - type: string - person_company_name: - description: Company name. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended - type: string - person_company_website: - description: Company website. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended - type: string - person_stage_id: - description: ID of the PersonStage of this person - type: integer - personal_email_address: - description: Personal email address - type: string - personal_website: - description: The website of this person - type: string - phone: - description: Phone without formatting - type: string - phone_extension: - description: Phone extension without formatting - type: string - secondary_email_address: - description: Alternate email address - type: string - state: - description: State - type: string - tags: - description: All tags applied to this person - items: - type: string - type: array - title: - description: Job title - type: string - twitter_handle: - description: The twitter handle of this person - type: string - work_city: - description: Work location - city - type: string - work_country: - description: Work location - country - type: string - work_state: - description: Work location - state - type: string - type: object - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/Person" - description: Success - summary: Update a person - tags: - - People - /v2/person_stages.json: - get: - description: | - Fetches multiple person stage records. The records can be filtered, paged, and sorted according to - the respective parameters. - parameters: - - description: IDs of person stages to fetch. - explode: false - in: query - name: ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: "Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at" - in: query - name: sort_by - required: false - schema: - type: string - - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" - in: query - name: sort_direction - required: false - schema: - type: string - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data - in: query - name: limit_paging_counts - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/PersonStage" - type: array - description: Success - summary: List person stages - tags: - - Person Stages - post: - description: | - Creates a person stage. - requestBody: - content: - application/x-www-form-urlencoded: - schema: - properties: - name: - description: The name of the new stage - type: string - required: - - name - type: object - required: true - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/PersonStage" - description: Success - summary: Create a person stage - tags: - - Person Stages - "/v2/person_stages/{id}.json": - delete: - description: | - Deletes a person stage. This operation is not reversible without contacting support. - This operation can be called multiple times successfully. - parameters: - - description: Stage ID - in: path - name: id - required: true - schema: - type: string - responses: - "204": - description: The Person Stage has been deleted successfully - summary: Delete an person stage - tags: - - Person Stages - get: - description: | - Fetches a person stage, by ID only. - parameters: - - description: Stage ID - in: path - name: id - required: true - schema: - type: string - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/PersonStage" - description: Success - summary: Fetch a person stage - tags: - - Person Stages - put: - description: | - Updates a person stage. - parameters: - - description: Stage ID - in: path - name: id - required: true - schema: - type: string - requestBody: - content: - application/x-www-form-urlencoded: - schema: - properties: - name: - description: The name of the stage. - type: string - required: - - name - type: object - required: true - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/PersonStage" - description: Success - summary: Update a person stage - tags: - - Person Stages - /v2/person_upserts.json: - post: - description: | - Upserts a person record. The upsert_key dictates how the upsert will be performed. The create and update behavior - is exactly the same as the individual create and update endpoints. - requestBody: - content: - application/x-www-form-urlencoded: - schema: - properties: - account_id: - description: ID of the Account to link this person to - type: integer - city: - description: City - type: string - contact_restrictions: - description: "Specific methods of communication to prevent for this person. This will prevent individual execution of these communication types as well as automatically skip cadence steps of this communication type for this person in SalesLoft. Values currently accepted: call, email, message" - items: - type: string - type: array - country: - description: Country - type: string - crm_id: - description: |+ - Requires Salesforce. - - ID of the person in your external CRM. You must provide a crm_id_type if this is included. - - Validations will be applied to the crm_id depending on the crm_id_type. A "salesforce" ID must be exactly 18 characters. A "salesforce" ID must be either a Lead (00Q) or Contact (003) object. The type will be validated using the 18 character ID. - - This field can only be used if your application or API key has the "person:set_crm_id" scope. - - type: string - crm_id_type: - description: "The CRM that the provided crm_id is for. Must be one of: salesforce" - type: string - custom_fields: - description: Custom fields are defined by the user's team. Only fields with values are presented in the API. - type: object - do_not_contact: - description: Whether or not this person has opted out of all communication. Setting this value to true prevents this person from being called, emailed, or added to a cadence in SalesLoft. If this person is currently in a cadence, they will be removed. - type: boolean - email_address: - description: Email address - type: string - first_name: - description: First name - type: string - home_phone: - description: Home phone without formatting - type: string - id: - description: | - ID of the person to update. Used if the upsert_key=id. When id and another upsert_key are provided, - the request will fail if the upsert record id and id parameter don't match. - type: integer - import_id: - description: ID of the Import this person is a part of. A person can be part of multiple imports, but this ID will always be the most recent Import - type: integer - job_seniority: - description: The Job Seniority of a Person, must be one of director, executive, individual_contributor, manager, vice_president, unknown - type: string - last_name: - description: Last name - type: string - linkedin_url: - description: Linkedin URL - type: string - locale: - description: Time locale of the person - type: string - mobile_phone: - description: Mobile phone without formatting - type: string - owner_id: - description: ID of the User that owns this person - type: integer - person_company_industry: - description: Company industry. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended - type: string - person_company_name: - description: Company name. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended - type: string - person_company_website: - description: Company website. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended - type: string - person_stage_id: - description: ID of the PersonStage of this person - type: integer - personal_email_address: - description: Personal email address - type: string - personal_website: - description: The website of this person - type: string - phone: - description: Phone without formatting - type: string - phone_extension: - description: Phone extension without formatting - type: string - secondary_email_address: - description: Alternate email address - type: string - state: - description: State - type: string - tags: - description: All tags applied to this person - items: - type: string - type: array - title: - description: Job title - type: string - twitter_handle: - description: The twitter handle of this person - type: string - upsert_key: - description: | - Name of the parameter to upsert on. The field must be provided in the input parameters, or the request will fail. - The request will also fail if there are multiple records matched by the upsert field. This can occur if intentional duplicates - by email address is enabled. - - If upsert_key is not provided, this endpoint will not update an existing record. - - Valid options are: id, crm_id, email_address. If crm_id is provided, then a valid crm_id_type must be provided, as documented - for the person create and update endpoints. - type: string - work_city: - description: Work location - city - type: string - work_country: - description: Work location - country - type: string - work_state: - description: Work location - state - type: string - type: object - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/PersonUpsert" - description: Success - summary: Upsert a person - tags: - - Person Upsert - /v2/phone_number_assignments.json: - get: - description: | - Fetches multiple phone number assignment records. The records can be filtered, paged, and sorted according to - the respective parameters. - parameters: - - description: IDs of phone number assignments to fetch - explode: false - in: query - name: ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: "Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at" - in: query - name: sort_by - required: false - schema: - type: string - - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" - in: query - name: sort_direction - required: false - schema: - type: string - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data - in: query - name: limit_paging_counts - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/PhoneNumberAssignment" - type: array - description: Success - summary: List phone number assignments - tags: - - Phone Number Assignments - "/v2/phone_number_assignments/{id}.json": - get: - description: | - Fetches a phone number assignment, by ID only. - parameters: - - description: PhoneNumberAssignment ID - in: path - name: id - required: true - schema: - type: string - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/PhoneNumberAssignment" - description: Success - summary: Fetch a phone number assignment - tags: - - Phone Number Assignments - /v2/phone_numbers/caller_ids.json: - get: - description: | - Each entry is a possible caller ID match for the number. Multiple - entries may be returned if the phone number is present on more than one - person in the system. Phone number should be in E.164 format. - parameters: - - description: E.164 Phone Number - in: query - name: phone_number - required: true - schema: - type: string - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/CallerId" - type: array - description: Success - summary: List caller ids - tags: - - Caller IDs - "/v2/phone_numbers/recording_settings/{id}.json": - get: - description: | - Fetches the recording status for a given phone number, based on Do Not Record and Recording Governance for your team. - Phone number should be in E.164 format. - parameters: - - description: E.164 Phone Number - in: path - name: id - required: true - schema: - type: string - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/RecordingSetting" - description: Success - summary: Fetch recording setting - tags: - - Recording Settings - /v2/saved_list_views.json: - get: - description: | - Fetches multiple saved list view records. The records can be filtered, paged, and sorted according to - the respective parameters. - parameters: - - description: IDs of saved list views to fetch. If a record can't be found, that record won't be returned and your request will be successful - explode: false - in: query - name: ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: Type of saved list views to fetch. - in: query - name: view - required: false - schema: - type: string - - description: "Key to sort on, must be one of: name. Defaults to name" - in: query - name: sort_by - required: false - schema: - type: string - - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" - in: query - name: sort_direction - required: false - schema: - type: string - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data - in: query - name: limit_paging_counts - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/SavedListView" - type: array - description: Success - summary: List saved list views - tags: - - Saved List Views - post: - description: | - Creates a saved list view. - requestBody: - content: - application/x-www-form-urlencoded: - schema: - properties: - is_default: - description: Whether the saved list view is the default - type: boolean - name: - description: The name of the saved list view - type: string - view: - description: "The type of objects in the saved list view. Value must be one of: people, companies, or recordings" - type: string - view_params: - description: JSON object of list view parameters - type: string - required: - - name - - view - type: object - required: true - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/SavedListView" - description: Success - summary: Create a saved list view - tags: - - Saved List Views - "/v2/saved_list_views/{id}.json": - delete: - description: | - Deletes a saved list view. This operation is not reversible without contacting support. - This operation can be called multiple times successfully. - parameters: - - description: Saved List View ID - in: path - name: id - required: true - schema: - type: string - responses: - "204": - description: The saved list view has been deleted successfully - summary: Delete a saved list view - tags: - - Saved List Views - get: - description: | - Fetches a saved list view, by ID only. - parameters: - - description: Saved List View ID - in: path - name: id - required: true - schema: - type: string - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/SavedListView" - description: Success - summary: Fetch a saved list view - tags: - - Saved List Views - put: - description: | - Updates a saved list view. - parameters: - - description: Saved List View ID - in: path - name: id - required: true - schema: - type: string - requestBody: - content: - application/x-www-form-urlencoded: - schema: - properties: - is_default: - description: Whether the saved list view is the default - type: boolean - name: - description: The name of the saved list view - type: string - view_params: - description: JSON object of list view parameters - type: string - type: object - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/SavedListView" - description: Success - summary: Update a saved list view - tags: - - Saved List Views - /v2/steps.json: - get: - description: | - Fetches multiple step records. The records can be filtered, paged, and sorted according to - the respective parameters. - parameters: - - description: IDs of steps to fetch. - explode: false - in: query - name: ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: Filter by cadence ID - in: query - name: cadence_id - required: false - schema: - type: integer - - description: Filter by step type - in: query - name: type - required: false - schema: - type: string - - description: Filter by whether a step has due actions - in: query - name: has_due_actions - required: false - schema: - type: boolean - - description: "Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at" - in: query - name: sort_by - required: false - schema: - type: string - - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" - in: query - name: sort_direction - required: false - schema: - type: string - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data - in: query - name: limit_paging_counts - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/Step" - type: array - description: Success - summary: List steps - tags: - - Steps - "/v2/steps/{id}.json": - get: - description: | - Fetches a step, by ID only. - parameters: - - description: Step ID - in: path - name: id - required: true - schema: - type: string - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/Step" - description: Success - summary: Fetch a step - tags: - - Steps - /v2/successes.json: - get: - description: | - Fetches multiple success records. The records can be filtered, paged, and sorted according to - the respective parameters. - parameters: - - description: IDs of successes to fetch. If a record can't be found, that record won't be returned and your request will be successful - explode: false - in: query - name: ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: Filters successes by person_id. Multiple person ids can be applied - explode: false - in: query - name: person_id - required: false - schema: - items: - type: integer - type: array - style: form - - description: | - Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. - - ---CUSTOM--- - {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} - explode: false - in: query - name: updated_at - required: false - schema: - items: - type: string - type: array - style: form - - description: "Key to sort on, must be one of: created_at, updated_at, succeeded_at. Defaults to updated_at" - in: query - name: sort_by - required: false - schema: - type: string - - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" - in: query - name: sort_direction - required: false - schema: - type: string - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data - in: query - name: limit_paging_counts - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/Success" - type: array - description: Success - summary: List successes - tags: - - Successes - /v2/tags.json: - get: - description: | - Fetches a list of the tags used for a team. The records can be filtered, paged, and sorted according to - the respective parameters. - - Tags can be applied to mulitple resource types. - parameters: - - description: Filters tags by name - in: query - name: search - required: false - schema: - type: string - - description: Filters tags by their IDs - explode: false - in: query - name: ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: "Key to sort on, must be one of: name. Defaults to name" - in: query - name: sort_by - required: false - schema: - type: string - - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" - in: query - name: sort_direction - required: false - schema: - type: string - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data - in: query - name: limit_paging_counts - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/Tag" - type: array - description: Success - summary: List team tags - tags: - - Tags - /v2/tasks.json: - get: - description: | - Fetches multiple task records. The records can be filtered, paged, and sorted according to - the respective parameters. - parameters: - - description: IDs of tasks to fetch. - explode: false - in: query - name: ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: Filters tasks by the user to which they are assigned. - explode: false - in: query - name: user_id - required: false - schema: - items: - type: integer - type: array - style: form - - description: Filters tasks by the person to which they are associated. - explode: false - in: query - name: person_id - required: false - schema: - items: - type: integer - type: array - style: form - - description: Filters tasks by the account to which they are associated. - explode: false - in: query - name: account_id - required: false - schema: - items: - type: integer - type: array - style: form - - description: "Filters tasks by their current state. Valid current_states include: ['scheduled', 'completed']." - explode: false - in: query - name: current_state - required: false - schema: - items: - type: string - type: array - style: form - - description: "Filters tasks by their task type. Valid task_types include: ['call', 'email', 'general']." - explode: false - in: query - name: task_type - required: false - schema: - items: - type: string - type: array - style: form - - description: "Filters tasks by time interval. Valid time_intervals include: ['overdue', 'today', 'tomorrow', 'this_week', 'next_week']." - in: query - name: time_interval_filter - required: false - schema: - type: string - - description: Filters tasks by idempotency key. - in: query - name: idempotency_key - required: false - schema: - type: string - - description: Filters tasks by locale of the person to which they are associated. - explode: false - in: query - name: locale - required: false - schema: - items: - type: string - type: array - style: form - - description: "Key to sort on, must be one of: due_date, due_at. Defaults to due_date" - in: query - name: sort_by - required: false - schema: - type: string - - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to ASC" - in: query - name: sort_direction - required: false - schema: - type: string - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data - in: query - name: limit_paging_counts - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/Task" - type: array - description: Success - summary: List tasks - tags: - - Tasks - post: - description: | - Creates a task. - requestBody: - content: - application/x-www-form-urlencoded: - schema: - properties: - current_state: - description: "Current state of the task, valid options are: scheduled" - type: string - description: - description: A description of the task recorded for person at completion time - type: string - due_date: - description: Date of when the Task is due, ISO-8601 date format required - type: string - idempotency_key: - description: Establishes a unique identifier to prevent duplicates from being created - type: string - person_id: - description: ID of the person to be contacted - type: string - remind_at: - description: Datetime of when the user will be reminded of the task, ISO-8601 datetime format required - type: string - subject: - description: Subject line of the task. - type: string - task_type: - description: "Task type, valid options are: call, email, general" - type: string - user_id: - description: ID of the user linked to the task - type: integer - required: - - subject - - person_id - - user_id - - task_type - - due_date - - current_state - type: object - required: true - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/Task" - description: Success - summary: Create a Task - tags: - - Tasks - "/v2/tasks/{id}.json": - get: - description: | - Fetches a task, by ID only. - parameters: - - description: Task ID - in: path - name: id - required: true - schema: - type: string - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/Step" - description: Success - summary: Fetch a task - tags: - - Tasks - put: - description: | - Updates a task. - parameters: - - description: Task ID - in: path - name: id - required: true - schema: - type: string - requestBody: - content: - application/x-www-form-urlencoded: - schema: - properties: - current_state: - description: "Current state of the task, valid options are: completed" - type: string - description: - description: A description of the task recorded for person at completion time - type: string - due_date: - description: Date of when the Task is due, ISO-8601 date format required - type: string - is_logged: - description: A flag to indicate that the task should only be logged - type: boolean - remind_at: - description: Datetime of when the user will be reminded of the task, ISO-8601 datetime format required - type: string - subject: - description: Subject line of the task - type: string - type: object - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/Task" - description: Success - summary: Update a Task - tags: - - Tasks - /v2/team.json: - get: - description: | - Fetches the team of the authenticated user. - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/Team" - description: Success - summary: Fetch current team - tags: - - Team - /v2/team_template_attachments.json: - get: - description: | - Fetches multiple team template attachment records. The records can be filtered and paged according to - the respective parameters. - parameters: - - description: IDs of team template attachments to fetch. If a record can't be found, that record won't be returned and your request will be successful - explode: false - in: query - name: ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: Filters template attachments by team template IDs - explode: false - in: query - name: team_template_id - required: false - schema: - items: - type: integer - type: array - style: form - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data - in: query - name: limit_paging_counts - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/TeamTemplateAttachment" - type: array - description: Success - summary: List team template attachments - tags: - - Team Template Attachments - /v2/team_templates.json: - get: - description: | - Fetches multiple team template records. The records can be filtered, paged, and sorted according to - the respective parameters. - - Team templates are templates that are available team-wide. Admins may use - team templates to create original content for the entire team, monitor version control to ensure templates are always up to date, - and track template performance across the entire organization. All metrics on a team template reflect usage across the team; individual metrics can be found with the email_templates API endpoint. - parameters: - - description: IDs of team templates to fetch. If a record can't be found, that record won't be returned and your request will be successful - explode: false - in: query - name: ids - required: false - schema: - items: - type: string - type: array - style: form - - description: | - Equality filters that are applied to the updated_at field. A single filter can be used by itself or combined with other filters to create a range. - - ---CUSTOM--- - {"type":"object","keys":[{"name":"gt","type":"iso8601 string","description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"gte","type":"iso8601 string","description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lt","type":"iso8601 string","description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."},{"name":"lte","type":"iso8601 string","description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."}]} - explode: false - in: query - name: updated_at - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters email templates by title or subject - in: query - name: search - required: false - schema: - type: string - - description: Filters email templates by tags applied to the template by tag ID, not to exceed 100 IDs - explode: false - in: query - name: tag_ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: Filters team templates by tags applied to the template, not to exceed 100 tags - explode: false - in: query - name: tag - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters email templates to include archived templates or not - in: query - name: include_archived_templates - required: false - schema: - type: boolean - - description: "Key to sort on, must be one of: created_at, updated_at, last_used_at. Defaults to updated_at" - in: query - name: sort_by - required: false - schema: - type: string - - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" - in: query - name: sort_direction - required: false - schema: - type: string - - description: How many records to show per page in the range [1, 100]. Defaults to 25 - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch results from. Defaults to 1 - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data - in: query - name: limit_paging_counts - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/TeamTemplate" - type: array - description: Success - summary: List team templates - tags: - - Team Templates - "/v2/team_templates/{id}.json": - get: - description: | - Fetches a team template, by ID only. - parameters: - - description: Team Template ID - in: path - name: id - required: true - schema: - type: string - - description: Optionally will return the templates with the current user's email signature - in: query - name: include_signature - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/TeamTemplate" - description: Success - summary: Fetch a team template - tags: - - Team Templates - /v2/third_party_live_feed_items: - post: - description: Creates a live feed item that can be sent to users. May only be used by whitelisted Frontend Integrations. Reference the Salesloft App Directory and Frontend Integrations sections for additional details. - requestBody: - content: - application/x-www-form-urlencoded: - schema: - properties: - event_occurred_at: - description: | - Equality filters that are applied to the event_occurred_at field. A single filter can be used by itself or combined with other filters to create a range. - ---CUSTOM--- - {"keys":[{"description":"Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"gt","type":"iso8601 string"},{"description":"Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"gte","type":"iso8601 string"},{"description":"Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"lt","type":"iso8601 string"},{"description":"Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision.","name":"lte","type":"iso8601 string"}],"type":"object"} - type: string - idempotency_key: - description: Uniquely provided string specific to this event. This should be a value which can't be duplicated between external systems, meaning that an id is not sufficient. - type: string - message: - description: The message that relates to the subject. This message should start with a lower-case past-tense verb and end with a period (e.g. "received a package."). When live feed items are displayed to users, the subject's name is concatenated with the message and a joining space. Only HTML tags with an "href" attribute are allowed. Other attributes and tags will be stripped. - type: string - subject_id: - description: The ID of the subject of the live feed item (i.e. the "person" id). - type: integer - subject_type: - description: The type of the subject of the live feed item. Currently only "person" is supported. - type: string - user_guid: - description: The guid for the user that this live feed item should be shown to. - type: string - required: - - subject_type - - subject_id - - event_occurred_at - - user_guid - - message - - idempotency_key - type: object - required: true - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/LiveFeedItem" - type: array - description: Success - summary: Create a live feed item - tags: - - Live Feed Items - /v2/users.json: - get: - description: | - Non Admin: Lists only your user, or all on team depending on group visibility policy - Team Admin: Lists users associated with your team - parameters: - - description: IDs of users to fetch. If a record can't be found, that record won't be returned and your request will be successful - explode: false - in: query - name: ids - required: false - schema: - items: - type: integer - type: array - style: form - - description: Filters list to only include guids - explode: false - in: query - name: guid - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters users by group_id. An additional value of "_is_null" can be passed to filter users that are not in a group - explode: false - in: query - name: group_id - required: false - schema: - items: - type: string - type: array - style: form - - description: Filters users by role_id - explode: false - in: query - name: role_id - required: false - schema: - items: - type: string - type: array - style: form - - description: Space-separated list of keywords used to find case-insensitive substring matches against First Name, Last Name, or Email - in: query - name: search - required: false - schema: - type: string - - description: Filters users based on active attribute. Defaults to not applied - in: query - name: active - required: false - schema: - type: boolean - - description: | - Defaults to true. - - When true, only shows users that are actionable based on the team's privacy settings. - When false, shows all users on the team, even if you can't take action on that user. Deactivated users are also included when false. - in: query - name: visible_only - required: false - schema: - type: boolean - - description: How many users to show per page in the range [1, 100]. Defaults to 25. Results are only paginated if the page parameter is defined - in: query - name: per_page - required: false - schema: - type: integer - - description: The current page to fetch users from. Defaults to returning all users - in: query - name: page - required: false - schema: - type: integer - - description: Whether to include total_pages and total_count in the metadata. Defaults to false - in: query - name: include_paging_counts - required: false - schema: - type: boolean - - description: Filters users based on if they have a crm user mapped or not. - in: query - name: has_crm_user - required: false - schema: - type: boolean - - description: Filters users based on assigned work_country. - explode: false - in: query - name: work_country - required: false - schema: - items: - type: string - type: array - style: form - - description: "Key to sort on, must be one of: id, email, name, group, role. Defaults to id" - in: query - name: sort_by - required: false - schema: - type: string - - description: "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC" - in: query - name: sort_direction - required: false - schema: - type: string - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/User" - type: array - description: Success - summary: List users - tags: - - Users - "/v2/users/{id}.json": - get: - description: | - Fetches a user, by ID only. - parameters: - - description: User ID - in: path - name: id - required: true - schema: - type: string - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/User" - description: Success - summary: Fetch a user - tags: - - Users - /v2/webhook_subscriptions: - get: - description: Fetches all of the customer's webhook subscriptions for your application. - parameters: - - description: Filters webhook subscriptions by whether is enabled or not. - in: query - name: enabled - required: false - schema: - type: boolean - responses: - "200": - content: - "*/*": - schema: - items: - $ref: "#/components/schemas/Subscription" - type: array - description: Success - summary: List webhook subscriptions - tags: - - Webhook Subscriptions - post: - description: |- - Creates a webhook subscription. Visit the webhooks page for additional details and a list of available webhooks. - Request must be made with a valid Oauth token or API key. - requestBody: - content: - application/x-www-form-urlencoded: - schema: - properties: - callback_token: - description: Any string to be used as a shared secret when subscription events are published. SalesLoft will send the value of this callback_token in the payload of each event so the receiver may verify it matches the original value. This ensures webhook events are being delivered by SalesLoft. - type: string - callback_url: - description: URL for your callback handler - type: string - event_type: - description: Type of event the subscription is for. Visit the "Event Types" section of the webhooks page to find a list of supported event types. - type: string - required: - - callback_url - - callback_token - - event_type - type: object - required: true - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/Subscription" - description: Success - summary: Create a webhook subscription - tags: - - Webhook Subscriptions - "/v2/webhook_subscriptions/{id}": - delete: - description: Deletes a webhook subscription. This operation is not reversible without contacting support. This operation can be called multiple times successfully. - parameters: - - description: The id of the Webhook Subscription to delete - in: path - name: id - required: true - schema: - type: integer - responses: - "204": - description: This webhook subscription has been deleted successfully - summary: Delete a webhook subscription - tags: - - Webhook Subscriptions - get: - description: Fetches a webhook subscription, by ID only. - parameters: - - description: The id for the Webhook Subscription - in: path - name: id - required: true - schema: - type: integer - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/Subscription" - description: Success - summary: Fetch a webhook subscription - tags: - - Webhook Subscriptions - put: - description: |- - Updates a webhook subscription. - Request must be made with a valid Oauth token or API key. - parameters: - - description: The Webhook Suscription id to update - in: path - name: id - required: true - schema: - type: integer - requestBody: - content: - application/x-www-form-urlencoded: - schema: - properties: - enabled: - description: Enable or disable the webhook subscription - type: boolean - type: object - responses: - "200": - content: - "*/*": - schema: - $ref: "#/components/schemas/Subscription" - description: Success - summary: Update a webhook subscription - tags: - - Webhook Subscriptions -components: - requestBodies: - postV2ImportsJson: - content: - application/x-www-form-urlencoded: - schema: - properties: - name: - description: Name, recommended to be easily identifiable to a user - type: string - user_id: - description: ID of the User that owns this Import - type: integer - type: object - schemas: - Account: - properties: - account_tier: - $ref: "#/components/schemas/EmbeddedResource" - archived_at: - description: Datetime of when the Account was archived, if archived - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - city: - description: City - example: Dufftown - type: string - company_stage: - $ref: "#/components/schemas/EmbeddedResource" - company_type: - description: Type of the Account's company - example: Private - type: string - conversational_name: - description: Conversational name of the Account - example: Hogwarts - type: string - country: - description: Country - example: Scotland - type: string - counts: - $ref: "#/components/schemas/EmbeddedAccountCounts" - created_at: - description: Datetime of when the Account was created - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - creator: - $ref: "#/components/schemas/EmbeddedResource" - crm_id: - description: CRM ID - example: 003i000001mnhpD - type: string - crm_object_type: - description: CRM object type - example: account - type: string - crm_url: - description: CRM url - example: https://na15.salesforce.com/003i000001mnhpD - type: string - custom_fields: - description: Custom fields are defined by the user's team. Only fields with values are presented in the API. - example: - MyField: A Value - Other: Field - type: object - description: - description: Description - example: British school of magic for students - type: string - do_not_contact: - description: Whether this company has opted out of communications. Do not contact someone at this company when this is set to true - example: true - type: boolean - domain: - description: Website domain, not a fully qualified URI - example: salesloft.com - type: string - founded: - description: Date or year of founding - example: March 1st, 1820 - type: string - id: - description: ID of Account - example: 1 - type: integer - industry: - description: Industry - example: Education - type: string - last_contacted_at: - description: Datetime this Account was last contacted - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - last_contacted_by: - $ref: "#/components/schemas/EmbeddedResource" - last_contacted_person: - $ref: "#/components/schemas/EmbeddedResource" - last_contacted_type: - description: The type of the last touch to this Account. Can be call, email, other - example: call - type: string - linkedin_url: - description: Full LinkedIn url - example: https://www.linkedin.com/company/2296178/ - type: string - locale: - description: Time locale - example: Europe/London - type: string - name: - description: Account Full Name - example: Hogwarts School of Witchcraft and Wizardry - type: string - owner: - $ref: "#/components/schemas/EmbeddedResource" - owner_crm_id: - description: Mapped owner field from the CRM - example: 003i000001mnhpD - type: string - phone: - description: Phone number without formatting - example: +1 444 555 6666 - type: string - postal_code: - description: Postal code - example: "55555" - type: string - revenue_range: - description: Estimated revenue range - example: 1,000,000-2,000,000 - type: string - size: - description: Estimated number of people in employment - example: "1500" - type: string - state: - description: State - example: Mortlach - type: string - street: - description: Street name and number - example: 4 Picket Drive - type: string - tags: - description: All tags applied to this Account - example: - - 7-23-2017 - - dreamforce - items: - type: string - type: array - twitter_handle: - description: Twitter handle, with @ - example: "@kyleporter" - type: string - updated_at: - description: Datetime of when the Account was last updated - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - user_relationships: - description: Filters by accounts matching all given user relationship fields, _is_null or _unmapped can be passed to filter accounts with null or unmapped user relationship values - example: - Other: _is_null - bff: 0037h00000d78aAAAQ - type: object - website: - description: Website - example: https://salesloft.com - type: string - AccountStage: - properties: - created_at: - description: Datetime of when the Account Stage was created - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - id: - description: ID of Account Stage - example: 1 - type: integer - name: - description: Name of Account Stage - example: In Progress - type: string - order: - description: Order of Account Stage - example: 3 - type: integer - updated_at: - description: Datetime of when the Account Stage was last updated - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - AccountTier: - properties: - created_at: - description: Datetime of when the Account Tier was created - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - id: - description: ID of Account Tier - example: 1 - type: integer - name: - description: Name of the Account Tier - example: High Priority - type: string - order: - description: The order of the account tier - example: 2 - type: integer - updated_at: - description: Datetime of when the Account Tier was last updated - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - AccountUpsert: - properties: - account: - $ref: "#/components/schemas/Account" - upsert_type: - description: "The type of upsert. One of: create, update" - type: string - Action: - properties: - action_details: - $ref: "#/components/schemas/EmbeddedResource" - cadence: - $ref: "#/components/schemas/EmbeddedResource" - created_at: - description: Datetime of when the Action was created - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - due: - description: Whether this step is due - example: true - type: boolean - due_on: - description: When action is due - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - id: - description: ID of Action - example: 1 - type: integer - multitouch_group_id: - description: ID of the multitouch group - example: 1 - type: integer - person: - $ref: "#/components/schemas/EmbeddedResource" - status: - description: | - The current state of the person on the cadence. Possible values are: - - in_progress: this action has not been completed - - pending_activity: this action has been acted upon, but the action has not been completed. - (i.e. the email is scheduled to send, but has not been delivered yet) - example: in_progress - type: string - step: - $ref: "#/components/schemas/EmbeddedResource" - type: - description: | - The type of this action. Valid types are: email, phone, other. New types may be added in the future. - example: phone - type: string - updated_at: - description: Datetime of when the Action was last updated - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - user: - $ref: "#/components/schemas/EmbeddedResource" - Activity: - properties: - updated_at: - description: Datetime of when the Activity was last updated - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - ActivityHistory: - properties: - created_at: - description: When this record was created - example: 2019-01-01T00:00:00.000000Z - format: date-time - type: string - dynamic_data: - description: Attributes from associated records. This is specific to the type of activity and may change over time. Not returned for create requests - example: - counts: - clicks: 2 - replies: 1 - views: 3 - status: sent - subject: Welcome to SalesLoft - type: object - failed_dynamic_resources: - description: A list of remote resource names that failed to load. This is specific to the type of activity and may change over time. Not returned for create requests - example: - - email - type: object - id: - description: ID of this activity - example: 1 - type: integer - occurred_at: - description: When this activity occurred - example: 2019-01-01T00:00:00.000000Z - format: date-time - type: string - pinned_at: - description: When this record was pinned - example: 2019-01-01T00:00:00.000000Z - format: date-time - type: string - resource_id: - description: "ID of the resource this activity is for. It will be a string for the following resource types: crm_opportunity" - example: 1 - type: integer - resource_type: - description: "Type of the resource this activity is for. One of: account, person" - example: person - type: integer - static_data: - description: The static data for this activity - example: - email_id: 2 - type: object - type: - description: The type of activity - example: email - type: string - updated_at: - description: When this record was updated - example: 2019-01-01T00:00:00.000000Z - format: date-time - type: string - user_guid: - description: UUID of the user this activity is for - example: 51398ccd-309e-467f-aae2-4b0f66b5c11d - type: string - BulkJob: - properties: - created_at: - description: When this bulk job was created - example: 2019-01-01T00:00:00-05:00 - format: date-time - type: string - errors: - description: Number of errored records at the time of request for this Bulk Job - example: 23 - type: integer - finished_at: - description: When this bulk job finished processing - example: 2019-01-02T00:00:00-05:00 - format: date-time - type: string - id: - description: ID of this Bulk Job - example: 1 - type: integer - marked_ready_at: - description: When this bulk job was marked as ready to execute - example: 2019-01-02T00:00:00-05:00 - format: date-time - type: string - name: - description: Name of this Bulk Job - example: Job Name - type: string - processed: - description: Number of processed records at the time of request for this Bulk Job - example: 50 - type: integer - ready_to_execute: - description: Whether the Bulk Job is ready to be executed - example: false - type: boolean - scopes: - description: Scopes - example: - - person:set_crm_id - items: {} - type: array - started_at: - description: When this bulk job started processing. null until bulk job is done - example: 2019-01-02T00:00:00-05:00 - format: date-time - type: string - state: - description: "State of the Bulk Job. Must be one of: open, executing, done." - example: open - type: string - total: - description: Number of total records for this Bulk Job - example: 1234 - type: integer - type: - description: Type of the Bulk Job. - example: person/upsert - type: string - updated_at: - description: When this bulk job was updated - example: 2019-01-02T00:00:00-05:00 - format: date-time - type: string - BulkJobResult: - properties: - error: - description: Error message for the record that was processed. Will be null if there was no error. - example: "Missing required field: email address" - type: string - id: - description: ID of the record that was processed - example: 1 - type: integer - record: - description: The data that was used to process the operation - example: '{first_name: "John", last_name: "Smith"}' - type: object - resource: - description: The object containing the resulting resource from performing the bulk action on this record - example: '{person: {...}, upsert_type: "create"}' - type: object - status: - description: "Status of the record that was processed. Will be one of: success, error" - example: error - type: string - Cadence: - properties: - added_stage: - $ref: "#/components/schemas/EmbeddedResource" - archived_at: - description: Datetime of when the cadence was archived, if archived - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - bounced_stage: - $ref: "#/components/schemas/EmbeddedResource" - cadence_framework_id: - description: ID of the cadence framework used to create steps for the cadence - example: 1 - type: integer - cadence_function: - description: | - The use case of the cadence. Possible values are: - - outbound: Denotes an outbound cadence, typically for sales purposes - - inbound: Denotes an inbound sales cadence - - event: Denotes a cadence used for an upcoming event - - other: Denotes a cadence outside of the standard process - example: outbound - type: string - cadence_priority: - $ref: "#/components/schemas/EmbeddedResource" - counts: - $ref: "#/components/schemas/CadenceCounts" - created_at: - description: Datetime of when the cadence was created - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - creator: - $ref: "#/components/schemas/EmbeddedResource" - draft: - description: Whether this cadence is in draft mode - example: false - type: boolean - external_identifier: - description: Cadence External ID - example: This is my external id - type: string - finished_stage: - $ref: "#/components/schemas/EmbeddedResource" - groups: - description: Groups to which this cadence is assigned, if any - example: - - _href: https://api.salesloft.com/v2/groups/921 - id: 921 - items: - $ref: "#/components/schemas/EmbeddedResource" - type: array - id: - description: ID of cadence - example: 1 - type: integer - name: - description: Cadence name - example: Prospecting - VP of Sales - type: string - opt_out_link_included: - description: Whether this cadence is configured to include an opt-out link by default - example: true - type: boolean - owner: - $ref: "#/components/schemas/EmbeddedResource" - remove_bounces_enabled: - description: Whether this cadence is configured to automatically remove people who have bounced - example: true - type: boolean - remove_replies_enabled: - description: Whether this cadence is configured to automatically remove people who have replied - example: true - type: boolean - replied_stage: - $ref: "#/components/schemas/EmbeddedResource" - shared: - description: Whether this cadence is visible to team members (shared) - example: false - type: boolean - tags: - description: All tags applied to this cadence - example: - - 7-23-2017 - - dreamforce - items: - type: string - type: array - team_cadence: - description: Whether this cadence is a team cadence. A team cadence is created by an admin and can be run by all users - example: false - type: boolean - updated_at: - description: Datetime of when the cadence was last updated - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - CadenceCounts: - properties: - cadence_people: - description: The number of people that have ever been added to the cadence - example: 59 - type: integer - meetings_booked: - description: The number of meetings booked and attributed to the cadence - example: 10 - type: integer - opportunities_created: - description: The number of opportunities created and attributed to the cadence - example: 10 - type: integer - people_acted_on_count: - description: The number of people that have been skipped, scheduled, or advanced in a cadence - example: 1 - type: integer - target_daily_people: - description: The user defined target for number of people to add to the cadence each day - example: 10 - type: integer - CadenceExport: - properties: - cadence_content: - description: The content of the cadence - example: {} - type: object - CadenceImport: - properties: - cadence: - $ref: "#/components/schemas/EmbeddedResource" - CadenceMembership: - properties: - added_at: - description: Datetime of when the person was last added to this cadence - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - cadence: - $ref: "#/components/schemas/EmbeddedResource" - counts: - $ref: "#/components/schemas/CadenceMembershipCounts" - created_at: - description: Datetime of when the person was first added to this cadence - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - current_state: - description: | - The current state of the person on the cadence. Possible values are: - - processing: The person is being processed on a cadence. Cadence-related changes cannot be made at this time - - staged: The person is waiting for the first step in the cadence to occur - - active: The cadence has begun processing this person and is still in the process, but idle - - scheduled: The cadence has begun processing this person and is still in the process, with an activity scheduled to occur - - completed: The cadence has been completed for this person - - removed: The person was manually or automatically removed from the cadence - - removed_no_action: The person was removed from the cadence before any action occurred - - reassigned: The person's cadence execution was transferred to a different user, ending this user's interaction - example: staged - type: string - currently_on_cadence: - description: Whether the person is currently on the cadence - example: false - type: boolean - id: - description: Cadence membership ID - example: 1 - type: integer - latest_action: - $ref: "#/components/schemas/EmbeddedResource" - person: - $ref: "#/components/schemas/EmbeddedResource" - person_deleted: - description: Whether the associated person has since been deleted - example: false - type: boolean - updated_at: - description: Datetime of when the record was last updated - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - user: - $ref: "#/components/schemas/EmbeddedResource" - CadenceMembershipCounts: - properties: - bounces: - description: The number of times emails sent from the cadence to the person bounced - example: 0 - type: integer - calls: - description: The number of times a call was logged from the cadence to the person - example: 2 - type: integer - clicks: - description: The number of times emails sent from the cadence to the person were clicked - example: 5 - type: integer - replies: - description: The number of times emails sent from the cadence to the person were replied to - example: 2 - type: integer - sent_emails: - description: The number of times emails were sent from the cadence to the person - example: 4 - type: integer - views: - description: The number of times emails sent from the cadence to the person were opened - example: 10 - type: integer - CalendarEvent: - properties: - all_day: - description: Whether the calendar event is an all-day event. - example: false - type: string - attendees: - description: The attendees of the calendar event. - example: - - deleted_at: null - email: alice@example.com - name: Alice - organizer: true - status: accepted - status_changed: false - - deleted_at: null - email: bob@example.com - name: Bob - organizer: false - status: accepted - status_changed: false - type: object - body_html: - description: Raw body content from Microsoft calendar events - example: some html text - type: string - busy: - description: Busy/free status of the calendar event - example: false - type: boolean - calendar_id: - description: Calendar ID of the user calendar. - example: test@example.com - type: string - canceled_at: - description: The canceled date of the calendar event. - example: iso8601_now - type: string - conference_data: - description: The conference-related information, such as details of a Google Meet conference. - example: {} - type: object - created_at: - description: Creation time of the calendar event. - example: iso8601_now - type: string - creator: - description: The creator email of the calendar event. - example: creator@example.com - type: object - description: - description: Description of the calendar event - example: Calendar event description - type: string - end_time: - description: The (exclusive) end time of the calendar event. - example: 2022-08-23T08:18:47.853983Z - format: date-time - type: string - extended_properties: - description: Extended properties of the calendar event. - example: {} - type: object - html_link: - description: An absolute link to this calendar event in the Google Calendar Web UI. - example: https://www.google.com/calendar/event?eid=Y2N - type: string - i_cal_uid: - description: Calendar event unique identifier (iCalUID) - example: 1p1oilmc4mt3m6ah6rmf6ik8mm@google.com - type: string - id: - description: The calendar event original ID from calendar provider - example: AAMkADQ0NjE4YmY5LTc3ZDYtNDc5NC1-UlgAAAAAAENAAB3eGoN5TIDTp8dXXDpxUlgAACQlfLuAAA= - type: string - location: - description: Location of the calendar event - example: Event location - type: string - organizer: - description: The organizer email of the calendar event. - example: organizer@example.com - type: string - provider: - description: The provider of the calendar event. - example: google - type: string - recurring: - description: Whether the calendar event is a recurring event. - example: false - type: string - start_time: - description: The (inclusive) start time of the calendar event. - example: 2022-08-23T08:18:47.832113Z - format: date-time - type: string - status: - description: The status of the calendar event. It can be empty for non-google events. - example: confirmed - type: string - tenant_id: - description: Tenant ID of the user calendar - example: 1 - type: integer - title: - description: Title of the calendar event - example: Calendar event title - type: string - updated_at: - description: Last modification time of the calendar event. - example: iso8601_now - type: string - user_guid: - description: User GUID of the user calendar. - example: 9ccb7701-52e7-4d3e-91b0-b142a2fef2ec - type: string - Call: - properties: - action: - $ref: "#/components/schemas/EmbeddedResource" - cadence: - $ref: "#/components/schemas/EmbeddedResource" - called_person: - $ref: "#/components/schemas/EmbeddedResource" - created_at: - description: Datetime of when the call was created - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - crm_activity: - $ref: "#/components/schemas/EmbeddedResource" - disposition: - description: Result of the call - example: Connected - type: string - duration: - description: Length of the call in seconds - example: 60 - type: integer - id: - description: ID of Call - example: 1 - type: integer - note: - $ref: "#/components/schemas/EmbeddedResource" - recordings: - description: The recordings for this this call and their status - example: - - recording_status: completed - status: completed - url: https://example.com/recording1 - items: - $ref: "#/components/schemas/EmbeddedRecordingResource" - type: array - sentiment: - description: Outcome of the conversation - example: Demo Scheduled - type: string - step: - $ref: "#/components/schemas/EmbeddedResource" - to: - description: Phone number that received the call - example: "7705551234" - type: string - updated_at: - description: Datetime of when the call was last updated - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - user: - $ref: "#/components/schemas/EmbeddedResource" - CallDataRecord: - properties: - call: - $ref: "#/components/schemas/EmbeddedResource" - call_type: - description: "Type of the call. Can be one of: call, bridge, collaboration. Though exact values may change over time" - example: call - type: string - call_uuid: - description: UUID of the call. Legs of the same call will have the same call_uuid. - example: 5c5c1f32-bff1-4b7c-8f2a-bd650b829c67 - type: string - called_person: - $ref: "#/components/schemas/EmbeddedResource" - created_at: - description: Datetime of when the call was created - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - direction: - description: "Direction of the call. Can be one of: inbound, outbound" - example: outbound - type: string - duration: - description: Length of the call in seconds - example: 60 - type: integer - from: - description: Phone number that placed the call - example: "7705551234" - type: string - id: - description: ID of CallDataRecord - example: 1 - type: integer - recording: - $ref: "#/components/schemas/EmbeddedRecordingResource" - status: - description: "The outcome of the call. Can be one of: queued, initiated, ringing, in-progress, completed, busy, no-answer, canceled, failed" - example: completed - type: string - to: - description: Phone number that received the call - example: "7705551234" - type: string - updated_at: - description: Datetime of when the call was last updated - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - user: - $ref: "#/components/schemas/EmbeddedResource" - CallDisposition: - properties: - created_at: - description: Datetime of when the call disposition was created - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - id: - description: ID of CallDisposition - example: 1 - type: integer - name: - description: An available call disposition text - example: Connected - type: string - updated_at: - description: Datetime of when the call disposition was last updated - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - CallInstruction: - properties: - created_at: - description: Datetime of when the call instructions were created - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - id: - description: ID of call instructions - example: 1 - type: integer - instructions: - description: The instructions - example: Call once, leave voicemail if not answered. Conference conversation. - type: string - updated_at: - description: Datetime of when the call instructions were last updated - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - CallSentiment: - properties: - created_at: - description: Datetime of when the call sentiment was created - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - id: - description: ID of CallSentiment - example: 1 - type: integer - name: - description: An available call sentiment text - example: Interested - type: string - updated_at: - description: Datetime of when the call sentiment was last updated - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - CallerId: - properties: - account_name: - description: The account of the person calling - example: Bunty Soap Company - type: string - display_name: - description: The name of the person calling - example: Frank Galikanokus - type: string - person: - $ref: "#/components/schemas/EmbeddedResource" - title: - description: The title of the person calling - example: Transportation Coordinator - type: string - ConversationsCall: - properties: - call_created_at: - description: Timestamp for when the call started. If not provided, will default to the time the request was received - example: 2022-07-22 01:00:00 - type: string - direction: - description: Call direction - example: Outbound - type: string - duration: - description: Duration of call in seconds - example: 120 - type: number - from: - description: Phone number that call was made from - example: 123-456-7890 - type: string - recording: - description: Object containing recording info including the audio file (.mp3, .wav, .ogg, .m4a) - example: - url: www.example.com/audio.mp3 - type: object - to: - description: Phone number that was called - example: 123-456-7890 - type: string - user_guid: - description: Guid of the Salesloft User to assign the call to. If not provided, will default to the user within the authentication token - example: aa111111-11aa-1111-a1a1-11aa11a1a1a1 - type: string - CrmActivity: - properties: - activity_type: - description: "The type of activity that is being recorded, if available. The values can change over time, but could be one of: email, phone, email reminder, inmail" - example: phone - type: string - created_at: - description: Datetime of when the crm activity was created - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - crm_id: - description: The ID of the activity in your CRM, if written to your CRM - example: 00T0H00003w2FBhUAM - type: string - custom_crm_fields: - description: Additional fields that are logged to your CRM, if mapped by the team at the time of writing to your CRM - example: - ecorp__Call_Type__c: inbound follow up - type: object - description: - description: The description field of the activity in your CRM - example: Timeline is 2 weeks for demo, set with Kate - type: string - error: - description: Information about why this crm activity failed to sync, if it did fail to sync. Failed activities will be automatically retried and may become successful in the future - example: Could not find a CRM account link. - type: string - id: - description: CrmActivity ID - example: 1 - type: integer - person: - $ref: "#/components/schemas/EmbeddedResource" - subject: - description: The subject field of the activity in your CRM - example: "Call: Connected | Interested" - type: string - updated_at: - description: Datetime of when the crm activity was last updated - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - user: - $ref: "#/components/schemas/EmbeddedResource" - CrmActivityField: - properties: - created_at: - description: Datetime of when the CrmActivityField was created - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - crm_object_type: - description: | - The CRM object type that this field maps to. Valid object types are CRM dependent: Task, Phonecall, Email. - example: Task - type: string - field: - description: The CRM field name - example: orgName__Field_Name__c - type: string - field_type: - description: The type of this field in your CRM. Certain field types can only accept structured input. - example: boolean - type: string - id: - description: ID of CrmActivityField - example: 1 - type: integer - picklist_values: - description: | - Valid picklist values, if present for this field. The format is {label => value}. If present, only - values in the picklist structure can be used as a crm param. - example: - High: High - Low: Low - type: object - salesforce_object_type: - description: | - The Salesforce object type that this field maps to. Valid object types are: Task. - More object types may be added in the future. - example: Task - type: string - source: - description: "SalesLoft object that this field is mapped for. Valid sources are: email, phone" - example: phone - type: string - title: - description: A human friendly title for this field - example: Field Name - type: string - updated_at: - description: Datetime of when the CrmActivityField was last updated - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - value: - description: | - A value to always be written. This value does not need to be sent to other endpoints' crm params, - but must be the exact value if sent. Email source fields will always have a value present. - example: Email - type: string - CrmUser: - properties: - created_at: - description: Datetime of when the crm user was created - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - crm_id: - description: CRM ID - example: 5003000000D8cuIQAA - type: string - id: - description: Crm User ID - example: 1 - type: integer - updated_at: - description: Datetime of when the crm user was last updated - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - user: - $ref: "#/components/schemas/EmbeddedResource" - CustomField: - properties: - created_at: - description: Datetime of when the Custom Field was created - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - field_type: - description: "Type of the Custom Field. Value must be one of: person, company, opportunity." - example: person - type: string - id: - description: ID of Custom Field - example: 1 - type: integer - name: - description: Name of the Custom Field - example: My Custom Field - type: string - updated_at: - description: Datetime of when the Custom Field was last updated - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - value_type: - description: "Value Type of the Custom Field. Value must be one of: text, date." - example: text - type: string - Email: - properties: - action: - $ref: "#/components/schemas/EmbeddedResource" - bounced: - description: Whether this email bounced - example: false - type: boolean - cadence: - $ref: "#/components/schemas/EmbeddedResource" - click_tracking: - description: Whether this email had click tracking enabled - example: true - type: boolean - counts: - $ref: "#/components/schemas/EmailCounts" - created_at: - description: Datetime of when the email was created - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - crm_activity: - $ref: "#/components/schemas/EmbeddedResource" - email_template: - $ref: "#/components/schemas/EmbeddedResource" - error_message: - description: Error message of the email. This field has been determined sensitive and requires a specific scope to access it. - type: string - headers: - description: "Selected headers that are included if this email used them. Available keys are: cc, bcc" - example: - bcc: track@salesforce.com - cc: sb@salesloft.com - type: object - id: - description: ID of Email - example: 1 - type: integer - mailing: - $ref: "#/components/schemas/EmbeddedResource" - personalization: - description: Percentage of this email that has been personalized - example: "13.4" - type: string - recipient: - $ref: "#/components/schemas/EmbeddedResource" - recipient_email_address: - description: Email address of the recipient - example: bob.smith@example.com - type: string - send_after: - description: When this email will be sent, or null if already sent - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - sent_at: - description: When this email was sent, or null if it was not sent - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - status: - description: "Status of this email through the sending process. Possible values are: sent, sent_from_gmail, sent_from_external, pending, pending_reply_check, scheduled, sending, delivering, failed, cancelled, pending_through_gmail, pending_through_external" - example: sent - type: string - step: - $ref: "#/components/schemas/EmbeddedResource" - subject: - description: Subject of the email. This field has been determined sensitive and requires a specific scope to access it. - type: string - task: - $ref: "#/components/schemas/EmbeddedResource" - updated_at: - description: Datetime of when the email was last updated - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - user: - $ref: "#/components/schemas/EmbeddedResource" - view_tracking: - description: Whether this email had view tracking enabled - example: true - type: boolean - EmailCounts: - properties: - attachments: - description: The number of attachments on the email - example: 0 - type: integer - clicks: - description: The number of times links in the email were clicked - example: 2 - type: integer - replies: - description: The number of replies the email received - example: 1 - type: integer - unique_devices: - description: The number of unique devices that opened the email - example: 4 - type: integer - unique_locations: - description: The number of unique locations that opened the email - example: 3 - type: integer - views: - description: The number of times the email was opened - example: 3 - type: integer - EmailTemplate: - properties: - _links: - description: Links to attachments and tags resources for this email template. - example: - attachments: https://api.salesloft.com/v2/email_template_attachments?email_template_id[]=1 - type: object - archived_at: - description: Datetime of when the email template was archived, if archived - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - body: - description: Sanitized body of the email template without email signature - example:
Welcome to the SalesLoft family! My name is Sarah and I’m your implementation consultant. I’m here to get you up and running. It's my job to help you configure your team's SalesLoft access, provide customized training for your specific goals, and make sure that you and your team are ready to crush your goals.

Thank you,
- type: string - body_preview: - description: A plain text version of the first 100 characters of the body of the email template - example: |- - hello - - hey sounds good - - ok - - ok - - with an edit - - ok now i'm comic sans 14 - type: string - cadence_template: - description: Whether this email template is only used on a cadence step. These templates are not visible in the SalesLoft application template list. If false, this email template is visible in the SalesLoft application, and may be used when composing an email or creating a cadence step. - example: true - type: boolean - click_tracking_enabled: - description: Whether click tracking is enabled for this email template - example: true - type: boolean - counts: - $ref: "#/components/schemas/EmailTemplateCounts" - created_at: - description: Datetime of when the email template was created - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - groups: - description: Groups to which this template is assigned, if any - example: - - _href: https://api.salesloft.com/v2/groups/921 - id: 921 - items: - $ref: "#/components/schemas/EmbeddedResource" - type: array - id: - description: ID of email template - example: 5 - type: integer - last_used_at: - description: Datetime of when the email template was last used - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - open_tracking_enabled: - description: Whether open tracking is enabled for this email template - example: true - type: boolean - shared: - description: Whether this email template is visible to team members (shared) - example: false - type: boolean - subject: - description: Subject of the email template - example: Welcome to SalesLoft! - type: string - tags: - description: All tags applied to this email template - example: - - 7-23-2017 - - internal - items: - type: string - type: array - team_template: - $ref: "#/components/schemas/EmbeddedResource" - template_owner: - $ref: "#/components/schemas/EmbeddedResource" - title: - description: Title of the email template - example: Welcome email - type: string - updated_at: - description: Datetime of when the email template was last updated - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - EmailTemplateAttachment: - properties: - attachment_content_type: - description: Content type of the attachment - example: pdf, jpeg - type: string - attachment_file_size: - description: The size of the attachment - example: 2 - type: integer - attachment_fingerprint: - description: Unique attachment Identifier - example: 13231232 - type: integer - attachment_id: - description: ID of the email template attachment - example: 10 - type: integer - download_url: - description: Download url of the attachment - example: https://path/to/example_attachment.gif - type: string - email_template: - $ref: "#/components/schemas/EmbeddedResource" - id: - description: ID of email template attachment association - example: 5 - type: integer - name: - description: Name of the attachment - example: example_attachment.gif - type: string - scanned: - description: Checks if attachment has been scanned - example: true - type: boolean - EmailTemplateCounts: - properties: - bounces: - description: The number of bounces the email template received - example: 10 - type: integer - clicks: - description: The number of times links in the email template were clicked - example: 20 - type: integer - replies: - description: The number of replies the email template received - example: 1 - type: integer - sent_emails: - description: The number of times the email template was sent out - example: 59 - type: integer - views: - description: The number of times the email template was opened - example: 3 - type: integer - EmbeddedAccountCounts: - properties: - people: - description: Number of people in SalesLoft associated with this Account - example: 15 - type: integer - EmbeddedAttendeeResource: - properties: - deleted_at: - description: Datetime of when the attendee was deleted - example: 2022-12-19T16:49:17.930926+02:00 - format: date - type: string - email: - description: Email of the attendee - example: calendar@example.com - type: string - name: - description: Name of the attendee - example: John - type: string - organizer: - description: Whether the attendee is the organizer of the event. - example: false - type: boolean - status: - description: "The attendee's response status. Possible values are: needsAction, accepted, tentative, declined" - example: accepted - type: string - status_changed: - description: Whether the attendee changed response status - example: false - type: boolean - EmbeddedRecordingResource: - properties: - recording_status: - description: | - The processing status of the recording. Possible values are (but not limited to): - - not_recorded: there is no recording available, and there will not be one becoming available - - pending: the recording is currently being processed by the system - - processing: the recording is currently being processed by the system - - completed: the recording processing has been completed - example: completed - type: string - status: - description: | - The status of the call that produced this recording. Possible values are (but not limited to): - - no-answer: The call was not answered - - failed: The call was not able to be placed - - busy: The call was busy - - ringing: The call is ringing - - in-progress: The call is ongoing - - completed: The call is finished - example: completed - type: string - url: - description: The url of the recording - example: http://example.com/recording/1 - type: string - EmbeddedResource: - properties: - _href: - description: Resource URL, pointed at your API version, present if this resource is available in the API - example: https://api.salesloft.com/v2/widgets/10 - type: string - id: - description: ID of the resource - example: 10 - type: integer - EventMeetingSetting: - properties: - email_address: - description: Calendar owner's email address - example: calendar.owner@example.com - type: string - ExternalEmail: - properties: - message_id: - description: Message id present in the External Email header - example: CAKseEdbTMcU-U0CeTkUSo5X4jyW8QPReVTyPA6CrUCf0ggZwHQ@mail.salesloft.com - type: string - Group: - properties: - accessible_groups: - description: Groups accessible if any - example: - - _href: https://api.salesloft.com/v2/groups/921 - id: 921 - items: - $ref: "#/components/schemas/EmbeddedResource" - type: array - id: - description: ID of the Group - example: 1 - type: integer - name: - description: Name of the Group - example: Test name - type: string - parent_id: - description: ID of the parent Group - example: 2 - type: integer - Import: - properties: - created_at: - description: Datetime of when the import was created - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - current_people_count: - description: Count of People that have not been deleted - example: 5 - type: integer - id: - description: Import ID - example: 1 - type: integer - imported_people_count: - description: Count of People that have ever been on this Import - example: 7 - type: integer - name: - description: Name of Import - example: DataProvider -> SalesLoft 9/1/17 - type: string - updated_at: - description: Datetime of when the import was last updated, ignoring relationship changes - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - JobData: - properties: - bulk_job: - description: Associated bulk job - example: '{"id": 123, "_href": "https://api.salesloft.com/v2/bulk_jobs/123"' - type: object - created_at: - description: When this job data record was created - example: 2019-01-01T00:00:00-05:00 - format: date-time - type: string - error: - description: Error associated with this record - example: Not found - type: string - finished_at: - description: When this job data record finished processing - example: 2019-01-01T00:00:00-05:00 - format: date-time - type: string - id: - description: ID of this Job Data - example: 1 - type: integer - record: - description: The data that was used to process the operation - example: '{first_name: "John", last_name: "Smith"}' - type: object - resource: - description: The object containing the resulting resource from performing the bulk action on this record - example: '{person: {...}, upsert_type: "create"}' - type: object - started_at: - description: When this job data record started processing - example: 2019-01-01T00:00:00-05:00 - format: date-time - type: string - status: - description: "Status of this job data. Must be one of: pending, success, error, retrying" - example: success - type: string - JobDataCreationResult: - properties: - records: - description: Number of records created - example: 100 - type: integer - LiveFeedItem: - properties: - alert_metadata: - description: Information about whether this event should trigger an alert - example: - should_alert: true - should_alert_until: 2019-01-01T00:00:00-05:00 - type: object - event_occurred_at: - description: When this event occurred - example: 2019-01-01T00:00:00-05:00 - format: date-time - type: string - event_type: - description: The type of event - example: email_click - type: string - id: - description: ID of this item - example: 1 - type: integer - message: - description: A plaintext message for this event - example: Steve is visiting your website. - type: string - metadata: - description: The metadata created for this event - example: - email_id: 2 - email_subject: Come join us at Rainmaker, Jon! - mailing_id: 3 - person_id: 1 - type: object - path: - description: The path to the application that should be followed - example: /app/emails/detail/1 - type: string - rollup_key: - description: The key that should be used to rollup events client side. null or empty values should not be rolled up - example: email_click:10 - type: string - title: - description: A plaintext title for this event - example: Website Visit - type: string - user_guid: - description: UUID of the user this item is for - example: 51398ccd-309e-467f-aae2-4b0f66b5c11d - type: string - LiveWebsiteTrackingParameter: - properties: - parameters: - description: A SalesLoft identifier - example: - - name: sbrc - value: tracking parameter - items: - type: object - type: array - Meeting: - properties: - account_id: - description: ID of the account the recipient associated to - example: "1" - type: string - all_day: - description: Whether the meeting is an all-day meeting - example: false - type: boolean - attendees: - description: "The attendees of the meeting. Each attendee includes the following fields: status, email, name, organizer" - example: - - deleted_at: null - email: john@example.com - name: John - organizer: true - status: accepted - items: - $ref: "#/components/schemas/EmbeddedAttendeeResource" - type: array - booked_by_meetings_settings: - $ref: "#/components/schemas/EventMeetingSetting" - booked_by_user: - $ref: "#/components/schemas/EmbeddedResource" - cadence: - $ref: "#/components/schemas/EmbeddedResource" - calendar_id: - description: Calendar ID of the meeting owner - example: calendar-id-google.com - type: string - calendar_type: - description: "Calendar type of the meeting owner. Possible values are: gmail, azure, nylas, linkedin_azure, cerebro, external" - example: gmail - type: string - canceled_at: - description: Datetime of when the meeting was canceled - example: 2022-12-19T16:49:17.931396+02:00 - format: date - type: string - created_at: - description: Datetime of when the meeting was created - example: 2022-12-19T16:49:17.930298+02:00 - format: date - type: string - crm_custom_fields: - description: List of crm custom fields which will be logged to SFDC - example: - Event_Calendar_Type__c: Google - type: object - crm_references: - description: List of crm references associated with the meeting - example: - what: - crm_id: 0063X000018fDmMQAU - crm_object_label: Opportunity - crm_object_type: Opportunity - crm_url: link_to_salesforce - description1: Title of the opportunity - description2: 2032-01-10 - description3: Prospecting - who: - crm_id: 0033X00004GOywtQAD - crm_object_label: Contact - crm_object_type: Contact - crm_url: link_to_salesforce - description1: John Doe - description2: john.doe@example.com - description3: null - type: object - description: - description: Description of the meeting - example: Introducing interview - type: string - end_time: - description: End time of the meeting - example: 2022-12-19T16:49:17.917861+02:00 - format: date - type: string - event_id: - description: ID of the meeting created by target calendar - example: "123468796" - type: string - event_source: - description: "Source of the meeting. Possible values are: 'external' - The event was synced to Salesloft platform via Calendar Sync, 'internal' - The event was created via Salesloft platform" - example: external - type: string - guests: - description: The list of attendees emails of the meeting - example: - - email1@sloft.com - - email2@sloft.com - items: - type: string - type: array - i_cal_uid: - description: UID of the meeting provided by target calendar provider - example: 040P00B08200E00074C5B7101A82EF - type: string - id: - description: ID of the meeting - example: 1 - type: integer - location: - description: Location of the meeting - example: Atlanta, GA - type: string - meeting_type: - description: Meeting type - example: Demo call - type: string - no_show: - description: Whether the meeting is a No Show meeting - example: false - type: boolean - owned_by_meetings_settings: - $ref: "#/components/schemas/EventMeetingSetting" - person: - $ref: "#/components/schemas/EmbeddedResource" - recipient_email: - description: Email of the meeting invite recipient - example: email@sloft.com - type: string - recipient_name: - description: Name of the meeting invite recipient - example: John Doe - type: string - start_time: - description: Start time of the meeting - example: 2022-12-19T16:49:17.917818+02:00 - format: date - type: string - status: - description: "Status of the meeting. Possible values are: pending, booked, failed, retry" - example: booked - type: string - step: - $ref: "#/components/schemas/EmbeddedResource" - strict_attribution: - description: Strict attribution means that we 100% sure which cadence generate the meeting - example: false - type: boolean - task_id: - description: ID of the created task - example: "123" - type: string - title: - description: Title of the meeting - example: Meeting with John - type: string - updated_at: - description: Datetime of when the meeting was last updated - example: 2022-12-19T16:49:17.930340+02:00 - format: date - type: string - MeetingSetting: - properties: - active_meeting_url: - $ref: "#/components/schemas/MeetingUrl" - allow_booking_on_behalf: - description: Allow other team members to schedule on you behalf. - example: true - type: boolean - allow_booking_overtime: - description: Allow team members to insert available time outside your working hours. - example: true - type: boolean - allow_event_overlap: - description: Allow team members to double book events on your calendar. - example: false - type: boolean - availability_limit: - description: The number of days out the user allows a prospect to schedule a meeting - example: 14 - type: integer - availability_limit_enabled: - description: If Availability Limits have been turned on - example: true - type: boolean - buffer_time_duration: - description: Default buffer duration in minutes set by a user - example: "15" - type: integer - calendar_type: - description: Calendar type - example: gmail - type: string - created_at: - description: Datetime of when the MeetingSetting was created - example: 2022-09-15T11:40:59.055583+03:00 - format: date - type: string - default_meeting_length: - description: Default meeting length in minutes set by the user - example: "30" - type: integer - description: - description: Default description of the meeting - example: This meeting is held on a daily basis - type: string - email_address: - description: Calendar owner's email address - example: calendar.owner@example.com - type: string - enable_calendar_sync: - description: Determines if a user enabled Calendar Sync feature - example: false - type: boolean - enable_dynamic_location: - description: Determines if location will be filled via third-party service (Zoom, GoToMeeting, etc.) - example: false - type: boolean - id: - description: ID of the MeetingSetting - example: 1 - type: integer - location: - description: Default location of the meeting - example: Atlanta, GA - type: string - primary_calendar_connection_failed: - description: Gets true when any issue with fetching calendar occurs - example: false - type: boolean - primary_calendar_id: - description: ID of the primary calendar - example: a98iu0@group.calendar.google.com - type: string - primary_calendar_name: - description: Display name of the primary calendar - example: My Meetings Calendar - type: string - schedule_buffer_enabled: - description: Determines if meetings are scheduled with a 15 minute buffer between them - example: true - type: boolean - schedule_delay: - description: The number of hours in advance a user requires someone to a book a meeting with them - example: 2 - type: integer - share_event_detail: - description: Allow team members to see the details of events on your calendar. - example: false - type: boolean - time_zone: - description: Time zone for current calendar - example: US/Eastern - type: string - times_available: - description: Times available set by a user that can be used to book meetings - example: - monday: - enabled: true - end_time: 17:00 - start_time: 09:00 - type: object - title: - description: Default title of the meeting - example: Daily stand-up - type: string - updated_at: - description: Datetime of when the MeetingSetting was last updated - example: 2022-09-15T11:40:59.055628+03:00 - format: date - type: string - user: - $ref: "#/components/schemas/EmbeddedResource" - user_details: - description: User details - example: - email: john.doe@salesloft.com - name: John Doe - type: object - user_slug: - description: User slug generated with a full name of the user - example: john-doe - type: string - MeetingUrl: - properties: - created_at: - description: Datetime of when MeetingUrl was created - example: 2022-09-15T11:40:59.056237+03:00 - format: date - type: string - updated_at: - description: Datetime of when MeetingUrl was last updated - example: 2022-09-15T11:40:59.056272+03:00 - format: date - type: string - url: - description: Full url of the meeting - example: https://example.com/team/user - type: string - MimeEmailPayload: - properties: - id: - description: Email ID - example: 1 - type: integer - mailbox: - description: Email Address of Sender's mailbox - example: example@salesloft.com - type: string - message_id: - description: Unique Message ID - example: CAKseEdbTMcU-U0CeTkUSo5X4jyW8QPReVTyPA6CrUCf0ggZwHQ@mail.salesloft.com - type: string - raw: - description: Base64 encoded MIME email content - example: | - ZW1haWwgZXhhbXBsZQ== - type: string - Note: - properties: - associated_type: - description: Type of associated resource ('person' or 'account') - example: person - type: string - associated_with: - $ref: "#/components/schemas/EmbeddedResource" - call: - $ref: "#/components/schemas/EmbeddedResource" - content: - description: The content of the note - example: Was very interested in a demo at a later time - type: string - created_at: - description: Datetime of when the note was created - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - id: - description: Note ID - example: 1 - type: integer - updated_at: - description: Datetime of when the note was last updated - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - user: - $ref: "#/components/schemas/EmbeddedResource" - PendingEmail: - properties: - id: - description: ID of the email - example: 1 - type: integer - mailbox: - description: Email Address of the pending email - example: example@salesloft.com - type: string - mime_email_payload: - $ref: "#/components/schemas/EmbeddedResource" - Person: - properties: - account: - $ref: "#/components/schemas/EmbeddedResource" - bouncing: - description: Whether this person's current email address has bounced - example: false - type: boolean - cadences: - description: The list of active cadences person is added to - example: - - _href: https://api.salesloft.com/v2/cadences/1 - id: 1 - items: - $ref: "#/components/schemas/EmbeddedResource" - type: array - city: - description: City - example: Atlanta - type: string - contact_restrictions: - description: "Specific methods of communication to prevent for this person. This will prevent individual execution of these communication types as well as automatically skip cadence steps of this communication type for this person in SalesLoft. Values currently accepted: call, email, message" - example: - - call - - email - - message - items: - type: string - type: array - country: - description: Country - example: United States - type: string - counts: - $ref: "#/components/schemas/PersonCounts" - created_at: - description: Datetime of when the person was created - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - crm_id: - description: CRM ID - example: 003i000001mnhpD - type: string - crm_object_type: - description: CRM object type - example: Lead - type: string - crm_url: - description: CRM url - example: https://na15.salesforce.com/003i000001mnhpD - type: string - custom_fields: - description: Custom fields are defined by the user's team. Only fields with values are presented in the API. - example: - MyField: A Value - Other: Field - type: object - display_name: - description: Either the full name or the email address. Use this when showing a person's name - example: Pat Johnson - type: string - do_not_contact: - description: Whether or not this person has opted out of all communication. Setting this value to true prevents this person from being called, emailed, or added to a cadence in SalesLoft. If this person is currently in a cadence, they will be removed. - example: true - type: boolean - email_address: - description: Email address - example: pat.johnson@example.com - type: string - eu_resident: - description: Whether this person is marked as a European Union Resident or not - example: false - type: boolean - first_name: - description: First name - example: Pat - type: string - full_email_address: - description: Full email address with name - example: Pat Johnson - type: string - home_phone: - description: Home phone without formatting - example: +1 444 555 6666 - type: string - id: - description: Person ID - example: 1 - type: integer - import: - $ref: "#/components/schemas/EmbeddedResource" - job_seniority: - description: The Job Seniority of a Person, must be one of director, executive, individual_contributor, manager, vice_president, unknown - example: vice_president - type: string - last_completed_step: - $ref: "#/components/schemas/EmbeddedResource" - last_completed_step_cadence: - $ref: "#/components/schemas/EmbeddedResource" - last_contacted_at: - description: Last datetime this person was contacted - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - last_contacted_by: - $ref: "#/components/schemas/EmbeddedResource" - last_contacted_type: - description: The type of the last touch to this person. Can be call, email, other - example: call - type: string - last_name: - description: Last name - example: Johnson - type: string - last_replied_at: - description: Last datetime this person replied to an email - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - linkedin_url: - description: Linkedin URL - example: https://www.linkedin.com/in/username - type: string - locale: - description: Time locale of the person - example: US/Eastern - type: string - locale_utc_offset: - description: The locale's timezone offset from UTC in minutes - example: -480 - type: integer - mobile_phone: - description: Mobile phone without formatting - example: +1 444 555 6666 - type: string - most_recent_cadence: - $ref: "#/components/schemas/EmbeddedResource" - owner: - $ref: "#/components/schemas/EmbeddedResource" - owner_crm_id: - description: Mapped owner field from your CRM - example: 003i000001mnhpD - type: string - person_company_industry: - description: Company industry. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended - example: Information Technology - type: string - person_company_name: - description: Company name. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended - example: SalesLoft - type: string - person_company_website: - description: Company website. This property is specific to this person, unrelated to the company object. Updating the company object associated with this person is recommended - example: https://salesloft.com - type: string - person_stage: - $ref: "#/components/schemas/EmbeddedResource" - personal_email_address: - description: Personal email address - example: pat.johnson@example.com - type: string - personal_website: - description: The website of this person - example: https://salesloft.com - type: string - phone: - description: Phone without formatting - example: +1 444 555 6666 - type: string - phone_extension: - description: Phone extension without formatting - example: x123 - type: string - secondary_email_address: - description: Alternate email address - example: pat.johnson@example.com - type: string - starred: - description: Whether this person is starred by the current user - example: true - type: boolean - state: - description: State - example: Georgia - type: string - success_count: - description: The person's success count. 1 if person has any active successes, 0 otherwise. - example: 1 - type: integer - tags: - description: All tags applied to this person - example: - - 7-23-2017 - - dreamforce - items: - type: string - type: array - title: - description: Job title - example: Sales Development Representative - type: string - twitter_handle: - description: The twitter handle of this person - example: "@kyleporter" - type: string - untouched: - description: The person's untouched status - example: false - type: boolean - updated_at: - description: Datetime of when the person was last updated - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - work_city: - description: Work location - city - example: Atlanta - type: string - work_country: - description: Work location - country - example: United States - type: string - work_state: - description: Work location - state - example: Georgia - type: string - PersonCounts: - properties: - calls: - description: The number of calls logged to this person - example: 4 - type: integer - emails_bounced: - description: The number of unique emails sent to this person that bounced - example: 0 - type: integer - emails_clicked: - description: The number of unique emails clicked by this person - example: 1 - type: integer - emails_replied_to: - description: The number of unique emails replied to by this person - example: 0 - type: integer - emails_sent: - description: The number of emails sent to this person - example: 3 - type: integer - emails_viewed: - description: The number of unique emails viewed by this person - example: 2 - type: integer - PersonStage: - properties: - created_at: - description: Datetime of when the Person Stage was created - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - id: - description: ID of Person Stage - example: 1 - type: integer - name: - description: Name of Person Stage - example: Entry Stage - type: string - order: - description: Sortable value of Person Stage order - example: 16 - type: integer - updated_at: - description: Datetime of when the Person Stage was last updated - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - PersonUpsert: - properties: - person: - $ref: "#/components/schemas/Person" - upsert_type: - description: "The type of upsert. One of: create, update" - type: string - PhoneNumberAssignment: - properties: - id: - description: PhoneNumberAssignment ID - example: 1 - type: integer - number: - description: The phone number associated with this assignment - example: "+12223334444" - type: string - user: - $ref: "#/components/schemas/EmbeddedResource" - RecordingSetting: - properties: - recording_default: - description: Whether this phone number should record by default - example: true - type: boolean - SavedListView: - properties: - id: - description: ID of Ssaved list view - example: 1 - type: integer - is_default: - description: Whether the saved list view is the default view - example: true - type: boolean - name: - description: Name of saved list view - example: Tom's Prospects - type: string - view: - description: Type of saved list view - example: companies - type: string - view_params: - description: List of set filters in saved list view - example: - owner: unowned - stage: "28865" - unowned: true - type: object - Step: - properties: - cadence: - $ref: "#/components/schemas/EmbeddedResource" - created_at: - description: Datetime of when the Step was created - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - day: - description: Day this step is associated with up - example: 1 - type: integer - details: - $ref: "#/components/schemas/EmbeddedResource" - disabled: - description: Whether this step is currently active - example: true - type: boolean - display_name: - description: Display name of the step - example: "Day 1: Step 2 - Phone" - type: string - id: - description: ID of Step - example: 1 - type: integer - multitouch_enabled: - description: Whether this step is a multitouch cadence step - example: false - type: boolean - name: - description: Name of the step - example: VP Email Short - type: string - step_number: - description: The number of the step for this day - example: 1 - type: integer - type: - description: | - The type of the action scheduled by this step. Valid types are: email, phone, integration, other. New types may be added in the future. - example: phone - type: string - updated_at: - description: Datetime of when the Step was last updated - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - Subscription: - properties: - callback_token: - description: SalesLoft will include this token in the webhook event payload when calling your callback_url. It is strongly encouraged for your handler to verify this value in order to ensure the request came from SalesLoft. - example: xT7/Buu0Vz2ffiIPuMlBGu+cwku1dr7G5jeiM0iyfYIT0l4z3azNGjiXWTOX/8OT - type: string - callback_url: - description: URL for your callback handler - example: https://mycompany.com/api/person_called_handler - type: string - enabled: - description: Is the Webhook Subscription enabled or not - example: true - type: boolean - event_type: - description: Type of event the subscription is for - example: link_swap - type: string - id: - description: ID for the Webhook Subscription - example: 1 - type: integer - tenant_id: - description: ID for the tenant to which user is assigned - example: 16 - type: integer - user_guid: - description: UUID of the user the token is associated with - example: 51398ccd-309e-467f-aae2-4b0f66b5c11d - type: string - Success: - properties: - counts: - $ref: "#/components/schemas/SuccessCounts" - created_at: - description: Datetime of when the success was created - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - id: - description: ID of success - example: 1 - type: integer - latest_action: - $ref: "#/components/schemas/EmbeddedResource" - latest_cadence: - $ref: "#/components/schemas/EmbeddedResource" - latest_call: - $ref: "#/components/schemas/EmbeddedResource" - latest_email: - $ref: "#/components/schemas/EmbeddedResource" - latest_step: - $ref: "#/components/schemas/EmbeddedResource" - person: - $ref: "#/components/schemas/EmbeddedResource" - succeeded_at: - description: Datetime of when the success was recorded - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - success_window_started_at: - description: Datetime of when this person was first worked, leading up to the success - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - updated_at: - description: Datetime of when the success was last updated - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - user: - $ref: "#/components/schemas/EmbeddedResource" - SuccessCounts: - properties: - total_calls: - description: The total number of calls made in this success window - example: 5 - type: integer - total_emails: - description: The total number of emails made in this success window - example: 2 - type: integer - total_other_touches: - description: The total number of other touches made in this success window - example: 3 - type: integer - Tag: - properties: - id: - description: ID of Tag - example: 1 - type: integer - name: - description: Name of the tag - example: marketing - type: string - Task: - properties: - completed_at: - description: Datetime of when the task was completed, ISO-8601 datetime format required - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - completed_by: - $ref: "#/components/schemas/EmbeddedResource" - created_at: - description: Datetime of when the Task was created - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - created_by_user: - $ref: "#/components/schemas/EmbeddedResource" - current_state: - description: "The state of the task. Valid states are: scheduled, completed" - example: scheduled - type: string - description: - description: A description of the task recorded for person at completion time - example: Ask John Wick about his dog. - type: string - due_at: - description: Datetime of when the Task is due, can be null. ISO-8601 datetime format required - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - due_date: - description: Date of when the Task is due, ISO-8601 date format required - example: 2024-01-01 - format: date - type: string - id: - description: ID of Task - example: 1 - type: integer - person: - $ref: "#/components/schemas/EmbeddedResource" - remind_at: - description: Datetime of when the user will be reminded of the task, ISO-8601 datetime format required - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - subject: - description: Subject line of the task - example: Call John Wick - type: string - task_type: - description: "The type of the task. Valid types are: call, email, general" - example: call - type: string - updated_at: - description: Datetime of when the Task was last updated - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - user: - $ref: "#/components/schemas/EmbeddedResource" - Team: - properties: - _private_fields: - description: For internal use only. This field does not comply with our backwards compatability policies. - example: {} - type: object - allow_automated_email_steps: - description: Whether team members are allowed to have automated email steps - example: true - type: boolean - call_recording_disabled: - description: Whether all call recording is disabled - example: false - type: boolean - click_tracking_default: - description: The team default for click tracking when composing emails - example: true - type: boolean - created_at: - description: Datetime of when the team was created - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - custom_tracking_domain: - description: The domain click and open tracking will be proxied through - example: examplecompany.com - type: string - deactivated: - description: Indicates if the team has been deactivated - example: true - type: boolean - dispositions_required: - description: Whether team members are required to mark disposition at the end of calls - example: false - type: boolean - email_daily_limit: - description: Daily email limit for each member on the team - example: 1000 - type: integer - group_privacy_setting: - description: | - Visibility setting for resources across the team. Possible values are: group_public, all_public. - When the value is group_public, certain resources will only be visible to members of the same group. - When the value is all_public, all resources are visible to all users on this team. - example: all_public - type: string - id: - description: Team ID - example: 1 - type: integer - license_limit: - description: Count of seats that this team has licensed - example: 100 - type: integer - local_dial_enabled: - description: Whether this team has local dial enabled - example: true - type: boolean - name: - description: Team name - example: The A-Team - type: string - plan: - description: "Plan type of the team, Possible values are: group, professional, enterprise" - example: professional - type: string - plan_features: - description: Add on features for this team - example: - opportunity_management: Opportunity Management - type: object - record_by_default: - description: Whether calls will record by default - example: true - type: boolean - sentiments_required: - description: Whether team members are required to log sentiments - example: false - type: boolean - team_visibility_default: - description: | - The default visibility of resources on the team, in the UI only. The API does not utilize this default. - Possible values are: public, private. - example: public - type: string - updated_at: - description: Datetime of when the team was last updated - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - TeamTemplate: - properties: - _links: - description: "Links to attachments resource for this template " - example: - attachments: https://api.salesloft.com/v2/team_template_attachments?team_template_id[]=1 - type: object - archived_at: - description: Datetime of when the team template was archived, if archived - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - body: - description: Body of the team template - example:
Do you know about birds?
- type: string - body_preview: - description: A plain text version of the first 100 characters of the body of the team template - example: |- - hello - - hey sounds good - - ok - - ok - - with an edit - - ok now i'm comic sans 14 - type: string - click_tracking_enabled: - description: Whether click tracking is enabled for this team template - example: true - type: boolean - counts: - $ref: "#/components/schemas/TeamTemplateCounts" - created_at: - description: Datetime of when the team template was created - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - id: - description: ID of team template - example: 51226150-3108-4dea-883b-0c0d7388f456 - type: string - last_modified_at: - description: Datetime of when the team template was last modified - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - last_modified_user: - $ref: "#/components/schemas/EmbeddedResource" - last_used_at: - description: Datetime of when the team template was last used - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - open_tracking_enabled: - description: Whether open tracking is enabled for this team template - example: true - type: boolean - subject: - description: Subject of the team template - example: It’s time to say goodbye - type: string - tags: - description: All tags applied to this team template - example: - - 7-23-2017 - - internal - items: - type: string - type: array - title: - description: Title of the team template - example: VP Breakup Email - type: string - updated_at: - description: Datetime of when the team template was last updated - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - TeamTemplateAttachment: - properties: - attachment_file_size: - description: The size of the attachment - example: 2 - type: integer - attachment_id: - description: ID of the team template attachment - type: integer - download_url: - description: Download url of the attachment - example: https://path/to/example_attachment.gif - type: string - id: - description: ID of team template attachment association - example: 5 - type: integer - name: - description: Name of the attachment - example: example_attachment.gif - type: string - team_template: - $ref: "#/components/schemas/EmbeddedResource" - TeamTemplateCounts: - properties: - bounces: - description: The number of bounces the team template received - example: 10 - type: integer - clicks: - description: The number of times links in the team template were clicked - example: 20 - type: integer - replies: - description: The number of replies the team template received - example: 1 - type: integer - sent_emails: - description: The number of times the team template was sent out - example: 59 - type: integer - views: - description: The number of times the team template was opened - example: 3 - type: integer - User: - properties: - _private_fields: - description: For internal use only. This field does not comply with our backwards compatability policies. - example: {} - type: object - active: - description: Whether an user is currently active in SalesLoft - example: true - type: boolean - bcc_email_address: - description: Address that will be BBC'd on all emails from this user - example: fake@salesloft.com - type: string - click_to_call_enabled: - description: Whether this user has click to call enabled - example: true - type: boolean - created_at: - description: Datetime of when the user was created - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - crm_connected: - description: Whether the user has a crm connected - example: true - type: boolean - email: - description: Email address provided to accounts.salesloft.com - example: fake@salesloft.com - type: string - email_client_configured: - description: Whether this user has a email client configured - example: true - type: boolean - email_client_email_address: - description: Email address associated with the email client of the user - example: fake@salesloft.com - type: string - email_signature: - description: Email signature - example: Benjamin Franklin
- type: string - email_signature_click_tracking_disabled: - description: Whether this user has click tracking disabled in email signature - example: false - type: boolean - email_signature_type: - description: Email signature type - example: html - type: string - external_feature_flags: - description: Feature flags that are for this user. New flags may appear or disappear at any time - example: {} - type: object - first_name: - description: First name of user - example: Benjamin - type: string - from_address: - description: The from address of this user - example: fake@salesloft.com - type: string - full_email_address: - description: RFC 5322 compliant email address - example: '"Benjamin Franklin" ' - type: string - group: - $ref: "#/components/schemas/EmbeddedResource" - guid: - description: Globally unique user ID. New endpoints will explicitly accept this over id - example: 9cc6da15-d403-4f5b-aeed-c4b8463cf9ae - type: string - id: - description: User ID - example: 1 - type: integer - job_role: - description: Job role of user - example: SDR / BDR - type: string - last_name: - description: Last name of user - example: Franklin - type: string - local_dial_enabled: - description: Whether this user has Local Dial enabled - example: true - type: boolean - name: - description: Display name of user - example: Benjamin Franklin - type: string - phone_client: - $ref: "#/components/schemas/EmbeddedResource" - phone_number_assignment: - $ref: "#/components/schemas/EmbeddedResource" - role: - $ref: "#/components/schemas/EmbeddedResource" - sending_email_address: - description: "The email address that email of the user will be sent from, resolved in the following resolution order: from_user, email_client_email_address, email" - example: fake@salesloft.com - type: string - slack_username: - description: Slack username - example: benjamin-franklin - type: string - team: - $ref: "#/components/schemas/EmbeddedResource" - team_admin: - description: Team Admin - example: true - type: boolean - time_zone: - description: User Time Zone - example: US/Eastern - type: string - twitter_handle: - description: Twitter handle - example: "@benjamin-franklin" - type: string - updated_at: - description: Datetime of when the user was last updated - example: 2023-01-01T00:00:00.000000-05:00 - format: date-time - type: string - work_country: - description: Work Country - example: PE - type: string - securitySchemes: - OAuth2: - flows: - clientCredentials: - scopes: {} - tokenUrl: https://accounts.salesloft.com/oauth/token - type: oauth2 diff --git a/yarn.lock b/yarn.lock index a1f16fd52..7d6076af1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6319,7 +6319,6 @@ __metadata: csv-parse: ^5.3.5 csv-stringify: ^6.3.0 jsforce: ^2.0.0-beta.20 - json2yaml: ^1.1.0 odata: ^1.3.2 openapi-fetch: ^0.8.1 openapi-typescript: ^6.7.1 @@ -6332,6 +6331,7 @@ __metadata: pino-context: ^1.0.1 pino-pretty: ^9.4.0 pluralize: ^8.0.0 + prettier: ^3.1.0 prom-client: ^14.2.0 qs: ^6.11.2 svix: ^0.84.1 @@ -16087,20 +16087,6 @@ __metadata: languageName: node linkType: hard -"json2yaml@npm:^1.1.0": - version: 1.1.0 - resolution: "json2yaml@npm:1.1.0" - dependencies: - remedial: 1.x - bin: - json2yaml: ./cli.js - json2yml: ./cli.js - jsontoyaml: ./cli.js - jsontoyml: ./cli.js - checksum: 5666e04905edc89c8cc785bef0d948f5db9aa38b4b0ce5e63d2cbe669657e1cb60f4e5dc64ab25939d8bb97f70cc876746008dd433c29a2045fbb39bff97cb68 - languageName: node - linkType: hard - "json5@npm:^1.0.2": version: 1.0.2 resolution: "json5@npm:1.0.2" @@ -19970,12 +19956,12 @@ __metadata: languageName: node linkType: hard -"prettier@npm:^2.8.4": - version: 2.8.4 - resolution: "prettier@npm:2.8.4" +"prettier@npm:^3.1.0": + version: 3.1.0 + resolution: "prettier@npm:3.1.0" bin: - prettier: bin-prettier.js - checksum: c173064bf3df57b6d93d19aa98753b9b9dd7657212e33b41ada8e2e9f9884066bb9ca0b4005b89b3ab137efffdf8fbe0b462785aba20364798ff4303aadda57e + prettier: bin/prettier.cjs + checksum: 44b556bd56f74d7410974fbb2418bb4e53a894d3e7b42f6f87779f69f27a6c272fa7fc27cec0118cd11730ef3246478052e002cbd87e9a253f9cd04a56aa7d9b languageName: node linkType: hard @@ -21132,13 +21118,6 @@ __metadata: languageName: node linkType: hard -"remedial@npm:1.x": - version: 1.0.8 - resolution: "remedial@npm:1.0.8" - checksum: 12df7c55eb92501d7f33cfe5f5ad12be13bb6ac0c53f494aaa9963d5a5155bb8be2143e8d5e17afa1a500ef5dc71d13642920d35350f2a31b65a9778afab6869 - languageName: node - linkType: hard - "renderkid@npm:^3.0.0": version: 3.0.0 resolution: "renderkid@npm:3.0.0" @@ -22965,7 +22944,7 @@ __metadata: jest-runner-groups: ^2.2.0 lint-staged: ^13.1.2 oas-normalize: ^11.0.1 - prettier: ^2.8.4 + prettier: ^3.1.0 prettier-plugin-organize-imports: ^3.2.2 prettier-plugin-prisma: ^4.12.0 ts-jest: ^29.1.1 From ede7916b10c3e4f1d6af3e378769855bedc0735e Mon Sep 17 00:00:00 2001 From: Tony Xiao Date: Mon, 20 Nov 2023 14:42:41 -0800 Subject: [PATCH 18/22] chore: Using serverUrl from openapi rather than hard-coding in client --- packages/core/remotes/impl/apollo/apollo.client.ts | 3 ++- packages/core/remotes/impl/outreach/outreach.client.ts | 3 ++- packages/core/remotes/impl/salesloft/salesloft.client.ts | 3 ++- packages/core/tsconfig.json | 3 ++- tsconfig.json | 3 ++- 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/packages/core/remotes/impl/apollo/apollo.client.ts b/packages/core/remotes/impl/apollo/apollo.client.ts index 644093568..02d6edf33 100644 --- a/packages/core/remotes/impl/apollo/apollo.client.ts +++ b/packages/core/remotes/impl/apollo/apollo.client.ts @@ -1,6 +1,7 @@ import { createOpenapiClient } from '../../utils/createOpenapiClient'; import type { paths } from './apollo.openapi.gen'; +import oas from './apollo.openapi.json'; interface ApolloCredentials { apiKey: string; @@ -9,7 +10,7 @@ interface ApolloCredentials { export type ApolloClient = ReturnType; export function createApolloClient(creds: ApolloCredentials) { return createOpenapiClient({ - baseUrl: 'https://app.apollo.io/api', + baseUrl: oas.servers[0].url, preRequest(input, init) { if (input && init?.method?.toLowerCase() === 'get') { const url = new URL(input); diff --git a/packages/core/remotes/impl/outreach/outreach.client.ts b/packages/core/remotes/impl/outreach/outreach.client.ts index c6ca499c9..05f09b832 100644 --- a/packages/core/remotes/impl/outreach/outreach.client.ts +++ b/packages/core/remotes/impl/outreach/outreach.client.ts @@ -3,6 +3,7 @@ import type { OAuthClientOptions } from '../../utils/createOpenapiClient'; import { createOpenapiOauthClient, HTTPError } from '../../utils/createOpenapiClient'; import type { paths } from './outreach.openapi.gen'; +import oas from './outreach.openapi.json'; interface OutreachCredentials { accessToken: string; @@ -19,7 +20,7 @@ export function createOutreachClient({ }: { credentials: OutreachCredentials } & Pick) { // Maybe worth modifying the outreach openapi spec with refresh token tools return createOpenapiOauthClient({ - baseUrl: 'https://api.outreach.io/api/v2', + baseUrl: oas.servers[0].url, ...options, tokens: creds, refreshTokens: async (client) => { diff --git a/packages/core/remotes/impl/salesloft/salesloft.client.ts b/packages/core/remotes/impl/salesloft/salesloft.client.ts index 213d6588b..45c8d0fd9 100644 --- a/packages/core/remotes/impl/salesloft/salesloft.client.ts +++ b/packages/core/remotes/impl/salesloft/salesloft.client.ts @@ -3,6 +3,7 @@ import type { OAuthClientOptions } from '../../utils/createOpenapiClient'; import { createOpenapiOauthClient } from '../../utils/createOpenapiClient'; import type { paths } from './salesloft.openapi.gen'; +import oas from './salesloft.openapi.json'; interface SalesloftCredentials { accessToken: string; @@ -18,7 +19,7 @@ export function createSalesloftClient({ ...options }: { credentials: SalesloftCredentials } & Pick) { return createOpenapiOauthClient({ - baseUrl: ' https://api.salesloft.com', + baseUrl: oas.servers[0].url, ...options, tokens: creds, refreshTokens: async (client) => diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index f82b3f148..43a714bf4 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -3,7 +3,8 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "moduleResolution": "node16" + "moduleResolution": "node16", + "resolveJsonModule": true }, "include": ["./**/*.ts"] } diff --git a/tsconfig.json b/tsconfig.json index 43b3ba14f..6731f9a7a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,7 +4,8 @@ "outDir": "dist", "moduleResolution": "node", "target": "esnext", - "lib": ["es6"] + "lib": ["es6"], + "resolveJsonModule": true }, "exclude": ["node_modules", "dist"] } From b6af29aa3833c0ac9faca41482168485651127c1 Mon Sep 17 00:00:00 2001 From: Tony Xiao Date: Mon, 20 Nov 2023 15:27:13 -0800 Subject: [PATCH 19/22] chore: Add resolveJsonModule to all configs --- apps/api/tsconfig.json | 3 ++- apps/sync-worker/tsconfig.json | 3 ++- docs/tsconfig.json | 3 ++- packages/db/tsconfig.json | 3 ++- packages/sync-workflows/tsconfig.json | 3 ++- packages/types/tsconfig.json | 3 ++- packages/utils/tsconfig.json | 3 ++- 7 files changed, 14 insertions(+), 7 deletions(-) diff --git a/apps/api/tsconfig.json b/apps/api/tsconfig.json index 03bbcdf02..bf0b9558d 100644 --- a/apps/api/tsconfig.json +++ b/apps/api/tsconfig.json @@ -8,7 +8,8 @@ "paths": { "@/*": ["./*"] }, - "plugins": [{ "transform": "typescript-transform-paths" }] + "plugins": [{ "transform": "typescript-transform-paths" }], + "resolveJsonModule": true }, "ts-node": { "swc": true diff --git a/apps/sync-worker/tsconfig.json b/apps/sync-worker/tsconfig.json index e79996116..353fd5ff0 100644 --- a/apps/sync-worker/tsconfig.json +++ b/apps/sync-worker/tsconfig.json @@ -3,7 +3,8 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "moduleResolution": "node16" + "moduleResolution": "node16", + "resolveJsonModule": true }, "ts-node": { "swc": true diff --git a/docs/tsconfig.json b/docs/tsconfig.json index 6f4756980..aea83c96d 100644 --- a/docs/tsconfig.json +++ b/docs/tsconfig.json @@ -2,6 +2,7 @@ // This file is not used in compilation. It is here just for a nice editor experience. "extends": "@tsconfig/docusaurus/tsconfig.json", "compilerOptions": { - "baseUrl": "." + "baseUrl": ".", + "resolveJsonModule": true } } diff --git a/packages/db/tsconfig.json b/packages/db/tsconfig.json index f82b3f148..43a714bf4 100644 --- a/packages/db/tsconfig.json +++ b/packages/db/tsconfig.json @@ -3,7 +3,8 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "moduleResolution": "node16" + "moduleResolution": "node16", + "resolveJsonModule": true }, "include": ["./**/*.ts"] } diff --git a/packages/sync-workflows/tsconfig.json b/packages/sync-workflows/tsconfig.json index f82b3f148..43a714bf4 100644 --- a/packages/sync-workflows/tsconfig.json +++ b/packages/sync-workflows/tsconfig.json @@ -3,7 +3,8 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "moduleResolution": "node16" + "moduleResolution": "node16", + "resolveJsonModule": true }, "include": ["./**/*.ts"] } diff --git a/packages/types/tsconfig.json b/packages/types/tsconfig.json index f82b3f148..43a714bf4 100644 --- a/packages/types/tsconfig.json +++ b/packages/types/tsconfig.json @@ -3,7 +3,8 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "moduleResolution": "node16" + "moduleResolution": "node16", + "resolveJsonModule": true }, "include": ["./**/*.ts"] } diff --git a/packages/utils/tsconfig.json b/packages/utils/tsconfig.json index f82b3f148..43a714bf4 100644 --- a/packages/utils/tsconfig.json +++ b/packages/utils/tsconfig.json @@ -3,7 +3,8 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "moduleResolution": "node16" + "moduleResolution": "node16", + "resolveJsonModule": true }, "include": ["./**/*.ts"] } From ed54ee17e15fa5f79f30aefe907dd89902b67770 Mon Sep 17 00:00:00 2001 From: Tony Xiao Date: Mon, 20 Nov 2023 15:30:04 -0800 Subject: [PATCH 20/22] chore: Update prettier related deps --- package.json | 10 +++---- yarn.lock | 76 ++++++++++++++++++++++++++++------------------------ 2 files changed, 46 insertions(+), 40 deletions(-) diff --git a/package.json b/package.json index 11b932358..f3bd64d5a 100644 --- a/package.json +++ b/package.json @@ -35,20 +35,20 @@ "@tsconfig/node18": "^1.0.1", "@types/eslint": "^8", "@types/jest": "^29.5.5", - "@types/prettier": "^2", + "@types/prettier": "^3.0.0", "@typescript-eslint/eslint-plugin": "^5.52.0", "@typescript-eslint/parser": "^5.52.0", "eslint": "^8.34.0", - "eslint-config-prettier": "^8.6.0", - "eslint-plugin-prettier": "^4.2.1", + "eslint-config-prettier": "^9.0.0", + "eslint-plugin-prettier": "^5.0.1", "husky": "^8.0.3", "jest": "^29.7.0", "jest-runner-groups": "^2.2.0", "lint-staged": "^13.1.2", "oas-normalize": "^11.0.1", "prettier": "^3.1.0", - "prettier-plugin-organize-imports": "^3.2.2", - "prettier-plugin-prisma": "^4.12.0", + "prettier-plugin-organize-imports": "^3.2.4", + "prettier-plugin-prisma": "^5.0.0", "ts-jest": "^29.1.1", "tsc-files": "^1.1.3", "tsx": "^3.12.3", diff --git a/yarn.lock b/yarn.lock index 7d6076af1..c67f70de9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5367,10 +5367,10 @@ __metadata: languageName: node linkType: hard -"@prisma/prisma-fmt-wasm@npm:4.12.0-67.659ef412370fa3b41cd7bf6e94587c1dfb7f67e7": - version: 4.12.0-67.659ef412370fa3b41cd7bf6e94587c1dfb7f67e7 - resolution: "@prisma/prisma-fmt-wasm@npm:4.12.0-67.659ef412370fa3b41cd7bf6e94587c1dfb7f67e7" - checksum: 8afdf29fcab2313a0952c2c2931e67ded5f60c50d4b4da80c2858f99ae97c95fd8f781e0c96eb99d34c9a0b5b68796b658b873ee9bbb515e8d81afa1490829f8 +"@prisma/prisma-schema-wasm@npm:4.17.0-26.6b0aef69b7cdfc787f822ecd7cdc76d5f1991584": + version: 4.17.0-26.6b0aef69b7cdfc787f822ecd7cdc76d5f1991584 + resolution: "@prisma/prisma-schema-wasm@npm:4.17.0-26.6b0aef69b7cdfc787f822ecd7cdc76d5f1991584" + checksum: c0dffdde7b9e59cecea1c581829b1ebb55a934b8b5e7abf30d1e3d498cf3fcc6da39a3c320e1c52f9edb5e5cb08ff7f9bdd24e3ea97546ba4803d03bda5de066 languageName: node linkType: hard @@ -7520,10 +7520,12 @@ __metadata: languageName: node linkType: hard -"@types/prettier@npm:^2": - version: 2.7.2 - resolution: "@types/prettier@npm:2.7.2" - checksum: b47d76a5252265f8d25dd2fe2a5a61dc43ba0e6a96ffdd00c594cb4fd74c1982c2e346497e3472805d97915407a09423804cc2110a0b8e1b22cffcab246479b7 +"@types/prettier@npm:^3.0.0": + version: 3.0.0 + resolution: "@types/prettier@npm:3.0.0" + dependencies: + prettier: "*" + checksum: a2a512d304e5bcf78f38089dc88ad19215e6ab871d435a17aef3ce538a63b07c0e359c18db23989dc1ed9fff96d99eee1f680416080184df5c7e0e3bf767e165 languageName: node linkType: hard @@ -12115,14 +12117,14 @@ __metadata: languageName: node linkType: hard -"eslint-config-prettier@npm:^8.6.0": - version: 8.6.0 - resolution: "eslint-config-prettier@npm:8.6.0" +"eslint-config-prettier@npm:^9.0.0": + version: 9.0.0 + resolution: "eslint-config-prettier@npm:9.0.0" peerDependencies: eslint: ">=7.0.0" bin: eslint-config-prettier: bin/cli.js - checksum: ff0d0dfc839a556355422293428637e8d35693de58dabf8638bf0b6529131a109d0b2ade77521aa6e54573bb842d7d9d322e465dd73dd61c7590fa3834c3fa81 + checksum: 362e991b6cb343f79362bada2d97c202e5303e6865888918a7445c555fb75e4c078b01278e90be98aa98ae22f8597d8e93d48314bec6824f540f7efcab3ce451 languageName: node linkType: hard @@ -12218,18 +12220,22 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-prettier@npm:^4.2.1": - version: 4.2.1 - resolution: "eslint-plugin-prettier@npm:4.2.1" +"eslint-plugin-prettier@npm:^5.0.1": + version: 5.0.1 + resolution: "eslint-plugin-prettier@npm:5.0.1" dependencies: prettier-linter-helpers: ^1.0.0 + synckit: ^0.8.5 peerDependencies: - eslint: ">=7.28.0" - prettier: ">=2.0.0" + "@types/eslint": ">=8.0.0" + eslint: ">=8.0.0" + prettier: ">=3.0.0" peerDependenciesMeta: + "@types/eslint": + optional: true eslint-config-prettier: optional: true - checksum: b9e839d2334ad8ec7a5589c5cb0f219bded260839a857d7a486997f9870e95106aa59b8756ff3f37202085ebab658de382b0267cae44c3a7f0eb0bcc03a4f6d6 + checksum: c2261033b97bafe99ccb7cc47c2fac6fa85b8bbc8b128042e52631f906b69e12afed2cdd9d7e3021cc892ee8dd4204a3574e1f32a0b718b4bb3b440944b6983b languageName: node linkType: hard @@ -19928,9 +19934,9 @@ __metadata: languageName: node linkType: hard -"prettier-plugin-organize-imports@npm:^3.2.2": - version: 3.2.2 - resolution: "prettier-plugin-organize-imports@npm:3.2.2" +"prettier-plugin-organize-imports@npm:^3.2.4": + version: 3.2.4 + resolution: "prettier-plugin-organize-imports@npm:3.2.4" peerDependencies: "@volar/vue-language-plugin-pug": ^1.0.4 "@volar/vue-typescript": ^1.0.4 @@ -19941,22 +19947,22 @@ __metadata: optional: true "@volar/vue-typescript": optional: true - checksum: 28620ea73a0a518c93200c7ea17d38a26132db3f55a75954983dff3422d4dd2155515518422b7a68935736aa333b0406a51778053bd30133a57718090272bb5d + checksum: 57ae97d7e403445e650ae92b7da586761d1d88a47e46b3ea274baeb96782165bebd0132db9c652081e185c41b50701ba1d30d615ad1c9000300cc0c67eb12b7a languageName: node linkType: hard -"prettier-plugin-prisma@npm:^4.12.0": - version: 4.12.0 - resolution: "prettier-plugin-prisma@npm:4.12.0" +"prettier-plugin-prisma@npm:^5.0.0": + version: 5.0.0 + resolution: "prettier-plugin-prisma@npm:5.0.0" dependencies: - "@prisma/prisma-fmt-wasm": 4.12.0-67.659ef412370fa3b41cd7bf6e94587c1dfb7f67e7 + "@prisma/prisma-schema-wasm": 4.17.0-26.6b0aef69b7cdfc787f822ecd7cdc76d5f1991584 peerDependencies: - prettier: ">=2" - checksum: a2de4c217c96413811236dc38332f2996e103e4e7b431bec3df37c1467034aac67102006943a9397d70f132f67c92605ae474fd83727bf155e9f2e3a54b3116d + prettier: ">=2 || >=3" + checksum: 158b258de981fe3e21de844f155e5a89af77aa223ddb3ed6f743d861c07d608ec0043603236b4d859d36d28027945598e40f3a089ca0358074b3b42eefcd06a8 languageName: node linkType: hard -"prettier@npm:^3.1.0": +"prettier@npm:*, prettier@npm:^3.1.0": version: 3.1.0 resolution: "prettier@npm:3.1.0" bin: @@ -22933,20 +22939,20 @@ __metadata: "@tsconfig/node18": ^1.0.1 "@types/eslint": ^8 "@types/jest": ^29.5.5 - "@types/prettier": ^2 + "@types/prettier": ^3.0.0 "@typescript-eslint/eslint-plugin": ^5.52.0 "@typescript-eslint/parser": ^5.52.0 eslint: ^8.34.0 - eslint-config-prettier: ^8.6.0 - eslint-plugin-prettier: ^4.2.1 + eslint-config-prettier: ^9.0.0 + eslint-plugin-prettier: ^5.0.1 husky: ^8.0.3 jest: ^29.7.0 jest-runner-groups: ^2.2.0 lint-staged: ^13.1.2 oas-normalize: ^11.0.1 prettier: ^3.1.0 - prettier-plugin-organize-imports: ^3.2.2 - prettier-plugin-prisma: ^4.12.0 + prettier-plugin-organize-imports: ^3.2.4 + prettier-plugin-prisma: ^5.0.0 ts-jest: ^29.1.1 tsc-files: ^1.1.3 tsx: ^3.12.3 @@ -23133,7 +23139,7 @@ __metadata: languageName: unknown linkType: soft -"synckit@npm:^0.8.4": +"synckit@npm:^0.8.4, synckit@npm:^0.8.5": version: 0.8.5 resolution: "synckit@npm:0.8.5" dependencies: From 0a5c90911eb9d28e08a49128204cf57ae204fd5b Mon Sep 17 00:00:00 2001 From: Tony Xiao Date: Mon, 20 Nov 2023 15:36:19 -0800 Subject: [PATCH 21/22] fix: prettier errors --- .../syncs/syncConfig/SyncConfigDetailsPanel.tsx | 8 +++----- apps/mgmt-ui/src/pages/_app.tsx | 4 ++-- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/apps/mgmt-ui/src/components/syncs/syncConfig/SyncConfigDetailsPanel.tsx b/apps/mgmt-ui/src/components/syncs/syncConfig/SyncConfigDetailsPanel.tsx index e0e88f73e..42e640af5 100644 --- a/apps/mgmt-ui/src/components/syncs/syncConfig/SyncConfigDetailsPanel.tsx +++ b/apps/mgmt-ui/src/components/syncs/syncConfig/SyncConfigDetailsPanel.tsx @@ -135,7 +135,7 @@ function SyncConfigDetailsPanelImpl({ syncConfigId }: SyncConfigDetailsPanelImpl fullSyncEveryNIncrementals: fullSyncEveryNIncrementals ?? undefined, autoStartOnConnection, }, - commonObjects: commonObjects.map((object) => ({ object } as CommonObjectConfig)), + commonObjects: commonObjects.map((object) => ({ object }) as CommonObjectConfig), standardObjects: standardObjects.map((object) => ({ object })), customObjects: customObjects.map((object) => ({ object })), entities: entityIds.map((entityId) => ({ entityId })), @@ -167,7 +167,7 @@ function SyncConfigDetailsPanelImpl({ syncConfigId }: SyncConfigDetailsPanelImpl strategy, autoStartOnConnection, }, - commonObjects: commonObjects.map((object) => ({ object } as CommonObjectConfig)), + commonObjects: commonObjects.map((object) => ({ object }) as CommonObjectConfig), standardObjects: standardObjects.map((object) => ({ object })), customObjects: customObjects.map((object) => ({ object })), entities: entityIds.map((entityId) => ({ entityId })), @@ -484,9 +484,7 @@ function SyncConfigDetailsPanelImpl({ syncConfigId }: SyncConfigDetailsPanelImpl diff --git a/apps/mgmt-ui/src/pages/_app.tsx b/apps/mgmt-ui/src/pages/_app.tsx index c1abd731b..5e850c0c6 100644 --- a/apps/mgmt-ui/src/pages/_app.tsx +++ b/apps/mgmt-ui/src/pages/_app.tsx @@ -30,8 +30,8 @@ if (typeof window !== 'undefined') { api_host: process.env.FRONTEND_URL ? `${process.env.FRONTEND_URL}/ingest` : window.location.port === '3000' - ? `http://${window.location.hostname}:3000/ingest` - : `https://${window.location.hostname}/ingest`, + ? `http://${window.location.hostname}:3000/ingest` + : `https://${window.location.hostname}/ingest`, }); } From f707e151cdc3b95f2e92ceab2148479885292d0f Mon Sep 17 00:00:00 2001 From: Tony Xiao Date: Mon, 20 Nov 2023 15:21:13 -0800 Subject: [PATCH 22/22] chore: Refactor the supaglue client to also use the new createOpenapiClient --- .../v2/sequence.integration.test.ts | 18 ++++++++------- packages/core/package.json | 1 - .../core/remotes/impl/apollo/apollo.client.ts | 2 +- .../remotes/impl/apollo/apollo.openapi.json | 12 ++++++++++ .../remotes/impl/apollo/apollo.openapi.ts | 4 ++++ .../remotes/impl/outreach/outreach.client.ts | 4 ++-- .../impl/salesloft/salesloft.client.ts | 4 ++-- .../utils => schemas}/createOpenapiClient.ts | 3 +-- packages/schemas/index.ts | 1 + packages/schemas/package.json | 1 + packages/schemas/supaglue-client.ts | 23 +++++++++---------- yarn.lock | 4 ++-- 12 files changed, 47 insertions(+), 30 deletions(-) rename packages/{core/remotes/utils => schemas}/createOpenapiClient.ts (96%) diff --git a/apps/api/routes/engagement/v2/sequence.integration.test.ts b/apps/api/routes/engagement/v2/sequence.integration.test.ts index 7720984f8..05a0b5476 100644 --- a/apps/api/routes/engagement/v2/sequence.integration.test.ts +++ b/apps/api/routes/engagement/v2/sequence.integration.test.ts @@ -5,6 +5,7 @@ * @jest-environment ./integration-test-environment */ +import { HTTPError } from '@supaglue/schemas'; import type { CreateContactRequest, CreateContactResponse, @@ -92,17 +93,18 @@ describe('sequence', () => { test(`Error body`, async () => { testSequence.steps[0].interval_seconds = 123; - const res = await supaglueClient.engagement.POST('/sequences', { - body: { record: testSequence }, - // TODO: Make it so that x-customer-id can be omitted if it was passed into the client at creation time. - params: { header: { 'x-provider-name': 'salesloft', 'x-customer-id': process.env.CUSTOMER_ID! } }, - }); + const res = (await supaglueClient.engagement + .POST('/sequences', { + body: { record: testSequence }, + // TODO: Make it so that x-customer-id can be omitted if it was passed into the client at creation time. + params: { header: { 'x-provider-name': 'salesloft', 'x-customer-id': process.env.CUSTOMER_ID! } }, + }) + .catch((e) => e as HTTPError)) as HTTPError; + expect(res).toBeInstanceOf(HTTPError); expect(res.response.status).toEqual(400); // Our API spec is wrong and should specify 400 return code with ability to have errors - expect((res.error as typeof res.data)?.errors?.[0].title).toMatch( - 'Salesloft only supports intervals in whole days' - ); + expect((res.error as any)?.errors?.[0].title).toMatch('Salesloft only supports intervals in whole days'); }); describe.each(['outreach', 'apollo', 'salesloft'])('%s', (providerName) => { diff --git a/packages/core/package.json b/packages/core/package.json index 3980d5d5f..67fe4be26 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -48,7 +48,6 @@ "@types/uuid": "^9.0.1", "concurrently": "^8.2.2", "openapi-typescript": "^6.7.1", - "openapi-typescript-helpers": "0.0.4", "prettier": "^3.1.0", "ts-toolbelt": "9.6.0", "typescript": "^4.9.5" diff --git a/packages/core/remotes/impl/apollo/apollo.client.ts b/packages/core/remotes/impl/apollo/apollo.client.ts index 02d6edf33..851087301 100644 --- a/packages/core/remotes/impl/apollo/apollo.client.ts +++ b/packages/core/remotes/impl/apollo/apollo.client.ts @@ -1,4 +1,4 @@ -import { createOpenapiClient } from '../../utils/createOpenapiClient'; +import { createOpenapiClient } from '@supaglue/schemas'; import type { paths } from './apollo.openapi.gen'; import oas from './apollo.openapi.json'; diff --git a/packages/core/remotes/impl/apollo/apollo.openapi.json b/packages/core/remotes/impl/apollo/apollo.openapi.json index 2a4043ce8..a29859425 100644 --- a/packages/core/remotes/impl/apollo/apollo.openapi.json +++ b/packages/core/remotes/impl/apollo/apollo.openapi.json @@ -9,6 +9,11 @@ "url": "https://app.apollo.io/api" } ], + "security": [ + { + "api_key": [] + } + ], "paths": { "/v1/emailer_campaigns/{id}": { "get": { @@ -424,6 +429,13 @@ } }, "components": { + "securitySchemes": { + "api_key": { + "type": "apiKey", + "name": "api_key", + "in": "query" + } + }, "schemas": { "emailer_campaign": { "type": "object", diff --git a/packages/core/remotes/impl/apollo/apollo.openapi.ts b/packages/core/remotes/impl/apollo/apollo.openapi.ts index 01d90716f..3b8fc63d6 100644 --- a/packages/core/remotes/impl/apollo/apollo.openapi.ts +++ b/packages/core/remotes/impl/apollo/apollo.openapi.ts @@ -211,6 +211,10 @@ export function outputOpenApi() { openapi: '3.1.0', info: { title: 'Apollo API', version: '0.0.0' }, servers: [{ url: 'https://app.apollo.io/api' }], + security: [{ api_key: [] }], + components: { + securitySchemes: { api_key: { type: 'apiKey', name: 'api_key', in: 'query' } }, + }, paths: { '/v1/emailer_campaigns/{id}': { get: jsonOperation('getEmailerCampaign', { diff --git a/packages/core/remotes/impl/outreach/outreach.client.ts b/packages/core/remotes/impl/outreach/outreach.client.ts index 05f09b832..8c5f1f510 100644 --- a/packages/core/remotes/impl/outreach/outreach.client.ts +++ b/packages/core/remotes/impl/outreach/outreach.client.ts @@ -1,6 +1,6 @@ +import type { OAuthClientOptions } from '@supaglue/schemas'; +import { createOpenapiOauthClient, HTTPError } from '@supaglue/schemas'; import { SGConnectionNoLongerAuthenticatedError } from '../../../errors'; -import type { OAuthClientOptions } from '../../utils/createOpenapiClient'; -import { createOpenapiOauthClient, HTTPError } from '../../utils/createOpenapiClient'; import type { paths } from './outreach.openapi.gen'; import oas from './outreach.openapi.json'; diff --git a/packages/core/remotes/impl/salesloft/salesloft.client.ts b/packages/core/remotes/impl/salesloft/salesloft.client.ts index 45c8d0fd9..b83940a1f 100644 --- a/packages/core/remotes/impl/salesloft/salesloft.client.ts +++ b/packages/core/remotes/impl/salesloft/salesloft.client.ts @@ -1,6 +1,6 @@ +import type { OAuthClientOptions } from '@supaglue/schemas'; +import { createOpenapiOauthClient } from '@supaglue/schemas'; import type { ConnectorAuthConfig } from '../../base'; -import type { OAuthClientOptions } from '../../utils/createOpenapiClient'; -import { createOpenapiOauthClient } from '../../utils/createOpenapiClient'; import type { paths } from './salesloft.openapi.gen'; import oas from './salesloft.openapi.json'; diff --git a/packages/core/remotes/utils/createOpenapiClient.ts b/packages/schemas/createOpenapiClient.ts similarity index 96% rename from packages/core/remotes/utils/createOpenapiClient.ts rename to packages/schemas/createOpenapiClient.ts index 4b202f959..f9d5246b6 100644 --- a/packages/core/remotes/utils/createOpenapiClient.ts +++ b/packages/schemas/createOpenapiClient.ts @@ -1,7 +1,6 @@ import type { FetchOptions, FetchResponse } from 'openapi-fetch'; import createClient from 'openapi-fetch'; -// @ts-expect-error Not sure we get The current file is a CommonJS module whose imports will -// produce 'require' calls error, but it's ireelevant and thus we will suppress it +// @ts-expect-error Not sure why this is needed import type { PathsWithMethod } from 'openapi-typescript-helpers'; type HTTPMethod = 'GET' | 'PUT' | 'POST' | 'DELETE' | 'OPTIONS' | 'HEAD' | 'PATCH' | 'TRACE'; diff --git a/packages/schemas/index.ts b/packages/schemas/index.ts index 2486ad419..f1134c67c 100644 --- a/packages/schemas/index.ts +++ b/packages/schemas/index.ts @@ -1 +1,2 @@ export * from './supaglue-client'; +export * from './createOpenapiClient' diff --git a/packages/schemas/package.json b/packages/schemas/package.json index 999e4ac4f..8f3b64a79 100644 --- a/packages/schemas/package.json +++ b/packages/schemas/package.json @@ -9,6 +9,7 @@ }, "devDependencies": { "openapi-typescript": "^6.7.0", + "openapi-typescript-helpers": "^0.0.4", "tsx": "^3.12.3" } } diff --git a/packages/schemas/supaglue-client.ts b/packages/schemas/supaglue-client.ts index cbaf30d93..37db9e408 100644 --- a/packages/schemas/supaglue-client.ts +++ b/packages/schemas/supaglue-client.ts @@ -1,5 +1,4 @@ -import createClient from 'openapi-fetch'; - +import { createOpenapiClient } from './createOpenapiClient'; import type { paths as actions } from './gen/v2/actions'; import type { paths as crm } from './gen/v2/crm'; import type { paths as data } from './gen/v2/data'; @@ -25,18 +24,18 @@ export function createSupaglueClient({ apiUrl = 'https://api.supaglue.io', ...op ({ baseUrl: new URL(segment, apiUrl).toString(), headers: { ['x-api-key']: options.apiKey }, - } satisfies Parameters[0]); + }) satisfies Parameters[0]; return { - actions: createClient(getOptions('actions/v2')), - crm: createClient(getOptions('crm/v2')), - data: createClient(getOptions('data/v2')), - engagement: createClient(getOptions('engagement/v2')), - enrichment: createClient(getOptions('enrichment/v2')), - marketingAutomation: createClient(getOptions('marketing-automation/v2')), - metadata: createClient(getOptions('metadata/v2')), - ticketing: createClient(getOptions('ticketing/v2')), + actions: createOpenapiClient(getOptions('actions/v2')), + crm: createOpenapiClient(getOptions('crm/v2')), + data: createOpenapiClient(getOptions('data/v2')), + engagement: createOpenapiClient(getOptions('engagement/v2')), + enrichment: createOpenapiClient(getOptions('enrichment/v2')), + marketingAutomation: createOpenapiClient(getOptions('marketing-automation/v2')), + metadata: createOpenapiClient(getOptions('metadata/v2')), + ticketing: createOpenapiClient(getOptions('ticketing/v2')), // TODO: Mgmt uses different headers, we should fix that - mgmt: createClient(getOptions('mgmt/v2')), + mgmt: createOpenapiClient(getOptions('mgmt/v2')), }; } diff --git a/yarn.lock b/yarn.lock index c67f70de9..ce0d3f1f0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6322,7 +6322,6 @@ __metadata: odata: ^1.3.2 openapi-fetch: ^0.8.1 openapi-typescript: ^6.7.1 - openapi-typescript-helpers: 0.0.4 pg: ^8.10.2 pg-connection-string: ^2.6.2 pg-copy-streams: ^6.0.6 @@ -6364,6 +6363,7 @@ __metadata: dependencies: openapi-fetch: 0.8.1 openapi-typescript: ^6.7.0 + openapi-typescript-helpers: ^0.0.4 tsx: ^3.12.3 languageName: unknown linkType: soft @@ -18552,7 +18552,7 @@ __metadata: languageName: node linkType: hard -"openapi-typescript-helpers@npm:0.0.4, openapi-typescript-helpers@npm:^0.0.4": +"openapi-typescript-helpers@npm:^0.0.4": version: 0.0.4 resolution: "openapi-typescript-helpers@npm:0.0.4" checksum: d06d62f9669db5110f32ef36a70f9f2698dd7ad03ba41968baf13e1091caaf23c4af6f8a79103cfd68f65046da4284dcc2f75e9950e9170115189b545e3030fc