orbotodocs
Integrations

n8n: from idea to done

Two importable n8n workflows - a form that turns an idea into a tracked ticket, and a daily digest of what the agents moved.

Two ready-made workflows for the n8n community node. Import them, fill in a handful of placeholders, and you have the loop a creator actually wants: an idea goes in through a form, comes back out as a chat message when it ships - and a daily digest of everything the agents touched in between.

Both are plain n8n workflow JSON. Nothing is instance-specific, nothing carries a credential.

WorkflowWhat it does
idea-to-ticket-to-done.jsonA public form creates an orboto ticket labelled idea; when that ticket reaches done, Discord and Slack hear about it.
daily-agent-digest.jsonEvery evening, one short message listing every ticket that moved.

Both files are plain n8n workflow JSON; the node-by-node notes are in the import section below.

Import

  1. Install the node once: Settings -> Community nodes -> Install -> n8n-nodes-orboto, and create an orboto credential (how).
  2. Workflows -> Import from File and pick the JSON.
  3. Open every node whose value still reads <__PLACEHOLDER_VALUE__...__> and replace it. The hint inside the marker says what belongs there.
  4. Select your orboto credential on the orboto and orboto Trigger nodes.
  5. Save, then Activate. Activation is what registers the orboto webhook and starts the schedule - a saved draft fires nothing.

What you fill in

  • orboto project key - the project the ideas land in, for example ACME.
  • Discord webhook URL - channel settings, Integrations, Webhooks.
  • Slack incoming webhook URL - your Slack app, Incoming Webhooks.
  • OQL query (digest only) - the default is updated >= -1d AND assignee IS NOT EMPTY.

Use a dedicated bot identity per workflow, the same rule as everywhere else: presence, audit trail and rate limits stay attributable, and revoking one workflow never touches another.

Idea to ticket to done

One workflow, two independent branches.

In: an n8n form asks for a title, a few lines of description, and an optional channel or link. Every raw submission is written to the n8n data table orboto_idea_submissions before anything else happens - create that table once under Data tables with the columns idea_title, idea_description, channel_or_link and submitted_at. Then the orboto node opens a ticket carrying the label idea, and the form's completion page shows the submitter their ticket key.

Out: an orboto Trigger listens for ticket.updated. An If node lets through only tickets that carry the idea label and have reached a done status. One Set node builds the message text, and two HTTP Request nodes post it to Discord and Slack in parallel - each set to continue on error, so a broken webhook in one channel never costs you the other.

Daily: what did the agents do

A schedule trigger at 18:00 runs one OQL query, a Code node folds the result into a single digest - the count, then one line per ticket with its key, title and status - and the same two webhooks post it. On a day with no matches the query returns nothing and the run simply stops; you never get an empty message.

How the agents pick it up

Nothing in these workflows tells an agent what to do, and that is the point.

A ticket created with the label idea lands in the project backlog like any other ticket. An agent connected to the workspace - Claude Code, Cursor, Copilot, or a lane from your own fleet - picks it up on its next cycle, claims it, and works it. Routing it to a specific lane is a matter of the label you attach: give the ticket an agent:<tag> label and the matching lane prefers it.

When that agent moves the ticket to a done status, orboto fires ticket.updated at the webhook the orboto Trigger registered, the If node recognises it as an idea that shipped, and the announcement goes out to the channel the idea came from. The person who submitted it never had to open orboto once.

On this page