NexaModus Automations
Automation you can audit after it ran.
A visual editor for trigger, condition, action, wait and AI — with an immutable version on every publish, simulation before going live, and loop protection from day one.
Capabilities
What the module does
Every item below describes behavior defined in the product plan — not a wish list from a sales page.
A visual editor with real nodes
Trigger, condition, action, wait, AI and end. What's drawn on screen is what runs — it's not documentation for a flow that lives somewhere else.
Triggers and actions that already exist in the domain
Fires on contact created, opportunity created, stage changed, message received and booking created. Acts by adding a tag, assigning an owner, creating a task, changing stage, notifying internally or calling the AI.
Publishing creates an immutable version
Every run points to the version that ran. Fixing today's automation doesn't rewrite what happened yesterday, and the history stays explainable.
Simulation before going live
Runs against a fictional record and shows the path taken. It's cheaper to catch the wrong branch in the simulator than in the customer's inbox.
Loop protection, by default
Correlation, causation, maximum depth, duplicate protection and rate limiting. An automation that triggers an automation that triggers an automation is a known risk, and it's treated as one.
On screen
How it looks to whoever's operating it
What's drawn on screen is what runs. It's not documentation for a flow that lives somewhere else.
Trigger
message.received
WhatsApp channel · after hours
Condition
contact without an open opportunity
true → continue; false → end
Action
add_tag
tag "after hours"
AI
run_ai
classify intent and summarize the conversation
Wait
wait
until 8am the next business day
Action
assign_user + create_task
round-robin owner · due in 2h
Publishing creates an immutable version. Yesterday's runs keep pointing to v3.
Triggers
What starts a flow
Events from the domain itself — not generic webhooks someone has to translate afterward.
- contact.created
- opportunity.created
- pipeline.stage.changed
- message.received
- appointment.created
Actions
What a flow can do
Actions that write where the team already works, with the same permissions someone would have doing it by hand.
- add_tag
- assign_user
- create_task
- change_stage
- send_internal_notification
- run_ai
External messages have their own rule
Sending a message to the customer through automation only runs when a real channel is actually configured. Without a channel, the step stays visibly pending in the run — the platform doesn't mark as sent what didn't go out.
Execution safety
Automation is code that runs on its own
And code that runs on its own needs a limit, a trail and a way to stop. These six items come built in, not as advanced configuration.
- Correlation
- Every run carries the identifier of the fact that triggered it, start to finish.
- Causation
- An automation triggered by another one keeps track of what triggered it. That's how a loop becomes visible before it turns into an incident.
- Maximum depth
- A chain of automations has a ceiling. Exceeding it stops the run and logs it.
- Duplicate protection
- The same event doesn't run the same flow twice by accident of redelivery.
- Rate limit
- A burst of events doesn't turn into a burst of messages. The limit protects the customer on the other end.
- Simulation
- Runs against a fictional record and shows the path taken, before any real effect.
Publishing creates an immutable version
Every run points to the version that ran. Fixing today's automation doesn't rewrite what happened yesterday, and the answer to “why did this customer get this?” still exists six months later.
Integration
How it connects with the other modules
This is the part that separates a platform from a bundle of tools sold together. None of the connections below go through an export or an intermediate integration.
- Automations → SupportA received message comes in as a trigger, with the channel preserved.
- Automations → CRMActions write where the team already works: tag, task, stage, owner.
- Automations → AIrun_ai puts the agent in the middle of the flow, with the same permissions it has everywhere else.
This module's state, with no polish
Sending an external message through automation only runs when a real channel is actually configured. Without a channel, the step stays visibly pending instead of pretending it sent.
Want to see Automations in your operation?
Tell us how the process works today. The conversation starts there, not with a proposal.