We're using the connectors to connect the CDP to the external world. Either receiving or pushing external data into the CDP, or sending various types of data from CDP to another platform. Here we want to share our knowledge on how to do that or maybe get the external point of view on how to improve that or add the missing feature
Our connector definition is based on OpenAPI specification. You can use swagger tools for implementing the specification
None
-
Terms
- Event - pushing data to CDP
- Webhook
- Schedual event
- Action - Sending data from CDP
- Journey (real time)
- Audience (batch - offline)
- Mapping - relations between request or response schema to CDP entities (Profile, Action etc...)
- Event - pushing data to CDP
-
Action Example In the root element, add predefineAction element to define all the actions
"preDefinedActions":[ { "resourcePath":"/import/post", "name":"Create and update subscribers in batch", "configValues":{ "subscribe": true } }, { "resourcePath":"/unsubscribe/post", "name":"Update unsubscribes", "configValues":{ "subscribe": false } } ]
Then refer to the action definition when you describe the action
"/import":{ "post":{ "tags":[ "Actions" ], "summary":"Import subscribers", "description":"Import subscribers", "operationId":"ImportSubscribers", "x-cdp-operation-settings":{ "rateLimitConfig": { "type": "RPS", "rateLimitParameters": { "ratePerSecond": 100, "errorCodes": [ 606, 607 ], "delayAfterRateLimitInSecond": 300 } } }, "requestBody":{ "required":true, "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ImportSubscriberRequest" } } } }, "responses":{ "200":{ "description":"Result status", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ImportSubscribersResponse" } } } } } } }
-
Events Example
-
Webhook
In the root element, add preDefinedEventListeners element to define all the webhooks
"preDefinedEventListeners": [ { "webhookPath": "intercomEvent/post", "recordsLocator": "$", "name": "Get contacts and leads in real-time" } ]
Then refer to this definition when you describe the webhook
"webhooks": { "intercomEvent": { "post": { "summary": "", "responses": { "200": { "description": "Return a 200 status to indicate that the webhook was received successfully" } }, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "item": { "type": "object", "properties": { "email": { "type": "string" }, "name": { "type": "string" }, "id": { "type": "string" }, "phone": { "type": "string" }, "created_at": { "type": "string", "format": "date-time" } } } } }, "topic": { "type": "string" }, "id": { "type": "string" }, "created_at": { "type": "integer" } } } } } } } } }
-
Event Example
In the root element, add preDefinedEvents element to define all the webhooks
"preDefinedEvents":[ { "resourcePath":"/subscribers/get", "name":"Get subscribers" } ]
And then refer to this definition when you describe the event
"/subscribers": { "get": { "tags": [ "Events" ], "summary": "Load of subscribers", "description": "Load of subscribers", "operationId": "LoadSubscribers", "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "x-cdp-schema-settings": { "recordsLocatorPath": "Results" }, "properties": { "Results": { "type": "array", "items": { "$ref": "#/components/schemas/Subscriber" } } } } } } } } } }
-
None
None
Via SAP standard support. https://developers.gigya.com/display/GD/Opening+A+Support+Incident
Via pull request to this repository.
None
Please see our LICENSE for copyright and license information. Detailed information including third-party components and their licensing/copyright information is available via the REUSE tool