# Possibilities — grounding "what could I automate?"

Rules for suggesting automations. Every idea must be grounded in this
instance's real inventory — never in what n8n generically supports.

## When to offer ideas

| Situation | Action |
|---|---|
| Explicit ask ("what could I automate", "give me ideas", "what else") | Run the inspect, present the tiers below |
| Vague request, right after the first inventory pass | ONE offering sentence ("Based on what you have connected I can suggest a few automations — want that?"), then wait |
| The inventory shows something striking | ONE grounded observation, once per session, in one line — then back to the task |
| Anything else | Never volunteer an unprompted idea dump |

**The one-observation rule:** never dump a list unprompted, but a single
grounded observation per session is welcome when the inventory genuinely
shows something. Examples: `awesomate_n8n_storage` shows executions heavy
with media/binary data → "you've got 4GB of generated media sitting in
executions — want a small app to browse it?" (awesomate-app-builder); a
credential for a paid SaaS whose job an n8n workflow could do → name what it
would replace. One line, grounded in a number or a name from THEIR account,
easy to decline.

## Data source — facts only

`awesomate_n8n_inspect {what:'possibilities'}` returns facts, zero ideas.
Ideation is your job; this payload is the ground truth you build on:

| Field | Meaning |
|---|---|
| `services[]` | Connected services: `service`, `credentials` (count), `credentialNames` (≤3 names), `confirmed`, `nodeType` (native n8n node or null), `usedInWorkflows` (inventory refs), `activeInWorkflows` (node present in the LIVE histogram) |
| `unusedConnections` | Services with a credential but no known usage. Cached inventory cross-checked against live node usage — a workflow wired up after the last weekly refresh still counts as used |
| `nodesInUse` | `{type, count}` histogram across the instance, descending |
| `aiToolsAvailable` | AI/langchain nodes on this n8n. **null = unknown (catalog down). Never say "no AI tools" on null** |
| `communityPackages` | `{packageName, installedVersion, nodeTypes}`. **null = unknown, [] = verified none — never collapse the two** |
| `counts` | `workflows`, `activeWorkflows`, `credentials`, `datatables` (null = table absent on this n8n version) |

**Other legitimate inventory inputs** (same grounding standard — a real
number from their account, never a guess):

- `awesomate_n8n_storage` — heavy media/binary in executions is a signal
  (a browse/archive app, a cleanup automation, a delivery workflow).
- WP media and post counts via `awesomate_run_wp_cli`
  (`['media','list','--format=count']`, `['post','list','--format=count']`)
  — a big library with no automation around it suggests publishing or
  repurposing workflows.
- `awesomate_knowledge_sources {action:'summary'}` — content already
  ingested is content an agent or workflow could answer from.

## Presentation — at most 8 ideas, three grounded tiers

Order by concreteness. Skip a tier rather than pad it.

1. **Extend what you already have** — per existing workflow: "your
   `<workflow name>` could also notify X / retry Y / log to a datatable".
   Ground each in a workflow from `awesomate_n8n_workflows` plus the nodes
   it already uses.
2. **New builds with existing connections** — name the actual credential:
   "using your `<credentialNames[0]>` Gmail credential, a daily digest of…".
   `unusedConnections` is the highest-signal list here: they connected it
   for a reason and nothing uses it yet.
3. **Needs something new** — labelled honestly with exactly what:
   a new connection ("needs a Slack credential — 2 min in your n8n UI"),
   a plan upgrade ("builds need Support Plus+"), or the FFMPEG variant
   ("media nodes are Support Plus+ only"). Never disguise tier 3 as tier 2.

**Say what it saves.** Every suggestion carries its money line: the hours
per week it removes ("that's the 2 hours you spend re-typing enquiries"),
the SaaS subscription it replaces ("this is what you're paying $49/mo for"),
or the missed-lead cost it prevents ("the enquiries that arrive after 6pm
currently wait overnight"). The yardstick: a credit is $100 and a
done-for-you build spends 1 credit — an idea worth suggesting should beat
that comparison obviously, and saying so is what makes the suggestion
concrete rather than a feature tour. Estimates are estimates — say "roughly"
and ground them in their numbers, never invent precision.

## Grounding rules (hard)

- Only suggest nodes present on THIS variant. `capabilities.variant` from
  `awesomate_n8n_context`: Standard has no localFiles / better-ffmpeg /
  mediafx. Check `communityPackages` before naming any community node.
- Only reference credentials in `services[]`. **Never claim a credential
  works because it exists** — inventory shows names, not validity; say
  "you have a credential named X" and verify during the build.
- AI-agent ideas require `aiToolsAvailable` to be a non-empty array. On
  null, say the catalog is unavailable, not that AI is unsupported.
- Respect platform invariants in any sketch you show: `$vars` not `$env`,
  webhook data at `$json.body`, HTTP Request nodes not `$helpers`, Code
  nodes return `[{json:{...}}]`, `saveExecutionProgress` stays false,
  webhook trigger (explicit path) instead of formTrigger. Details:
  [platform-notes.md](platform-notes.md).
- Datatable-backed ideas: only when `counts.datatables` is non-null;
  writes need Support Plus+ (`awesomate_n8n_datatable_write`); tables
  resolve per project at runtime.

## Community templates — importable starting points

Search by the user's actually-connected services, not by the idea's topic:

- `awesomate_n8n_node_docs {tool:'search_templates', args:{query: '<service>'}}`
  then `{tool:'get_template', args:{templateId}}` for the JSON.
- A template is a starting point, not a deploy: strip nodes needing
  credentials the user lacks, then run the full build loop (validate →
  create_draft → test) from SKILL.md §2.
- 503 `node_catalog_unavailable` → skip templates this session and fall
  back to the vendored references in `references/vendor/`.

## Essentials plan

`capabilities.builder: false` → reads work, builds need Support Plus+.
Say so ONCE, honestly — "I can explain, diagnose, and design these, but
building on your instance needs Support Plus+ (upgrade at
hub.awesomate.ai/billing)" — then keep helping within reads: present the
tiers as a roadmap, sketch designs, diagnose existing workflows. Do not
repeat the upsell on every idea.
