arazzo: 1.0.1
info:
title: Zendesk Onboard New Customer
summary: Create an organization, add a user to it, and open their first support ticket.
description: >-
A full new-customer onboarding chain for Zendesk Support. The workflow
creates an organization, creates an end user assigned to that organization,
and then opens an initial ticket requested by that user and scoped to the new
organization. Each Zendesk request body is inlined with the documented
{organization:{...}}, {user:{...}}, and {ticket:{...}} envelopes.
version: 1.0.0
x-realizes-capability-ids:
- BC-420.10
- BC-430.10
x-capability-derivation:
method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
min_confidence: 0.7
sources:
- capability_id: BC-420.10
capability_name: Customer Data Management
spec: zendesk-organizations-api-openapi.yml
confidence: 0.8
- capability_id: BC-430.10
capability_name: Customer Inquiry Management
spec: zendesk-tickets-api-openapi.yml
confidence: 0.92
model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: organizationsApi
url: ../openapi/zendesk-organizations-api-openapi.yml
type: openapi
- name: ticketsApi
url: ../openapi/zendesk-tickets-api-openapi.yml
type: openapi
- name: usersApi
url: ../openapi/zendesk-users-api-openapi.yml
type: openapi
workflows:
- workflowId: onboard-customer
summary: Provision an organization, a user, and an opening ticket in one pass.
description: >-
Creates a Zendesk organization, adds an end user to it, then opens that
user's first ticket scoped to the organization.
inputs:
type: object
required:
- organizationName
- userName
- userEmail
- subject
- commentBody
properties:
organizationName:
type: string
description: The unique name of the organization to create.
userName:
type: string
description: The full name of the end user to create.
userEmail:
type: string
description: The email address of the end user to create.
subject:
type: string
description: The subject line of the onboarding ticket.
commentBody:
type: string
description: The body of the first public comment on the ticket.
steps:
- stepId: createOrganization
description: Create the customer organization.
operationId: CreateOrganization
requestBody:
contentType: application/json
payload:
organization:
name: $inputs.organizationName
successCriteria:
- condition: $statusCode == 201
outputs:
organizationId: $response.body#/organization/id
- stepId: createUser
description: Create the end user inside the new organization.
operationId: CreateUser
requestBody:
contentType: application/json
payload:
user:
name: $inputs.userName
email: $inputs.userEmail
role: end-user
organization_id: $steps.createOrganization.outputs.organizationId
successCriteria:
- condition: $statusCode == 201
outputs:
userId: $response.body#/user/id
- stepId: createTicket
description: Open the onboarding ticket for the new user and organization.
operationId: CreateTicket
requestBody:
contentType: application/json
payload:
ticket:
subject: $inputs.subject
comment:
body: $inputs.commentBody
public: true
requester_id: $steps.createUser.outputs.userId
organization_id: $steps.createOrganization.outputs.organizationId
successCriteria:
- condition: $statusCode == 201
outputs:
ticketId: $response.body#/ticket/id
outputs:
organizationId: $steps.createOrganization.outputs.organizationId
userId: $steps.createUser.outputs.userId
ticketId: $steps.createTicket.outputs.ticketId
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.