Skip to content

Expertise structured for AI agents

Patterns are built from your team's captured work and reasoning. They hold the behaviour, the rationale and the steps your agents need to act.

Formation

Distilled from experience

1
Records what you do
The Desktop app records each piece of work as an action. An action captures more than the clicks, typing and app switches that produced it. It captures the reasoning behind it too.
2
Compares against existing patterns
Each new action is compared with the existing patterns in its library. Past the surface details, the underlying task either matches one already there or stands as something new.
3
Merges or creates a pattern
A match joins the existing pattern as new evidence and strengthens it. Something genuinely new becomes a fresh pattern with its own trigger, behaviour and steps to repeat.
Coverage

Provides the unwritten rules

What and why
The observed behaviour and the reasoning behind it.
The support rep reads each new ticket in full then sets its form, priority and assignee group. Enterprise and watchlist accounts get bumped one step.
Priority drives the first-touch SLA and the auto-assignment rules, so getting it right at triage matters more than how escalated the customer sounds.

Stop edge case failures with reasoning

Every pattern carries the operator's reasoning. Your AI agents have the same logic for cases the example never showed.

Cause and effect
What initiates this pattern and what it produces.
A new ticket lands in the unassigned queue from the help form, email or an Intercom conversation.
The ticket has a form, priority and assignee group that match the team's matrix, with an internal note recording the reasoning.

Bounds that keep work in scope

Every pattern names a trigger and an outcome that bound the work. Your AI agents know exactly when to act and when the work is complete.

Standard operating procedure
Step-by-step instructions to reproduce this pattern.
1

Zendesk

Open the unassigned queue and read the next ticket in full, including any screenshots or trace logs.
Skim-reading is the most common cause of priority mistakes, and the real ask is sometimes buried lower down.
You understand what the customer is reporting and any deadline they have surfaced.
2

Zendesk

Set the ticket form by matching the body to Bug Report, Billing, Account or Onboarding.
Set one form. It drives the custom fields the customer sees if the ticket reopens.
The form matches the customer's main issue.
3

Zendesk

Assign priority using the team matrix, from P1 fully blocked to P4 feature ask.
Severity is not the same as priority, so an escalated tone alone is not a P1.
The priority matches the matrix and reflects how soon the team should act.
4

Zendesk

Check the organisation against the enterprise watchlist and bump matching tenants up one step.
Tenants tagged plan:enterprise or watchlist get the bump automatically.
Watchlist tenants sit one step above the matrix priority while others stay on it.
5

Zendesk

Set the assignee group from the form: bug-triage, billing or support-general.
Assign to a group rather than an individual so leave never strands a ticket.
The ticket sits in the correct group's queue.
6

Zendesk

Add a one-line internal note explaining the priority choice and any bump.
It should let any teammate audit the decision in seconds.
The ticket carries a note justifying its priority and assignee group.

Every step carries your team's judgement

Each pattern step names the application, the judgement behind it and the expected result. Your AI agents have the same procedure your team follows.

Linked alternatives sharpen the match

Patterns link to neighbours through edges named often previous, often next or alternative to. Your AI agents weigh the alternatives before they pick a pattern.

Tool use

Easy for AI agents to query

  • REST API

    Bearer auth, read-only GETs and structured JSON. Plug into any AI agent framework as a tool call.

  • CLI

    The @fusedframes/cli npm package. Same endpoints for coding agents that work in the terminal.

  • Match the situation

    Find the right pattern by trigger, behaviour or outcome. Narrow by category, tag, application or library.

  • Walk the graph

    AI agents follow edges from one pattern to the next. Pick direction, depth and the labels to walk.

