Zoom · Arazzo Workflow

Zoom Create and Confirm a Webinar

Version 1.0.0

Schedule a webinar, read it back, and list its panelists.

1 workflow 1 source API 1 provider
View Spec View on GitHub ChatCollaborationCommunicationsMeetingsVideo ConferencingVideosWebinarsArazzoWorkflows

Provider

zoom

Workflows

create-and-confirm-webinar
Create a webinar, confirm it by reading it back, and list its panelists.
Calls webinarCreate to schedule the webinar, webinarGet to confirm the persisted details, and webinarPanelists to list the panelists.
3 steps inputs: apiKey, apiSecret, duration, hostId, startTime, topic, type outputs: joinUrl, panelists, webinarId
1
createWebinar
webinarCreate
Schedule the webinar for the host and capture the new webinar id.
2
getWebinar
webinarGet
Read the webinar back to confirm the persisted topic and schedule.
3
listPanelists
webinarPanelists
List the panelists currently assigned to the webinar.

Source API Descriptions

Arazzo Workflow Specification

zoom-create-and-confirm-webinar-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Zoom Create and Confirm a Webinar
  summary: Schedule a webinar, read it back, and list its panelists.
  description: >-
    Schedules a webinar for a host, reads the webinar back to confirm the saved
    topic and join URL, and then lists the webinar's panelists. The create step
    captures the new webinar id, which the get and panelists steps reuse along with
    the host id. This legacy Zoom API authenticates with api_key and api_secret
    form fields rather than a bearer token, so credentials are supplied inline in
    each request body. Every request is spelled out inline so the flow can be read
    and executed without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: webinarApi
  url: ../openapi/zoom-webinar--openapi-original.yml
  type: openapi
workflows:
- workflowId: create-and-confirm-webinar
  summary: Create a webinar, confirm it by reading it back, and list its panelists.
  description: >-
    Calls webinarCreate to schedule the webinar, webinarGet to confirm the
    persisted details, and webinarPanelists to list the panelists.
  inputs:
    type: object
    required:
    - apiKey
    - apiSecret
    - hostId
    - topic
    - type
    properties:
      apiKey:
        type: string
        description: Zoom API key used to authenticate the legacy API.
      apiSecret:
        type: string
        description: Zoom API secret used to authenticate the legacy API.
      hostId:
        type: string
        description: The webinar host user id.
      topic:
        type: string
        description: Webinar topic, up to 300 characters.
      type:
        type: string
        description: Webinar type. 5 webinar, 6 recurring, 9 recurring with fixed time.
      startTime:
        type: string
        description: Webinar start time in ISO 8601 UTC format.
      duration:
        type: string
        description: Webinar duration in minutes.
  steps:
  - stepId: createWebinar
    description: Schedule the webinar for the host and capture the new webinar id.
    operationId: webinarCreate
    requestBody:
      contentType: application/x-www-form-urlencoded
      payload:
        api_key: $inputs.apiKey
        api_secret: $inputs.apiSecret
        host_id: $inputs.hostId
        topic: $inputs.topic
        type: $inputs.type
        start_time: $inputs.startTime
        duration: $inputs.duration
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      webinarId: $response.body#/id
      joinUrl: $response.body#/join_url
      startUrl: $response.body#/start_url
  - stepId: getWebinar
    description: Read the webinar back to confirm the persisted topic and schedule.
    operationId: webinarGet
    requestBody:
      contentType: application/x-www-form-urlencoded
      payload:
        api_key: $inputs.apiKey
        api_secret: $inputs.apiSecret
        host_id: $inputs.hostId
        id: $steps.createWebinar.outputs.webinarId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      topic: $response.body#/topic
      status: $response.body#/status
  - stepId: listPanelists
    description: List the panelists currently assigned to the webinar.
    operationId: webinarPanelists
    requestBody:
      contentType: application/x-www-form-urlencoded
      payload:
        api_key: $inputs.apiKey
        api_secret: $inputs.apiSecret
        host_id: $inputs.hostId
        id: $steps.createWebinar.outputs.webinarId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      totalRecords: $response.body#/total_records
      panelists: $response.body#/panelists
  outputs:
    webinarId: $steps.createWebinar.outputs.webinarId
    joinUrl: $steps.createWebinar.outputs.joinUrl
    panelists: $steps.listPanelists.outputs.panelists