Paragon · Arazzo Workflow

Paragon Enable a Sync and Pull Records

Version 1.0.0

Enable a Managed Sync pipeline, poll until it has run, then read the normalized records.

1 workflow 1 source API 1 provider
View Spec View on GitHub Embedded IntegrationsIntegration InfrastructureiPaaSAI AgentsMCPIntegrationsArazzoWorkflows

Provider

paragon

Workflows

enable-sync-and-pull-records
Enable a sync, wait for it to settle, then read its normalized records.
Enables a Managed Sync pipeline, polls the sync status until it is no longer actively SYNCING, and pulls the first page of synced records.
3 steps inputs: frequency, integration, projectId, syncType outputs: nextCursor, records, status
1
enableSync
enableSync
Enable the sync pipeline for the Connected User and integration so Paragon begins fetching records on the configured schedule.
2
pollSyncStatus
getSyncStatus
Poll the sync status until the pipeline is no longer actively SYNCING, indicating the first sync has produced records.
3
pullSyncedRecords
pullSyncedRecords
Pull the first page of normalized records produced by the sync pipeline for the integration and sync type.

Source API Descriptions

Arazzo Workflow Specification

paragon-enable-sync-and-pull-records-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Paragon Enable a Sync and Pull Records
  summary: Enable a Managed Sync pipeline, poll until it has run, then read the normalized records.
  description: >-
    The end-to-end Managed Sync ingestion pattern. The workflow enables a sync
    pipeline for a Connected User and integration, polls the sync status until
    Paragon reports the pipeline has settled (no longer SYNCING), and then pulls
    the first page of normalized records for downstream use such as a RAG
    pipeline. 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: managedSyncApi
  url: ../openapi/paragon-managed-sync-api-openapi.yml
  type: openapi
workflows:
- workflowId: enable-sync-and-pull-records
  summary: Enable a sync, wait for it to settle, then read its normalized records.
  description: >-
    Enables a Managed Sync pipeline, polls the sync status until it is no longer
    actively SYNCING, and pulls the first page of synced records.
  inputs:
    type: object
    required:
    - projectId
    - integration
    - syncType
    properties:
      projectId:
        type: string
        description: Your Paragon Project ID.
      integration:
        type: string
        description: Integration identifier (e.g. googleDrive, salesforce).
      syncType:
        type: string
        description: The sync pipeline type (e.g. files, contacts, deals, tickets).
      frequency:
        type: string
        description: Optional sync frequency (e.g. 1m, 15m, 1h, 1d).
  steps:
  - stepId: enableSync
    description: >-
      Enable the sync pipeline for the Connected User and integration so
      Paragon begins fetching records on the configured schedule.
    operationId: enableSync
    parameters:
    - name: projectId
      in: path
      value: $inputs.projectId
    requestBody:
      contentType: application/json
      payload:
        integration: $inputs.integration
        syncType: $inputs.syncType
        frequency: $inputs.frequency
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      status: $response.body#/status
  - stepId: pollSyncStatus
    description: >-
      Poll the sync status until the pipeline is no longer actively SYNCING,
      indicating the first sync has produced records.
    operationId: getSyncStatus
    parameters:
    - name: projectId
      in: path
      value: $inputs.projectId
    - name: integration
      in: query
      value: $inputs.integration
    - name: syncType
      in: query
      value: $inputs.syncType
    successCriteria:
    - condition: $statusCode == 200
    - context: $response.body
      condition: $.status != 'SYNCING'
      type: jsonpath
    onSuccess:
    - name: synced
      type: goto
      stepId: pullSyncedRecords
      criteria:
      - context: $response.body
        condition: $.status != 'SYNCING'
        type: jsonpath
    onFailure:
    - name: retryStatus
      type: retry
      retryAfter: 5
      retryLimit: 30
      criteria:
      - condition: $statusCode == 200
    outputs:
      status: $response.body#/status
      lastSyncedAt: $response.body#/lastSyncedAt
      recordCount: $response.body#/recordCount
  - stepId: pullSyncedRecords
    description: >-
      Pull the first page of normalized records produced by the sync pipeline
      for the integration and sync type.
    operationId: pullSyncedRecords
    parameters:
    - name: projectId
      in: path
      value: $inputs.projectId
    - name: integration
      in: query
      value: $inputs.integration
    - name: syncType
      in: query
      value: $inputs.syncType
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      records: $response.body#/records
      nextCursor: $response.body#/nextCursor
  outputs:
    status: $steps.pollSyncStatus.outputs.status
    records: $steps.pullSyncedRecords.outputs.records
    nextCursor: $steps.pullSyncedRecords.outputs.nextCursor