This guide helps you troubleshoot order data anomalies, specifically focusing on address formatting and geocoding issues. Use this reference to trace how data mutates across the order lifecycle and identify which workflow steps are responsible for specific column changes.

Workflow Architecture

The NOE Address Fixer operates as a linear, five-step pipeline. Understanding this sequence is critical for isolating where data mutations occur.

flowchart TD
    A["1. Catch Webhook"] -->|Receives Item ID| B["2. Read Monday.com Item"]
    B -->|Raw Address| C["3. Python Parser"]
    C -->|Cleaned Address| D["4. Google Geocoding API"]
    D -->|Lat/Long & Formatted Address| E["5. Update Monday.com Item"]
    
    style C stroke:#3b82f6,stroke-width:2px
    style D stroke:#10b981,stroke-width:2px

Hardcoded Credentials & Paused States
The Google Geocoding API key is currently hardcoded in the Step 4 request rather than pulled from a secure variable. Additionally, action steps may occasionally be paused in Zapier for testing. Always verify the live Zap status if automations appear completely unresponsive.

Data Lifecycle: What changes what?

If you are wondering "What changed this column?", refer to this lifecycle map. All downstream modifications operate on the single monday.com item (pulse ID) provided by the initial webhook.

Monday.com ColumnRead/WriteModified ByDescription of Mutation
text_mky5xz73 (Raw Address)Read & WriteStep 2 (Read), Step 5 (Write)Serves as the initial raw input. Step 5 overwrites this same column with the fully assembled, cleaned address.
Location ColumnWriteStep 5Populated with the geocoded Latitude, Longitude, and formatted address from the Google API (Step 4).
Street, City, State, ZIPWriteStep 5Populated using the parsed, title-cased outputs from the Python script (Step 3).
UnitWriteStep 5Populated by Step 3's extraction logic. Junk values (-, n/a) are explicitly filtered out.
Status / Color ColumnsWriteStep 5Explicitly cleared (set to empty or -) to wipe out prior manual entries and reset the order state.

Troubleshooting Common Symptoms

When order data looks incorrect, expand the symptom below to find the root cause and the specific workflow step responsible.

Symptom: Unit numbers are missing or dropped

Likely Culprit: Step 3 (Python Parser)

The Python script attempts to extract unit numbers from house number suffixes (e.g., 1613A) or internal markers (#, Unit, Apt, Ste, Suite, Lot).

  • If the user entered a unit without a recognized marker (e.g., 123 Main St 4B), the script may fail to extract it.

  • The script also intentionally filters out placeholder values like -, none, n/a, or null. If a user typed one of these, it is dropped by design so junk data isn't written back to the board.

Symptom: Street addresses are cut off abruptly

Likely Culprit: Step 3 (Python Parser)

To clean up trailing noise, the Python script truncates the street line at the last recognized suffix (Ave, Blvd, Rd, Dr, St, etc.). If a street name naturally contains a suffix word (e.g., "Avenue of the Americas" or "Park Drive Extension"), the script may aggressively truncate the string early.

Symptom: Geocoding fails or returns the wrong state

Likely Culprit: Step 4 (Google Geocoding API)

The Google API request is strictly scoped to the United States and North Carolina using the parameter components=country:US|administrative_area:NC.

  • If an order originates outside of North Carolina, the API will either fail to resolve the address or force-match it to a similar-sounding street inside NC.

Symptom: Other columns are unexpectedly blanked out

Likely Culprit: Step 5 (Change Multiple Column Values)

This is intentional behavior. The final step explicitly clears several text and color columns to wipe out prior manual entries. If a column you need is being erased, you must remove that specific field-clearing action from Step 5 in Zapier.

Symptom: State abbreviations or names have weird capitalization

Likely Culprit: Step 3 (Python Parser)

The parser applies smart title-casing. It is hardcoded to preserve specific state abbreviations and directional suffixes (NC, SC, VA, NE, NW, SE, SW) and handles "Mc" names, hyphenated words, and apostrophes. If a new state or unusual name format is introduced, the Python dictionary may need to be updated to handle the edge case.

Diagnostic Checklist

If an order is completely failing to process, follow these steps to trace the error through the pipeline.

  1. 1

    Verify the Webhook Trigger (Step 1)

    Check the monday.com item history. Did the automation or button that fires the webhook actually trigger? Ensure the payload successfully sent the pulseId.

  2. 2

    Check Zapier Run History

    Locate the specific run in Zapier using the pulseId. If the run says "Halted" or "Failed", identify which step threw the error. If there is no run history, the Zap may be paused.

  3. 3

    Inspect Python Output (Step 3)

    Look at the Data Out tab for the Python step in Zapier. Verify the structured object (streetOnly, propertyAddress, city, state, zip, unitOnly). If the data is mangled here, the raw address format was too messy for the current regex logic.

  4. 4

    Validate Google API Response (Step 4)

    Check the Data In and Data Out for the Google Geocoding step. Ensure the fullAddress passed to Google was correct, and that Google didn't return a ZERO_RESULTS error due to the North Carolina boundary restriction.