PropertyMe · Arazzo Workflow

Raise, quote, approve and complete a PropertyMe maintenance job

Version 1.0.0

The maintenance work-order flow, using the v2 job-task shape for create and read and the shared v1 sub-resources for quotations, transitions and attachments. Requires activity:read and activity:write, plus contact:read to resolve the supplier. There is no idempotency key on the create step — reconcile before any retry.

1 workflow 1 source API 1 provider
View Spec View on GitHub Real EstateAustraliaProperty ManagementRentalsPropTechTenancyTrust AccountingInspectionsMaintenanceDocumentsPaymentsNew ZealandArazzoWorkflows

Provider

propertyme

Workflows

raise-quote-and-complete-job
Create a maintenance job against a property, attach a supplier quote, approve, assign and complete it.
9 steps inputs: jobId, lotId, quoteId
1
find-supplier
QuerySuppliersRequestcontactssuppliers_Get
Resolve the supplier contact. Pages with Offset and Limit; there is no total count.
2
create-job
AddJobV2Requestjobtasks_Post
Create the work order. NO Idempotency-Key exists on this operation — on a timeout, do not blind-retry; re-read with SearchJobTaskV2Requestjobtaskssearch_Get filtered on DateCreatedMin/DateCreatedMax and confirm before trying again.
3
read-job
JobTaskV2RequestjobtasksId_Get
Read the job back to confirm its current state before transitioning.
4
add-quotation
AddJobTasksQuotationRequestjobtasksIdquotation_Post
Record the supplier's quote against the job.
5
attach-quotation-document
AddJobTasksQuotationDocumentRequestjobtasksIdquotationQuoteIddocuments_Post
Attach the supplier's quote document to the quotation.
6
approve-job
ApproveJobTaskRequestjobtasksIdapprove_Post
Approve the job. A 400 here means the transition is not valid from the job's current state, not a transient failure — do not retry it.
7
assign-job
AssignTaskRequestjobtasksIdassign_Post
Assign the approved job to the supplier or agency member.
8
attach-completion-images
AddJobImagesRequestjobtasksIdimages_Post
Attach completion photos before closing the job out.
9
complete-job
CompleteJobTaskRequestjobtasksIdcomplete_Post

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Raise, quote, approve and complete a PropertyMe maintenance job
  version: 1.0.0
  description: >-
    The maintenance work-order flow, using the v2 job-task shape for create and read and the shared
    v1 sub-resources for quotations, transitions and attachments. Requires activity:read and
    activity:write, plus contact:read to resolve the supplier. There is no idempotency key on the
    create step — reconcile before any retry.
sourceDescriptions:
  - name: propertyme
    url: ../openapi/propertyme-openapi.json
    type: openapi
workflows:
  - workflowId: raise-quote-and-complete-job
    summary: Create a maintenance job against a property, attach a supplier quote, approve, assign and complete it.
    inputs:
      type: object
      properties:
        lotId:
          type: string
          description: GUID of the lot (property) the work is against.
        jobId:
          type: string
          description: GUID of an existing job task, when driving an already-created job.
        quoteId:
          type: string
          description: GUID of a quotation on the job.
      required: [lotId]
    steps:
      - stepId: find-supplier
        description: Resolve the supplier contact. Pages with Offset and Limit; there is no total count.
        operationId: QuerySuppliersRequestcontactssuppliers_Get
        parameters:
          - name: Accept
            in: header
            value: application/json
          - name: Offset
            in: query
            value: 0
          - name: Limit
            in: query
            value: 50
        successCriteria:
          - condition: $statusCode == 200
      - stepId: create-job
        description: >-
          Create the work order. NO Idempotency-Key exists on this operation — on a timeout, do not
          blind-retry; re-read with SearchJobTaskV2Requestjobtaskssearch_Get filtered on
          DateCreatedMin/DateCreatedMax and confirm before trying again.
        operationId: AddJobV2Requestjobtasks_Post
        parameters:
          - name: Accept
            in: header
            value: application/json
        successCriteria:
          - condition: $statusCode == 200
      - stepId: read-job
        description: Read the job back to confirm its current state before transitioning.
        operationId: JobTaskV2RequestjobtasksId_Get
        parameters:
          - name: Accept
            in: header
            value: application/json
          - name: Id
            in: path
            value: $inputs.jobId
        successCriteria:
          - condition: $statusCode == 200
      - stepId: add-quotation
        description: Record the supplier's quote against the job.
        operationId: AddJobTasksQuotationRequestjobtasksIdquotation_Post
        parameters:
          - name: Accept
            in: header
            value: application/json
          - name: Id
            in: path
            value: $inputs.jobId
        successCriteria:
          - condition: $statusCode == 200
      - stepId: attach-quotation-document
        description: Attach the supplier's quote document to the quotation.
        operationId: AddJobTasksQuotationDocumentRequestjobtasksIdquotationQuoteIddocuments_Post
        parameters:
          - name: Accept
            in: header
            value: application/json
          - name: Id
            in: path
            value: $inputs.jobId
          - name: QuoteId
            in: path
            value: $inputs.quoteId
        successCriteria:
          - condition: $statusCode == 200
      - stepId: approve-job
        description: >-
          Approve the job. A 400 here means the transition is not valid from the job's current state,
          not a transient failure — do not retry it.
        operationId: ApproveJobTaskRequestjobtasksIdapprove_Post
        parameters:
          - name: Accept
            in: header
            value: application/json
          - name: Id
            in: path
            value: $inputs.jobId
        successCriteria:
          - condition: $statusCode == 200
      - stepId: assign-job
        description: Assign the approved job to the supplier or agency member.
        operationId: AssignTaskRequestjobtasksIdassign_Post
        parameters:
          - name: Accept
            in: header
            value: application/json
          - name: Id
            in: path
            value: $inputs.jobId
        successCriteria:
          - condition: $statusCode == 200
      - stepId: attach-completion-images
        description: Attach completion photos before closing the job out.
        operationId: AddJobImagesRequestjobtasksIdimages_Post
        parameters:
          - name: Accept
            in: header
            value: application/json
          - name: Id
            in: path
            value: $inputs.jobId
        successCriteria:
          - condition: $statusCode == 200
      - stepId: complete-job
        operationId: CompleteJobTaskRequestjobtasksIdcomplete_Post
        parameters:
          - name: Accept
            in: header
            value: application/json
          - name: Id
            in: path
            value: $inputs.jobId
        successCriteria:
          - condition: $statusCode == 200