Seismic · Arazzo Workflow

Seismic User Adoption Review

Version 1.0.0

Rank user activity, resolve the top user's profile, and pull their detailed analytics.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub ArazzoWorkflows

Provider

seismic

Workflows

user-adoption-review
Identify a top active user, resolve their profile, and pull their analytics.
Retrieves user analytics for a group, resolves the leading user's profile, and pulls that user's detailed activity analytics.
3 steps inputs: endDate, groupId, startDate outputs: activity, email, userId
1
getUserAnalytics
getUserAnalytics
Retrieve user activity analytics for the group over the date range, returning the leading user record.
2
getUserProfile
getUser
Resolve the top user's profile from the user-management API.
3
getUserActivity
getUserActivityAnalytics
Retrieve detailed activity analytics for the resolved user over the same date range.

Source API Descriptions

Arazzo Workflow Specification

seismic-user-adoption-review-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Seismic User Adoption Review
  summary: Rank user activity, resolve the top user's profile, and pull their detailed analytics.
  description: >-
    A cross-domain adoption flow spanning the analytics and user-management
    libraries. The workflow retrieves user activity analytics for a group over a
    date range, resolves the top user's profile from the user-management API,
    and then pulls that user's detailed activity analytics. 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: analyticsApi
  url: ../openapi/seismic-analytics-openapi.yml
  type: openapi
- name: userManagementApi
  url: ../openapi/seismic-user-management-openapi.yml
  type: openapi
workflows:
- workflowId: user-adoption-review
  summary: Identify a top active user, resolve their profile, and pull their analytics.
  description: >-
    Retrieves user analytics for a group, resolves the leading user's profile,
    and pulls that user's detailed activity analytics.
  inputs:
    type: object
    required:
    - groupId
    properties:
      groupId:
        type: string
        description: User group to scope the adoption analytics to.
      startDate:
        type: string
        description: Start date for the analytics period (YYYY-MM-DD).
      endDate:
        type: string
        description: End date for the analytics period (YYYY-MM-DD).
  steps:
  - stepId: getUserAnalytics
    description: >-
      Retrieve user activity analytics for the group over the date range,
      returning the leading user record.
    operationId: getUserAnalytics
    parameters:
    - name: groupId
      in: query
      value: $inputs.groupId
    - name: startDate
      in: query
      value: $inputs.startDate
    - name: endDate
      in: query
      value: $inputs.endDate
    - name: limit
      in: query
      value: 1
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      userId: $response.body#/items/0/userId
  - stepId: getUserProfile
    description: Resolve the top user's profile from the user-management API.
    operationId: getUser
    parameters:
    - name: userId
      in: path
      value: $steps.getUserAnalytics.outputs.userId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      userId: $response.body#/id
      email: $response.body#/email
  - stepId: getUserActivity
    description: >-
      Retrieve detailed activity analytics for the resolved user over the same
      date range.
    operationId: getUserActivityAnalytics
    parameters:
    - name: userId
      in: path
      value: $steps.getUserProfile.outputs.userId
    - name: startDate
      in: query
      value: $inputs.startDate
    - name: endDate
      in: query
      value: $inputs.endDate
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      activity: $response.body
  outputs:
    userId: $steps.getUserProfile.outputs.userId
    email: $steps.getUserProfile.outputs.email
    activity: $steps.getUserActivity.outputs.activity