Zapier · Arazzo Workflow

Zapier Create a Zap from Actions

Version 1.0.0

List an app's actions, create a multi-step Zap, and confirm it appears in the user's Zap list.

1 workflow 1 source API 1 provider
View Spec View on GitHub IntegrationsiPaaSArazzoWorkflows

Provider

zapier

Workflows

create-zap-from-actions
Build a new Zap from a set of steps and verify it in the user's Zap list.
Lists the actions for an app to confirm valid action ids, posts a new Zap built from the supplied steps and title, and lists the user's Zaps to verify the created Zap is present.
3 steps inputs: accessToken, appId, steps, title outputs: isEnabled, zapId, zaps
1
listActions
get-actions
List the actions exposed by the app so the action ids used in the Zap steps can be confirmed before creating it.
2
createZap
post-zaps
Create a new Zap from the supplied steps and title. The response returns the created Zap id.
3
confirmZap
get-v2-zaps
List the user's Zaps to confirm the newly created Zap is present in the account.

Source API Descriptions

Arazzo Workflow Specification

zapier-create-zap-from-actions-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Zapier Create a Zap from Actions
  summary: List an app's actions, create a multi-step Zap, and confirm it appears in the user's Zap list.
  description: >-
    A programmatic Zap-building flow. It lists the actions an app exposes so the
    caller can reference valid action ids, creates a Zap from the supplied steps
    and title, and then lists the user's Zaps to confirm the new Zap was
    created. 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: zapierPartnerApi
  url: ../openapi/zapier-partner-api.yml
  type: openapi
workflows:
- workflowId: create-zap-from-actions
  summary: Build a new Zap from a set of steps and verify it in the user's Zap list.
  description: >-
    Lists the actions for an app to confirm valid action ids, posts a new Zap
    built from the supplied steps and title, and lists the user's Zaps to verify
    the created Zap is present.
  inputs:
    type: object
    required:
    - accessToken
    - appId
    - steps
    - title
    properties:
      accessToken:
        type: string
        description: OAuth2 bearer token used in the Authorization header.
      appId:
        type: string
        description: Canonical App ID (UUID) whose actions back the Zap steps.
      steps:
        type: array
        description: >-
          Ordered list of Zap step objects, each with action, inputs,
          authentication and alias keys as accepted by the create-Zap endpoint.
        items:
          type: object
      title:
        type: string
        description: Title for the new Zap.
  steps:
  - stepId: listActions
    description: >-
      List the actions exposed by the app so the action ids used in the Zap
      steps can be confirmed before creating it.
    operationId: get-actions
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: app
      in: query
      value: $inputs.appId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      actions: $response.body#/0/data
  - stepId: createZap
    description: >-
      Create a new Zap from the supplied steps and title. The response returns
      the created Zap id.
    operationId: post-zaps
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    requestBody:
      contentType: application/json
      payload:
        data:
          steps: $inputs.steps
          title: $inputs.title
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      zapId: $response.body#/id
      isEnabled: $response.body#/is_enabled
  - stepId: confirmZap
    description: >-
      List the user's Zaps to confirm the newly created Zap is present in the
      account.
    operationId: get-v2-zaps
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: limit
      in: query
      value: 10
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      zaps: $response.body#/0/data
  outputs:
    zapId: $steps.createZap.outputs.zapId
    isEnabled: $steps.createZap.outputs.isEnabled
    zaps: $steps.confirmZap.outputs.zaps