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