PeopleSoft · Arazzo Workflow

PeopleSoft Find a Customer and Open a Case

Version 1.0.0

Search CRM customers, pull the matched customer record, then create a service case for them.

1 workflow 1 source API 1 provider
View Spec View on GitHub Campus SolutionsCRMEnterprise SoftwareERPFinancial ManagementHCMSupply Chain ManagementArazzoWorkflows

Provider

peoplesoft

Workflows

customer-case
Resolve a CRM customer and create a service case for them.
Searches customers, gets the first match's record, and creates a case referencing that customer; ends when no customer matches the search.
3 steps inputs: authorization, caseDescription, category, priority, search outputs: caseStatus, customer, customerId
1
findCustomers
listCustomers
Search CRM customers using the supplied term and branch on whether any customer matched.
2
getCustomerRecord
getCustomer
Retrieve the full record for the first matched customer before opening a case.
3
createCase
createCase
Open a new service case referencing the matched customer with the supplied description, priority, and category.

Source API Descriptions

Arazzo Workflow Specification

peoplesoft-customer-case-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: PeopleSoft Find a Customer and Open a Case
  summary: Search CRM customers, pull the matched customer record, then create a service case for them.
  description: >-
    A customer-service flow over the PeopleSoft CRM API. It searches customers
    by name or ID, branches on whether a customer matched, retrieves the full
    record for the first match, and opens a new service case linked to that
    customer. Every 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: crmApi
  url: ../openapi/crm.yml
  type: openapi
workflows:
- workflowId: customer-case
  summary: Resolve a CRM customer and create a service case for them.
  description: >-
    Searches customers, gets the first match's record, and creates a case
    referencing that customer; ends when no customer matches the search.
  inputs:
    type: object
    required:
    - authorization
    - search
    - caseDescription
    properties:
      authorization:
        type: string
        description: HTTP Basic auth header value (e.g. "Basic dXNlcjpwYXNz").
      search:
        type: string
        description: Search term for the customer name or ID.
      caseDescription:
        type: string
        description: Short description of the issue for the new case.
      priority:
        type: string
        description: Case priority (1-4).
        default: '2'
      category:
        type: string
        description: Case category.
        default: Product Support
  steps:
  - stepId: findCustomers
    description: >-
      Search CRM customers using the supplied term and branch on whether any
      customer matched.
    operationId: listCustomers
    parameters:
    - name: search
      in: query
      value: $inputs.search
    - name: Authorization
      in: header
      value: $inputs.authorization
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      customers: $response.body#/customers
      firstCustomerId: $response.body#/customers/0/CUST_ID
    onSuccess:
    - name: hasCustomer
      type: goto
      stepId: getCustomerRecord
      criteria:
      - context: $response.body
        condition: $.customers.length > 0
        type: jsonpath
    - name: noCustomer
      type: end
      criteria:
      - context: $response.body
        condition: $.customers.length == 0
        type: jsonpath
  - stepId: getCustomerRecord
    description: >-
      Retrieve the full record for the first matched customer before opening a
      case.
    operationId: getCustomer
    parameters:
    - name: customerId
      in: path
      value: $steps.findCustomers.outputs.firstCustomerId
    - name: Authorization
      in: header
      value: $inputs.authorization
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      customer: $response.body
  - stepId: createCase
    description: >-
      Open a new service case referencing the matched customer with the supplied
      description, priority, and category.
    operationId: createCase
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    requestBody:
      contentType: application/json
      payload:
        CUST_ID: $steps.findCustomers.outputs.firstCustomerId
        DESCR: $inputs.caseDescription
        PRIORITY: $inputs.priority
        CATEGORY: $inputs.category
        STATUS: Open
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      statusCode: $statusCode
  outputs:
    customerId: $steps.findCustomers.outputs.firstCustomerId
    customer: $steps.getCustomerRecord.outputs.customer
    caseStatus: $steps.createCase.outputs.statusCode