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:2pxHardcoded 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 Column | Read/Write | Modified By | Description of Mutation |
|---|---|---|---|
text_mky5xz73 (Raw Address) | Read & Write | Step 2 (Read), Step 5 (Write) | Serves as the initial raw input. Step 5 overwrites this same column with the fully assembled, cleaned address. |
| Location Column | Write | Step 5 | Populated with the geocoded Latitude, Longitude, and formatted address from the Google API (Step 4). |
| Street, City, State, ZIP | Write | Step 5 | Populated using the parsed, title-cased outputs from the Python script (Step 3). |
| Unit | Write | Step 5 | Populated by Step 3's extraction logic. Junk values (-, n/a) are explicitly filtered out. |
| Status / Color Columns | Write | Step 5 | Explicitly 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, ornull. 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
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
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
Inspect Python Output (Step 3)
Look at the
Data Outtab 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
Validate Google API Response (Step 4)
Check the
Data InandData Outfor the Google Geocoding step. Ensure thefullAddresspassed to Google was correct, and that Google didn't return aZERO_RESULTSerror due to the North Carolina boundary restriction.