GET /patterns/:id
{
  "id": "pat_01HQ8M2KXR7VTNFGCBDY9JPWZA",
  "title": "Recover stalled enterprise renewal",
  "behaviour": "When a renewal opportunity has slipped past its target close date with no recent buyer activity, the account team checks Gainsight for the latest health score, pulls the most recent product usage trend from Looker, and either books a value-review call, escalates to the executive sponsor, or hands the account to the churn-prevention pod with a written brief.",
  "reasoning": "Renewals stall for two distinct reasons, low product adoption or a change in buyer, and the response differs for each. Reading usage before reaching out avoids generic check-ins that the customer ignores and shows the buyer we already know where they stand.",
  "trigger": "A renewal opportunity in Salesforce is within thirty days of close and has had no inbound activity for fourteen days.",
  "outcome": "Every stalled renewal has a named next action and an owner within one business day, and the executive sponsor is looped in before the close date rather than after it slips.",
  "category": "Customer Success",
  "tags": [
    "renewals",
    "expansion-at-risk",
    "executive-escalation"
  ],
  "applications": [
    "Salesforce",
    "Gainsight",
    "Looker",
    "Gong",
    "Slack"
  ],
  "actionCount": 132,
  "connectionCount": 7,
  "firstSeen": "2025-11-04T08:30:00Z",
  "lastSeen": "2026-05-19T16:45:00Z",
  "createdAt": "2025-11-09T11:20:00Z",
  "updatedAt": "2026-05-19T16:45:00Z",
  "sopSteps": [
    {
      "id": "sop_01HQ8M3D6P5BVZTYNRWFCJMGXK",
      "stepNumber": 1,
      "application": "Salesforce",
      "instruction": "Open the opportunity and confirm the close date, amount and last activity timestamp.",
      "detail": "If amount has dropped by more than 20% since the prior quarter, treat as expansion-at-risk and skip to step 5.",
      "expectedResult": "Renewal scope and timing confirmed, or routed to the expansion-at-risk branch."
    },
    {
      "id": "sop_01HQ8M3F2N9CGZBYTRWVKMJDXP",
      "stepNumber": 2,
      "application": "Gainsight",
      "instruction": "Read the current customer health score and the trend over the last 90 days.",
      "detail": null,
      "expectedResult": "Health score and direction of travel captured for the account brief."
    },
    {
      "id": "sop_01HQ8M3H8K4DGZNYBVTCRWMJXP",
      "stepNumber": 3,
      "application": "Looker",
      "instruction": "Pull the weekly active seats and core-feature usage chart for the last two quarters.",
      "detail": "Compare against the cohort median for accounts of the same plan tier.",
      "expectedResult": "Usage trend versus cohort baseline ready to share with the buyer."
    },
    {
      "id": "sop_01HQ8M3K5R7CBVZYNTGDWMJPXF",
      "stepNumber": 4,
      "application": "Gong",
      "instruction": "Scan the last three calls for objections, competitor mentions and the named buyer.",
      "detail": null,
      "expectedResult": "Clear read on whether the deal is stuck on price, scope or sponsor."
    },
    {
      "id": "sop_01HQ8M3M9P6BCVZYNRTGDWMJXK",
      "stepNumber": 5,
      "application": "Slack",
      "instruction": "Post a one-page account brief in #cs-renewals and tag the executive sponsor.",
      "detail": "Brief must include: health score, usage delta vs cohort, last call summary and proposed next action.",
      "expectedResult": "Renewal has a named owner and a logged next action within one business day."
    }
  ],
  "library": {
    "id": "lib_01HQ5W8VRBCDFGTYNMJPKZX2Q3",
    "name": "Revenue Operations"
  },
  "edges": {
    "outgoing": [
      {
        "id": "edge_01HQ8M4T3D7BVZNYRGCMWJKPXF",
        "targetPatternId": "pat_01HQ7P9NXR4BCZVYTMGJDKWHFS",
        "targetPatternTitle": "Book executive value review",
        "label": "often next",
        "actionCount": 41
      },
      {
        "id": "edge_01HQ8M4V8K2NCBZVYRTGJDWMPXF",
        "targetPatternId": "pat_01HQ7R2KXM6BVZNCYTGJDWPHFS",
        "targetPatternTitle": "Hand off to churn-prevention pod",
        "label": "alternative to",
        "actionCount": 23
      }
    ],
    "incoming": [
      {
        "id": "edge_01HQ8M4X5B7NCVZGYRTMJDWPKFH",
        "sourcePatternId": "pat_01HQ6Q4VNX8MJGCBYRTDWKPHFS",
        "sourcePatternTitle": "Run weekly renewal pipeline review",
        "label": "often previous",
        "actionCount": 58
      }
    ]
  }
}
Questions

Frequently asked questions

Speak to the founder
Henry Denton, founder of FusedFrames

Get a demo. Watch a live capture, then an AI agent query the result.

Ask anything. Pricing, security or integrating with your stack.

Free demo, no commitment

Start capturing

Record in minutes. Install once and work as normal.

Plug AI agents in. One API call from any AI agent stack.

Cancel in 1 month, refund unused credits