Asana · Arazzo Workflow

Asana Post a Project Status Update

Version 1.0.0

Read a project's task counts, then post a status update summarizing progress.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub CollaborationProductivityProject ManagementProjectsTask ManagementTasksWorkflowArazzoWorkflows

Provider

asana

Workflows

post-project-status-update
Read project task counts and post a status update.
Reads task counts for a project, then posts a status update summarizing progress.
2 steps inputs: projectGid, statusText, statusTitle, statusType outputs: numTasks, projectGid, statusUpdateGid
1
readTaskCounts
getTaskCountsForProject
Read the project's task counts to gather progress numbers.
2
postStatusUpdate
createStatusUpdateForObject
Post a status update on the project.

Source API Descriptions

Arazzo Workflow Specification

asana-post-project-status-update-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Asana Post a Project Status Update
  summary: Read a project's task counts, then post a status update summarizing progress.
  description: >-
    A reporting flow. The workflow reads the task counts for a project to gather
    progress numbers and then posts a status update on that project with the
    supplied status type and text. Each request is written inline so the
    reporting sequence can be read and executed without opening the underlying
    OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: projectsApi
  url: ../openapi/asana-projects-api-openapi.yml
  type: openapi
- name: statusUpdatesApi
  url: ../openapi/asana-status-updates-api-openapi.yml
  type: openapi
workflows:
- workflowId: post-project-status-update
  summary: Read project task counts and post a status update.
  description: >-
    Reads task counts for a project, then posts a status update summarizing
    progress.
  inputs:
    type: object
    required:
    - projectGid
    - statusType
    - statusTitle
    - statusText
    properties:
      projectGid:
        type: string
        description: Gid of the project to report on.
      statusType:
        type: string
        description: Status type, one of on_track, at_risk, off_track, on_hold, complete.
      statusTitle:
        type: string
        description: Title of the status update.
      statusText:
        type: string
        description: Body text of the status update.
  steps:
  - stepId: readTaskCounts
    description: Read the project's task counts to gather progress numbers.
    operationId: getTaskCountsForProject
    parameters:
    - name: project_gid
      in: path
      value: $inputs.projectGid
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      numTasks: $response.body#/data/num_tasks
      numCompleted: $response.body#/data/num_completed_tasks
  - stepId: postStatusUpdate
    description: Post a status update on the project.
    operationId: createStatusUpdateForObject
    requestBody:
      contentType: application/json
      payload:
        data:
          parent: $inputs.projectGid
          status_type: $inputs.statusType
          title: $inputs.statusTitle
          text: $inputs.statusText
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      statusUpdateGid: $response.body#/data/gid
  outputs:
    projectGid: $inputs.projectGid
    statusUpdateGid: $steps.postStatusUpdate.outputs.statusUpdateGid
    numTasks: $steps.readTaskCounts.outputs.numTasks