Documentation

This repository serves as the central source of truth for our Zapier automations. It is organized into subfolders representing different business domains (such as Orders, Fulfillment, or Invoicing), with each JSON file containing the configuration and metadata for a single Zap.

Use this guide to understand how the repository is structured, how to trace data mutations across an order's lifecycle, and how to read the documentation for individual Zaps.

Repository Organization

The repository is divided into subfolders based on the core monday.com board or business process the Zaps operate on.

Repository Structure

  • orders/ — Zaps triggered by or modifying the Orders board (e.g., noe_address_fixer.json).

  • invoices/ — Zaps handling billing and financial data syncs.

  • notifications/ — Zaps dedicated to Slack or email alerts.

Each JSON file represents a complete Zap export. When you need to understand a workflow, locate the corresponding JSON file and its accompanying documentation.

Tracing Data Modifications

To answer the question, "What changes column X across the lifecycle of an order?", refer to the data mapping tables maintained in each subfolder. Because Zaps operate linearly, identifying the modifying Zap is the first step in troubleshooting.

Here is an example of how data points on the Orders board map to their modifying Zaps:

Column / Data PointLifecycle StageModifying ZapAction Performed
Address (Raw)Order CreationWebform / Manual EntryInitial data capture.
Location (Lat/Long)ProcessingNOE Address FixerGeocodes raw text and writes coordinates.
City / State / ZIPProcessingNOE Address FixerParses raw address and updates individual columns.
StatusFulfillmentOrder Status SyncUpdates status based on external shipping webhooks.

If a column contains unexpected data, find the column name in the mapping table above to identify which Zap has write-access to that field.

Anatomy of a Zap Document

Every Zap in this repository is documented using a standardized format to help you quickly understand its purpose, its pipeline, and the specific fields it reads or writes.

Using the NOE Address Fixer as an example, here is how to read a Zap's documentation:

1. Executive Summary

This section defines the core objective. For example, the NOE Address Fixer takes messy address text from the Orders board, runs it through a Python parser to normalize the formatting, geocodes it via Google Maps, and pushes the corrected values (and coordinates) back to the monday.com item.

2. Workflow Pipeline

A visual breakdown of the Zap's execution order. Zaps are linear; understanding the sequence of operations helps pinpoint where data might be failing.

flowchart TD
    A["1: Catch Hook (monday.com ID)"] --> B["2: Get Column Values (monday.com)"]
    B --> C["3: Format Address (Python)"]
    C --> D["4: Get Lat/Long (Google Geocoding)"]
    D --> E["5: Change Multiple Columns (monday.com)"]

3. Step-by-Step Breakdown

This section details exactly what happens at each node in the pipeline, including API calls, code execution, and data transformations.

  1. 1

    Trigger: Catch Hook

    Expects a raw webhook payload containing a monday.com item/pulse ID (event.pulseId).

  2. 2

    Read: Get Column Values

    Looks up the Orders board item matching the pulseId and reads the raw address text stored in column text_mky5xz73.

  3. 3

    Process: Format Address (Python)

    Strips control characters, splits the string into components, expands abbreviations (e.g., Ave → Avenue), applies smart title-casing, and extracts unit numbers. Returns a structured JSON object.

  4. 4

    Enrich: Google Geocoding API

    Sends the cleaned address to maps.googleapis.com (restricted to US/NC) to retrieve resolved latitude and longitude coordinates.

  5. 5

    Write: Change Multiple Column Values

    Overwrites the original monday.com item. Updates the Location column with coordinates, populates individual text columns (City, State, ZIP), and clears temporary status columns.

4. Practical Notes

Look here for caveats, hardcoded credentials, or deployment statuses. For instance, if a Zap relies on a hardcoded API key instead of a stored environment variable, it will be noted here.

Troubleshooting Common Issues

When you encounter an issue with order data, use the symptoms to trace back to the responsible Zap.

Symptom: Address fields are blank or contain junk data

Likely Cause: The Python parsing step in the NOE Address Fixer failed to recognize the format of the raw address.
Resolution: Check the Zapier run history for the specific pulseId. Verify if the raw input contained unusual characters or lacked delimiters (like commas) that the Python script requires to split the string.

Symptom: The Location column is missing a Map pin (Lat/Long)

Likely Cause: The Google Geocoding API step failed.
Resolution: This usually happens if the address is a P.O. Box (which cannot be geocoded) or if the hardcoded Google API key has expired or hit its rate limit. Check Step 4 of the NOE Address Fixer execution logs.

Symptom: A Zap is not triggering at all

Likely Cause: The upstream webhook was not fired.
Resolution: For webhook-triggered Zaps (like NOE Address Fixer), the trigger relies on a monday.com automation (e.g., "When Status changes to X, send a webhook"). Verify that the native monday.com automation is active and configured with the correct Zapier webhook URL.

Always confirm a Zap's on/off state directly in the Zapier dashboard. The JSON exports in this repository capture the Zap's state at the time of export, which may reflect a paused or testing state.