Skip to content
Workflows

An automation engine for every campaign decision you make.

Build rules, templates, and step-based workflows that respond to performance, budget, and time triggers — pause campaigns, shift budgets, swap creatives, or notify the team, with branching logic and approval gates across every account and platform.

Anatomy

Three primitives. Anything you'd otherwise click through.

Trigger, condition, action. Compose them once — Grxd runs them forever.

Triggers

When to run.

  • PerformanceROAS < 2.0 · 24h
  • Budget eventSpend ≥ 80% cap
  • ScheduleDaily 09:00 EST
  • LifecycleCampaign goes live
  • WebhookPOST /hooks/inv
  • WorkflowOn run complete
Conditions

Decide what's true.

ANDORNOT
  • CTR < 1.2%
  • Spend ≥ 80% of cap
  • Frequency > 3.5
  • Tag = "evergreen"
  • Days since launch < 7
  • CPA > target × 1.25
Actions

Do the thing.

  • Pause / resumeRun
  • Adjust budgetRun
  • Swap creativeRun
  • NotifyRun
  • Trigger workflowRun
  • Apply tagRun
Step builder

Composable steps — not a blank canvas.

Typed blocks, top-down. They snap in. None of them dangle.

Pause underperforming · Q2 Acquisition
Draft v3
  1. Trigger · scheduleEvery day at 09:00 EST
  2. ConditionROAS < 2.0 AND spend ≥ 80% of cap
  3. BranchTwo lanes from one decision.
    IF · trueROAS < 2 · spend high
    • ActionPause campaign
    • Notify#growth-ops
    ELSEotherwise
    • Action−15% daily budget
  4. Wait24h, then re-check
  5. Approval gate@lead-buyer approves before pause
Save & enableAdd stepDry run
Step types

Composable, not free-form.

  • Trigger metric · schedule · event · hook.
  • Condition AND / OR / NOT.
  • Branch IF / ELSE / ELSE-IF.
  • Action pause · budget · creative · tag.
  • Wait duration or until-state.
  • Approval human gate.
  • Sub-workflow call another inline.
  • Notify Slack · email · webhook.
Templates

Start from a known-good. Edit anything.

Two dozen templates ship with Grxd — pause rules, budget guards, creative rotators, anomaly alerts, end-of-day rollups. Copy, tune the thresholds, save it as your own.

Template library
Use template
  • Pause underperformingPerformance
    Live
    TriggerROAS < 2 for 48h
    ActionPause + notify
  • Budget protectorBudget
    Live
    TriggerSpend ≥ 90% of cap
    Action−25% daily budget
  • Creative rotatorCreative
    Available
    TriggerFrequency > 3.5
    ActionSwap to next creative
  • End-of-day rollupReporting
    Available
    TriggerDaily 17:00 EST
    ActionSlack digest
  • Scaling green-lightPerformance
    Live
    TriggerROAS > 4 for 24h
    Action+20% budget · approval
  • Anomaly alertPacing
    Available
    TriggerSpend pace anomaly
    ActionNotify · email + Slack
  • New-launch warm-upLifecycle
    Custom
    TriggerCampaign goes live
    ActionHold 7d · enable workflows
Scope

Run anywhere from a single ad to every account.

One definition, any level. Inherit down, override at any node, exclude where it doesn't fit.

Hierarchy

From one ad to every account.

  • GlobalAcross every workspace3workflows
  • WorkspaceAcme7workflows
  • ClientNorth Star Co.12workflows
  • CampaignSpring brand awareness4workflows
  • Ad set25–34 · urban · iOS1workflows
  • AdHero video v3workflows
Picks up automatically

Set once. Honored everywhere.

  • Tags scope by label, not by tree.
  • Inheritance children pick up parent rules.
  • Override loosen or tighten one without forking.
  • Exclusions carve out specific accounts or ads.
  • Cross-workspace share with permissioning.
Safety rails

Try it dry. Gate the rest.

Dry-run on real data. Gate behind a human. Guardrails hold the line whether anyone's watching or not.

Dry run · previewGenerated 30s ago

Pause underperforming · Q2 Acquisition

Client · North Star · 24h horizon
  • Pause 3 ad sets $1,240/day · all > 7d old
  • Notify #growth-ops with the diff
  • No creatives modified budgets + status only
  • Within guardrails all four checks pass
ForecastCPA −9% vs. last week88% confidence
Approve & runScheduleOpen in builder
Run mode

Pick the level. Set the limits.

  • Manual runClick to run. Useful while you're tuning a new rule.
  • Approval requiredWorkflow runs to the gate, then waits on a human.
  • Auto within guardrailsRun end-to-end while every limit holds.
Guardrails
  • Max changes per cycle cap touches per run.
  • Quiet hours 9pm – 7am local.
  • Cool-down min gap between runs.
  • Hands off new launches < 7 days old.
  • Outcome floors auto-disable on breach.
  • Per-account ceiling hard spend cap.
Execution log

Every run, every change, every reason.

A full audit trail of what fired, what it changed, and why. Diff any run. Re-run from any point. Roll back the rest.

Execution log · last 6 runs
Live
Last run3 min ago
Next runin 27 min
Runs · 24h148
  • Budget protectorSuccess
    09:42Spend ≥ 90% of cap
    −25% applied to 4 ad sets
  • Pause underperformingPending
    09:30ROAS < 2 for 48h
    Awaiting approval · @lead-buyer
  • Creative rotatorSuccess
    09:15Frequency > 3.5
    Swapped 2 creatives · Hero v3 → v4
  • End-of-day rollupSuccess
    08:00Daily 17:00 EST
    Slack digest delivered
  • Scaling green-lightSkipped
    07:42ROAS > 4 for 24h
    No-op · guardrail (< 7d old)
  • Anomaly alertSuccess
    07:00Spend pace anomaly
    Email + Slack sent
Join the waitlist

Stop juggling tabs. Start running marketing.

Claim your spot in line for launch.

Be first in line at launch. No spam, ever.