---
title: 11.24 Workflow Pitfalls and Golden Rules
description: Check these before publishing. Each one comes from a real support case.
url: "https://peikly.com/docs/workflow-pitfalls-and-golden-rules/"
updated: "2026-10-07"
category: Automation Workflows
tags:
  - Manual sync
---

# 11.24 Workflow Pitfalls and Golden Rules

Check these before publishing. Each one comes from a real support case.

1. **WhatsApp message triggers: Add/Upsert Contact first.** Unknown numbers start the run without a contact, so sends, tags and contact conditions fail until that step runs ([11.11](/docs/activity-add-upsert-contact/)).
2. **Plain-text WhatsApp only as a reply.** Free text is delivered only within 24 hours of the customer's last message. Use templates after delays or on other triggers ([11.16](/docs/activity-send-whatsapp-message/)).
3. **Keep WhatsApp Channel on Auto for replies.** It answers from the number the customer wrote to.
4. **Every step must be connected.** Saving is blocked while a step is not reachable from **Start** ([11.5](/docs/how-steps-connect-order-branches-and-ending/)).
5. **Shared follow-ups go at the end.** When several replies need the same tags, connect every reply into the same final steps instead of copying them into each branch.
6. **Short keywords for Message Matches.** Long sentences with **Contains** almost never match real messages. Use **Contains any of** with several keywords ([11.20](/docs/condition-message-matches/)).
7. **Message triggers fire on every message.** Guard one-time actions (a welcome, a lead assignment) with **Has Tag** plus **Add Tag** ([11.21](/docs/conditions-contact-checks/)).
8. **Contact Updated also fires on every inbound message.** Don't use it for "contact edited" logic that must run rarely.
9. **Never start a campaign from a per-contact workflow.** **Start Email Camp.** and **Start WA Camp.** send to the whole audience on every run ([11.18](/docs/activities-campaigns-and-broadcasts/)).
10. **Prefer Add/Upsert Contact over Create Lead.** Create Lead does not check for duplicates.
11. **Store events trigger twice.** The specific trigger and **External Integration Event Received** both fire. Filter or choose one ([11.8](/docs/triggers-store-and-website-events-broadcasts-and-schedules/)).
12. **Publish to go live.** Changes run only after you save with **Publish this version now** on ([11.28](/docs/edit-a-workflow/)).
13. **Test before you rely on it.** Send the trigger message from your own phone, then check **Last 10 executions** ([11.31](/docs/view-execution-history/)).
14. **Overlapping workflows all run.** Two active workflows on the same trigger both handle every event, and the customer may get two replies. Combine them into one workflow with conditions.
