PropertyMe · Arazzo Workflow

Connect a PropertyMe portfolio and run a change-since sync

Version 1.0.0

PropertyMe publishes no webhooks, so an integration keeps a portfolio current by polling the six change-since collections with an int64 Timestamp cursor. This workflow seeds the mirror from Timestamp 0 and reads the agency directory, then shows the clean disconnect. Every operation is scoped to the one customer portfolio the OAuth token was issued against.

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

Provider

propertyme

Workflows

connect-and-sync-portfolio
Seed a full read of a connected PropertyMe portfolio and advance the change cursor.
Requires contact:read, property:read and activity:read. Send Accept application/json on every call — it is a required parameter in the contract, not optional.
8 steps inputs: timestamp
1
read-agency
AgencyRequestcontactsagency_Get
Read the agency's own contact record to confirm which portfolio the token is bound to.
2
read-members
MembersRequestmembers_Get
Read the agency staff directory so job and inspection assignees can be resolved locally.
3
sync-contacts
ChangedContactsRequestcontacts_Get
Owners, tenants and suppliers changed since the cursor.
4
sync-lots
ChangedLotRequestlots_Get
Properties (lots) changed since the cursor.
5
sync-tenancies
TenancyRequesttenancies_Get
Tenancies. Note this collection takes no Timestamp — it returns the full set, filtered only by ContactId, LotId, HasOwnership and IncludeClosed.
6
sync-inspections
ChangedInspectionsRequestinspections_Get
Inspections changed since the cursor.
7
sync-jobtasks
ChangedJobTaskV2Requestjobtasks_Get
Maintenance work orders changed since the cursor, in the newer v2 shape.
8
sync-tasks
ChangedTasksRequesttasks_Get
General property-management tasks changed since the cursor.
disconnect-portfolio
Sever the integration's connection to the customer's current portfolio.
Cannot be undone. The current access token is invalidated and the portfolio user must choose to reconnect. Run this on teardown or revocation only — never as error handling.
1 step
1
disconnect
DisconnectPortfolioRequestportfoliosdisconnect_Delete

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Connect a PropertyMe portfolio and run a change-since sync
  version: 1.0.0
  description: >-
    PropertyMe publishes no webhooks, so an integration keeps a portfolio current by polling the six
    change-since collections with an int64 Timestamp cursor. This workflow seeds the mirror from
    Timestamp 0 and reads the agency directory, then shows the clean disconnect. Every operation is
    scoped to the one customer portfolio the OAuth token was issued against.
sourceDescriptions:
  - name: propertyme
    url: ../openapi/propertyme-openapi.json
    type: openapi
workflows:
  - workflowId: connect-and-sync-portfolio
    summary: Seed a full read of a connected PropertyMe portfolio and advance the change cursor.
    description: >-
      Requires contact:read, property:read and activity:read. Send Accept application/json on every
      call — it is a required parameter in the contract, not optional.
    inputs:
      type: object
      properties:
        timestamp:
          type: integer
          format: int64
          description: Change cursor. Use 0 to seed, then the highest observed changed timestamp.
          default: 0
      required: [timestamp]
    steps:
      - stepId: read-agency
        description: Read the agency's own contact record to confirm which portfolio the token is bound to.
        operationId: AgencyRequestcontactsagency_Get
        parameters:
          - name: Accept
            in: header
            value: application/json
        successCriteria:
          - condition: $statusCode == 200
      - stepId: read-members
        description: Read the agency staff directory so job and inspection assignees can be resolved locally.
        operationId: MembersRequestmembers_Get
        parameters:
          - name: Accept
            in: header
            value: application/json
        successCriteria:
          - condition: $statusCode == 200
      - stepId: sync-contacts
        description: Owners, tenants and suppliers changed since the cursor.
        operationId: ChangedContactsRequestcontacts_Get
        parameters:
          - name: Accept
            in: header
            value: application/json
          - name: Timestamp
            in: query
            value: $inputs.timestamp
        successCriteria:
          - condition: $statusCode == 200
      - stepId: sync-lots
        description: Properties (lots) changed since the cursor.
        operationId: ChangedLotRequestlots_Get
        parameters:
          - name: Accept
            in: header
            value: application/json
          - name: Timestamp
            in: query
            value: $inputs.timestamp
        successCriteria:
          - condition: $statusCode == 200
      - stepId: sync-tenancies
        description: >-
          Tenancies. Note this collection takes no Timestamp — it returns the full set, filtered only
          by ContactId, LotId, HasOwnership and IncludeClosed.
        operationId: TenancyRequesttenancies_Get
        parameters:
          - name: Accept
            in: header
            value: application/json
        successCriteria:
          - condition: $statusCode == 200
      - stepId: sync-inspections
        description: Inspections changed since the cursor.
        operationId: ChangedInspectionsRequestinspections_Get
        parameters:
          - name: Accept
            in: header
            value: application/json
          - name: Timestamp
            in: query
            value: $inputs.timestamp
        successCriteria:
          - condition: $statusCode == 200
      - stepId: sync-jobtasks
        description: Maintenance work orders changed since the cursor, in the newer v2 shape.
        operationId: ChangedJobTaskV2Requestjobtasks_Get
        parameters:
          - name: Accept
            in: header
            value: application/json
          - name: Timestamp
            in: query
            value: $inputs.timestamp
        successCriteria:
          - condition: $statusCode == 200
      - stepId: sync-tasks
        description: General property-management tasks changed since the cursor.
        operationId: ChangedTasksRequesttasks_Get
        parameters:
          - name: Accept
            in: header
            value: application/json
          - name: Timestamp
            in: query
            value: $inputs.timestamp
        successCriteria:
          - condition: $statusCode == 200
  - workflowId: disconnect-portfolio
    summary: Sever the integration's connection to the customer's current portfolio.
    description: >-
      Cannot be undone. The current access token is invalidated and the portfolio user must choose to
      reconnect. Run this on teardown or revocation only — never as error handling.
    steps:
      - stepId: disconnect
        operationId: DisconnectPortfolioRequestportfoliosdisconnect_Delete
        parameters:
          - name: Accept
            in: header
            value: application/json
        successCriteria:
          - condition: $statusCode == 200