Salesforce Experience Cloud · Arazzo Workflow

Salesforce Experience Cloud Account Contact Case Onboarding

Version 1.0.0

Create an Account, add a Contact under it, then open a Case for that Contact.

1 workflow 1 source API 1 provider
View Spec View on GitHub CMSCommunitiesCRMCustomer PortalDigital ExperienceExperience CloudPartner PortalArazzoWorkflows

Provider

salesforce-experience-cloud

Workflows

account-contact-case-onboarding
Chain Account, Contact, and Case creation in one onboarding flow.
Creates an Account, a Contact linked to it via AccountId, and a Case linked to the Contact via ContactId.
3 steps inputs: accessToken, accountName, contactEmail, contactLastName, description, subject outputs: accountId, caseId, contactId
1
createAccount
createSObjectRecord
Create the Account that the Contact will belong to.
2
createContact
createSObjectRecord
Create a Contact linked to the new Account via AccountId.
3
createCase
createSObjectRecord
Open a Case linked to the new Contact via ContactId.

Source API Descriptions

Arazzo Workflow Specification

salesforce-experience-cloud-account-contact-case-onboarding-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Salesforce Experience Cloud Account Contact Case Onboarding
  summary: Create an Account, add a Contact under it, then open a Case for that Contact.
  description: >-
    A full community onboarding chain on the REST API. The workflow creates an
    Account, creates a Contact whose AccountId references the new Account, then
    opens a Case linked to that Contact. Together these establish the standard
    Account to Contact to Case relationship used across Experience Cloud support
    portals. 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: restApi
  url: ../openapi/salesforce-experience-cloud-rest-api-openapi.yml
  type: openapi
workflows:
- workflowId: account-contact-case-onboarding
  summary: Chain Account, Contact, and Case creation in one onboarding flow.
  description: >-
    Creates an Account, a Contact linked to it via AccountId, and a Case linked
    to the Contact via ContactId.
  inputs:
    type: object
    required:
    - accessToken
    - accountName
    - contactLastName
    - subject
    properties:
      accessToken:
        type: string
        description: OAuth 2.0 bearer token for the Salesforce instance.
      accountName:
        type: string
        description: Name for the new Account.
      contactLastName:
        type: string
        description: Last name for the new Contact.
      contactEmail:
        type: string
        description: Email address for the new Contact.
      subject:
        type: string
        description: Subject line for the new Case.
      description:
        type: string
        description: Detailed description of the support issue.
  steps:
  - stepId: createAccount
    description: Create the Account that the Contact will belong to.
    operationId: createSObjectRecord
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.accessToken
    - name: sObjectName
      in: path
      value: Account
    requestBody:
      contentType: application/json
      payload:
        Name: $inputs.accountName
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      accountId: $response.body#/id
  - stepId: createContact
    description: Create a Contact linked to the new Account via AccountId.
    operationId: createSObjectRecord
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.accessToken
    - name: sObjectName
      in: path
      value: Contact
    requestBody:
      contentType: application/json
      payload:
        LastName: $inputs.contactLastName
        Email: $inputs.contactEmail
        AccountId: $steps.createAccount.outputs.accountId
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      contactId: $response.body#/id
  - stepId: createCase
    description: Open a Case linked to the new Contact via ContactId.
    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
        AccountId: $steps.createAccount.outputs.accountId
        Subject: $inputs.subject
        Description: $inputs.description
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      caseId: $response.body#/id
  outputs:
    accountId: $steps.createAccount.outputs.accountId
    contactId: $steps.createContact.outputs.contactId
    caseId: $steps.createCase.outputs.caseId