AllyOneCRM / Journey vs. Chat Flow vs. Automation
Which engine to use
All three solve "do something automatically" — the real difference is in what triggers it and on what time scale.
Rule of thumb
A group of contacts over days/weeks → Journey. An individual conversation, right now → Chat Flow. A one-off event, without drawing a flow → Automation.
Comparison
| Journey | Chat Flow | Automation | |
|---|---|---|---|
| Triggered by | Audience event (contact created, tag added, joined a list) | Conversation event (new conversation, message received) | A single system event |
| Time scale | Days to weeks | Real time, inside the conversation | Instant, one action |
| Interface | Visual canvas with nodes | Visual canvas with nodes | Declarative form — no canvas |
| Has wait/condition? | Yes — wait, condition, A/B split | Yes — delay, condition | No — it's always 1 event → N actions |
| Frequency control | Per journey rule | Per conversation session | once_per_contact, cooldown_hours |
Journey — real nodes
trigger: manualcontact_createdtag_addedlist_added
waitconditionab_splitsend (WhatsApp/email/social)
add_tagadd_to_listupdate_scoreexit
Chat Flow — real nodes
trigger_new_conversationsend_textsend_buttonssend_audio
ai_replycollect_emailcollect_phonecollect_input
conditiondelaycrm_create_dealcrm_enroll_journey
transfer_agentreopen_conversation
A Chat Flow can enroll the contact in a Journey (crm_enroll_journey) — the two engines connect when it makes sense, without duplicating logic.
Automations — anatomy
{
"trigger_event": "deal.status_changed",
"filters": [{ "field": "deal.stage", "op": "eq", "value": "won" }],
"actions": [
{ "type": "add_tag", "value": "active-customer" },
{ "type": "add_to_list", "value": "onboarding" }
],
"once_per_contact": true,
"cooldown_hours": 0
}
