Workflows
Most people hear "workflow" and picture Zapier. Trakkr workflows look like that on the surface (a trigger, some conditions, an action), but the things they listen for and the things they can do are different. A Zapier zap fires when a row appears in a sheet or an email arrives in a folder. A Trakkr workflow fires when your AI visibility moves: a competitor takes a prompt you were winning, ChatGPT cites one of your pages for the first time, GPTBot stops crawling your site, a citation source you'd been tracking goes cold.
The action side is just as native. Yes, you can send a Slack ping or hit a webhook. But you can also kick off an AI-written article aimed at the prompt you just lost, draft an outreach email to the source that just cited you, push a new prompt into tracking, or generate a stakeholder PDF and mail it Monday morning. The whole loop, from "something changed in AI" to "we did something about it," can run without you touching the dashboard.
What a workflow actually is
A workflow has three pieces.
- A trigger. One event, with conditions you set. Example: visibility dropped by 10% or more on ChatGPT. The trigger only fires when an event matching that shape lands.
- Conditions on the trigger. Thresholds, scopes, allowlists, severity gates. You're not chaining
if/and/orrules in a separate step, you're tuning the trigger itself so it doesn't pull on every twitch. - Actions. An ordered list of one or more things to do when the trigger fires. Each action has its own config. They run top to bottom in the same run.
Workflows in Trakkr are linear, not graphs. No branches, no per-action conditions, no loops. If you need different actions for different scenarios, that's two workflows on the same trigger with different conditions. That constraint is deliberate, it keeps the editor readable and the runs debuggable.
The trigger catalog
There are thirty-odd triggers grouped into five families. You pick one per workflow.
Insights & monitoring
The "your AI visibility moved" family. These fire off your daily Prompts run and the metrics it produces.
| Trigger | Fires when |
|---|---|
| Visibility Changes | Your overall visibility score moves beyond a threshold (with direction and per-model filters) |
| Competitor Activity | A specific competitor (or any competitor) gains or loses visibility past a threshold |
| Rank Changed | Your position on a prompt moves by N spots, or crosses a "top 5" boundary |
| Perception Shift | A perception attribute score moves significantly |
| Prompt Gap | A prompt where AI discusses your category but doesn't recommend you, with a minimum competitor count |
| Audit Score Dropped | A site's AI-readiness audit drops by N points (filter by severity) |
Discovery & citations
The "something new appeared" family.
| Trigger | Fires when |
|---|---|
| New Citation | A citation source is discovered (filter by minimum domain authority or specific domains) |
| New Opportunity | A high-fit outreach opportunity is detected (filter by fit score, DA) |
| Research Completed | A research run finishes (filter by minimum gaps found or visibility change) |
| Competitor Added | A new competitor enters tracking, manually or via research |
| Page Cited by AI | ChatGPT, Claude, or Perplexity cites one of your pages in a conversation (filter by model, URL pattern, first-time-only) |
| Citation Lost | A page that AI had been citing stops appearing (filter by model, minimum days previously cited) |
Crawler & AI access
The "something is happening at the crawler layer" family. These need Crawlers or AI Pages data flowing.
| Trigger | Fires when |
|---|---|
| AI Crawler Activity Spike | An AI bot's traffic jumps N× over its baseline (per-bot or per-category allowlist, optional URL pattern) |
| AI Bot Discovers a Page | GPTBot, ClaudeBot, etc. crawls a matching URL for the first time |
| AI Bot Goes Silent | A bot hasn't visited in N days (usually a sign that robots.txt or your server broke) |
| AI Crawler Errors Spike | Bots start hitting 4xx or 5xx pages above a threshold |
| Bot Access Changed | A bot gets blocked or unblocked in robots.txt |
| Cited Page Blocked | A page AI is actively citing gets blocked, with a minimum citation count |
| AI Referral Traffic | ChatGPT, Perplexity, or another AI tool sends referral traffic (filter by source, first-referral-only, min visits) |
Content
The "Trakkr produced or shipped something" family.
| Trigger | Fires when |
|---|---|
| Article Generated | An article finishes generating (filter by source, minimum word count) |
| Article Published | An article is marked published (filter by destination) |
| Campaign Completed | A multi-article campaign finishes (filter by status, min article count) |
| Report Ready | A daily or weekly report finishes |
System & actions
| Trigger | Fires when |
|---|---|
| Action Created | A new Action surfaces in your feed (filter by category, source, priority level, score, effort, impact, keyword) |
| Action Completed | A team member marks an Action done (same filter set) |
| Scheduled | On a schedule you define: daily / weekly / monthly, with hour and timezone |
| Brand Created | A new brand is added to your account |
The action catalog
When the trigger fires, the run executes its actions top to bottom. You can mix any of these in one workflow.
Notifications
| Action | What it does | Needs |
|---|---|---|
| Send Email | Email to one or more recipients, with optional AI summary, reply-to, cc/bcc, and digest batching (instant / 15min / hourly / daily) | Nothing |
| Send to Slack | Post to a channel, simple text or rich blocks, with @ mentions and an optional "View in Trakkr" button | Slack OAuth |
| Send to Teams | Post to a Teams channel, simple text or Adaptive Card | Teams webhook URL |
| Webhook | POST / PUT / PATCH to any URL with custom headers, auth (bearer / basic / API key), and payload template | Nothing |
Trakkr-native actions
| Action | What it does |
|---|---|
| Generate Article | Write a full article aimed at a prompt from the trigger event (or a custom prompt). Picks a template automatically based on the trigger type, or use your own |
| Create Campaign | Generate a coordinated batch of articles for the top prompts in the event (or top gaps, or a custom list). Sequential or parallel |
| Generate Summary | AI-written briefing of what just happened. Short or detailed, executive / technical / general audience |
| PDF Report | Build a formatted PDF (visibility, competitor, full, executive, weekly, stakeholder, client). Optionally emails it |
| Draft Outreach | Personalized outreach email aimed at a citation or opportunity, with a chosen purpose (citation request, partnership, data share, guest post, correction) and tone |
| Add Prompt to Tracking | Push prompts from the event straight into your active list |
Integrations
| Action | What it does | Needs |
|---|---|---|
| Publish to your site | Push an article to a connected CMS | A connected site |
| Google Sheets | Append a row to a connected sheet | Google OAuth |
| Create Work Item | Route a task or issue into Linear, GitHub, Notion, Asana, Jira, Trello, or Slack | Provider OAuth |
| Notion Page | Create a page in a Notion database with templated title, body, and properties | Notion OAuth |
| Salesforce Task | Create or update a Salesforce record | Salesforce credentials |
| HubSpot Task | Create or update a HubSpot record | HubSpot credentials |
| Send to CRM | Generic CRM record | CRM credentials |
The integrations themselves live in Integrations, which is where you connect Slack, Notion, Google Sheets, Linear, and friends. A workflow can't use what isn't connected, so the editor will tell you what's missing when you pick an action.
Building one
The flow is the same whether you start from a template or from scratch.
From the Workflows page, hit New Workflow (or Use template, more on that below). The editor opens with three sections stacked:
- Trigger. A command-palette-style picker grouped by Insights, Discovery, Crawler, Content, System. Pick one, the relevant condition fields appear inline.
- Actions. Click Add action to drop one in. Repeat for as many as you need. Each one expands into its own config card.
- Settings. Cooldown, retries, failure notification, and the workflow's name and description.
Give it a name you'll recognize at 9pm when an alert fires ("Slack ping when ChatGPT loses us a prompt" beats "Workflow 4").
Testing before you ship
Two modes, both run from the editor.
| Mode | What it does | When to use |
|---|---|---|
| Preview | Builds a sample event, evaluates whether the trigger would fire, and prints a one-line preview of each action ("Would post rich message to Slack channel: #ai-alerts"). Doesn't actually send anything. | Sanity check trigger conditions and confirm actions are configured |
| Live test | Same sample event, but actually executes every action: real Slack message, real email, real webhook POST. Needs editor permission on the brand. | Before you ship anything that pages a human |
:::callout warn Live test really sends. If the workflow posts to #exec-alerts, a live test will too. Use a sandbox channel for the first run, or swap the recipient to yourself.
Templates
The template gallery sits inside the New Workflow flow. Each one is a pre-wired trigger + action combo you can use as-is or tweak.
| Template | What it does |
|---|---|
| Visibility Drop Alert | Visibility down 10%+ → AI summary + email |
| Weekly Stakeholder Report | Mondays at 9am ET → PDF report → email |
| Competitor Surge Alert | Any competitor up 15%+ → summary + Slack |
| New Actions to Slack | New high-priority Action created → Slack |
| ChatGPT or Claude saw your launch | GPTBot, ClaudeBot, PerplexityBot, or OAI-SearchBot crawls /blog/*, /products/*, /pricing*, or /launch* for the first time → Slack |
| AI bot stopped visiting | GPTBot or ClaudeBot silent 7+ days → email |
| AI crawlers hitting broken pages | 4xx/5xx error rate spikes for major bots → email |
| AI crawler activity spike | Any major bot 2× above baseline → Slack |
| Your page was cited by AI | First-time citation of one of your pages → Slack |
| Lost a citation in AI | A page cited for 3+ days stops appearing → email |
| AI bot access changed in robots.txt | GPTBot, ClaudeBot, PerplexityBot, or OAI-SearchBot blocked or unblocked → email + Slack |
| Cited page blocked from AI | A page with 1+ citation gets blocked → email |
| AI is sending you traffic | LLM referral traffic detected → Slack |
Click Use Template, fill in the recipient / channel / URL fields, save. Same editor, same tests, just with a head start.
Workflows vs Actions
Two automation surfaces, different jobs.
| Actions | Workflows | |
|---|---|---|
| What it gives you | A prioritized to-do list AI generated from your data | A rule that runs when something happens |
| Who decides what to do | You (Actions is recommendations) | The workflow does it automatically |
| When it runs | Surfaced when patterns emerge | When the trigger event fires |
| Best for | Strategic, judgement-y work | Repeatable, mechanical responses |
They pair well. Actions surfaces "ChatGPT lost us this prompt, here's how to fix it." A workflow on the same action_created trigger pings Slack so the right person sees it the moment it lands.
If you keep finding yourself doing the same thing to the same kind of Action, click Automate on an Action card. That opens a shortcut into the workflow editor pre-filled with an action_created trigger filtered to that shape, with your usual destination (email, Slack, webhook, task, sheet) ready to go.
Plan limits
| Plan | Active workflows per brand |
|---|---|
| Free | 0 (paid plan required) |
| Trial | 1 |
| Growth | 3 |
| Scale | Unlimited |
Limits apply to active workflows. Paused and deleted workflows don't count.
Common questions
Can a workflow branch, like Zapier paths?
No. One trigger, one ordered list of actions. If you need different actions for different scenarios, create two workflows on the same trigger with different conditions.
Can I chain workflows together?
Not directly, and not by design. Most chains are better expressed as one workflow with multiple actions. If you genuinely need workflow A to fire workflow B, do it with a webhook action pointing at your own endpoint, which posts back into Trakkr's API.
Where do the events come from?
Most fire off Trakkr's daily run for that brand. Citation, perception, rank, competitor, and prompt-gap events come out of the 3am UTC report. Crawler events fire as crawler logs land. AI-conversation citation events fire from the conversation-tracking pipeline. Scheduled triggers fire on the schedule you set, in the timezone you set.
My workflow fired but no message arrived. What's wrong?
In order of likelihood: the integration disconnected (re-auth in Integrations); the channel / recipient field is empty; the payload template is malformed JSON; the destination rate-limited you. Open the run from the Workflows list, the action log shows the exact error and the response from the target.
What's the difference between Preview and Live test?
Preview evaluates the trigger and shows you what the actions would do, no side effects. Live test actually runs every action against the real integration. Use Preview to check your logic, Live to make sure the wiring works before you ship.
Are credentials stored encrypted?
OAuth tokens are stored in the workflow_integrations table under your user account, scoped per provider. Webhook auth (bearer tokens, basic auth, API keys) is stored alongside the action config. Treat them like any other secret in Trakkr: anyone with editor access to the brand can read and trigger workflows that use them.
Can I see why a trigger didn't fire?
Yes, in the live test result. The trigger reason tells you which condition failed ("Change is positive (+3.2%) but trigger requires decrease," "Category 'content' not in filter: competitive, technical"). Use it to dial conditions in.
What's the audit log look like?
Each run stores its trigger event, every action's status (pending / running / completed / failed / skipped), per-action duration, and any error message. Run history is in the workflow detail view; for crawler-specific runs there's also a live feed on the Crawlers dashboard.
ai|Integrations|Connect Slack, Notion, Google Sheets, Linear, Salesforce, and friends so your workflows have somewhere to send things.|/learn/docs/features/integrations
visibility|Actions|See what Trakkr recommends you do next, and turn the patterns you keep acting on into workflows.|/learn/docs/features/actions