arazzo: 1.0.1
info:
title: Salesforce Experience Cloud Contact and Case Intake
summary: Create a Contact, then open a support Case linked to that Contact.
description: >-
A standard community support intake pattern. The workflow creates a Contact
record, then creates a Case whose ContactId points at the new Contact, and
finally reads the Case back to confirm its status and case number. Each step
spells out its request inline so the flow can be read and executed without
opening the underlying OpenAPI description.
version: 1.0.0
sourceDescriptions:
- name: sobjectsApi
url: ../openapi/salesforce-experience-cloud-sobjects-api-openapi.yml
type: openapi
workflows:
- workflowId: contact-case-intake
summary: Create a Contact and open a linked Case in one flow.
description: >-
Creates a Contact, opens a Case referencing that Contact via ContactId, and
reads the Case back to confirm it persisted.
inputs:
type: object
required:
- accessToken
- contactFields
- subject
properties:
accessToken:
type: string
description: OAuth 2.0 bearer token for the Salesforce instance.
contactFields:
type: object
description: Field name/value pairs for the new Contact (e.g. LastName, Email).
subject:
type: string
description: Subject line for the new Case.
description:
type: string
description: Detailed description of the support issue.
origin:
type: string
description: Case origin channel (e.g. Web, Email, Community).
steps:
- stepId: createContact
description: Create the Contact record that the Case will be linked to.
operationId: createSObjectRecord
parameters:
- name: Authorization
in: header
value: Bearer $inputs.accessToken
- name: sObjectName
in: path
value: Contact
requestBody:
contentType: application/json
payload: $inputs.contactFields
successCriteria:
- condition: $statusCode == 201
outputs:
contactId: $response.body#/id
- stepId: createCase
description: Open a Case referencing the new Contact through the ContactId field.
operationId: createSObjectRecord
parameters:
- name: Authorization
in: header
value: Bearer $inputs.accessToken
- name: sObjectName
in: path
value: Case
requestBody:
contentType: application/json
payload:
ContactId: $steps.createContact.outputs.contactId
Subject: $inputs.subject
Description: $inputs.description
Origin: $inputs.origin
successCriteria:
- condition: $statusCode == 201
outputs:
caseId: $response.body#/id
- stepId: getCase
description: Read the Case back to confirm its status and case number.
operationId: getSObjectRecord
parameters:
- name: Authorization
in: header
value: Bearer $inputs.accessToken
- name: sObjectName
in: path
value: Case
- name: recordId
in: path
value: $steps.createCase.outputs.caseId
- name: fields
in: query
value: Id,CaseNumber,Status,Subject,ContactId
successCriteria:
- condition: $statusCode == 200
outputs:
caseNumber: $response.body#/CaseNumber
status: $response.body#/Status
outputs:
contactId: $steps.createContact.outputs.contactId
caseId: $steps.createCase.outputs.caseId
caseNumber: $steps.getCase.outputs.caseNumber
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.