Een gegevensstroom maken voor Zendesk met de Flow Service API
Het volgende leerprogramma begeleidt u door de stappen om een bronverbinding en een dataflow tot stand te brengen om Zendesk gegevens aan Platform te brengen gebruikend [Flow Service API ] (https://www.adobe.io/experience-platform-apis/references/flow-service/).
Aan de slag
Deze handleiding vereist een goed begrip van de volgende onderdelen van het Experience Platform:
- Bronnen: Experience Platform staat gegevens toe om van diverse bronnen worden opgenomen terwijl het voorzien van u van de capaciteit om, inkomende gegevens te structureren te etiketteren en te verbeteren gebruikend Platform diensten.
- Sandboxes: Experience Platform verstrekt virtuele zandbakken die één enkele instantie van het Platform in afzonderlijke virtuele milieu's verdelen helpen digitale ervaringstoepassingen ontwikkelen en ontwikkelen.
In de volgende secties vindt u aanvullende informatie die u moet weten voordat u verbinding kunt maken met Zendesk via de Flow Service API.
Vereiste referenties verzamelen
Als u toegang wilt krijgen tot uw Zendesk -account op Platform, moet u waarden opgeven voor de volgende referenties:
subdomain
https://yoursubdomain.zendesk.com
accessToken
0lZnClEvkJSTQ7olGLl7PMhVq99gu26GTbJtf
Voor meer informatie bij het voor authentiek verklaren van uw Zendesk bron, zie het Zendesk bronoverzicht.
Verbinding maken Zendesk met platform met behulp van de Flow Service API
Het volgende leerprogramma begeleidt u door de stappen om een Zendesk bronverbinding tot stand te brengen en een dataflow tot stand te brengen om Zendesk gegevens aan Platform te brengen gebruikend Flow Service API.
Een basisverbinding maken base-connection
Een basisverbinding behoudt informatie tussen uw bron en Platform, met inbegrip van de de authentificatiegeloofsbrieven van uw bron, de huidige staat van de verbinding, en uw unieke identiteitskaart van de basisverbinding. Met de ID van de basisverbinding kunt u bestanden verkennen en door bestanden navigeren vanuit uw bron en kunt u de specifieke items identificeren die u wilt opnemen, inclusief informatie over hun gegevenstypen en indelingen.
Als u een basis-verbindings-id wilt maken, vraagt u een POST naar het /connections
-eindpunt en geeft u de Zendesk -verificatiegegevens op als onderdeel van de aanvraaginstantie.
API formaat
POST /connections
Verzoek
Met de volgende aanvraag wordt een basisverbinding voor Zendesk gemaakt:
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/connections' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {IMS_ORG}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Zendesk base connection",
"description": "Zendesk base connection to authenticate to Platform",
"connectionSpec": {
"id": "0a27232b-2c6e-4396-b8c6-c9fc24e37ba4",
"version": "1.0"
},
"auth": {
"specName": "OAuth2 Refresh Code",
"params": {
"subdomain": "{SUBDOMAIN}",
"accessToken": "{ACCESS_TOKEN}"
}
}
}'
name
description
connectionSpec.id
auth.specName
auth.params.
auth.params.subdomain
https://yoursubdomain.zendesk.com
.auth.params.accessToken
Reactie
Een succesvolle reactie keert de pas gecreëerde basisverbinding, met inbegrip van zijn unieke verbindings herkenningsteken (id
) terug. Deze id is vereist om de bestandsstructuur en inhoud van uw bron in de volgende stap te verkennen.
{
"id": "70383d02-2777-4be7-a309-9dd6eea1b46d",
"etag": "\"d64c8298-add4-4667-9a49-28195b2e2a84\""
}
Ontdek uw bron explore
Met de id van de basisverbinding die u in de vorige stap hebt gegenereerd, kunt u bestanden en mappen verkennen door GET-aanvragen uit te voeren.
Gebruik de volgende aanroepen om het pad te zoeken van het bestand dat u wilt inbrengen in Platform :
API formaat
GET /connections/{BASE_CONNECTION_ID}/explore?objectType=rest&object={OBJECT}&fileType={FILE_TYPE}&preview={PREVIEW}&sourceParams={SOURCE_PARAMS}
Wanneer het uitvoeren van GET verzoeken om de het dossierstructuur en inhoud van uw bron te onderzoeken, moet u de vraagparameters omvatten die in de lijst hieronder vermeld zijn:
{BASE_CONNECTION_ID}
objectType=rest
rest
.{OBJECT}
fileType=json
json
het enige ondersteunde bestandstype.{PREVIEW}
{SOURCE_PARAMS}
{SOURCE_PARAMS}
wilt ophalen, moet u de volledige parameter
-tekenreeks coderen in base64. In het onderstaande voorbeeld is "{}"
gecodeerd in base64 gelijk aan e30
.Verzoek
curl -X GET \
'https://platform.adobe.io/data/foundation/flowservice/connections/70383d02-2777-4be7-a309-9dd6eea1b46d/explore?objectType=rest&object=json&fileType=json&preview=true&sourceParams=e30' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {IMS_ORG}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
Reactie
Een succesvol antwoord retourneert de structuur van het bestand waarnaar wordt gevraagd. In het onderstaande voorbeeld binnen de data[]
payload wordt slechts één record weergegeven, maar er kunnen meerdere records zijn.
{
"format": "hierarchical",
"schema": {
"type": "object",
"properties": {
"result": {
"type": "object",
"properties": {
"organization_id": {
"type": "integer",
"minimum": -9007199254740992,
"maximum": 9007199254740991
},
"external_id": {
"type": "integer",
"minimum": -9007199254740992,
"maximum": 9007199254740991
},
"role_type": {
"type": "integer",
"minimum": -9007199254740992,
"maximum": 9007199254740991
},
"custom_role_id": {
"type": "integer",
"minimum": -9007199254740992,
"maximum": 9007199254740991
},
"default_group_id": {
"type": "integer",
"minimum": -9007199254740992,
"maximum": 9007199254740991
},
"phone": {
"type": "string"
},
"shared_phone_number": {
"type": "boolean"
},
"alias": {
"type": "string"
},
"last_login_at": {
"type": "string"
},
"signature": {
"type": "string"
},
"details": {
"type": "string"
},
"notes": {
"type": "string"
},
"photo": {
"type": "string",
"media": {
"binaryEncoding": "base64",
"type": "image/png"
}
},
"active": {
"type": "boolean"
},
"created_at": {
"type": "string"
},
"email": {
"type": "string"
},
"iana_time_zone": {
"type": "string"
},
"id": {
"type": "integer"
},
"locale": {
"type": "string"
},
"locale_id": {
"type": "integer"
},
"moderator": {
"type": "boolean"
},
"name": {
"type": "string"
},
"only_private_comments": {
"type": "boolean"
},
"report_csv": {
"type": "boolean"
},
"restricted_agent": {
"type": "boolean"
},
"result_type": {
"type": "string"
},
"role": {
"type": "integer"
},
"shared": {
"type": "boolean"
},
"shared_agent": {
"type": "boolean"
},
"suspended": {
"type": "boolean"
},
"ticket_restriction": {
"type": "string"
},
"time_zone": {
"type": "string"
},
"two_factor_auth_enabled": {
"type": "boolean"
},
"updated_at": {
"type": "string"
},
"url": {
"type": "string"
},
"verified": {
"type": "boolean"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
},
"data": [
{
"result": {
"id": 6106699702801,
"url": "https://{YOURSUBDOMAIN}.zendesk.com/api/v2/users/6106699702801.json",
"name": "test",
"email": "test@org.com",
"created_at": "2022-05-13T08:04:22Z",
"updated_at": "2022-05-13T08:04:22Z",
"time_zone": "Asia/Kolkata",
"iana_time_zone": "Asia/Kolkata",
"locale_id": 1,
"locale": "en-US",
"role": "end-user",
"verified": false,
"active": true,
"shared": false,
"shared_agent": false,
"two_factor_auth_enabled": false,
"moderator": false,
"ticket_restriction": "requested",
"only_private_comments": false,
"restricted_agent": true,
"suspended": false,
"report_csv": false,
"result_type": "user"
}
}
]
}
Een bronverbinding maken source-connection
U kunt een bronverbinding maken door een aanvraag voor een POST in te dienen bij de Flow Service API. Een bronverbinding bestaat uit een verbinding-id, een pad naar het brongegevensbestand en een verbindingsspecificatie-id.
API formaat
POST /sourceConnections
Verzoek
Met de volgende aanvraag wordt een bronverbinding gemaakt voor Zendesk :
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/sourceConnections' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {IMS_ORG}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Zendesk Source Connection",
"description": "Zendesk Source Connection",
"baseConnectionId": "70383d02-2777-4be7-a309-9dd6eea1b46d",
"connectionSpec": {
"id": "0a27232b-2c6e-4396-b8c6-c9fc24e37ba4",
"version": "1.0"
},
"data": {
"format": "json"
},
"params": {}
}'
name
description
baseConnectionId
connectionSpec.id
data.format
json
.Reactie
Een succesvolle reactie keert het unieke herkenningsteken (id
) van de pas gecreëerde bronverbinding terug. Deze id is in een latere stap vereist om een gegevensstroom te maken.
{
"id": "246d052c-da4a-494a-937f-a0d17b1c6cf5",
"etag": "\"712a8c08-fda7-41c2-984b-187f823293d8\""
}
Een doel-XDM-schema maken target-schema
Om de brongegevens in Platform te gebruiken, moet een doelschema worden gecreeerd om de brongegevens volgens uw behoeften te structureren. Het doelschema wordt dan gebruikt om een dataset van het Platform tot stand te brengen waarin de brongegevens bevat zijn.
Een doelXDM schema kan worden gecreeerd door een verzoek van de POST aan de Registratie API van het Schemauit te voeren.
Voor gedetailleerde stappen op hoe te om een doelXDM schema tot stand te brengen, zie het leerprogramma op creërend een schema gebruikend API.
Een doelgegevensset maken target-dataset
Een doeldataset kan worden gecreeerd door een verzoek van de POST aan de Dienst API van de Catalogus uit te voeren, verstrekkend identiteitskaart van het doelschema binnen de nuttige lading.
Voor gedetailleerde stappen op hoe te om een doeldataset tot stand te brengen, zie het leerprogramma op het creëren van een dataset gebruikend API.
Een doelverbinding maken target-connection
Een doelverbinding vertegenwoordigt de verbinding met de bestemming waar de ingesloten gegevens moeten worden opgeslagen. Om een doelverbinding tot stand te brengen, moet u vaste identiteitskaart van de verbindingsspecificatie verstrekken die aan het gegevens meer beantwoordt. Deze id is: c604ff05-7f1a-43c0-8e18-33bf874cb11c
.
U hebt nu de unieke herkenningstekens een doelschema een doeldataset en identiteitskaart van de verbindingsspecificatie aan het gegevensmeer. Met behulp van deze id's kunt u een doelverbinding maken met de Flow Service API om de gegevensset op te geven die de binnenkomende brongegevens zal bevatten.
API formaat
POST /targetConnections
Verzoek
Met het volgende verzoek wordt een doelverbinding voor Zendesk gemaakt:
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/targetConnections' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {IMS_ORG}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Zendesk Target Connection",
"description": "Zendesk Target Connection",
"connectionSpec": {
"id": "c604ff05-7f1a-43c0-8e18-33bf874cb11c",
"version": "1.0"
},
"data": {
"format": "json"
},
"params": {
"dataSetId": "624bf42e16519d19496e3f67"
}
}'
name
description
connectionSpec.id
c604ff05-7f1a-43c0-8e18-33bf874cb11c
.data.format
params.dataSetId
Reactie
Een succesvolle reactie keert het unieke herkenningsteken van de nieuwe doelverbinding (id
) terug. Deze id is vereist in latere stappen.
{
"id": "7c96c827-3ffd-460c-a573-e9558f72f263",
"etag": "\"a196f685-f5e8-4c4c-bfbd-136141bb0c6d\""
}
Een toewijzing maken mapping
Opdat de brongegevens in een doeldataset moeten worden opgenomen, moet het eerst aan het doelschema worden in kaart gebracht dat de doeldataset zich aan houdt. Dit wordt bereikt door een verzoek van de POST aan Data Prep APImet gegevenstoewijzingen uit te voeren die binnen de verzoeklading worden bepaald.
API formaat
POST /conversion/mappingSets
Verzoek
curl -X POST \
'https://platform.adobe.io/data/foundation/conversion/mappingSets' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {IMS_ORG}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"version": 0,
"xdmSchema": "https://ns.adobe.com/{TENANT_ID}/schemas/995dabbea86d58e346ff91bd8aa741a9f36f29b1019138d4",
"xdmVersion": "1.0",
"mappings": [
{
"sourceType": "ATTRIBUTE",
"source": "result.id",
"destination": "_extconndev.id",
"name": "id",
"description": "Zendesk"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.external_id",
"destination": "_extconndev.external_id"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.role_type",
"destination": "_extconndev.role_type"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.custom_role_id",
"destination": "_extconndev.custom_role_id"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.default_group_id",
"destination": "_extconndev.default_group_id"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.phone",
"destination": "_extconndev.phone"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.shared_phone_number",
"destination": "_extconndev.shared_phone_number"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.verified",
"destination": "_extconndev.verified"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.alias",
"destination": "_extconndev.alias"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.last_login_at",
"destination": "_extconndev.last_login_at"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.signature",
"destination": "_extconndev.signature"
}, {
"sourceType": "ATTRIBUTE",
"source": "result.details",
"destination": "_extconndev.details"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.notes",
"destination": "_extconndev.notes"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.active",
"destination": "_extconndev.active"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.created_at",
"destination": "_extconndev.created_at"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.email",
"destination": "_extconndev.email"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.iana_time_zone",
"destination": "_extconndev.iana_time_zone"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.organization_id",
"destination": "_extconndev.organization_id"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.locale",
"destination": "_extconndev.locale"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.locale_id",
"destination": "_extconndev.locale_id"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.moderator",
"destination": "_extconndev.moderator"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.name",
"destination": "_extconndev.name"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.only_private_comments",
"destination": "_extconndev.only_private_comments"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.report_csv",
"destination": "_extconndev.report_csv"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.restricted_agent",
"destination": "_extconndev.restricted_agent"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.result_type",
"destination": "_extconndev.result_type"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.role",
"destination": "_extconndev.role"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.shared",
"destination": "_extconndev.shared"
}, {
"sourceType": "ATTRIBUTE",
"source": "result.shared_agent",
"destination": "_extconndev.shared_agent"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.time_zone",
"destination": "_extconndev.time_zone"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.two_factor_auth_enabled",
"destination": "_extconndev.two_factor_auth_enabled"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.suspended",
"destination": "_extconndev.suspended"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.updated_at",
"destination": "_extconndev.updated_at"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.url",
"destination": "_extconndev.url"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.verified",
"destination": "_extconndev.verified"
}
]
}'
xdmSchema
mappings.destinationXdmPath
mappings.sourceAttribute
mappings.identity
Reactie
Een succesvolle reactie keert details van de pas gecreëerde afbeelding met inbegrip van zijn uniek herkenningsteken (id
) terug. Deze waarde is in een latere stap vereist om een gegevensstroom te maken.
{
"id": "bf5286a9c1ad4266baca76ba3adc9366",
"version": 0,
"createdDate": 1597784069368,
"modifiedDate": 1597784069368,
"createdBy": "{CREATED_BY}",
"modifiedBy": "{MODIFIED_BY}"
}
Een flow maken flow
De laatste stap naar het brengen van gegevens van Zendesk naar Platform is het creëren van een gegevensstroom. Momenteel zijn de volgende vereiste waarden voorbereid:
Een dataflow is verantwoordelijk voor het plannen en verzamelen van gegevens uit een bron. U kunt een gegevensstroom tot stand brengen door een verzoek van de POST uit te voeren terwijl het verstrekken van de eerder vermelde waarden binnen de lading.
Als u een opname wilt plannen, moet u eerst de begintijdwaarde instellen op Tijd in seconden. Vervolgens moet u de frequentiewaarde instellen op een van de vijf opties: once
, minute
, hour
, day
of week
. De intervalwaarde geeft echter de periode tussen twee opeenvolgende inname aan. Voor een eenmalige inname hoeft geen interval te worden ingesteld. Voor alle andere frequenties moet de intervalwaarde worden ingesteld op gelijk aan of groter dan 15
.
API formaat
POST /flows
Verzoek
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/flows' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {IMS_ORG}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Zendesk dataflow",
"description": "Zendesk dataflow",
"flowSpec": {
"id": "6499120c-0b15-42dc-936e-847ea3c24d72",
"version": "1.0"
},
"sourceConnectionIds": [
"246d052c-da4a-494a-937f-a0d17b1c6cf5"
],
"targetConnectionIds": [
"7c96c827-3ffd-460c-a573-e9558f72f263"
],
"transformations": [
{
"name": "Mapping",
"params": {
"mappingId": "bf5286a9c1ad4266baca76ba3adc9366",
"mappingVersion": "0"
}
}
],
"scheduleParams": {
"startTime": "1625040887",
"frequency": "minute",
"interval": 15
}
}'
name
description
flowSpec.id
6499120c-0b15-42dc-936e-847ea3c24d72
.flowSpec.version
1.0
.sourceConnectionIds
targetConnectionIds
transformations
transformations.name
transformations.params.mappingId
transformations.params.mappingVersion
0
.scheduleParams.startTime
scheduleParams.frequency
once
, minute
, hour
, day
of week
.scheduleParams.interval
once
en moet groter zijn dan of gelijk zijn aan 15
voor andere frequentiewaarden.Reactie
Een succesvolle reactie keert identiteitskaart (id
) van nieuw gecreeerd dataflow terug. Met deze id kunt u uw gegevensstroom controleren, bijwerken of verwijderen.
{
"id": "993f908f-3342-4d9c-9f3c-5aa9a189ca1a",
"etag": "\"510bb1d4-8453-4034-b991-ab942e11dd8a\""
}
Bijlage
In de volgende sectie vindt u informatie over de stappen die u kunt uitvoeren om uw gegevensstroom te controleren, bij te werken en te verwijderen.
Uw gegevensstroom controleren
Zodra uw gegevensstroom is gecreeerd, kunt u de gegevens controleren die door het worden opgenomen om informatie over stroomlooppas, voltooiingsstatus, en fouten te zien. Voor volledige API voorbeelden, lees de gids op controlerend uw brongegevens gebruikend API.
Uw gegevensstroom bijwerken
Werk de details van uw gegevensstroom bij, zoals zijn naam en beschrijving, evenals zijn looppas programma en bijbehorende kaartreeksen door een PATCH verzoek aan het /flows
eindpunt van Flow Service API te richten, terwijl het verstrekken van identiteitskaart van uw gegevensstroom. Wanneer u een PATCH-verzoek indient, moet u de unieke etag
gegevens van uw gegevensstroom opgeven in de If-Match
-header. Voor volledige API voorbeelden, lees de gids bij het bijwerken bronnen dataflows gebruikend API.
Uw account bijwerken
Werk de naam, beschrijving en gegevens van uw bronaccount bij door een PATCH-aanvraag uit te voeren naar de Flow Service API en uw basis-verbindings-id op te geven als een queryparameter. Wanneer u een PATCH-aanvraag indient, moet u de unieke etag
van uw bronaccount opgeven in de If-Match
-header. Voor volledige API voorbeelden, lees de gids bij het bijwerken van uw bronrekening gebruikend API.
Uw gegevensstroom verwijderen
Verwijder de gegevensstroom door een DELETE-aanvraag uit te voeren naar de Flow Service API en de id op te geven van de gegevensstroom die u wilt verwijderen als onderdeel van de queryparameter. Voor volledige API voorbeelden, lees de gids op schrappend uw dataflows gebruikend API.
Uw account verwijderen
Verwijder uw account door een DELETE-aanvraag uit te voeren naar de Flow Service API terwijl u de basis verbinding-id opgeeft van het account dat u wilt verwijderen. Voor volledige API voorbeelden, lees de gids bij het schrappen van uw bronrekening gebruikend API.