
How Agencies Package AI Workflows as Billable Deliverables
Packaging an AI workflow as a deliverable means turning a working prompt, or a chain of them, into a versioned artifact someone besides its author can open, run, and hand off. Once that artifact exists outside a single person's chat history, it can be reviewed, re-run on demand, and priced like any other piece of work an agency ships. Before that point, the same workflow is just know-how trapped in one person's head — useful, but not billable in any repeatable sense.
Why ad-hoc AI work is hard to bill
The pattern shows up in almost every team that starts using AI models for client work: someone finds a prompt that works well, refines it over a few sessions, and gets good results. The value is real, but it lives entirely in that one person's chat history and their memory of which phrasing mattered. Nobody else on the team can open it, adjust it, or run it without going back to that person and asking them to do it again by hand.
That shape breaks down the moment an agency tries to bill for it as a deliverable rather than as billable hours. A deliverable needs to be handed over — the client, or a colleague, has to be able to open it and use it without the original author sitting next to them. It needs to be re-runnable — the same input should produce a consistent kind of output every time, not a fresh improvisation. It needs to be auditable — someone should be able to see what changed between one version and the next. And ideally it needs to be repriceable — an agency serving multiple accounts wants to reuse the same workflow across clients rather than rebuilding it from scratch every time, which only works if the workflow is captured as something more durable than a conversation.
None of this is a story about a specific client engagement gone wrong. It is the default failure mode of AI work that never leaves a chat window: it produces real value once, for one person, and then evaporates the moment that person is unavailable or moves on.
The four layers you can actually package
PromptHub gives an agency four distinct layers to package a workflow at, each with a different shape of what the recipient actually gets:
| Layer | What it is | What the client gets |
|---|---|---|
| Prompt | A single instruction, versioned on every edit | A specific, repeatable request they can run or hand to their own team |
| Skill | A reusable instruction module, shareable independently of any one prompt | A packaged capability — "summarize like this," "extract data like this" — reusable across many prompts and chains |
| PlugIn version | A published, versioned collection of Skills | A frozen content snapshot: what was delivered stays exactly what was delivered, even after the source Skills keep evolving |
| Agent | A persona plus model configuration plus a set of tools drawn from Prompts, Chains, Skills, or PlugIn versions | A running assistant configured to a specific job, not just a piece of text to paste somewhere |
The PlugIn-version layer is the one that matters most for anything meant to be handed over rather than just read once. A PlugIn is a named collection of Skills, and publishing it creates a version — a snapshot of exactly what those Skills contained at that moment. A consumer who received version 3 keeps getting version 3's behavior even if the underlying Skills are edited afterward for a different engagement. That is what makes a PlugIn version something an agency can actually commit to as a deliverable: it does not silently drift out from under whoever received it.
Packaging a workflow step by step
Turning working AI output into something a client can receive follows the same rough sequence regardless of how complex the underlying task is:
- Capture the working prompt. Whatever combination of instructions currently produces the result worth billing for, save it as a real Prompt rather than leaving it in a chat transcript. Every edit from this point on is tracked as a version, so the history of how it got to its current form is never lost.
- Factor the repeated instruction into a Skill. If the same instruction, format rule, or extraction pattern shows up across multiple prompts or multiple clients, pull it out into a Skill once instead of pasting a near-identical block into every new prompt.
- Collect the Skills into a PlugIn and publish a version. Group the Skills that belong together into a single PlugIn, then publish it. That publish step is what freezes the snapshot the client will actually receive.
- Wire an Agent or a chain if the deliverable needs to run, not just be read. A static Prompt or Skill is something a person copies and pastes. If the deliverable instead needs to accept input and produce output on its own — summarizing a document, drafting a first-pass reply, running a multi-step process — attach the packaged pieces to a Chain or configure an Agent with them as its tools.
- Share it at the right permission level. Decide whether the recipient should be able to run the deliverable, edit it, or only view it, and share accordingly rather than defaulting to full edit access out of convenience.
- Hand over access. Once shared, the recipient reaches the deliverable through their own account, under their own permissions — not by asking the agency to re-run something on their behalf every time they need it.
Deciding what the client can do with it
This is the delivery-boundary decision an agency actually has to make on every engagement: does the client get something they can run, or something they can rewrite? PromptHub's chain-sharing feature draws that line with three real permission levels — view, which lets the recipient see the chain but not touch it; edit, which lets them see and modify it; and execute, which lets them run it without being able to change its internals. Handing a client execute access means they can use the deliverable exactly as built, every time, with no risk of a well-meaning tweak breaking the underlying logic. Handing them edit access means they can adapt it themselves going forward, which is the right call when the whole point of the engagement is to leave the client self-sufficient rather than dependent on the agency for every future change.
Who on the agency's own side can touch a shared deliverable before it goes out the door is governed by the same four-role model that applies everywhere else in PromptHub: Admin, Components Editor, Prompt Creator, and Viewer. An Admin can manage and delete any component or prompt across the account; a Components Editor can edit, add, import, and export any component, plus create, delete, and share their own prompts; a Prompt Creator can create, edit, and share their own prompts but not touch shared components; and a Viewer can see what exists without being able to change any of it. That split matters internally for the same reason the client-facing permission levels matter externally — it decides who can accidentally break a deliverable that has already been promised to a client.
Getting this delivery boundary right is exactly the kind of packaging decision PromptHub's agency workflows are built around — turning a one-off working chain into something an agency can hand off with a specific, deliberate level of client access, rather than an all-or-nothing share.
Pricing it
What actually gets metered here is straightforward even though it is not a single number: every AI call spends tokens, tracked per run, and every subscription plan carries its own set of feature limits on top of that. That splits naturally into two kinds of cost an agency can reason about separately. There is the fixed cost of packaging — the time spent building the Prompt, factoring out the Skill, assembling and publishing the PlugIn version, wiring the Agent or chain — which happens once per deliverable. And there is the variable cost of running it — the tokens each execution actually spends, which scales with how often the client, or the client's own team, runs the thing after delivery. Being explicit about that split, rather than folding both into one flat number, is what lets an agency reprice a deliverable honestly if a client starts running it far more or far less than expected. For actual per-model token pricing to plug into that math, see the comparison of current LLM pricing across GPT, Claude, and Gemini rather than treating any single number here as durable — model pricing changes more often than packaging decisions do.
Delivering into the client's own tooling
A packaged deliverable does not have to live only inside PromptHub's own dashboard. PromptHub exposes a native MCP server, which means the same Prompts, Chains, Skills, PlugIns, and Agents an agency packages are reachable directly from an MCP client the client already uses — their own Claude Code setup, their own internal tooling, whatever they've standardized on. Access goes through a scoped API key, and that key can carry its own token spend cap independent of the account's overall balance, so an agency can hand over programmatic access to a deliverable without also handing over an open-ended bill. For the full walkthrough of wiring a client up this way, see exposing a prompt library to an MCP client.
Packaging is really just the discipline of getting a working AI workflow out of one person's head and into a form someone else can open, run, and trust. If chains, conditions, and multi-step topologies are the part of that discipline you still need to get comfortable with before you package anything, the complete guide to prompt chains is the place to start.