openapi: 3.0.3 info: version: 1.299.1 title: Contacthub API description: >- The Contacthub API allows you to collect, store, update and export the digital data of your customers. contact: name: API Support url: 'http://www.contactlab.com' email: contacthub@contactlab.com license: name: Contactlab SPA url: 'http://www.contactlab.com/en/' servers: - url: 'https://api.contactlab.it/hub/v1' description: Production. externalDocs: url: 'https://api.contactlab.it/hub/v1/docs/schema' description: Json Schemas of all entities and payloads. tags: - name: Analytics description: Analytics and stats endpoints. - name: Bulk-jobs description: Bulk-jobs endpoints. - name: Configuration description: Configuration endpoints. - name: Consents description: Consent endpoints. - name: Customers description: Customers endpoints. - name: Data-protection description: Data protection endpoints. - name: Events description: Event endpoints. - name: Model description: Model endpoints. - name: Send-sources description: Contactsend source endpoints. - name: Updates description: Updates endpoints. - name: User description: User endpoint. - name: Workspaces description: Workspaces endpoints. - name: Health description: Health endpoint. paths: '/workspaces/{workspaceId}/customers/{customerId}/stats/event-category-distribution': get: description: | Counts the number of events aggregated by category for a customer. The default date range is the last year and the default resolution mode is DAILY. summary: Number of customer events by category operationId: getEventsCategoryDistributionAnalyticsWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/customerId' - $ref: '#/components/parameters/start' - $ref: '#/components/parameters/end' - $ref: '#/components/parameters/mode' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST - TRUSTED_APPLICATION responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/EventsTimelineResp' '403': description: Forbidden. tags: - Analytics '/workspaces/{workspaceId}/customers/{customerId}/stats/buying-behaviors': get: description: | Gets the customer buying behavior counters. The default date range is the last year. summary: Customer buying behaviors operationId: getAnalyticBuyingBehaviorCustomer parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/customerId' - $ref: '#/components/parameters/start' - $ref: '#/components/parameters/end' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST - TRUSTED_APPLICATION responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/BuyingBehaviorCustomer' '403': description: Forbidden. tags: - Analytics '/workspaces/{workspaceId}/stats': get: description: Gets workspace information and total number of customers summary: Workspace information and total number of customers operationId: getWorkspaceStats parameters: - $ref: '#/components/parameters/workspaceId' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/WorkspaceStats' '403': description: Forbidden. tags: - Analytics '/workspaces/{workspaceId}/stats/nodes': get: description: Gets nodes information and total number of customers summary: Nodes information and total number of customers operationId: getNodesStats parameters: - $ref: '#/components/parameters/workspaceId' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST responses: '200': description: OK. content: application/json: schema: type: object properties: elements: description: The node stats page. type: array items: $ref: '#/components/schemas/NodeStats' page: $ref: '#/components/schemas/LimitPage' '403': description: Forbidden. tags: - Analytics '/workspaces/{workspaceId}/stats/customers/total': get: description: Counts the total number of customers. summary: Number of customers operationId: getAnalyticStatsCustomersTotal parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/nodeId' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST - TRUSTED_APPLICATION responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/CustomersTotal' '403': description: Forbidden. tags: - Analytics '/workspaces/{workspaceId}/stats/customers/acquisition': get: description: | Counts the number of customers aggregate by registeredAt. The default date range is the last year and the default resolution mode is MONTHLY. summary: Number of customers by creation date operationId: getAnalyticStatsCustomersAcquisition parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/start' - $ref: '#/components/parameters/end' - $ref: '#/components/parameters/mode' - $ref: '#/components/parameters/nodeId' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST - TRUSTED_APPLICATION responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/CustomersAcquisition' '403': description: Forbidden. tags: - Analytics '/workspaces/{workspaceId}/stats/customers/channels': get: description: | Counts the number of customers by the available communication channels: email and mobile, email only, mobile only, not reachable. summary: Number of customers by available communication channels operationId: getAnalyticStatsCustomersChannels parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/nodeId' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST - TRUSTED_APPLICATION responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/CustomersTotal' examples: CommunicationChannel: value: parameters: nodeId: uuid data: category: communicationChannels type: keyValue values: - key: emailMobile value: "10" - key: emailOnly value: "100" - key: mobileOnly value: "5" - key: notReachable value: "12" '403': description: Forbidden. tags: - Analytics '/workspaces/{workspaceId}/stats/customers/updates': get: description: New customers added/changed/deleted in the date range. The default date range is the last month, and the max date range is 1 year for (1 month for deleted customers) summary: Number of customers by update date operationId: getAnalyticStatsCustomersUpdates parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/start' - $ref: '#/components/parameters/end' - $ref: '#/components/parameters/updates-type' - $ref: '#/components/parameters/nodeId' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST - TRUSTED_APPLICATION responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/CustomersUpdates' '403': description: Forbidden. tags: - Analytics '/workspaces/{workspaceId}/stats/events/updates': get: description: | New events added/changed/deleted in the date range. The default date range is the last month, and the max date range is 1 year (1 month for deleted events). summary: Number of events by update date operationId: getAnalyticStatsEventsUpdates parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/start' - $ref: '#/components/parameters/end' - $ref: '#/components/parameters/updates-type' - $ref: '#/components/parameters/nodeId' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST - TRUSTED_APPLICATION responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/EventsUpdates' '403': description: Forbidden. tags: - Analytics '/workspaces/{workspaceId}/stats/events/context': get: description: | Events in the date range aggregated by type and context. Field 'date' of the event is used to filtered and aggregate events. The default date range is the last month, and the max date range is 1 year. summary: Number of events by type and context operationId: getAnalyticStatsEventsContext parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/start' - $ref: '#/components/parameters/end' - $ref: '#/components/parameters/event-stat-context' - $ref: '#/components/parameters/nodeId' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST - TRUSTED_APPLICATION responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/StatsEventsContext' '403': description: Forbidden. tags: - Analytics '/workspaces/{workspaceId}/stats/events/kpi/purchases': get: description: | Events Kpi Purchases. Field 'date' of the event is used to filtered and aggregate events. The default date range is the last month. summary: Events Kpi Purchases operationId: getAnalyticStatsEventsKpiPurchases parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/start' - $ref: '#/components/parameters/end' - $ref: '#/components/parameters/event-kpi-purchases-type' - $ref: '#/components/parameters/nodeId' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST - TRUSTED_APPLICATION responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/StatsEventsKpiPurchases' '403': description: Forbidden. tags: - Analytics '/workspaces/{workspaceId}/stats/events/kpi/ecommerce': get: description: | Events Kpi Ecommerce. Field 'date' of the event is used to filtered and aggregate events. The default date range is the last month. summary: Events Kpi Ecommerce operationId: getAnalyticStatsEventsKpiEcommerce parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/start' - $ref: '#/components/parameters/end' - $ref: '#/components/parameters/nodeId' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST - TRUSTED_APPLICATION responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/StatsEventsKpiEcommerce' '403': description: Forbidden. tags: - Analytics '/workspaces/{workspaceId}/stats/events/kpi/web': get: description: | Events Kpi Web. Field 'date' of the event is used to filtered and aggregate events. The default date range is the last month. summary: Events Kpi Web operationId: getAnalyticStatsEventsKpiWeb parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/start' - $ref: '#/components/parameters/end' - $ref: '#/components/parameters/nodeId' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST - TRUSTED_APPLICATION responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/StatsEventsKpiWeb' '403': description: Forbidden. tags: - Analytics '/workspaces': get: description: Gets a paged list of the workspaces. summary: Get workspaces operationId: getWorkspaces parameters: - name: name in: query description: Filter by name substring required: false schema: type: string - name: groupPk in: query description: Filter by group pk required: false schema: type: number - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/size' security: - OAuth2: - CONFIGURATOR - CLAB_OPERATOR - ADMIN responses: '200': description: OK. content: application/json: schema: type: object properties: elements: description: The workspace list page. type: array items: $ref: '#/components/schemas/WorkspaceResource' page: $ref: '#/components/schemas/Page' '400': description: Bad Request. content: application/json: schema: $ref: '#/components/schemas/BadResponse' '403': description: Forbidden. tags: - Workspaces post: description: Creates a workspace summary: Create a workspace operationId: createWorkspace requestBody: required: true description: json containing the workspace configuration. content: application/json: schema: $ref: '#/components/schemas/WorkspaceRequest' security: - OAuth2: - CONFIGURATOR responses: '201': description: Success response. content: application/json: schema: $ref: '#/components/schemas/WorkspaceResource' '403': description: Forbidden. '400': description: Bad Request. tags: - Workspaces '/workspaces/{workspaceId}': get: description: Gets the provisioning configuration of the given workspace. summary: Get a workspace operationId: getWorkspace parameters: - name: workspaceId in: path description: Unique identifier of workspace required: true schema: type: string security: - OAuth2: - CONFIGURATOR - CLAB_OPERATOR - ADMIN responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/WorkspaceResource' '403': description: Forbidden. tags: - Workspaces delete: description: Deletes a specific workspace. summary: Delete workspace operationId: deleteWorkspace parameters: - $ref: '#/components/parameters/workspaceId' security: - OAuth2: - CONFIGURATOR responses: '204': description: No content response '403': description: Forbidden. tags: - Workspaces '/workspaces/{workspaceId}/status': put: description: Modifies workspace status summary: Modify workspace status operationId: updateWorkspaceStatus parameters: - $ref: '#/components/parameters/workspaceId' requestBody: required: true description: json containing the new status of the workspace. content: application/json: schema: $ref: '#/components/schemas/WorkspaceStatusConfiguration' security: - OAuth2: - CONFIGURATOR responses: '200': description: Success response. content: application/json: schema: $ref: '#/components/schemas/WorkspaceStatusConfiguration' '403': description: Forbidden. tags: - Workspaces '/workspaces/{workspaceId}/configuration': get: description: Gets the workspace configuration. summary: Get workspace configuration operationId: getConfigurationWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST - TRUSTED_APPLICATION responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/WorkspaceConfiguration' '403': description: Forbidden. tags: - Configuration put: description: Modifies the workspace configuration. summary: Modify workspace configuration operationId: putConfigurationWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' requestBody: required: true description: Object necessary to modify the workspace configuration. content: application/json: schema: $ref: '#/components/schemas/WorkspaceConfiguration' security: - OAuth2: - CLAB_OPERATOR - ADMIN responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/WorkspaceConfiguration' '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/configuration/throttling': get: description: Gets the workspace throttling configuration. The value 0 (zero) means that throttling is disabled. summary: Get the workspace throttling operationId: getConfigurationWorkspacesThrottling parameters: - $ref: '#/components/parameters/workspaceId' security: - OAuth2: - CLAB_OPERATOR - ADMIN responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/WorkspaceThrottlingConfiguration' '403': description: Forbidden. tags: - Configuration put: description: Modifies the workspace throttling configuration. The value 0 (zero) means that throttling is disabled. summary: Modify the workspace throttling operationId: putConfigurationWorkspacesThrottling parameters: - $ref: '#/components/parameters/workspaceId' requestBody: required: true description: Object necessary to modify the workspace throttling configuration. content: application/json: schema: $ref: '#/components/schemas/WorkspaceThrottlingConfiguration' security: - OAuth2: - CLAB_OPERATOR responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/WorkspaceThrottlingConfiguration' '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/configuration/events': get: description: Gets the list of the built-in event configurations. summary: List event configurations operationId: getEventsConfigurationWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - name: resolveReferences in: query description: Whether to resolve references or not. required: false schema: type: boolean security: - OAuth2: - PLATFORM_UPDATES - CLAB_OPERATOR - ADMIN - USER - GUEST responses: '200': description: OK. content: application/json: schema: type: object properties: elements: description: The event configuration list page. type: array items: $ref: '#/components/schemas/EventConfiguration' page: $ref: '#/components/schemas/Page' '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/configuration/events/{eventType}': get: description: Gets the details of a built-in event. summary: Get event configuration operationId: getEventConfigurationWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/eventType' - name: resolveReferences in: query description: Whether to resolve references or not. required: false schema: type: boolean security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/EventConfiguration' '403': description: Forbidden. tags: - Configuration put: description: Enables or disables a built-in event. This endpoint is deprecated. Please use /workspaces/{workspaceId}/configuration/events/{eventType}/enabled. summary: Modify event configuration operationId: putEventConfigurationWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/eventType' - name: resolveReferences in: query description: Whether to resolve references or not. required: false schema: type: boolean requestBody: description: Event object for enable or disable. required: true content: application/json: schema: $ref: '#/components/schemas/EventConfiguration' security: - OAuth2: - CLAB_OPERATOR - ADMIN responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/EventConfiguration' '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/configuration/events/{eventType}/properties': get: description: Gets the event type properties. summary: Get event properties operationId: getEventPropertiesConfigurationWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/eventType' - name: resolveReferences in: query description: Whether to resolve references or not. required: false schema: type: boolean security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST - PLATFORM_UPDATES responses: '200': description: OK. content: application/json: schema: type: object '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/configuration/events/{eventType}/properties/extended': get: description: Gets the event type extended properties. summary: Get event extended properties operationId: getEventExtendedPropertiesConfigurationWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/eventType' security: - OAuth2: - PLATFORM_UPDATES - CLAB_OPERATOR - ADMIN - USER - GUEST responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/ExtendedPropertyConfiguration' '403': description: Forbidden. tags: - Configuration put: description: Modifies an event type extended properties. summary: Modify event extended properties operationId: putEventExtendedPropertiesConfigurationWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/eventType' requestBody: description: | The json schema that defines the extended profile. Each json schema property can include the following custom property: label, enabled, indexed and mergePolicy. Property `indexed` can only be changed by users with role `CLAB_OPERATOR`. In property names it is not possible to use "." (e.g. "my.property") required: true content: application/json: schema: $ref: '#/components/schemas/ExtendedPropertyConfiguration' security: - OAuth2: - CLAB_OPERATOR - ADMIN responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/ExtendedPropertyConfiguration' '400': description: Bad Request. content: application/json: schema: $ref: '#/components/schemas/BadResponse' '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/configuration/events/{eventType}/enabled': put: description: Enables or disables a built-in event type. summary: Modify event state operationId: putEnabledEventConfigurationWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/eventType' requestBody: description: The value of the state. required: true content: application/json: schema: $ref: '#/components/schemas/PropertyEnabledConfiguration' security: - OAuth2: - CLAB_OPERATOR - ADMIN responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/PropertyEnabledConfiguration' '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/configuration/events/types': get: description: Gets configured event types of a workspace. summary: Get event types operationId: getEventTypeConfiguration parameters: - $ref: '#/components/parameters/workspaceId' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST - PLATFORM_UPDATES responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/EventTypeMetadata' '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/configuration/events/product-update-policy': get: description: Gets configured event types that updates products registry summary: Get configured event types for products update policy operationId: getProductUpdatePolicy parameters: - $ref: '#/components/parameters/workspaceId' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/ProductUpdatedPolicyConfiguration' '403': description: Forbidden. tags: - Configuration put: description: Modifies configured event types that updates products registry summary: Modify configured event types for products update policy operationId: putProductUpdatePolicy parameters: - $ref: '#/components/parameters/workspaceId' requestBody: description: list of event types. required: true content: application/json: schema: $ref: '#/components/schemas/ProductUpdatedPolicyConfiguration' security: - OAuth2: - CLAB_OPERATOR - ADMIN responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/ProductUpdatedPolicyConfiguration' '400': description: Bad Request. content: application/json: schema: $ref: '#/components/schemas/BadResponse' '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/configuration/plan-models/{planModel}': get: description: >- Gets the available custom fields and the extended properties of the given plan model. summary: Get plan model operationId: getExtendedPropertiesMapping parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/planModel' security: - OAuth2: - CLAB_OPERATOR - ADMIN responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/ExtendedPropertyMapping' '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/configuration/products/properties/extended': get: description: Gets the product extended properties. summary: Get product extended properties operationId: getProductExtendedPropertiesConfigurationWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' security: - OAuth2: - PLATFORM_UPDATES - CLAB_OPERATOR - ADMIN - USER - GUEST responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/ExtendedPropertyConfiguration' '403': description: Forbidden. tags: - Configuration put: description: Modifies the product extended properties. summary: Modify product extended properties operationId: putProductExtendedPropertiesConfigurationWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' requestBody: description: | The json schema that defines the extended profile. Each json schema property can include the following custom property: label, enabled, indexed and mergePolicy. Property `indexed` can only be changed by users with role `CLAB_OPERATOR`. In property names it is not possible to use "." (e.g. "my.property") required: true content: application/json: schema: $ref: '#/components/schemas/ExtendedPropertyConfiguration' security: - OAuth2: - CLAB_OPERATOR - ADMIN responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/ExtendedPropertyConfiguration' '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/configuration/events/retention-policy/status': get: description: Gets the retention policy status for a workspace. summary: Get workspace retention policy status operationId: getEventsRetentionPolicyStatusConfigurationWorkspace parameters: - $ref: '#/components/parameters/workspaceId' security: - OAuth2: - CLAB_OPERATOR - ADMIN responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/RetentionStatusByNode' text/csv: schema: type: string '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/configuration/events/retention-policy': get: description: Gets the retention policy for each built-in event of a specific workspace. summary: Get workspace retention policy operationId: getEventsRetentionPolicyConfigurationWorkspace parameters: - $ref: '#/components/parameters/workspaceId' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/RetentionPolicyByEvent' '403': description: Forbidden. tags: - Configuration put: description: Configures the retention policy for each built-in event of a specific workspace. summary: Modify workspace retention policy operationId: putEventsRetentionPolicyConfigurationWorkspace parameters: - $ref: '#/components/parameters/workspaceId' requestBody: description: The retention policy for each built-in event. required: true content: application/json: schema: $ref: '#/components/schemas/RetentionPolicyByEvent' security: - OAuth2: - CLAB_OPERATOR responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/RetentionPolicyByEvent' '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/configuration/events/consent-policy': get: description: Gets the workspace events consent policy. summary: Get workspace events consent policy operationId: getEventsConsentPolicyConfigurationWorkspace parameters: - $ref: '#/components/parameters/workspaceId' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST - TRUSTED_APPLICATION responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/EventConsentPolicy' '403': description: Forbidden. tags: - Configuration put: description: Modifies the workspace events consent policy. summary: Modify workspace events consent policy operationId: putEventsConsentPolicyConfigurationWorkspace parameters: - $ref: '#/components/parameters/workspaceId' requestBody: description: The consent policy for each built-in event. required: true content: application/json: schema: $ref: '#/components/schemas/EventConsentPolicy' security: - OAuth2: - CLAB_OPERATOR - ADMIN responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/EventConsentPolicy' '400': description: Bad request. '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/configuration/events/payload-sizes': get: description: Gets the workspace events payload size. summary: Get workspace events payload size operationId: getEventsPayloadSizeConfigurationWorkspace parameters: - $ref: '#/components/parameters/workspaceId' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/EventsPayloadSize' '403': description: Forbidden. tags: - Configuration put: description: Modifies the workspace events payload size. summary: Modify workspace events payload size operationId: putEventsPayloadSizeConfigurationWorkspace parameters: - $ref: '#/components/parameters/workspaceId' requestBody: description: The payload size for each built-in event. required: true content: application/json: schema: $ref: '#/components/schemas/EventsPayloadSize' security: - OAuth2: - CLAB_OPERATOR responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/EventsPayloadSize' '400': description: Bad request. '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/configuration/nodes': get: description: Gets a paged list of the nodes. summary: List nodes operationId: getNodesConfigurationWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/size' - name: nodeType in: query description: The type of the node. schema: type: string enum: - ENTRY - AGGREGATE security: - OAuth2: - CONFIGURATOR - CLAB_OPERATOR - ADMIN - USER - GUEST responses: '200': description: OK. content: application/json: schema: type: object properties: elements: description: The node list page. type: array items: $ref: '#/components/schemas/NodeConfiguration' page: $ref: '#/components/schemas/Page' example: page: size: 10 totalElements: 1 totalPages: 1 number: 0 elements: - id: '9e9021ae-5332-426d-bb1b-f053440d7b4c' name: 'Node 1' description: 'This is Node 1.' imageUrl: 'https://image.contactlab.it' nodeType: 'ENTRY' retentionState: true properties: { uniqueCustomer: { caseSensitive: false, properties: [ "externalId" ] }, mandatoryProperties: [ 'base.contacts.email' ] } - id: '37bb932c-3e80-479b-a813-c6f9b3926a90' name: 'Aggregate Node A' description: 'This is Aggregate Node A.' imageUrl: 'https://image.contactlab.it' nodeType: 'AGGREGATE' retentionState: true properties: { state: 'ACTIVE', entryNodes: [ '9e9021ae-5332-426d-bb1b-f053440d7b4c' ], exclusionFilters: [ ], matchingProperties: { properties: [ 'base.contacts.email' ], caseSensitive: false } } '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/configuration/nodes/{nodeId}/events/retention-policy': get: description: Gets the retention policy for each built-in event of a specific node (entry or aggregate). summary: Get node retention policy operationId: getEventsRetentionPolicyAndStateConfigurationNode parameters: - $ref: '#/components/parameters/workspaceId' - name: nodeId in: path description: The unique identifier of the node (entry or aggregate). required: true schema: type: string format: uuid security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/RetentionPolicyAndStateByEvent' '403': description: Forbidden. tags: - Configuration put: description: Configures the retention policy for each built-in event for a specific node (entry or aggregate). summary: Modify node retention policy operationId: putEventsRetentionPolicyAndStateConfigurationNode parameters: - $ref: '#/components/parameters/workspaceId' - name: nodeId in: path description: The unique identifier of entry node (entry or aggregate). required: true schema: type: string format: uuid requestBody: description: The retention policy for each built-in event. required: true content: application/json: schema: $ref: '#/components/schemas/RetentionPolicyAndStateByEvent' security: - OAuth2: - CLAB_OPERATOR responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/RetentionPolicyAndStateByEvent' '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/configuration/nodes/entries': get: description: Gets a paged list of the entries node. summary: List entry nodes operationId: getEntriesNodesConfigurationWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/size' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST responses: '200': description: OK. content: application/json: schema: type: object properties: elements: description: The list of node. type: array items: $ref: '#/components/schemas/EntryNodeConfiguration' page: $ref: '#/components/schemas/Page' example: page: size: 10 totalElements: 1 totalPages: 1 number: 0 elements: - id: 'be4f0058-c51e-4909-acdc-373dfba102bd' name: 'Node 1' description: 'This is Node 1.' imageUrl: 'https://image.contactlab.it' uniqueCustomer: { "caseSensitive": true, "properties": [ "string" ] } mandatoryProperties: [ 'base.contacts.email' ] sourcePriority: [ ] '403': description: Forbidden. tags: - Configuration post: description: Creates a new entry node. summary: Create entry node operationId: postEntryNodeConfigurationWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' requestBody: description: The entry node object. required: true content: application/json: schema: $ref: '#/components/schemas/PostEntryNodeConfiguration' security: - OAuth2: - CLAB_OPERATOR - ADMIN responses: '201': description: Created. content: application/json: schema: $ref: '#/components/schemas/EntryNodeConfiguration' '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/configuration/nodes/entries/{nodeId}': get: description: Gets the details of a specific entry node. summary: Get entry node operationId: getEntryNodeConfigurationWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - name: nodeId in: path description: The unique identifier of the entry node. required: true schema: type: string format: uuid security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/EntryNodeConfiguration' '403': description: Forbidden. tags: - Configuration put: description: Modifies a specific entry node. summary: Modify entry node operationId: putEntryNodeConfigurationWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - name: nodeId in: path description: The unique identifier of the entry node. required: true schema: type: string format: uuid requestBody: description: The entry node object. required: true content: application/json: schema: $ref: '#/components/schemas/PutEntryNodeConfiguration' security: - OAuth2: - CLAB_OPERATOR - ADMIN responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/EntryNodeConfiguration' '403': description: Forbidden. tags: - Configuration delete: description: Deletes a specific entry node. summary: Delete entry node operationId: deleteEntryNodeConfigurationWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - name: nodeId in: path description: The unique identifier of the entry node. required: true schema: type: string format: uuid security: - OAuth2: - CLAB_OPERATOR - ADMIN responses: '200': description: OK. '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/configuration/nodes/entries/{nodeId}/empty': post: description: Removes all the data in a specific entry node. summary: Empty entry node operationId: emptyEntryNodeConfigurationWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - name: nodeId in: path description: The unique identifier of the entry node. required: true schema: type: string format: uuid - name: eventsOnly in: query description: Empty events only. schema: type: boolean security: - OAuth2: - CLAB_OPERATOR - ADMIN responses: '202': description: Accepted. '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/configuration/nodes/entries/{nodeId}/events/retention-policy': get: description: Gets the retention policy for each built-in event of a specific entry node. summary: Get entry node retention policy operationId: getEventsRetentionPolicyConfigurationNode parameters: - $ref: '#/components/parameters/workspaceId' - name: nodeId in: path description: The unique identifier of the entry node. required: true schema: type: string format: uuid security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/RetentionPolicyByEvent' '403': description: Forbidden. tags: - Configuration put: description: Configures the retention policy for each built-in event of a specific entry node. summary: Modify entry node retention policy operationId: putEventsRetentionPolicyConfigurationNode parameters: - $ref: '#/components/parameters/workspaceId' - name: nodeId in: path description: The unique identifier of the entry node. required: true schema: type: string format: uuid requestBody: description: The retention policy for each built-in event. required: true content: application/json: schema: $ref: '#/components/schemas/RetentionPolicyByEvent' security: - OAuth2: - CLAB_OPERATOR responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/RetentionPolicyByEvent' '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/configuration/nodes/entries/{nodeId}/events/retention-state': get: description: Gets the retention policy state for a specific entry node. summary: Get entry node retention policy state operationId: getEventsRetentionPolicyStateConfigurationNode parameters: - $ref: '#/components/parameters/workspaceId' - name: nodeId in: path description: The unique identifier of the entry node. required: true schema: type: string format: uuid security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/EventRetentionPolicyState' '403': description: Forbidden. tags: - Configuration put: description: Configures the retention policy state for a specific entry node. summary: Modify entry node retention policy state operationId: putEventsRetentionPolicyStateConfigurationNode parameters: - $ref: '#/components/parameters/workspaceId' - name: nodeId in: path description: The unique identifier of the entry node. required: true schema: type: string format: uuid requestBody: description: The retention policy state. required: true content: application/json: schema: $ref: '#/components/schemas/EventRetentionPolicyState' security: - OAuth2: - CLAB_OPERATOR responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/EventRetentionPolicyState' '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/configuration/nodes/aggregates': get: description: Gets the list of the aggregate nodes. summary: List aggregate nodes operationId: getAggregateNodes parameters: - $ref: '#/components/parameters/workspaceId' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST responses: '200': description: OK. content: application/json: schema: type: object properties: elements: description: The list of the aggregate nodes. type: array items: $ref: '#/components/schemas/AggregateNodeConfiguration' page: $ref: '#/components/schemas/Page' example: elements: - id: 142c9180-5d38-4a65-924b-174c35dfd34b state: NEW name: 'Prova aggregato' description: 'desc' imageUrl: 'image' entryNodes: [ '142c9180-5d38-4a65-924b-174c35dfd34b' ] matchingProperties: caseSensitive: true properties: - base.contacts.email exclusionFilters: - property: 'base.contacts.email' value: 'test' pattern: 'START_WITH' - property: base.pictureUrl value: 'boh' pattern: CONTAINS page: number: 0 size: 9 totalElements: 1 totalPages: 1 '403': description: Forbidden. tags: - Configuration post: description: Creates a new aggregate node. summary: Create aggregate node operationId: postAggregateNode parameters: - $ref: '#/components/parameters/workspaceId' requestBody: description: The aggregate node object. required: true content: application/json: schema: $ref: '#/components/schemas/PostAggregateNodeConfiguration' security: - OAuth2: - CLAB_OPERATOR responses: '201': description: Created. content: application/json: schema: $ref: '#/components/schemas/AggregateNodeConfiguration' '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/configuration/nodes/aggregates/{aggregateNodeId}': get: description: Gets the details of a specific aggregate node. summary: Get aggregate node operationId: getAggregateNode parameters: - $ref: '#/components/parameters/workspaceId' - name: aggregateNodeId in: path description: The unique identifier of the aggregate node. required: true schema: type: string format: uuid security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/AggregateNodeConfiguration' '403': description: Forbidden. tags: - Configuration put: description: Modifies an aggregate node. summary: Modify aggregate node operationId: putAggregateNode parameters: - $ref: '#/components/parameters/workspaceId' - name: aggregateNodeId in: path description: The unique identifier of the aggregate node. required: true schema: type: string format: uuid requestBody: description: | The aggregate node object. The properties entryNodes and matchingProperties cannot be changed. required: true content: application/json: schema: $ref: '#/components/schemas/AggregateNodeConfiguration' security: - OAuth2: - CLAB_OPERATOR responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/AggregateNodeConfiguration' '403': description: Forbidden. tags: - Configuration delete: description: Deletes an aggregate node. summary: Delete aggregate node operationId: deleteAggregateNode parameters: - $ref: '#/components/parameters/workspaceId' - name: aggregateNodeId in: path description: The unique identifier of the aggregate node. required: true schema: type: string format: uuid security: - OAuth2: - CLAB_OPERATOR responses: '202': description: ACCEPTED. '400': description: Bad Request. '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/configuration/nodes/aggregates/{aggregateNodeId}/state': put: description: Changes the state of an aggregate node. Currently the only supported transition is from NEW to ACTIVE. summary: Modify aggregate node state operationId: updateAggregateNodeState parameters: - $ref: '#/components/parameters/workspaceId' - name: aggregateNodeId in: path description: The unique identifier of the aggregate node. required: true schema: type: string format: uuid requestBody: description: The aggregate node state. required: true content: application/json: schema: $ref: '#/components/schemas/AggregateNodeStateResource' security: - OAuth2: - CLAB_OPERATOR responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/AggregateNodeStateResource' '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/configuration/nodes/aggregates/{aggregateNodeId}/send-subscriptions': get: description: Gets all the send source subscriptions of an aggregate node. summary: List aggregate node send source subscriptions operationId: getAggregateNodeSendSourceSubscriptions parameters: - $ref: '#/components/parameters/workspaceId' - name: aggregateNodeId in: path description: The unique identifier of the aggregate node. required: true schema: type: string format: uuid security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST responses: '200': description: OK. content: application/json: schema: type: array items: $ref: '#/components/schemas/AggregateNodeSendSubscriptionConfiguration' '403': description: Forbidden. '404': description: The Aggregate node identifier is not related to an aggregate node. tags: - Configuration '/workspaces/{workspaceId}/configuration/properties/base': get: description: Gets all the customer base properties. summary: Get customer base properties operationId: getBasePropertiesConfigurationWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST - TRUSTED_APPLICATION responses: '200': description: OK. content: application/json: schema: type: object properties: elements: description: The base properties list. type: array items: $ref: '#/components/schemas/BasePropertyConfiguration' '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/configuration/properties/base/{name}': put: description: Enables or disables a customer base property. summary: Modify customer base property state operationId: putBasePropertyConfigurationWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - name: name in: path description: The name of the customer base property. required: true schema: type: string requestBody: description: The object to enable or disable the property. required: true content: application/json: schema: $ref: '#/components/schemas/BasePropertyConfiguration' security: - OAuth2: - CLAB_OPERATOR - ADMIN responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/BasePropertyConfiguration' '400': description: Bad Request. '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/configuration/properties/extended': get: description: > Gets customer extended properties. summary: Get customer extended properties operationId: getExtendedPropertiesConfigurationWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' security: - OAuth2: - PLATFORM_UPDATES - CLAB_OPERATOR - ADMIN - USER - GUEST - TRUSTED_APPLICATION responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/ExtendedPropertyConfiguration' '403': description: Forbidden. tags: - Configuration put: description: Modifies customer extended properties. summary: Modify customer extended properties operationId: putExtendedPropertiesConfigurationWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' requestBody: description: | The json schema that defines the extended profile. Each json schema property can include the following custom property: label, enabled, indexed, and mergePolicy. For properties of type String, the property maxLength is required; the default value (i.e. if no other value is passed) is 255 for scalar properties, 1000 for String array properties (in this case, the maxLength property refers to the sum of the lengths of strings in the array plus length of separators) MaxLength property must be between 1 and 6000 Property `indexed` can only be changed by users with role `CLAB_OPERATOR`. In property names it is not possible to use "." (e.g. "my.property") required: true content: application/json: schema: $ref: '#/components/schemas/ExtendedPropertyConfiguration' security: - OAuth2: - CLAB_OPERATOR - ADMIN responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/ExtendedPropertyConfiguration' '400': description: Bad Request. content: application/json: schema: $ref: '#/components/schemas/BadResponse' '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/configuration/sources': get: description: Gets the workspace source list. summary: List sources operationId: getSourcesConfigurationWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST - CONFIGURATOR responses: '200': description: OK. content: application/json: schema: type: object properties: elements: description: The page source configuration list. type: array items: $ref: '#/components/schemas/SourceConfiguration' page: $ref: '#/components/schemas/Page' '403': description: Forbidden. tags: - Configuration post: description: Creates a new source. Only CLAB_OPERATOR and ADMIN roles are allowed to create a Send source. Please note that **sources with the following providers can no longer be created** (Javascript, MAGENTO, ANDROID_SDK, OBJECTIVEC_SDK, NODEJS_SDK, JAVA_SDK, SCALA_SDK, DOTNET_SDK) summary: Create source operationId: postSourceConfigurationWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' requestBody: description: The source configuration object. required: true content: application/json: schema: $ref: '#/components/schemas/PostSourceConfiguration' security: - OAuth2: - CLAB_OPERATOR - ADMIN - CONFIGURATOR responses: '201': description: Created. content: application/json: schema: $ref: '#/components/schemas/SourceConfiguration' '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/configuration/sources/{sourceId}': get: description: Gets a source details. summary: Get source operationId: getSourceConfigurationWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - name: sourceId in: path description: The unique identifier of the source. required: true schema: type: string format: uuid security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST - CONFIGURATOR responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/SourceConfiguration' '403': description: Forbidden. tags: - Configuration put: description: Modifies a source. Only CLAB_OPERATOR and ADMIN roles are allowed to modify a Send source. summary: Modify source operationId: putSourceConfigurationWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - name: sourceId in: path description: The unique identifier of the source. required: true schema: type: string format: uuid requestBody: description: The source configuration object. required: true content: application/json: schema: $ref: '#/components/schemas/PutSourceConfiguration' security: - OAuth2: - CLAB_OPERATOR - ADMIN - CONFIGURATOR responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/SourceConfiguration' '403': description: Forbidden. tags: - Configuration delete: description: Deletes a source. summary: Delete source operationId: deleteSourceConfigurationWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - name: sourceId in: path description: The unique identifier of the source. required: true schema: type: string format: uuid security: - OAuth2: - CLAB_OPERATOR - ADMIN responses: '204': description: No content. '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/configuration/sources/{sourceId}/refresh-token': post: description: Refreshes the source token. summary: Refresh source token operationId: postSourceTokenConfigurationWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - name: sourceId in: path description: The unique identifier of the source. required: true schema: type: string format: uuid security: - OAuth2: - CLAB_OPERATOR - ADMIN - CONFIGURATOR responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/SourceConfiguration' '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/configuration/unique-customer-matching-policy': get: description: Gets the default unique customer matching policies. summary: Get default customer matching policy operationId: getDefaultUniqueCustomerMatchingPolicy parameters: - $ref: '#/components/parameters/workspaceId' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/UniqueCustomerMatchingPolicyConfiguration' '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/configuration/nodes/entries/{nodeId}/unique-customer-matching-policy': get: description: Gets the node unique customer matching policies. This route is deprecated, please use GET on /workspaces/{workspaceId}/configuration/nodes/entries/{nodeId} summary: Get customer matching policy operationId: getNodeUniqueCustomerMatchingPolicy parameters: - $ref: '#/components/parameters/workspaceId' - name: nodeId in: path description: The unique identifier of the node. schema: type: string format: uuid required: true security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/UniqueCustomerMatchingPolicyConfiguration' '403': description: Forbidden. tags: - Configuration put: description: >- Updates the unique customer matching policies for the aggregation on the selected node. This route is deprecated, please use PUT on /workspaces/{workspaceId}/configuration/nodes/entries/{nodeId} summary: Modify customer matching policy operationId: putNodeUniqueCustomerMatchingPolicy parameters: - $ref: '#/components/parameters/workspaceId' - name: nodeId in: path description: The unique identifier of the node. schema: type: string format: uuid required: true requestBody: description: The matching policy configuration for the selected node. required: true content: application/json: schema: $ref: '#/components/schemas/UniqueCustomerMatchingPolicyConfiguration' security: - OAuth2: - CLAB_OPERATOR - ADMIN responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/UniqueCustomerMatchingPolicyConfiguration' '400': description: Bad Request. '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/configuration/users': get: description: Gets the users paginated list. summary: List users operationId: getUsersConfigurationWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - name: search in: query description: Term to filter results based on a specific pattern contained in the name, surname, username or email. schema: type: string security: - OAuth2: - CLAB_OPERATOR - ADMIN responses: '200': description: OK. content: application/json: schema: type: object properties: elements: description: The page user list. type: array items: $ref: '#/components/schemas/User' page: $ref: '#/components/schemas/Page' '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/configuration/users/{id}': get: description: Gets a user details. summary: Get user operationId: getUserConfigurationWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - name: id in: path description: The unique identifier of the user. required: true schema: type: integer security: - OAuth2: - CLAB_OPERATOR - ADMIN responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/User' '403': description: Forbidden. tags: - Configuration put: description: Modify user nodes. summary: Modify user operationId: putUserConfigurationWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - name: id in: path description: The unique identifier of the user. required: true schema: type: string format: uuid requestBody: description: The user configuration object. required: true content: application/json: schema: $ref: '#/components/schemas/PutUser' security: - OAuth2: - CLAB_OPERATOR - ADMIN responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/User' '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/customers': get: description: | Searches customers using the provided query parameters. The matched items are paged and sorted (by descending update date as default). The maximum number of matched elements is 10000. summary: Search customers operationId: getCustomersWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - name: nodeId in: query description: The nodeId of the customer. required: true schema: type: string format: uuid - name: externalId in: query description: The externalId of the customer. schema: type: string - name: query in: query description: Complex query filter. schema: type: string - name: fields in: query description: Comma-separated list of properties to include in the response. schema: type: string - name: size in: query description: Size of the response. schema: type: integer - name: sort in: query description: Sorting of the response. schema: type: string - name: page in: query description: Page of the response. schema: type: integer security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - TRUSTED_APPLICATION responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/PagedCustomer' '400': description: Bad Request. '403': description: Forbidden. tags: - Customers post: description: >- Creates a new customer. If customer uniqueness policy is MERGE and the customer already exists, it will be updated. Customer uniqueness is based on properties specified in [/workspaces/{workspaceId}/configuration/nodes/entries/{nodeId}/unique-customer-matching-policy](#operation/getNodeUniqueCustomerMatchingPolicy). The request body must contain: node id, the entry node unique properties and the mandatory fields. If the request body contains properties that do not appear within the existing customer, those properties are added. If the existing customer does contain the property, the value is replaced. All collection elements are appended to the existing ones and deduplicated. For single object in the base.subscriptions collection only, missing properties in the request body will be maintained. Customer's payload must not exceed 64kB. All the **base** properties of type String have **maxLength = 255** except for the following: - base.address.street = 500 - base.pictureUrl = 1000 - tags.auto and tags.manual = 1000 each (considering the sum of all the Strings length in the array) Extended properties String length can be configured using the dedicated endpoint summary: Create Customer operationId: postCustomerWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - name: sessionId in: query description: The unique identifier of the session. schema: type: string requestBody: required: true description: Object necessary to create customer. content: application/json: schema: $ref: '#/components/schemas/PostCustomer' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - TRUSTED_APPLICATION - UNTRUSTED_APPLICATION responses: '201': description: Created. content: application/json: schema: $ref: '#/components/schemas/Customer' '403': description: Forbidden. '409': description: Conflict. '423': description: Reindexing in progress. '429': description: Too many requests tags: - Customers '/workspaces/{workspaceId}/customers/{customerId}': get: description: Gets the details of a customer. summary: Get customer operationId: getCustomerWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/customerId' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - TRUSTED_APPLICATION - PLATFORM_UPDATES responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/Customer' '403': description: Forbidden. '404': description: Not Found. tags: - Customers patch: description: >- Updates partially the customer. If the request body contains properties that do not appear within the existing customer, those properties are added. If the existing customer does contain the property, the value is replaced. All collection elements are deduplicated. For base.subscriptions collection, if the request body contains properties that do not appear within the existing collection, those properties are added. Missing properties will be maintained. Use mode STRICT to avoid this behaviour. Customer's payload must not exceed 64kB. All the **base** properties of type String have **maxLength = 255** except for the following: - base.address.street = 500 - base.pictureUrl = 1000 - tags.auto and tags.manual = 1000 each (considering the sum of all the Strings length in the array) summary: Partially modify customer operationId: patchCustomerWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/customerId' - name: sessionId in: query description: The unique identifier of the session. schema: type: string - $ref: '#/components/parameters/customerOperationMode' requestBody: description: | Object necessary to update the customer. The following properties are immutable: - id - nodeId - intId - version - sourceInfo - registeredAt - updatedAt - deleted required: true content: application/json: schema: $ref: '#/components/schemas/PatchCustomer' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - TRUSTED_APPLICATION - UNTRUSTED_APPLICATION responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/Customer' '400': description: Bad Request. '403': description: Forbidden. '409': description: Conflict. '423': description: Reindexing in progress. '429': description: Too many requests tags: - Customers put: description: >- Updates the customer. The request body must contain: node id, the entry node unique properties and the mandatory fields. If the request body contains properties that do not appear within the existing customer, those properties are added. If the existing customer does contain the property, the value is replaced. All collection elements are deduplicated and treated as set. For base.subscriptions collection, if the request body contains properties that do not appear within the existing collection, those properties are added. Missing properties won't be modified. Use mode STRICT to avoid this behaviour. Customer's payload must not exceed 64kB. All the **base** properties of type String have **maxLength = 255** except for the following: - base.address.street = 500 - base.pictureUrl = 1000 - tags.auto and tags.manual = 1000 each (considering the sum of all the Strings length in the array) summary: Modify customer operationId: putCustomerWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/customerId' - name: sessionId in: query description: The unique identifier of the session. schema: type: string - $ref: '#/components/parameters/customerOperationMode' requestBody: required: true description: | Object necessary to update customers. The following properties are immutable: - id - nodeId - intId - version - sourceInfo - registeredAt - updatedAt - deleted content: application/json: schema: $ref: '#/components/schemas/Customer' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - TRUSTED_APPLICATION - UNTRUSTED_APPLICATION responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/Customer' '400': description: Bad Request. '403': description: Forbidden. '404': description: Not Found. '409': description: Conflict. '423': description: Reindexing in progress. '429': description: Too many requests tags: - Customers delete: description: Deletes a customer. summary: Delete customer operationId: deleteCustomerWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/customerId' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - TRUSTED_APPLICATION responses: '200': description: OK. content: application/json: schema: type: object '403': description: Forbidden. '423': description: Reindexing in progress. '429': description: Too many requests tags: - Customers '/workspaces/{workspaceId}/customers/{customerId}/subscriptions': post: description: Creates a customer subscription. The maxLength allowed for String properties is 255 summary: Create customer subscription operationId: postSubscriptionsCustomerWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/customerId' requestBody: required: true description: Object necessary to create the customer subscription. content: application/json: schema: $ref: '#/components/schemas/Subscription' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - TRUSTED_APPLICATION - UNTRUSTED_APPLICATION responses: '201': description: Created. content: application/json: schema: $ref: '#/components/schemas/Subscription' '403': description: Forbidden. '423': description: Reindexing in progress. tags: - Customers '/workspaces/{workspaceId}/customers/{customerId}/subscriptions/{propertyId}': get: description: Gets the details of a customer subscription. summary: Get customer subscription operationId: getSubscriptionCustomerWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/customerId' - name: propertyId in: path description: The unique identifier of the customer subscription. required: true schema: type: string security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - TRUSTED_APPLICATION responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/Subscription' '403': description: Forbidden. tags: - Customers put: description: Modifies a customer subscription. The maxLength allowed for String properties is 255 summary: Modify customer subscription operationId: putSubscriptionCustomerWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/customerId' - name: propertyId in: path description: The unique identifier of the customer subscription. required: true schema: type: string requestBody: required: true description: Object necessary to update the customer subscription. content: application/json: schema: $ref: '#/components/schemas/Subscription' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - TRUSTED_APPLICATION - UNTRUSTED_APPLICATION responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/Subscription' '403': description: Forbidden. '423': description: Reindexing in progress. tags: - Customers delete: description: Deletes a customer subscription. summary: Delete customer subscription operationId: deleteSubscriptionCustomerWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/customerId' - name: propertyId in: path description: The unique identifier of the customer subscription. required: true schema: type: string security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - TRUSTED_APPLICATION responses: '200': description: OK. '403': description: Forbidden. '423': description: Reindexing in progress. tags: - Customers '/workspaces/{workspaceId}/customers/{customerId}/sessions': get: description: Gets the list of sessions assigned to a customer. summary: List customer sessions operationId: getSessionsCustomerWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/customerId' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - TRUSTED_APPLICATION responses: '200': description: OK. content: application/json: schema: type: object properties: elements: description: The list of the customer sessions. type: array items: $ref: '#/components/schemas/Session' '403': description: Forbidden. tags: - Customers post: description: Creates a customer session. The maxLength allowed for String properties is 255 summary: Create customer session operationId: postSessionCustomerWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/customerId' requestBody: required: true description: Object necessary to create a session customer. content: application/json: schema: type: object properties: value: type: string description: >- The session id of customer. The value is unique for a single node. security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - TRUSTED_APPLICATION - UNTRUSTED_APPLICATION responses: '201': description: Created. content: application/json: schema: $ref: '#/components/schemas/Session' '403': description: Forbidden. tags: - Customers '/workspaces/{workspaceId}/customers/{customerId}/sessions/{sessionId}': get: description: Gets a customer session. summary: Get customer session operationId: getSessionCustomerWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/customerId' - name: sessionId in: path description: The unique identifier of the session. required: true schema: type: string security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - TRUSTED_APPLICATION responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/Session' '403': description: Forbidden. tags: - Customers delete: description: Deletes a customer session. summary: Delete customer session operationId: deleteSessionCustomerWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/customerId' - name: sessionId in: path description: The unique identifier of the session. required: true schema: type: string security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - TRUSTED_APPLICATION responses: '200': description: OK. '403': description: Forbidden. tags: - Customers '/workspaces/{workspaceId}/customers/{customerId}/entry-customers': get: description: Lists the entry customers that are part of an aggregate customer. summary: List entry customers operationId: getEntryCustomers parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/customerId' - name: page in: query description: The page of the paginated resource. required: true schema: type: integer - name: size in: query description: The size of the paginated resource. required: true schema: type: integer security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - TRUSTED_APPLICATION responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/PagedCustomer' '403': description: Forbidden. '404': description: Not Found. tags: - Customers '/workspaces/{workspaceId}/data-protection/customers/{customerId}': get: description: Exports all customer data including the associated events. summary: Export customer data operationId: getCustomerDataProtection parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/customerId' security: - OAuth2: - DPO responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/CustomerDataProtection' '403': description: Forbidden. '423': description: Reindexing in progress. tags: - Data-protection delete: description: Forgets a customer removing all the data across the entire platform and logging this special operation. summary: Forget customer operationId: deleteCustomerDataProtection parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/customerId' security: - OAuth2: - DPO responses: '204': description: No Content. '403': description: Forbidden. '423': description: Reindexing in progress. tags: - Data-protection '/workspaces/{workspaceId}/events': get: description: | Searches events using the provided query parameters. The matched items are paged and sorted (by descending date as default). The maximum number of matched elements is 10000. summary: Search events operationId: getEventsWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - name: customerId in: query description: The unique identifier of the customer. schema: type: string - $ref: '#/components/parameters/nodeId' - $ref: '#/components/parameters/eventTypeQuery' - $ref: '#/components/parameters/eventContext' - name: mode in: query description: >- The mode of the event: - ACTIVE, if the customer made the event - PASSIVE, if the customer receive the event schema: type: string enum: - ACTIVE - PASSIVE - name: dateFrom in: query description: From date-time. schema: type: string format: date-time - name: dateTo in: query description: To date-time. schema: type: string format: date-time security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - TRUSTED_APPLICATION responses: '200': description: OK. content: application/json: schema: type: object properties: elements: description: The event page. type: array items: $ref: '#/components/schemas/Event' page: $ref: '#/components/schemas/LimitPage' '403': description: Forbidden. tags: - Events post: description: | Inserts a new event. Event's payload must not exceed 64kB. summary: Create event operationId: postEventWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' requestBody: required: true description: >- Object necessary to create an event. Json schema related to event type [/workspaces/{workspaceId}/configuration/events/{eventType}/properties](#operation/getEventPropertiesConfigurationWorkspaces) The request body must contain: type, context, properties and at least one of the properties customerId or bringBackProperties. CustomerId and bringBackProperties are mutually exclusive. BringBackProperties are not allowed for aggregate nodes. content: application/json: schema: $ref: '#/components/schemas/PostEvent' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - TRUSTED_APPLICATION - UNTRUSTED_APPLICATION responses: '202': description: Accepted. content: application/json: schema: $ref: '#/components/schemas/PostResponseEvent' '403': description: Forbidden. '429': description: Too many requests tags: - Events '/workspaces/{workspaceId}/events/{id}': get: description: Gets a specific event. summary: Get event operationId: getEventWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - name: id in: path description: The unique identifier of event. required: true schema: type: string format: uuid - name: nav in: query description: used to expose the previous and next event ID 's filtered by the 'nav' parameter sorted by date - currently the only allowed value is CUSTOMER. schema: type: string enum: - CUSTOMER security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - TRUSTED_APPLICATION responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/Event' '403': description: Forbidden. '404': description: Not Found. tags: - Events put: description: | Modifies a specific event replacing all its property values. Event's payload must not exceed 64kB. summary: Modify event operationId: putEventWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - name: id in: path description: The unique identifier of event. required: true schema: type: string format: uuid requestBody: required: true description: >- Object necessary to update an event. The request body must contain: type, context, properties, customerId and bringBackProperties if already presents. The following properties are immutable: - id - customerId - bringBackProperties - type - registeredAt These properties are automatically generated: - updatedAt - version - origin content: application/json: schema: $ref: '#/components/schemas/PutEvent' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - TRUSTED_APPLICATION - UNTRUSTED_APPLICATION responses: '202': description: The request has been accepted for processing. '400': description: Bad Request. '403': description: You don't have the necessary permissions for the resource. '429': description: Too many requests tags: - Events patch: description: | Modifies partially a specific event. Event's payload must not exceed 64kB. summary: Partially modify event operationId: patchEventWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - name: id in: path description: The unique identifier of event. required: true schema: type: string format: uuid requestBody: required: true description: >- Object necessary to partially update an event. The following properties are immutable: - id - customerId - bringBackProperties - type - context - registeredAt These properties are automatically generated: - updatedAt - version - origin content: application/json: schema: $ref: '#/components/schemas/PatchEvent' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - TRUSTED_APPLICATION - UNTRUSTED_APPLICATION responses: '202': description: The request has been accepted for processing. '400': description: Bad Request. '403': description: You don't have the necessary permissions for the resource. '429': description: Too many requests tags: - Events delete: description: Deletes a specific event. summary: Delete event operationId: deleteEventWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - name: id in: path description: The event identifier. required: true schema: type: string format: uuid security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - TRUSTED_APPLICATION responses: '204': description: No Content. '403': description: Forbidden. '404': description: Not Found. '429': description: Too many requests tags: - Events '/workspaces/{workspaceId}/configuration/customers/properties': get: description: >- Gets the customer json schema with references resolved if the relative parameter is true summary: Get customer properties operationId: getCustomerPropertiesConfigurationWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - name: resolveReferences in: query description: Whether to resolve references or not. required: false schema: type: boolean security: - OAuth2: - PLATFORM_UPDATES - CLAB_OPERATOR - ADMIN - USER - GUEST responses: '200': description: OK. content: application/json: schema: type: object '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/models/properties/base': get: description: Gets the customer base properties that are available in the customer schema. summary: Get customer base properties operationId: getBasePropertiesModelsWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/BasePropertyModel' '403': description: Forbidden. tags: - Model '/workspaces/{workspaceId}/configuration/customers/properties/base/{baseProperty}/enabled': put: description: Enables or disables a customer base property. summary: Modify customer base property state operationId: enableBaseProperty parameters: - $ref: '#/components/parameters/workspaceId' - name: baseProperty in: path description: The base property to toggle. required: true schema: type: string requestBody: description: The value of the flag. required: true content: application/json: schema: $ref: '#/components/schemas/PropertyEnabledConfiguration' security: - OAuth2: - CLAB_OPERATOR - ADMIN responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/PropertyEnabledConfiguration' '403': description: Forbidden. tags: - Configuration '/workspaces/{workspaceId}/models/merge-policies': get: description: Gets the list of the merge policy types. summary: Get merge policy types operationId: getMergePoliciesModelsWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST responses: '200': description: OK. content: application/json: schema: type: object properties: elements: description: The list of the merge policy types. type: array items: $ref: '#/components/schemas/MergePolicy' '403': description: Forbidden. tags: - Model '/workspaces/{workspaceId}/models/providers': get: description: Gets the list of the source provider types. summary: Get source provider types operationId: getProvidersModelsWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST responses: '200': description: OK. content: application/json: schema: type: object properties: elements: description: The list of the source provider types. type: array items: $ref: '#/components/schemas/Provider' '403': description: Forbidden. tags: - Model '/workspaces/{workspaceId}/models/contexts': get: description: Gets the list of the event context types. summary: Get event context types operationId: getContextsModelsWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - name: resolveReferences in: query description: If true, the response json will include the schema of nested fields schema: type: boolean default: false security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST - PLATFORM_UPDATES responses: '200': description: OK. content: application/json: schema: type: object properties: elements: description: The list of context types. type: array items: $ref: '#/components/schemas/Context' '403': description: Forbidden. tags: - Model '/workspaces/{workspaceId}/models/providers/contactsend/subscriber-sources/{subscriberSourceId}/subscriptions': get: description: Gets the list of the send source subscriptions. summary: Get send source subscriptions operationId: getSubscriptionsModelsWorkspaces parameters: - $ref: '#/components/parameters/subscriberSourceId' - $ref: '#/components/parameters/workspaceId' - in: query name: groupPk description: Unique identifier of the customer group associated with the userdb. schema: type: integer security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST responses: '200': description: OK. content: application/json: schema: type: object properties: elements: description: The list of the send source subscriptions. type: array items: $ref: '#/components/schemas/ContactsendSubscription' '403': description: Forbidden. tags: - Model '/workspaces/{workspaceId}/models/providers/contactsend/subscriber-sources/{subscriberSourceId}/fields': get: description: Gets the list of the send source subscriber fields. summary: Get send source subscriber fields operationId: getFieldsModelsWorkspaces parameters: - $ref: '#/components/parameters/subscriberSourceId' - $ref: '#/components/parameters/workspaceId' - in: query name: groupPk description: Unique identifier of the customer group associated with the userdb. schema: type: integer security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - GUEST responses: '200': description: OK. content: application/json: schema: type: object properties: elements: description: The list of the send source subscriber fields. type: array items: $ref: '#/components/schemas/SubscriberSourceField' '400': description: Bad Request. '403': description: Forbidden. '404': description: Not Found. tags: - Model '/models/stats/event-categories': get: description: Gets the list of the event category types for analytics. summary: Get analytics event category types operationId: getModelsAnalyticsEventCategories responses: '200': description: OK. content: application/json: schema: type: object properties: elements: description: The list of analytics event category types. type: array items: $ref: '#/components/schemas/AnalyticsEventCategory' tags: - Model '/send-sources': get: description: Gets send source configurations. summary: Get send source configurations operationId: getSendSources security: - OAuth2: - PLATFORM_UPDATES - CONFIGURATOR responses: '200': description: The send source configurations. content: application/json: schema: type: object properties: elements: description: The list of send source configurations. type: array items: $ref: '#/components/schemas/SendSourcesResource' '403': description: Forbidden. tags: - Send-sources '/send-sources/workspaces/{workspaceId}/nodes/{nodeId}': get: description: Gets send source configuration for a specific node. summary: Get node send source configuration operationId: getNodeIdWorkspaceSendSources parameters: - $ref: '#/components/parameters/workspaceId' - name: nodeId description: The unique identifier of the node. in: path required: true schema: type: string security: - OAuth2: - PLATFORM_UPDATES - CONFIGURATOR - CLAB_OPERATOR - ADMIN - USER - GUEST responses: '200': description: Send source configuration. content: application/json: schema: $ref: '#/components/schemas/SendSourcesResource' '403': description: Forbidden. '404': description: Not Found. tags: - Send-sources '/send-sources/groups/{groupPk}/userdbs/{userdbId}': get: description: Gets send source configuration by send customer group and user DB. summary: Get send source configuration by user DB operationId: getUserdbGroupPkSendSources parameters: - name: groupPk description: The unique identifier of the customer group. in: path schema: type: string required: true - name: userdbId description: The unique identifier of send user DB. in: path schema: type: string required: true security: - OAuth2: - PLATFORM_UPDATES - CLAB_OPERATOR - CONFIGURATOR responses: '200': description: The send source configuration. content: application/json: schema: $ref: '#/components/schemas/SendSourcesResource' '403': description: Forbidden. '404': description: Not Found. tags: - Send-sources '/send-sources/groups/{groupPk}': get: description: Gets send source configurations by send customer group. summary: Get send source configurations by customer group operationId: getGroupPkSendSources parameters: - name: groupPk description: The unique identifier of the send customer group. in: path schema: type: string required: true security: - OAuth2: - PLATFORM_UPDATES - CLAB_OPERATOR - CONFIGURATOR responses: '200': description: The send group source configurations. content: application/json: schema: type: object properties: elements: description: The list of send source configurations. type: array items: $ref: '#/components/schemas/SendSourcesResource' '403': description: Forbidden. '404': description: Not Found. tags: - Send-sources '/workspaces/{workspaceId}/updates/last-offset': get: description: Gets the last update offset. It can refer to a customer or an event update. summary: Get the last update offset operationId: getUpdatesLastOffsetWorkspace parameters: - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/nodeId' - $ref: '#/components/parameters/entity' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - PLATFORM_UPDATES responses: '200': description: The offset has been returned. content: application/json: schema: $ref: '#/components/schemas/LastOffsetResponse' tags: - Updates '/workspaces/{workspaceId}/updates': get: description: Gets a stream of customer and event updates starting by the specified offset. summary: Get an update stream operationId: getUpdatesWorkspace parameters: - $ref: '#/components/parameters/workspaceId' - name: size in: query description: 'Paging: the page size.' schema: type: integer default: 50 minimum: 0 maximum: 4000 required: false - $ref: '#/components/parameters/timestamp' - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/nodeId' - $ref: '#/components/parameters/entity' security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER - PLATFORM_UPDATES responses: '200': description: Successful response. content: application/json: schema: $ref: '#/components/schemas/UpdatesResponse' tags: - Updates '/me': get: description: Gets the authenticated user info. summary: Get current user info operationId: getMe security: - OAuth2: - CLAB_OPERATOR - ADMIN - DPO - USER - GUEST responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/UserInfo' '401': description: Unauthorized. '403': description: Forbidden. tags: - User '/workspaces/{workspaceId}/consent-logs/{id}': get: description: Gets an operation on consents. summary: Get consent operationId: getConsentWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - name: id in: path description: Identifier of the consent log. required: true schema: type: string security: - OAuth2: - DPO responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/ConsentLog' '403': description: Forbidden. tags: - Consents '/workspaces/{workspaceId}/consent-logs': get: description: Gets list of operations on consents. summary: List consents operationId: getConsentsWorkspaces parameters: - $ref: '#/components/parameters/workspaceId' - name: customerId in: query description: Identifier of the customer. schema: type: string required: false - name: uniqueKey in: query description: >- The json structured data containing the values of the unique customer property schema: type: string required: false - name: startDate in: query description: The date interval lower bound. schema: type: string format: date required: false - name: endDate in: query description: The date interval upper bound. schema: type: string format: date required: false - name: type in: query description: The type of consent log event. schema: $ref: '#/components/schemas/ConsentEventType' required: false - name: property in: query description: Json path of property. schema: type: string required: false - name: sort in: query description: Sort field and direction. schema: type: string required: false - name: nodes in: query description: Comma separated node ids. schema: type: string required: false security: - OAuth2: - DPO responses: '200': description: OK. content: application/json: schema: type: object properties: elements: description: The list of consent logs. type: array items: $ref: '#/components/schemas/ConsentLog' page: $ref: '#/components/schemas/Page' text/csv: schema: type: string example: id,customerId,uniqueKey,date,type,property,value,sourceId,userId '400': description: Bad Request. '403': description: Forbidden. tags: - Consents '/workspaces/{workspaceId}/nodes/{nodeId}/bulk-jobs': get: description: Gets the list of bulk jobs filtered by node id. Can also be filtered by *status* and *entity type*. summary: Get bulk jobs per node operationId: getBulkJobs parameters: - $ref: '#/components/parameters/workspaceId' - name: nodeId in: path description: The unique identifier of the entry node. required: true schema: type: string format: uuid - name: status in: query description: Job status to search for schema: $ref: '#/components/schemas/BulkJobStatus' - name: entity in: query description: Job entity type to search for schema: $ref: '#/components/schemas/BulkJobEntity' - name: size in: query description: Size of the response. schema: type: integer - name: sort in: query description: Sorting of the response. schema: type: string - name: page in: query description: Page of the response. schema: type: integer security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER responses: '200': description: OK. content: application/json: schema: type: object properties: page: $ref: '#/components/schemas/LimitPage' elements: type: array description: list of bulk jobs. items: $ref: '#/components/schemas/BulkJobResource' '403': description: Forbidden. tags: - Bulk-jobs post: description: | Creates new bulk job resource and uploads the input file from which the bulk job will retrieve the data. The job status will be LOADED or FAILED based on the result of the file upload. A maximum of 10 jobs with status LOADED can exist for each node. **Please note** that entities are **not** guaranteed to be created in the same order as they are in the file. summary: Create a bulk job operationId: postBulkJobs parameters: - $ref: '#/components/parameters/workspaceId' - name: nodeId in: path description: The unique identifier of the entry node. required: true schema: type: string format: uuid requestBody: content: multipart/form-data: schema: type: object properties: file: type: string format: binary description: CSV file data. operation: $ref: '#/components/schemas/BulkJobOperation' entity: $ref: '#/components/schemas/BulkJobEntity' eventType: $ref: '#/components/schemas/EventType' required: - file - operation example: | externalId,base.firstName,base.contacts.email 100,John,Doe@example.com security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER responses: '201': description: Created. content: application/json: schema: $ref: '#/components/schemas/BulkJobResource' '400': description: Bad Request. '403': description: Forbidden. tags: - Bulk-jobs '/workspaces/{workspaceId}/nodes/{nodeId}/bulk-jobs/{jobId}': get: description: Gets a bulk job by id. summary: Get a single bulk job operationId: getBulkJob parameters: - $ref: '#/components/parameters/workspaceId' - name: nodeId in: path description: The unique identifier of the entry node. required: true schema: type: string format: uuid - name: jobId in: path description: The unique identifier of the job required: true schema: type: string format: uuid security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/BulkJobResource' '403': description: Forbidden. tags: - Bulk-jobs '/workspaces/{workspaceId}/nodes/{nodeId}/bulk-jobs/{jobId}/results': get: description: Gets bulk job results in .csv format; can be accessed only when a job is either PROCESSED or FAILED. summary: Get bulk job results operationId: getBulkJobResults parameters: - $ref: '#/components/parameters/workspaceId' - name: nodeId in: path description: The unique identifier of the entry node. required: true schema: type: string format: uuid - name: jobId in: path description: The unique identifier of the job required: true schema: type: string format: uuid security: - OAuth2: - CLAB_OPERATOR - ADMIN - USER responses: '200': description: OK. content: text/csv: schema: type: string example: lineNumber,entityId,operationResult,errorMessage,originalRow '403': description: Forbidden. tags: - Bulk-jobs '/shards': get: description: Returns the list of available shards. summary: Return the list of available shards operationId: findAllShards security: - OAuth2: - CONFIGURATOR responses: '200': description: OK content: application/json: schema: type: object properties: elements: description: The list of available shards. type: array items: type: string '403': description: Forbidden. tags: - Workspaces '/health': get: description: Returns the application health state. summary: Return the application health state operationId: Health responses: '200': description: UP. content: application/json: schema: $ref: '#/components/schemas/health' '503': description: DOWN. tags: - Health components: parameters: eventType: name: eventType description: The name of event type. in: path schema: $ref: '#/components/schemas/EventType' required: true workspaceId: name: workspaceId in: path description: The unique identifier of the workspace. schema: type: string format: uuid required: true customerId: name: customerId in: path description: The unique identifier of the customer. required: true schema: type: string format: uuid subscriberSourceId: name: subscriberSourceId description: The unique identifier of the userdb in Contactsend. in: path schema: type: string required: true planModel: name: planModel in: path description: The model of event which is exported to plan. schema: $ref: '#/components/schemas/PlanModel' required: true eventContext: name: context description: The name of event context. in: query schema: $ref: '#/components/schemas/EventContext' eventTypeQuery: name: type description: The name of event type. in: query schema: $ref: '#/components/schemas/EventType' entity: name: entity description: Filter the entities by type. in: query schema: type: string enum: - CUSTOMER - EVENT required: false nodeId: name: nodeId description: Filter the entities belonging to this node id. in: query schema: type: string format: uuid required: false offset: name: offset description: >- The greatest offset known by the client (not included in the returned result). in: query schema: type: integer required: false size: name: size in: query description: 'Paging: the page size.' schema: type: integer default: 20 minimum: 0 maximum: 50 required: false page: name: page in: query description: 'Paging: the page number.' schema: type: integer default: 0 minimum: 0 maximum: 50 required: false timestamp: name: timestamp in: query description: >- The timestamp of the first modified entity; ignored if the `offset` parameter has been defined. schema: type: integer required: false start: name: start in: query description: Start date. schema: type: string format: date-time end: name: end in: query description: End date. schema: type: string format: date-time mode: name: mode in: query description: | The distribution mode. **limitation date range**: * DAILY -> 1 year * WEEKLY -> 5 years * MONTHLY -> 10 years the system automatically changes the start parameter if it exceeds the limit. schema: type: string enum: - DAILY - WEEKLY - MONTHLY updates-type: name: type in: query description: Specifies the type of aggregation (ADDED, UPDATED, DELETED). schema: type: string enum: - ADDED - UPDATED - DELETED default: ADDED event-stat-context: name: context in: query description: Specifies the context. schema: type: string enum: - WEB - MOBILE - ECOMMERCE - RETAIL - SOCIAL - DIGITAL_CAMPAIGN - CONTACT_CENTER - IOT - OTHER - ALL default: ALL event-kpi-purchases-type: name: type in: query description: Specifies kpi purchases type. schema: type: string enum: - ECOMMERCE - RETAIL - ALL default: ALL customerOperationMode: name: mode description: The mode of customer operation in: query schema: $ref: '#/components/schemas/CustomerOperationMode' schemas: BadResponse: type: object properties: message: description: Descriptive error message (English). type: string logref: description: Unique identifier that is reported in the application log. type: string data: type: object description: Specific error data. errors: type: array description: Sub-errors array. items: type: object properties: message: description: Descriptive error message (English). type: string path: type: string description: Json pointer that represents the error field path. data: type: object description: Specific error data. required: - path - message additionalProperties: false required: - message - logref additionalProperties: false health: description: The application health status. type: object items: type: object properties: status: type: string description: Application status. EventsTimelineResp: type: object properties: parameters: type: object properties: start: description: Start date. type: string format: date-time end: description: End date. type: string format: date-time mode: description: Distribution mode. type: string enum: - DAILY - WEEKLY - MONTHLY data: type: array items: type: object properties: category: description: Events category group. type: string type: description: Widget type. type: string values: type: array items: type: object properties: datetime: description: Time label. type: string format: date value: type: string description: Count of events. BuyingBehaviorCustomer: type: object properties: parameters: type: object properties: start: description: Start date. type: string format: date-time end: description: End date. type: string format: date-time data: type: array items: type: object properties: name: description: Buying behavior name. type: string enum: - totalSpending - averagePurchase - averageProductPrice - favouriteContext - favouriteCategory type: description: Analytic data type. type: string enum: - currency - averageCurrency - favouriteOnPurchases currency: description: Workspace currency. type: string value: description: Value. type: string total: description: Total. type: string revenue: description: Revenue. type: string WorkspaceStats: type: object properties: id: description: The unique identifier of the workspace type: string name: description: Name of the workspace type: string status: description: Status of the workspace type: string customers: description: Total number of the customers type: integer NodeStats: type: object properties: id: description: The unique identifier of the node type: string name: description: Name of the node type: string type: description: Type of the node type: string enum: - ENTRY - AGGREGATE customers: description: Total number of the customers type: integer plan: description: True if node has a contactplan source enabled type: boolean send: description: If present node has a contactsend source enabled type: object properties: groupPk: description: The unique identifier of the customer group type: integer userDbId: description: The unique identifier of the userdb type: integer CustomersTotal: type: object properties: parameters: type: object properties: nodeId: description: Node identifier. type: string format: uuid data: type: object properties: category: description: Stats category identifier. type: string enum: - CustomersSnapshot - communicationChannels type: description: Analytic data type. type: string example: keyValue values: description: Values. type: array items: type: object properties: key: description: Value unique key. type: string example: total value: description: Value of analytic data. type: string example: 42 CustomersAcquisition: type: object properties: parameters: type: object properties: start: description: Start date. type: string format: date-time end: description: End date. type: string format: date-time mode: description: Aggregation mode. type: string enum: - DAILY - WEEKLY - MONTHLY nodeId: description: Node identifier. type: string format: uuid data: type: array items: type: object properties: category: description: Stats category identifier. type: string enum: - addedCustomers - acquisitionTrend type: description: Analytic data type. type: string example: timeseries values: description: Values. type: array items: type: object properties: datetime: description: Aggregation date. type: string format: date value: description: Count of customers. type: string example: 42 CustomersUpdates: type: object properties: parameters: type: object properties: start: description: Start date. type: string format: date-time end: description: End date. type: string format: date-time nodeId: description: Node identifier. type: string format: uuid type: description: Specifies the field of aggregation (registeredAt or updatedAt). type: string enum: - ADDED - UPDATED data: type: array items: type: object properties: category: description: Category identifier. type: string example: customers type: description: Analytic data type. type: string example: timeseries values: description: Values. type: array items: type: object properties: datetime: description: Aggregation date. type: string format: date value: description: Count of customers. type: string example: 42 EventsUpdates: type: object properties: parameters: type: object properties: start: description: Start date. type: string format: date-time end: description: End date. type: string format: date-time nodeId: description: Node identifier. type: string format: uuid type: description: Specifies the field of aggregation (registeredAt or updatedAt). type: string enum: - ADDED - UPDATED data: type: array items: type: object properties: category: description: Event type identifier. type: string example: completedOrder type: description: Analytic data type. type: string example: timeseries values: description: Values. type: array items: type: object properties: datetime: description: Aggregation date. type: string format: date value: description: Count of events. type: string example: 42 StatsEventsContext: type: object properties: parameters: type: object properties: start: description: Start date. type: string format: date-time end: description: End date. type: string format: date-time nodeId: description: Node identifier. type: string format: uuid context: description: Specifies the context. type: string enum: - WEB - MOBILE - ECOMMERCE - RETAIL - SOCIAL - DIGITAL_CAMPAIGN - CONTACT_CENTER - IOT - OTHER - ALL data: type: array items: type: object properties: category: description: Event type identifier. type: string example: completedOrder context: description: Event context. type: string enum: - WEB - MOBILE - ECOMMERCE - RETAIL - SOCIAL - DIGITAL_CAMPAIGN - CONTACT_CENTER - IOT - OTHER example: ECOMMERCE type: description: Analytic data type. type: string example: timeseries values: description: Values. type: array items: type: object properties: datetime: description: Aggregation date. type: string format: date value: description: Count of events. type: string example: 42 StatsEventsKpiPurchases: type: object properties: parameters: type: object properties: start: description: Start date. type: string format: date-time end: description: End date. type: string format: date-time nodeId: description: Node identifier. type: string format: uuid type: description: Specifies the type context. type: string enum: - ECOMMERCE - RETAIL - ALL data: type: array items: oneOf: - type: object properties: name: description: kpi name. type: string enum: - totalRevenue - avgOrderRevenue - avgProductPrice - avgCustomerRevenue type: description: Analytic data type. type: string enum: - currency - averageCurrency currency: description: Workspace currency. type: string value: description: Value. type: string total: description: Total. Returned only for averageCurrency type. type: string - type: object properties: name: description: Kpi name. type: string enum: - numberSales - numberCustomers - totalUnitsSold - avgSalesPerCustomer - avgUnitsOrdered category: description: Events category group. type: string enum: - eventsKPI type: description: Analytic data type. type: string enum: - keyValue values: description: Values. type: array items: type: object properties: key: description: Value unique key. type: string example: avgSalesPerCustomer value: description: Value of analytic data. type: string example: 42 StatsEventsKpiWeb: type: object properties: parameters: type: object properties: start: description: Start date. type: string format: date-time end: description: End date. type: string format: date-time nodeId: description: Node identifier. type: string format: uuid data: type: array items: type: object properties: name: description: Kpi name. type: string enum: - pageViews - visitors - pageVisitors category: description: Events category group. type: string enum: - eventsKPI type: description: Analytic data type. type: string enum: - keyValue values: description: Values. type: array items: type: object properties: key: description: Value unique key. type: string example: pageViews value: description: Value of analytic data. type: string example: 42 StatsEventsKpiEcommerce: type: object properties: parameters: type: object properties: start: description: Start date. type: string format: date-time end: description: End date. type: string format: date-time data: type: array items: oneOf: - type: object properties: name: description: kpi name. type: string enum: - totalSales - totalReturns - abandonedCartValue - avgSalesValue - avgReturnsValue - avgAbandonedCartValue type: description: Analytic data type. type: string enum: - currency - averageCurrency currency: description: Workspace currency. type: string value: description: Value. type: string total: description: Total. Returned only for averageCurrency type. type: string - type: object properties: name: description: Kpi name. type: string enum: - productPageViews - avgProductPageViews category: description: Events category group. type: string enum: - eventsKPI type: description: Analytic data type. type: string enum: - keyValue values: description: Values. type: array items: type: object properties: key: description: Value unique key. type: string example: productPageViews value: description: Value of analytic data. type: string example: 42 WorkspaceRequest: type: object additionalProperties: false required: - name - slug - groupPk - shard properties: name: type: string slug: type: string groupPk: type: integer shard: type: string WorkspaceResource: type: object additionalProperties: false properties: id: type: string name: type: string slug: type: string groupPk: type: integer shard: type: string status: $ref: '#/components/schemas/WorkspaceStatus' WorkspaceStatusConfiguration: type: object properties: status: $ref: '#/components/schemas/WorkspaceStatus' WorkspaceThrottlingConfiguration: type: object properties: maxRequestsPerMinute: type: integer nullable: false description: max requests per minute for workspace. minimum: 0 WorkspaceConfiguration: type: object properties: name: type: string description: Name of workspace. nullable: false industry: type: string nullable: false description: Industry of workspace. enum: - GDO - Luxury - Automotive - NotDefined default: NotDefined logo: type: string format: uri nullable: true description: Url of workspace logo. timezone: $ref: '#/components/schemas/Timezone' currency: allOf: - $ref: '#/components/schemas/Currency' - nullable: false customerUniquenessPolicy: type: string nullable: true enum: - MERGE description: '[Deprecated]: the only value accepted is MERGE' default: MERGE tier: type: integer minimum: 0 nullable: true description: The amount of purchased tier. default: null readOnly: true BasePropertyConfiguration: type: object additionalProperties: false properties: name: type: string description: The json path of the base property. description: type: string description: The description of base property. enabled: type: boolean description: Flag for enable/disable the base property. PropertyEnabledConfiguration: type: object additionalProperties: false properties: value: type: boolean description: True to enable the property, False to disable the property. EntryNodeConfiguration: allOf: - $ref: '#/components/schemas/PostEntryNodeConfiguration' - type: object properties: id: type: string format: uuid description: The identifier of entry node. readOnly: true required: - id EventOrigin: type: string description: Origin of the event. enum: - NATIVE - DUPLICATE readOnly: true EventType: type: string description: Type of the target event/s (immutable). enum: - abandonedCart - abandonedSession - addedCompare - addedProduct - addedReward - addedWishlist - campaignBlacklisted - campaignBounced - campaignLinkClicked - campaignMarkedSpam - campaignOpened - campaignOptinRequested - campaignSent - campaignSubscribed - campaignUnsubscribed - changedSetting - clickedLink - closedTicket - completedOrder - eventConfirmed - eventDeclined - eventEligible - eventInvited - eventNoShow - eventNotInvited - eventParticipated - eventRegistered - formCompiled - genericActiveEvent - genericPassiveEvent - grantedCoupon - loggedIn - loggedOut - openedTicket - orderShipped - removedCompare - removedProduct - removedReward - removedWishlist - repliedTicket - reviewedProduct - searched - serviceSubscribed - serviceUnsubscribed - surveyCompiled - viewedPage - viewedProduct - viewedProductCategory ProductAwareEventType: type: string description: Type of the target event/s (immutable). enum: - completedOrder - abandonedCart - addedCompare - addedProduct - addedWishlist - removedCompare - removedProduct - removedWishlist - viewedProduct - reviewedProduct EventContext: type: string description: Context of the target event/s (immutable for patch). enum: - WEB - MOBILE - ECOMMERCE - RETAIL - SOCIAL - DIGITAL_CAMPAIGN - CONTACT_CENTER - IOT - OTHER EventConfiguration: type: object properties: id: $ref: '#/components/schemas/EventType' type: $ref: '#/components/schemas/EventType' mode: type: string enum: - ACTIVE - PASSIVE default: ACTIVE description: >- the mode of event. ACTIVE if the customer made the event, PASSIVE if the customer receive the event readOnly: true label: type: string description: The label of event. readOnly: true description: type: string description: The description of event. readOnly: true propertiesSchema: type: object description: Json schema of event properties. readOnly: true enabled: type: boolean description: Flag for enable-disable event. default: true EventTypeMetadata: type: object properties: id: $ref: '#/components/schemas/EventType' mode: type: string enum: - ACTIVE - PASSIVE default: ACTIVE description: >- the mode of event. ACTIVE if the customer made the event, PASSIVE if the customer receive the event readOnly: true enabled: type: boolean description: Flag for enable-disable event. default: true ProductUpdatedPolicyConfiguration: type: object properties: eventTypes: type: array nullable: true description: set of event types items: $ref: '#/components/schemas/ProductAwareEventType' ExtendedPropString: type: object properties: format: type: string enum: - date - date-time - email - hostname - ipv4 - ipv6 - uri oneOf: - properties: type: type: string enum: - string - properties: type: type: array items: type: string enum: - string - 'null' maxItems: 2 uniqueItems: true required: - type ExtendedPropArray: type: object properties: items: oneOf: - $ref: '#/components/schemas/ExtendedPropOther' - $ref: '#/components/schemas/ExtendedPropString' oneOf: - properties: type: type: array enum: - array - properties: type: type: array items: type: string enum: - array - 'null' maxItems: 2 uniqueItems: true required: - type - items ExtendedPropObject: type: object properties: additionalProperties: type: boolean enum: - false properties: type: object additionalProperties: allOf: - $ref: '#/components/schemas/ExtendedPropBase' - oneOf: - $ref: '#/components/schemas/ExtendedPropOther' - $ref: '#/components/schemas/ExtendedPropString' - $ref: '#/components/schemas/ExtendedPropArray' minProperties: 1 oneOf: - properties: type: type: string enum: - object - properties: type: type: array items: type: string enum: - object - 'null' maxItems: 2 uniqueItems: true required: - type - properties ExtendedPropOther: type: object oneOf: - properties: type: type: string enum: - number - integer - boolean - properties: type: type: array items: type: string enum: - number - 'null' maxItems: 2 uniqueItems: true - properties: type: type: array items: type: string enum: - integer - 'null' maxItems: 2 uniqueItems: true - properties: type: type: array items: type: string enum: - boolean - 'null' maxItems: 2 uniqueItems: true required: - type ExtendedPropBase: type: object properties: contactlabProperties: type: object additionalProperties: false properties: maxLength: type: integer default: 255 label: type: string enabled: type: boolean indexed: type: boolean flowEnabled: type: boolean default: true ExtendedPropertyConfiguration: type: object nullable: true description: >- The json schema of extended property (including for every element the contactlabProperties object with property `label`, `enabled`, `indexed` and `flowEnabled`. For String and String arrays there is also the `maxLength`property). additionalProperties: allOf: - $ref: '#/components/schemas/ExtendedPropBase' - oneOf: - $ref: '#/components/schemas/ExtendedPropOther' - $ref: '#/components/schemas/ExtendedPropString' - $ref: '#/components/schemas/ExtendedPropArray' - $ref: '#/components/schemas/ExtendedPropObject' ExtendedPropertyMapping: type: object required: - plan - hub properties: plan: type: array description: Custom field available for the extended properties. items: type: object required: - name - type properties: name: type: string description: Name of the custom field. type: type: string description: Type of the custom field. enum: - STRING - FLOAT - DATE - INTEGER hub: type: object required: - event - product properties: event: type: array description: List of the event extended properties. items: $ref: '#/components/schemas/ExtendedPropertyMappingHub' product: type: array description: List of the product extended properties. items: $ref: '#/components/schemas/ExtendedPropertyMappingHub' ExtendedPropertyMappingHub: type: object required: - name - type properties: name: type: string description: Name of the extended property. type: description: Type of the extended property. oneOf: - type: string enum: - string - number - boolean - type: array items: type: string enum: - string - number - boolean - 'null' format: type: string contactlabProperties: type: object properties: label: type: string ExtendedPropertyString: type: object nullable: true properties: extendedProperty: type: string example: "value" ExtendedPropertyBoolean: type: object nullable: true properties: extendedProperty: type: boolean example: false ExtendedPropertyNumber: type: object nullable: true properties: extendedProperty: type: number example: false ExtendedPropertyInteger: type: object nullable: true properties: extendedProperty: type: number example: false ExtendedPropertyArray: type: object nullable: true properties: extendedProperty: type: array items: oneOf: - $ref: '#/components/schemas/ExtendedPropertyString' - $ref: '#/components/schemas/ExtendedPropertyBoolean' - $ref: '#/components/schemas/ExtendedPropertyNumber' - $ref: '#/components/schemas/ExtendedPropertyInteger' ExtendedPropertiesValues: type: object description: The key/value pair for the [extended](https://developer.contactlab.com/hub-json-schemas/) properties defined during workspace creation nullable: true anyOf: - $ref: '#/components/schemas/ExtendedPropertyString' - $ref: '#/components/schemas/ExtendedPropertyBoolean' - $ref: '#/components/schemas/ExtendedPropertyNumber' - $ref: '#/components/schemas/ExtendedPropertyInteger' - $ref: '#/components/schemas/ExtendedPropertyArray' example: property1: "value" property2: false property3: 10.9 property4: 5 property5: [ 10.0, 25.0 ] NodeResource: type: object properties: id: type: string format: uuid description: Unique identifier of the node. name: type: string description: The name of the node. example: Node 1 permission: type: string enum: - R - RW - W default: R description: Permission mode. example: RW type: type: string enum: - ENTRY - AGGREGATE description: Type of the node. example: ENTRY Page: type: object properties: size: description: The requested size of the page. type: integer minimum: 0 maximum: 50 totalElements: description: Total number of elements available. type: integer minimum: 0 totalPages: description: How many pages are available in total. type: integer minimum: 0 number: description: The number of the current page. type: integer minimum: 0 LimitPage: type: object properties: size: description: The requested size of the page. type: integer minimum: 0 maximum: 50 totalElements: description: The total number of elements available. type: integer minimum: 0 totalPages: description: How many pages are available in total. type: integer minimum: 0 number: description: The number of the current page. type: integer minimum: 0 maxElements: description: The maximum number of pageable elements. type: integer minimum: 0 maxPages: description: The maximum number of page. type: integer minimum: 0 PostEntryNodeConfiguration: type: object properties: name: type: string description: The name of entry node. description: type: string nullable: true description: The description of entry node. imageUrl: type: string format: uri nullable: true description: The url of logo. uniqueCustomer: $ref: '#/components/schemas/UniqueCustomer' sourcePriority: type: array items: type: string format: uuid description: Array of source `id` mandatoryProperties: type: array items: type: string description: Array of mandatory properties. required: - name PutEntryNodeConfiguration: type: object properties: id: type: string format: uuid description: The identifier of entry node. name: type: string description: The name of entry node. description: type: string nullable: true description: The description of entry node. imageUrl: type: string format: uri nullable: true description: The url of logo. uniqueCustomer: $ref: '#/components/schemas/UniqueCustomer' sourcePriority: type: array items: type: string format: uuid description: Array of source `id` mandatoryProperties: type: array items: type: string description: Array of mandatory properties. required: - id - name - uniqueCustomer NodeConfiguration: type: object properties: id: type: string format: uuid description: The identifier of the node. name: type: string description: The name of the node. description: type: string nullable: true description: The description of the node. imageUrl: type: string format: uri nullable: true description: The url of logo. retentionState: type: boolean description: The state of retention. nodeType: type: string description: The type of the node. enum: - ENTRY - AGGREGATE properties: oneOf: - $ref: '#/components/schemas/EntryNodePropertiesConfiguration' - $ref: '#/components/schemas/AggregateNodePropertiesConfiguration' EntryNodePropertiesConfiguration: type: object properties: uniqueCustomer: $ref: '#/components/schemas/UniqueCustomer' mandatoryProperties: type: array items: type: string description: Array of mandatory properties. AggregateNodePropertiesConfiguration: type: object properties: entryNodes: type: array items: type: string format: uuid minItems: 1 matchingProperties: type: object properties: properties: type: array items: type: string minItems: 1 caseSensitive: type: boolean exclusionFilters: type: array description: Exclusion filters can be applied on the aggregate node to exclude customers and associated events (max 10 filters). nullable: true items: type: object maxItems: 10 properties: property: type: string description: Property of the customer. Must be defined as string in the schema. value: type: string description: Value of the property. pattern: type: string description: Pattern of the value filter. enum: - START_WITH - ENDS_WITH - CONTAINS - EQUALS - NOT_CONTAINS - NOT_EQUALS - IS_NULL required: - property - pattern - value state: type: string enum: - NEW - ACTIVE - LOCKED - DELETING GenericSource: type: object properties: provider: type: string enum: - API - MAGENTO - ANDROID_SDK - OBJECTIVEC_SDK - NODEJS_SDK - JAVA_SDK - SCALA_SDK - DOTNET_SDK default: API description: The provider of the source. properties: type: object properties: allowedIPs: type: string ApiSource: type: object properties: provider: type: string enum: - API description: The provider of the source. properties: type: object properties: allowedIPs: type: string JsSource: type: object properties: provider: type: string enum: - JavaScript description: The provider of the source. properties: type: object properties: allowedURLs: type: string format: uri SendSource: type: object properties: provider: type: string enum: - CONTACTSEND description: The provider of the source. properties: type: object properties: userdbId: type: integer mappedColumns: type: array items: type: object properties: hub: type: string send: type: string options: type: object properties: syncCustomer: type: string enum: - IN_OUT - IN - OUT importEvent: type: boolean subscriptions: type: array items: type: object properties: sendWfc: type: string hub: type: string description: | The ID used to identify the Hub subscription. It must meet the following requirements: - it must contain at least one character - it may only contain the following special characters: underscore ('_'), hyphen ('-'), and space (' ') - it can't start or end with a space - it must start with a character or a digit send: type: string groupPk: type: integer PlanModel: type: string enum: - ABANDONED_CART - ATTENDANCE_EVENT - COUPON - ORDER - ORDER_LINE - PRODUCT_INTERACTION - SERVICE_SUBSCRIBED - SERVICE_UNSUBSCRIBED - WEB_BROWSING_EVENT PlanColumnMapping: type: array items: type: object properties: mapping: type: array items: type: object properties: hub: type: string plan: type: string model: $ref: '#/components/schemas/PlanModel' PlanSource: type: object properties: provider: type: string enum: - CONTACTPLAN description: The provider of the source. properties: type: object properties: exportProducts: type: boolean exportStores: type: boolean groupPk: type: integer userdbId: type: integer eventPropertiesColumnMapping: $ref: '#/components/schemas/PlanColumnMapping' productsPropertiesColumnMapping: $ref: '#/components/schemas/PlanColumnMapping' classifications: type: array items: type: string maxItems: 15 PostSourceConfiguration: allOf: - oneOf: - $ref: '#/components/schemas/ApiSource' - $ref: '#/components/schemas/SendSource' - $ref: '#/components/schemas/PlanSource' - type: object properties: name: type: string description: The name of source. description: type: string nullable: true description: The description of source. nodes: type: array items: type: string format: uuid description: List of unique identifier where source is enabled. minItems: 1 enabled: type: boolean description: Flag for enable-disable source. default: true required: - provider - name - nodes - properties PutSource: allOf: - oneOf: - $ref: '#/components/schemas/GenericSource' - $ref: '#/components/schemas/JsSource' - $ref: '#/components/schemas/SendSource' - $ref: '#/components/schemas/PlanSource' - type: object properties: name: type: string description: The name of source. description: type: string nullable: true description: The description of source. nodes: type: array items: type: string format: uuid description: List of unique identifier where source is enabled. minItems: 1 enabled: type: boolean description: Flag for enable-disable source. default: true required: - provider - name - nodes - properties PostAggregateNodeConfiguration: type: object properties: name: type: string description: The name of aggregate node. description: type: string nullable: true description: The description of aggregate node. imageUrl: type: string nullable: true description: The url of the logo. entryNodes: type: array items: type: string format: uuid minItems: 1 matchingProperties: type: object properties: properties: type: array items: type: string minItems: 1 caseSensitive: type: boolean exclusionFilters: type: array description: Exclusion filters can be applied on the aggregate node to exclude customers and associated events (max 10 filters). nullable: true items: type: object maxItems: 10 properties: property: type: string description: Property of the customer. Must be defined as string in the schema. value: type: string description: Value of the property. pattern: type: string description: Pattern of the value filter. enum: - START_WITH - ENDS_WITH - CONTAINS - EQUALS - NOT_CONTAINS - NOT_EQUALS - IS_NULL required: - property - pattern - value PutSourceConfiguration: allOf: - $ref: '#/components/schemas/PutSource' - type: object properties: id: type: string format: uuid description: Unique identifier of source. PutUser: type: object properties: nodes: type: array items: type: object properties: id: type: string format: uuid description: Unique identifier of the node. permission: type: string enum: - R - RW - W default: R description: Permission mode. required: - nodes SourceConfiguration: allOf: - $ref: '#/components/schemas/PutSourceConfiguration' - type: object properties: token: type: string description: The source token. readOnly: true GetSendSourceConfiguration: allOf: - $ref: '#/components/schemas/SendSource' - type: object properties: id: type: string format: uuid name: type: string description: type: string token: type: string nodes: type: array items: type: string format: uuid enabled: type: boolean UniqueCustomerMatchingPolicyConfiguration: type: object properties: properties: type: array items: type: string description: Rules of aggregations. minItems: 1 caseSensitive: type: boolean description: >- Flag that specifies if the matching policy check will be performed considering the field text case. AggregateNodeConfiguration: allOf: - $ref: '#/components/schemas/PostAggregateNodeConfiguration' - $ref: '#/components/schemas/AggregateNodeStateResource' - type: object properties: id: type: string format: uuid description: The identifier of aggregate node. readOnly: true required: - id AggregateNodeStateResource: type: object properties: state: type: string description: State of aggregate node. enum: - ACTIVE - NEW - LOCKED - REMOVED AggregateNodeSendSubscriptionConfiguration: type: object properties: subscriptionId: type: string description: The identifier of the source subscription. path: type: string description: The path of the source subscription. entryNodeName: type: string description: The name of the entry node. entryNodeId: type: string format: uuid description: The identifier of the entry node. type: type: string description: The type (BOOLEAN). Currency: type: string nullable: true description: Default currency of workspace. enum: - EUR - USD - JPY default: EUR Timezone: type: string nullable: true description: Default timezone of workspace. enum: - Europe/Rome - Europe/Paris - Europe/London default: Europe/Rome User: allOf: - $ref: '#/components/schemas/PutUser' - type: object properties: id: type: number description: Unique identifier of user. name: type: string description: The user name. registeredAt: type: string nullable: true format: date-time description: The creation timestamp. updatedAt: type: string nullable: true format: date-time description: The user update timestamp. required: - id - name - nodes example: id: 229 name: Claire registeredAt: null updatedAt: null nodes: - id: 'be4f0058-c51e-4909-acdc-373dfba102bd' permission: RW Education: type: object additionalProperties: false properties: id: type: string description: The ID used to identify the education establishment. schoolType: type: string nullable: true enum: - PRIMARY_SCHOOL - SECONDARY_SCHOOL - HIGH_SCHOOL - COLLEGE - OTHER description: The type of education establishment. schoolName: type: string nullable: true description: The name of the education establishment. schoolConcentration: type: string nullable: true description: The study concentration or core subjects. startYear: type: integer nullable: true description: The year study began. endYear: type: integer nullable: true description: The year study ended. isCurrent: type: boolean nullable: true description: The flag that defines whether the study is current. required: - id Job: type: object additionalProperties: false properties: id: type: string description: The ID used to identify the job. companyIndustry: type: string nullable: true description: The industry to which the company belongs. companyName: type: string nullable: true description: The name of the company. jobTitle: type: string nullable: true description: The job title. startDate: type: string nullable: true format: date description: The start date of the job. endDate: type: string nullable: true format: date description: The end date of the job. isCurrent: type: boolean nullable: true description: The flag that defines whether the job is current. required: - id Like: type: object additionalProperties: false properties: id: type: string description: The ID used to identify the like. category: type: string nullable: true description: The category of the like. name: type: string nullable: true description: The name of the like. createdTime: type: string nullable: true format: date-time description: The date the like was created. required: - id Consent: type: object additionalProperties: false description: Consent must contain a value for at least one of status, limitation, or objection fields. nullable: true properties: status: type: boolean nullable: true limitation: type: boolean nullable: true objection: type: boolean nullable: true minProperties: 1 Subscription: type: object additionalProperties: false properties: id: type: string description: | The ID used to identify the subscription. It must meet the following requirements: - it must contain at least one character - it may only contain the following special characters: underscore ('_'), hyphen ('-'), and space (' ') - it can't start or end with a space - it must start with a character or a digit name: type: string nullable: true description: The name of the subscription. type: type: string nullable: true description: The type of subscription. kind: type: string nullable: true enum: - DIGITAL_MESSAGE - SERVICE - OTHER description: The kind of subscription. subscribed: type: boolean description: The flag that defines a subscriber. startDate: type: string nullable: true format: date-time description: The start date of the subscription. endDate: type: string nullable: true format: date-time description: The end date of the subscription. subscriberId: type: string nullable: true description: The ID used to identify the subscriber. registeredAt: type: string nullable: true format: date-time description: The date and time the subscription is first registered in Contacthub. updatedAt: type: string nullable: true format: date-time description: >- The date time of the last modification to the subscription in Contacthub subscribeContext: type: object nullable: true additionalProperties: false description: The subscribe context information. properties: ip: type: string nullable: true description: The ip from which the subscription comes. userAgent: type: string nullable: true description: The user agent from which the subscription comes. unsubscribeContext: type: object nullable: true additionalProperties: false description: The unsubscribe context information. properties: ip: type: string nullable: true description: The ip from which the unsubscription comes. userAgent: type: string nullable: true description: The user agent from which the unsubscription comes. campaignId: type: string nullable: true description: The campaign id from which the unsubscription comes. campaignMessageId: type: string nullable: true description: The generic campaign message id (mailqId) from which the unsubscription comes. required: - id - subscribed #TODO 83548 add to entryNode endpoint payload and results UniqueCustomer: type: object properties: caseSensitive: description: >- Flag that specifies if the matching policy check will be performed considering the field text case. type: boolean properties: description: Fields that compose the unique customer matching policy. type: array items: type: string BaseCustomerProps: type: object nullable: true additionalProperties: false properties: pictureUrl: description: The URL of the customer picture. type: string nullable: true format: url title: description: The customer professional or academic qualifications. type: string nullable: true prefix: description: The prefix added to the name of the customer. type: string nullable: true firstName: description: The first name of the customer. type: string nullable: true lastName: description: The last name of the customer. type: string nullable: true middleName: description: The middle name of the customer. type: string nullable: true gender: description: The gender of the customer. type: string nullable: true dob: description: The date of birth of the customer. type: string nullable: true format: date locale: description: >- The parameter that defines the user language and the region of the customer. type: string nullable: true pattern: '^[a-z]{2}(_([a-zA-Z]{2}){1,2})?_[A-Z]{2}$' timezone: description: The time zone of the customer. type: string enum: - Africa/Abidjan - Africa/Accra - Africa/Algiers - Africa/Bissau - Africa/Cairo - Africa/Casablanca - Africa/Ceuta - Africa/El_Aaiun - Africa/Johannesburg - Africa/Khartoum - Africa/Lagos - Africa/Maputo - Africa/Monrovia - Africa/Nairobi - Africa/Ndjamena - Africa/Tripoli - Africa/Tunis - Africa/Windhoek - America/Adak - America/Anchorage - America/Araguaina - America/Argentina/Buenos_Aires - America/Argentina/Catamarca - America/Argentina/Cordoba - America/Argentina/Jujuy - America/Argentina/La_Rioja - America/Argentina/Mendoza - America/Argentina/Rio_Gallegos - America/Argentina/Salta - America/Argentina/San_Juan - America/Argentina/San_Luis - America/Argentina/Tucuman - America/Argentina/Ushuaia - America/Asuncion - America/Atikokan - America/Bahia - America/Bahia_Banderas - America/Barbados - America/Belem - America/Belize - America/Blanc-Sablon - America/Boa_Vista - America/Bogota - America/Boise - America/Cambridge_Bay - America/Campo_Grande - America/Cancun - America/Caracas - America/Cayenne - America/Chicago - America/Chihuahua - America/Costa_Rica - America/Creston - America/Cuiaba - America/Curacao - America/Danmarkshavn - America/Dawson - America/Dawson_Creek - America/Denver - America/Detroit - America/Edmonton - America/Eirunepe - America/El_Salvador - America/Fortaleza - America/Fort_Nelson - America/Glace_Bay - America/Godthab - America/Goose_Bay - America/Grand_Turk - America/Guatemala - America/Guayaquil - America/Guyana - America/Halifax - America/Havana - America/Hermosillo - America/Indiana/Indianapolis - America/Indiana/Knox - America/Indiana/Marengo - America/Indiana/Petersburg - America/Indiana/Tell_City - America/Indiana/Vevay - America/Indiana/Vincennes - America/Indiana/Winamac - America/Inuvik - America/Iqaluit - America/Jamaica - America/Juneau - America/Kentucky/Louisville - America/Kentucky/Monticello - America/La_Paz - America/Lima - America/Los_Angeles - America/Maceio - America/Managua - America/Manaus - America/Martinique - America/Matamoros - America/Mazatlan - America/Menominee - America/Merida - America/Metlakatla - America/Mexico_City - America/Miquelon - America/Moncton - America/Monterrey - America/Montevideo - America/Nassau - America/New_York - America/Nipigon - America/Nome - America/Noronha - America/North_Dakota/Beulah - America/North_Dakota/Center - America/North_Dakota/New_Salem - America/Ojinaga - America/Panama - America/Pangnirtung - America/Paramaribo - America/Phoenix - America/Port-au-Prince - America/Port_of_Spain - America/Porto_Velho - America/Puerto_Rico - America/Rainy_River - America/Rankin_Inlet - America/Recife - America/Regina - America/Resolute - America/Rio_Branco - America/Santarem - America/Santiago - America/Santo_Domingo - America/Sao_Paulo - America/Scoresbysund - America/Sitka - America/St_Johns - America/Swift_Current - America/Tegucigalpa - America/Thule - America/Thunder_Bay - America/Tijuana - America/Toronto - America/Vancouver - America/Whitehorse - America/Winnipeg - America/Yakutat - America/Yellowknife - Antarctica/Casey - Antarctica/Davis - Antarctica/DumontDUrville - Antarctica/Macquarie - Antarctica/Mawson - Antarctica/Palmer - Antarctica/Rothera - Antarctica/Syowa - Antarctica/Troll - Antarctica/Vostok - Asia/Almaty - Asia/Amman - Asia/Anadyr - Asia/Aqtau - Asia/Aqtobe - Asia/Ashgabat - Asia/Baghdad - Asia/Baku - Asia/Bangkok - Asia/Barnaul - Asia/Beirut - Asia/Bishkek - Asia/Brunei - Asia/Chita - Asia/Choibalsan - Asia/Colombo - Asia/Damascus - Asia/Dhaka - Asia/Dili - Asia/Dubai - Asia/Dushanbe - Asia/Famagusta - Asia/Gaza - Asia/Hebron - Asia/Ho_Chi_Minh - Asia/Hong_Kong - Asia/Hovd - Asia/Irkutsk - Asia/Jakarta - Asia/Jayapura - Asia/Jerusalem - Asia/Kabul - Asia/Kamchatka - Asia/Karachi - Asia/Kathmandu - Asia/Khandyga - Asia/Kolkata - Asia/Krasnoyarsk - Asia/Kuala_Lumpur - Asia/Kuching - Asia/Macau - Asia/Magadan - Asia/Makassar - Asia/Manila - Asia/Nicosia - Asia/Novokuznetsk - Asia/Novosibirsk - Asia/Omsk - Asia/Oral - Asia/Pontianak - Asia/Pyongyang - Asia/Qatar - Asia/Qyzylorda - Asia/Riyadh - Asia/Sakhalin - Asia/Samarkand - Asia/Seoul - Asia/Shanghai - Asia/Singapore - Asia/Srednekolymsk - Asia/Taipei - Asia/Tashkent - Asia/Tbilisi - Asia/Tehran - Asia/Thimphu - Asia/Tokyo - Asia/Tomsk - Asia/Ulaanbaatar - Asia/Urumqi - Asia/Ust-Nera - Asia/Vladivostok - Asia/Yakutsk - Asia/Yangon - Asia/Yekaterinburg - Asia/Yerevan - Atlantic/Azores - Atlantic/Bermuda - Atlantic/Canary - Atlantic/Cape_Verde - Atlantic/Faroe - Atlantic/Madeira - Atlantic/Reykjavik - Atlantic/South_Georgia - Atlantic/Stanley - Australia/Adelaide - Australia/Brisbane - Australia/Broken_Hill - Australia/Currie - Australia/Darwin - Australia/Eucla - Australia/Hobart - Australia/Lindeman - Australia/Lord_Howe - Australia/Melbourne - Australia/Perth - Australia/Sydney - Europe/Amsterdam - Europe/Andorra - Europe/Astrakhan - Europe/Athens - Europe/Belgrade - Europe/Berlin - Europe/Brussels - Europe/Bucharest - Europe/Budapest - Europe/Chisinau - Europe/Copenhagen - Europe/Dublin - Europe/Gibraltar - Europe/Helsinki - Europe/Istanbul - Europe/Kaliningrad - Europe/Kiev - Europe/Kirov - Europe/Lisbon - Europe/London - Europe/Luxembourg - Europe/Madrid - Europe/Malta - Europe/Minsk - Europe/Monaco - Europe/Moscow - Europe/Oslo - Europe/Paris - Europe/Prague - Europe/Riga - Europe/Rome - Europe/Samara - Europe/Simferopol - Europe/Sofia - Europe/Stockholm - Europe/Tallinn - Europe/Tirane - Europe/Ulyanovsk - Europe/Uzhgorod - Europe/Vienna - Europe/Vilnius - Europe/Volgograd - Europe/Warsaw - Europe/Zaporozhye - Europe/Zurich - Indian/Chagos - Indian/Christmas - Indian/Cocos - Indian/Kerguelen - Indian/Mahe - Indian/Maldives - Indian/Mauritius - Indian/Reunion - Pacific/Apia - Pacific/Auckland - Pacific/Bougainville - Pacific/Chatham - Pacific/Chuuk - Pacific/Easter - Pacific/Efate - Pacific/Enderbury - Pacific/Fakaofo - Pacific/Fiji - Pacific/Funafuti - Pacific/Galapagos - Pacific/Gambier - Pacific/Guadalcanal - Pacific/Guam - Pacific/Honolulu - Pacific/Kiritimati - Pacific/Kosrae - Pacific/Kwajalein - Pacific/Majuro - Pacific/Marquesas - Pacific/Nauru - Pacific/Niue - Pacific/Norfolk - Pacific/Noumea - Pacific/Pago_Pago - Pacific/Palau - Pacific/Pitcairn - Pacific/Pohnpei - Pacific/Port_Moresby - Pacific/Rarotonga - Pacific/Tahiti - Pacific/Tarawa - Pacific/Tongatapu - Pacific/Wake - Pacific/Wallis nullable: true contacts: description: The contact information for the customer. type: object nullable: true additionalProperties: false properties: email: description: The e-mail address of the customer. type: string nullable: true format: email fax: description: The fax number of the customer. type: string nullable: true mobilePhone: description: The mobile phone number of the customer. type: string nullable: true phone: description: The phone number of the customer. type: string nullable: true otherContacts: deprecated: true description: The list of additional contact details for the customer. type: array items: type: object additionalProperties: false properties: name: type: string description: The name of an additional contact entry for the customer. type: type: string nullable: true enum: - MOBILE - PHONE - EMAIL - FAX - OTHER description: The type of additional contact entry for the customer. value: type: string nullable: true description: The value of the additional contact entry for the customer. mobileDevices: deprecated: true description: The list of mobile devices belonging to the customer. type: array items: type: object additionalProperties: false properties: identifier: type: string nullable: true appId: type: string nullable: true name: type: string nullable: true type: type: string nullable: true enum: - IOS - ANDROID - WINDOWS_PHONE - FIREOS notificationService: type: string nullable: true enum: - APN - GCM - WNS - ADM - SNS description: >- APN -> Apple Push Notification Service; GCM -> Google Cloud Messaging; WNS -> Windows Push Notification Services; ADM -> Amazon Device Messaging; SNS -> Amazon Simple Notification Service address: description: The address details of the customer. type: object nullable: true additionalProperties: false properties: street: description: The customer address street component. type: string nullable: true city: description: The customer address city component. type: string nullable: true country: description: The customer address country component. type: string nullable: true province: description: The customer address province component. type: string nullable: true region: description: The customer address region component. type: string nullable: true zip: description: The customer address zip code component. type: string nullable: true geo: description: The geographic location of the customer. type: object nullable: true additionalProperties: false properties: lat: type: number description: The latitude coordinate for the customer. lon: type: number description: The longitude coordinate for the customer. required: - lat - lon credential: description: The customer login credentials. type: object nullable: true additionalProperties: false properties: password: description: The password of the customer. type: string nullable: true username: description: The username of the customer. type: string nullable: true educations: deprecated: true description: The education history of the customer. type: array items: $ref: '#/components/schemas/Education' likes: deprecated: true description: The likes list of the customer. type: array items: $ref: '#/components/schemas/Like' socialProfile: description: The social profiles of the customer. type: object nullable: true additionalProperties: false properties: facebook: description: The Facebook profile of the customer. type: string nullable: true google: description: The Google+ profile of the customer. type: string nullable: true instagram: description: The Instagram profile of the customer. type: string nullable: true linkedin: description: The Linkedin profile of the customer. type: string nullable: true qzone: description: The Qzone profile of the customer. type: string nullable: true twitter: description: The Twitter profile of the customer. type: string nullable: true jobs: deprecated: true description: The job history of the customer. type: array items: $ref: '#/components/schemas/Job' subscriptions: description: The subscriptions section for the customer. type: array items: $ref: '#/components/schemas/Subscription' ConsentCustomerProps: type: object nullable: true properties: disclaimer: type: object nullable: true additionalProperties: false properties: date: type: string nullable: true format: date-time version: type: string nullable: true marketing: type: object nullable: true additionalProperties: false properties: traditional: type: object nullable: true additionalProperties: false properties: telephonic: $ref: '#/components/schemas/Consent' papery: $ref: '#/components/schemas/Consent' automatic: type: object nullable: true additionalProperties: false properties: sms: $ref: '#/components/schemas/Consent' email: $ref: '#/components/schemas/Consent' push: $ref: '#/components/schemas/Consent' im: $ref: '#/components/schemas/Consent' telephonic: $ref: '#/components/schemas/Consent' profiling: type: object nullable: true additionalProperties: false properties: classic: $ref: '#/components/schemas/Consent' online: $ref: '#/components/schemas/Consent' softSpam: type: object nullable: true additionalProperties: false properties: email: $ref: '#/components/schemas/Consent' papery: $ref: '#/components/schemas/Consent' thirdPartyTransfer: type: object nullable: true additionalProperties: false properties: profiling: $ref: '#/components/schemas/Consent' marketing: $ref: '#/components/schemas/Consent' PagedCustomer: type: object properties: elements: description: The list of customer. type: array items: $ref: '#/components/schemas/Customer' page: $ref: '#/components/schemas/LimitPage' PatchCustomer: type: object additionalProperties: false properties: externalId: type: string nullable: true description: The external id of customer. base: $ref: '#/components/schemas/BaseCustomerProps' consents: $ref: '#/components/schemas/ConsentCustomerProps' extended: $ref: '#/components/schemas/ExtendedPropertiesValues' extra: type: string nullable: true description: Custom data defined by workspace not based on a declarated schema. tags: description: The default tags property of customers. type: object nullable: true properties: auto: type: array items: type: string manual: type: array items: type: string enabled: type: boolean description: Flag for enable-disable customer. PostCustomer: type: object additionalProperties: false properties: externalId: type: string nullable: true description: The external id of customer. nodeId: type: string format: uuid description: Entry node `id` (immutable). base: $ref: '#/components/schemas/BaseCustomerProps' consents: $ref: '#/components/schemas/ConsentCustomerProps' extended: $ref: '#/components/schemas/ExtendedPropertiesValues' extra: type: string nullable: true description: Custom data defined by workspace not based on a declarated schema. tags: description: The default tags property of customers. type: object nullable: true properties: auto: type: array items: type: string manual: type: array items: type: string enabled: type: boolean description: Flag for enable-disable customer. required: - nodeId Customer: allOf: - type: object additionalProperties: false properties: id: type: string format: uuid description: The customer id (immutable). intId: type: integer description: The internal customer id (immutable and system generated). - $ref: '#/components/schemas/PostCustomer' - type: object additionalProperties: false properties: registeredAt: type: string format: date-time description: The registration timestamp (immutable and system generated). updatedAt: type: string format: date-time description: The customer update timestamp (ignored and system generated). version: type: integer nullable: true description: Version of the customer (ignored and system generated). deleted: type: integer enum: - -1 - 0 - 1 description: | deleted state of the customer (immutable and system generated) - -1 forgotten customer (after a deletion for data protection) - 0 not deleted customer - 1 deleted customer - type: object additionalProperties: false properties: sourceInfo: type: object description: Information about sources that operated on customer. properties: registeredBy: description: Identifier of the source that created the customer (immutable and system generated). type: string updatedBy: description: Identifier of the last source that updated the customer (ignored and system generated). type: string Session: type: object properties: id: type: string description: Unique identifier of session. value: type: string description: The session id of customer. the value is unique for a single node. BringBackProperty: type: object nullable: true properties: type: type: string enum: - SESSION_ID - EXTERNAL_ID default: SESSION_ID description: Type of bring back (immutable). value: type: string description: Value of bring back (immutable). nodeId: type: string format: uuid description: Id of entry node (immutable). required: - type - value - nodeId Event: type: object properties: id: type: string format: uuid description: Unique identifier of event. customerId: type: string format: uuid description: Customer id. bringBackProperties: $ref: '#/components/schemas/BringBackProperty' type: $ref: '#/components/schemas/EventType' properties: type: object description: >- The json schema related to event type. [Read here]. context: $ref: '#/components/schemas/EventContext' contextInfo: type: object description: >- The json schema related to event context. [Read here]. date: type: string format: date-time description: The timestamp of event. origin: $ref: '#/components/schemas/EventOrigin' prev: type: string description: visible only if 'nav' parameter is specified in a single event request, it shows the id of the previous event. next: type: string description: visible only if 'nav' parameter is specified in a single event request, it shows the id of the next event. tracking: $ref: '#/components/schemas/Tracking' registeredAt: type: string format: date-time description: The time at which the event was created. updatedAt: type: string format: date-time description: The time at which the event was last updated. version: type: integer description: Version of the event. required: - id - customerId - type - properties - context - date - origin - registeredAt - updatedAt - version PostEvent: type: object properties: customerId: type: string format: uuid description: Customer id. bringBackProperties: $ref: '#/components/schemas/BringBackProperty' type: $ref: '#/components/schemas/EventType' properties: type: object description: >- The json schema related to event type. [Read here].. context: $ref: '#/components/schemas/EventContext' contextInfo: type: object description: >- The json schema related to event context. [Read here].. date: type: string format: date-time description: The timestamp of event (generated with current time if absent). tracking: $ref: '#/components/schemas/Tracking' required: - type - properties - context oneOf: - required: - customerId - required: - bringBackProperties PutEvent: type: object properties: id: type: string format: uuid description: Unique identifier of event (immutable). customerId: type: string format: uuid description: Customer id (immutable). bringBackProperties: $ref: '#/components/schemas/BringBackProperty' type: $ref: '#/components/schemas/EventType' properties: type: object description: >- The json schema related to event type. [Read here]. context: $ref: '#/components/schemas/EventContext' contextInfo: type: object description: >- The json schema related to event context. [Read here]. date: type: string format: date-time description: The timestamp of event. origin: type: string description: Origin of the event (immutable and system generated). enum: - NATIVE - DUPLICATE nullable: true tracking: $ref: '#/components/schemas/Tracking' registeredAt: type: string format: date-time description: The time at which the event was created (immutable and system generated). updatedAt: type: string format: date-time description: The time at which the event was last updated (ignored and system generated). nullable: true version: type: integer description: Version of the event (ignored and system generated). required: - type - properties - context PatchEvent: type: object properties: id: type: string format: uuid description: Unique identifier of event (immutable). customerId: type: string format: uuid description: Customer id (immutable). bringBackProperties: $ref: '#/components/schemas/BringBackProperty' type: $ref: '#/components/schemas/EventType' properties: type: object description: >- The json schema related to event type. [Read here]. nullable: true context: $ref: '#/components/schemas/EventContext' contextInfo: type: object description: >- The json schema related to event context. [Read here]. nullable: true date: type: string format: date-time description: The timestamp of event. origin: type: string description: Origin of the event (immutable and system generated). enum: - NATIVE - DUPLICATE nullable: true tracking: $ref: '#/components/schemas/Tracking' registeredAt: type: string format: date-time description: The time at which the event was created (immutable and system generated). updatedAt: type: string format: date-time description: The time at which the event was last updated (ignored and system generated). nullable: true version: type: integer description: Version of the event (ignored and system generated). PostResponseEvent: type: object properties: id: type: string format: uuid description: Unique identifier of event. Tracking: type: object nullable: true properties: ga: type: object description: Tracking with Google Analytics parameters. properties: utm_source: type: string description: >- Parameter to identify the source of your traffic such as search engine, newsletter, or another referral. utm_medium: type: string description: >- Parameter to identify the medium the link was used upon such as email, CPC, or other method of sharing. utm_term: type: string description: >- Parameter suggested for paid search to identify keywords for your ad. utm_content: type: string description: >- Parameter for additional details for A/B testing and content-targeted ads. utm_campaign: type: string description: >- Parameter to identify a specific product promotion or strategic campaign such as a spring sale or other. BasePropertyModel: type: object properties: schema: type: object description: >- The json schema of base property (including for every element the contactlabProperties object with property `label`, `enabled`. ContactsendSubscription: type: object properties: id: type: integer description: The identifier of subscription in Contactsend. name: type: string description: The name of subscription in Contactsend. registrationField: type: string description: The field used to register the subscription in Contactsend. Context: type: object properties: id: $ref: '#/components/schemas/EventContext' label: type: string description: The label of context. description: type: string description: Description of context. propertiesSchema: type: string description: Json schema of properties for the context. AnalyticsEventCategory: type: object properties: name: type: string description: The name of category. context: allOf: - $ref: '#/components/schemas/EventContext' - nullable: true types: type: array description: The list of event types. items: $ref: '#/components/schemas/EventType' MergePolicy: type: object properties: id: type: string description: Id of merge policy that you must use in `mergePolicy` property. description: type: string description: Description of merge policy behavior. supportedTypes: type: array items: type: string description: Supported json schema types. Provider: type: object properties: id: type: string description: >- Id of the provider that you must use in `type` property when define a source. label: type: string logo: type: string categories: type: array items: type: string description: type: string description: Description of provider. documents: type: string propertiesSchema: type: object description: Json schema of properties necessary when define a source. role: type: string enum: - TRUSTED_APPLICATION - UNTRUSTED_APPLICATION SubscriberSourceField: type: object properties: name: type: string description: The name of field defined in the Contactsend userdb. type: type: string description: The type of field defined in the Contactsend userdb. LastOffsetResponse: description: The last offset of the requested stream of updates. type: object additionalProperties: false properties: lastOffset: type: integer Update: description: The update of a customer or event. type: object additionalProperties: false properties: operation: description: The type of the operation performed on this entity. type: string enum: - CREATE - UPDATE - DELETE - FORCED_DELETE entity: description: The entity on which the operation has been performed. type: object additionalProperties: false properties: type: description: The type of the entity. type: string enum: - CUSTOMER - EVENT data: description: The entity involved in the operation. type: object UpdatesResponse: description: The result of a call to the updates api. type: object additionalProperties: false properties: nextOffset: type: integer updates: description: A list of updates. type: array items: $ref: '#/components/schemas/Update' SendSourcesResource: type: object additionalProperties: false properties: portfolio: type: integer id: type: string name: type: string industry: $ref: '#/components/schemas/IndustryType' workspaceStatus: $ref: '#/components/schemas/WorkspaceStatus' nodeId: type: string nodeName: type: string nodeType: type: string enum: - ENTRY - AGGREGATE contactSendSource: $ref: '#/components/schemas/GetSendSourceConfiguration' IndustryType: type: string enum: - ECOMMERCE - FASHION - MOBILITY - CONSUMER_GOOD - FINANCE - MEDIA_COMM_SPORT - NO_PROFIT - TRAVEL - THIRD_PTY - OTHER - PUBLIC_SECTOR WorkspaceStatus: type: string description: Status of the workspace. enum: - ENABLED - SUSPENDED - DISABLED example: ENABLED GroupInfo: type: object properties: id: type: integer minimum: 0 description: Unique identifier of group. example: 12 name: type: string description: Name of group. example: Company A workspaces: type: array items: $ref: '#/components/schemas/WorkspaceInfo' example: id: 44 name: 'Toys & Toys' workspaces: - id: b2a02e56-a6da-4b02-b80e-d32fdf441aaf name: 'Collezione 1-3 anni' status: ENABLED nodes: - id: 'be4f0058-c51e-4909-acdc-373dfba102bd' name: 'Node 1' type: ENTRY permission: R UserInfo: type: object properties: id: type: integer minimum: 0 description: Unique identifier of user. example: 229 name: type: string description: Name of user. example: My name surname: type: string description: Surname of user. example: My surname groups: type: array items: $ref: '#/components/schemas/GroupInfo' lang: type: string description: Language of user. example: en enum: - en - it - fr - de - es email: type: string description: Email of user. example: user@example.com roles: type: array description: Roles of user. items: type: string enum: - USER - GUEST - ADMIN - CLAB_OPERATOR - DPO - PLATFORM_UPDATES - CONFIGURATOR example: - CLAB_OPERATOR - DPO mc: type: boolean description: Flag indicating if the user has access to the Marketing Cloud. example: true WorkspaceInfo: type: object properties: id: type: string format: uuid description: Unique identifier of workspace. name: type: string description: Name of workspace. example: Toys & Toys status: type: string description: status of the workspace enum: - ENABLED - DISABLED example: ENABLED $ref: '#/components/schemas/WorkspaceStatus' nodes: type: array items: $ref: '#/components/schemas/NodeResource' ConsentEventType: description: The type of operation on consents. type: string nullable: false enum: - DISCLAIMER_READ - CONSENT_CHANGED - CONSENT_RESTRICTED - CONSENT_OBJECTED - DATA_PORTABILITY_REQUESTED - FORCED_DELETE ConsentLog: type: object properties: id: description: Unique identifier of consent log. type: integer minimum: 0 nullable: false customerId: description: Unique identifier of customer. type: string format: uuid nullable: false date: description: The modification date of this consent. type: string format: date-time nullable: false type: $ref: '#/components/schemas/ConsentEventType' property: description: The consent property modified in this operation. type: string nullable: true value: description: The value set on the modified property. type: string nullable: true sourceId: description: The source that modified the consent. type: string format: uuid nullable: false userId: description: The user that modified the consent. type: integer minimum: 0 nullable: true CustomerDataProtection: type: object additionalProperties: false description: '' properties: customer: $ref: '#/components/schemas/Customer' events: type: array description: All customer's events. items: $ref: '#/components/schemas/Event' EventRetentionPolicy: type: object additionalProperties: false properties: months: description: Retention time in months. type: integer minimum: 0 EventRetentionPolicyState: type: object additionalProperties: false properties: enabled: description: Events retention policy state. type: boolean RetentionStatusByNode: type: object description: A map by node id of the retention status for every node of the workspace. additionalProperties: $ref: '#/components/schemas/RetentionStatusByEvent' RetentionStatusByEvent: type: object description: >- A map by event id of the retention status for every event of the workspace additionalProperties: $ref: '#/components/schemas/RetentionStatus' RetentionStatus: type: object description: The retention configuration. additionalProperties: false properties: months: description: Retention time in months. type: integer minimum: 0 total: description: The total number of events in the node. type: integer minimum: 0 valid: description: The total number of valid events in the node. type: integer minimum: 0 expired: description: The total number of expired events in the node. type: integer minimum: 0 oldestDate: description: The date of the oldest event in the node. type: string nullable: true format: date-time RetentionPolicyAndStateByEvent: type: object description: State and policy retention. additionalProperties: false properties: enabled: description: Events retention policy state. type: boolean events: $ref: '#/components/schemas/RetentionPolicyByEvent' RetentionPolicyByEvent: type: object description: | a map by event id of the retention status for every event of the workspace #### EXAMPLE ```json { "campaignSent": { "months": 6 }, "addedReward": { "months": 12 } } ``` additionalProperties: $ref: '#/components/schemas/EventRetentionPolicy' EventConsentPolicy: type: object description: | events consent policy #### EXAMPLE ```json { "viewedPage": [ "profiling.classic.status", "profiling.online.status" ], "viewedProduct": [ "profiling.classic.status" ] } ``` additionalProperties: type: array additionalProperties: false description: Type of event which the consent policy is added to. items: type: string description: Simple json path of customer consent. EventsPayloadSize: type: object description: | events payload size #### EXAMPLE ```json { "viewedPage": { "maxBytes": 65535 }, "viewedProduct": { "maxBytes": 131072 } } ``` additionalProperties: type: object additionalProperties: false properties: maxBytes: description: Max payload size in bytes. type: integer minimum: 65535 maximum: 380928 CustomerOperationMode: description: Customer operation mode; if STRICT `JSON Merge Patch` rules are apply also to subscriptions. type: string nullable: true enum: - STRICT BulkJobResource: type: object properties: id: type: string format: uuid description: bulk job id. filename: type: string description: The filename. operation: $ref: '#/components/schemas/BulkJobOperation' workspaceId: type: string description: The unique identifier of the workspace. nodeId: type: string description: The unique identifier of the node. entity: $ref: '#/components/schemas/BulkJobEntity' eventType: $ref: '#/components/schemas/EventType' bulkJobName: type: string description: bulk job name. status: $ref: '#/components/schemas/BulkJobStatus' errorMessage: type: string description: the error that caused the failure nullable: true createdAt: type: string format: date-time updatedAt: type: string format: date-time processedEntities: type: integer description: count of processed entities failedEntities: type: integer description: count of failed entities totalEntities: type: integer description: total count of entities (either processed or failed) BulkJobStatus: type: string description: The bulk job status. enum: - LOADED - SCHEDULED - PROCESSING - STOPPED - PROCESSED - FAILED example: LOADED BulkJobOperation: type: string description: The bulk job operation mode. enum: - UPSERT - INSERT - DELETE example: UPSERT BulkJobEntity: type: string description: The entity type of the bulk job. enum: - CUSTOMER - EVENT example: CUSTOMER securitySchemes: OAuth2: type: oauth2 description: > The following table provides a brief description of the built-in OAuth2 scopes of this API. In this context, scopes are generally intended as application roles. flows: implicit: authorizationUrl: 'https://login.contactlab.it/o/oauth2/auth' scopes: CLAB_OPERATOR: Clab Operator ADMIN: Admin USER: User DPO: Data Protection Officer TRUSTED_APPLICATION: Trusted application UNTRUSTED_APPLICATION: Untrusted application PLATFORM_UPDATES: Platform updates GUEST: Guest CONFIGURATOR: Configurator