Cross-Provider Workflow

Geocode and Store Location in Airtable

Version 1.0.0

Geocode an address with positionstack, then store the result in Airtable.

1 workflow 2 source APIs 2 providers
View Spec View on GitHub ArazzoWorkflowsCross-Provider

Providers Orchestrated

positionstack airtable

Workflows

geocode-store-airtable
Geocode an address and store the coordinates in Airtable.
Forward-geocodes an address with positionstack and creates a record in an Airtable base capturing the label, latitude, and longitude.
2 steps inputs: address, baseId, tableIdOrName outputs: label, recordId
1
geocode-address
$sourceDescriptions.positionstackApi.forwardGeocode
Forward-geocode the supplied address into coordinates.
2
store-record
$sourceDescriptions.airtableApi.createRecords
Create an Airtable record with the geocoded location.

Source API Descriptions

Arazzo Workflow Specification

geo-positionstack-airtable-store-location.yml Raw ↑
arazzo: 1.0.1
info:
  title: Geocode and Store Location in Airtable
  summary: Geocode an address with positionstack, then store the result in Airtable.
  description: >-
    A geo data-capture workflow that forward-geocodes an address with positionstack
    and persists the resolved coordinates and structured address into an Airtable base
    by creating a record. Demonstrates pairing a geocoding provider with a no-code
    database provider to build a queryable location dataset.
  version: 1.0.0
sourceDescriptions:
  - name: positionstackApi
    url: https://raw.githubusercontent.com/api-evangelist/positionstack/refs/heads/main/openapi/positionstack-openapi.yml
    type: openapi
  - name: airtableApi
    url: https://raw.githubusercontent.com/api-evangelist/airtable/refs/heads/main/openapi/airtable-airtable-api-openapi.yml
    type: openapi
workflows:
  - workflowId: geocode-store-airtable
    summary: Geocode an address and store the coordinates in Airtable.
    description: >-
      Forward-geocodes an address with positionstack and creates a record in an
      Airtable base capturing the label, latitude, and longitude.
    inputs:
      type: object
      properties:
        address:
          type: string
        baseId:
          type: string
        tableIdOrName:
          type: string
    steps:
      - stepId: geocode-address
        description: Forward-geocode the supplied address into coordinates.
        operationId: $sourceDescriptions.positionstackApi.forwardGeocode
        parameters:
          - name: query
            in: query
            value: $inputs.address
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          latitude: $response.body#/data/0/latitude
          longitude: $response.body#/data/0/longitude
          label: $response.body#/data/0/label
      - stepId: store-record
        description: Create an Airtable record with the geocoded location.
        operationId: $sourceDescriptions.airtableApi.createRecords
        parameters:
          - name: baseId
            in: path
            value: $inputs.baseId
          - name: tableIdOrName
            in: path
            value: $inputs.tableIdOrName
        requestBody:
          contentType: application/json
          payload:
            records:
              - fields:
                  Label: $steps.geocode-address.outputs.label
                  Latitude: $steps.geocode-address.outputs.latitude
                  Longitude: $steps.geocode-address.outputs.longitude
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          recordId: $response.body#/records/0/id
    outputs:
      label: $steps.geocode-address.outputs.label
      recordId: $steps.store-record.outputs.recordId