Skip to content

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

Automations · v4 published · 1,248 runsDemo data

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.

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.