---
title: "Storydoc Integration"
description: "Storydoc makes interactive decks, proposals, and one-pagers that live at a URL. Agents create a personalized version of a story template per recipient, generate a first-draft deck from a prompt, and pull engagement analytics back out."
url: https://flowrunner.ai/integrations/storydoc-app
date_modified: 2026-09-04T14:07:24-07:00
---

# Storydoc

[Documents](https://flowrunner.ai/integrations/category/documents-forms)

Storydoc makes interactive decks, proposals, and one-pagers that live at a URL. Agents create a personalized version of a story template per recipient, generate a first-draft deck from a prompt, and pull engagement analytics back out.

7 actions · API key · available

[Storydoc website](https://www.storydoc.com/) · [Platform Documentation](https://docs.storydoc.com/) · Capability data verified 2026-08-13

1.  An opportunity is created and a proposal link is needed before the follow-up call
2.  Agent reads the account name, the contacts, the pricing, and the use case from the deal record
3.  Get Story reads the template's dynamic variables, so the flow fills exactly what the deck declares rather than guessing names
4.  Create Version produces a personalized copy of the deck with its own link and its own analytics
5.  The link goes back onto the deal record and into the rep's follow-up message
6.  Query Analytics Events reports who opened it and how far into it they got
7.  Before any later refresh overwrites a live version, the rep who owns it decides whether their edits survive

## What This Integration Enables

Storydoc's proposition is that a deck is not a file. A story template becomes a personalized version per recipient, each with its own URL and its own analytics, which means the thing you send keeps existing and keeps reporting after you send it. That changes what automation is for. Instead of generating an artifact and mailing it, FlowRunner agents create the version at the moment the opportunity is created, fill it from the record, hand back a link, and then read the engagement data as a first class input to the next step.

Two things follow from a document that lives at a URL. The first is good: you can give a link an expiry, gate it behind a form or a password, and read who got how far without leaving the flow. The second is the reason [human-in-the-loop](https://flowrunner.ai/concepts/human-in-the-loop) matters here more than on a connector that produces files. A file, once sent, is out of your hands and out of your reach. A version is still in your hands, which means a flow can change a document a prospect already has open. Storydoc is careful about this by default, and Update Version leaves manual edits alone unless a flow explicitly overrides that. FlowRunner treats the override as a decision, not a parameter.

### Without FlowRunner

**Personalization is a copy and paste job**: Someone duplicates the master deck, swaps the logo and the numbers by hand, and exports a PDF

**The document goes dark once it is sent**: An attachment leaves the building and nobody knows whether anyone opened past slide two

**Old pricing keeps circulating**: A proposal from two quarters ago is still openable, still forwardable, and still quotable

### With FlowRunner

**Personalization happens at deal creation**: The link exists the moment the opportunity does, filled from the record rather than retyped from it

**The document reports back**: Views and clicks come into the flow, so follow up can be aimed at the people who actually read the pricing

**Links can be given a lifespan**: Days To Expire is set at creation, so a stale proposal stops working without anyone remembering to retire it

## Use Case Scenarios

### The proposal link exists before the follow-up call

An opportunity is created in [HubSpot](https://flowrunner.ai/integrations/hubspot) or [Attio](https://flowrunner.ai/integrations/attio). Rather than mapping fields from memory, the agent calls Get Story on the proposal template and reads back the dynamic variables it actually declares, then builds the Variables payload against those names. Create Version produces the recipient's own copy with their company, their contacts, and their pricing, and returns a link that goes straight onto the deal record and into the rep's follow-up. Days To Expire is set from the quote validity on the deal, so the pricing in that link stops being quotable on the same date it stops being honest.

### Following the attention, not the open

Query Analytics Events returns raw views and clicks rather than a tidy summary, which is more useful than it sounds. The agent pulls the window, groups events by version, and computes what the sales team actually cares about: which accounts came back a second time, which sections they returned to, and which links were opened by somebody the rep has never met. That roll up lands in [Google Sheets](https://flowrunner.ai/integrations/google-sheets) and the notable accounts post to [Slack](https://flowrunner.ai/integrations/slack) with the specific behavior named. A prospect who reopened the pricing section twice on a Sunday gets a different follow-up from one who read the intro and left.

### A first draft the machine writes and a person finishes

For a new vertical with no template yet, Generate Story writes a whole presentation from a description and a company website. It is worth knowing exactly what that call does before a flow leans on it: it runs while you wait, it publishes the result live, it is not a draft, and there is no delete action for it. So the agent uses it deliberately, generating into a working space rather than into anything customer facing, then posting the resulting link for a marketer to open, rewrite, and adopt as the template that later versions are built from. The machine supplies the starting point. A person decides whether it is fit to be the origin of every deck that follows.

## Human-in-Loop Highlight

Update Version has a safety behavior and an override, and the override is where the risk sits. By default, a version that somebody opened in the editor and changed by hand is left alone. Set Force and the update overwrites that work, irreversibly, on a link the recipient may have open in a tab right now. That is precisely what a well meaning nightly refresh does: pricing changes in the CRM, a flow pushes the new figures into every outstanding proposal version, and the paragraph an account executive rewrote at 11pm after a discovery call is simply gone, with no record that it existed. So the refresh agent splits its batch. Versions that still match the template output are updated without ceremony. Versions that diverge get held and reported: "Nine open proposals need the new list price. Six are untouched and will update. Three were edited by hand: Northwind by Priya on 2 September, Belmont by Dan on 28 August, Kestrel by Priya on 1 September. Force the update on those, or leave them and notify the owners?" The owner of the edit answers. The machine does the other six.

Agent processes routinely

Detects exception requiring judgment

Clear match Continues automatically

Ambiguous Routes to human via preferred channel

Human decides

Agent resumes with decision

## Agent Capabilities

7 actions

### Stories

3

-   **List Stories** Lists the stories in the organization, optionally only those in one state. The inventory a flow picks a template from.
-   **Get Story** Reads one story, including the dynamic variables its template accepts. The call that comes before building a version, so a flow fills the names the template declares rather than the names somebody assumed.
-   **Generate Story** Writes a whole presentation from a description of what you want and publishes it live. It runs while you wait rather than returning immediately, and the result is published rather than drafted, so use it where a live artifact is acceptable.

### Versions

2

-   **Create Version** Creates a personalized copy of a story for one recipient, with its own link and its own analytics. The core action behind per prospect proposals and per customer one-pagers.
-   **Update Version** Replaces the data on an existing version. A version somebody has edited by hand is left alone unless the update is forced, and forcing it discards that work. This is the operation this page's human gate exists for.

### Analytics

1

-   **Query Analytics Events** Reads who viewed and clicked what, a thousand events to a page. The input to attention based follow up rather than open based follow up. Available on the Team plan.

### Account

1

-   **Get Account** Reads the organization the key belongs to. Useful for checking a connection works before a batch run.

## Frequently Asked Questions

### What can FlowRunner do with Storydoc?

FlowRunner agents can run List Stories, Get Story, and Generate Story in Storydoc, plus 4 more actions.

### Does connecting Storydoc to FlowRunner require OAuth?

No. Storydoc connects to FlowRunner with an API key, no OAuth flow required.

### Can Storydoc trigger a FlowRunner workflow automatically?

Storydoc doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.

**Work at Storydoc?** This integration exposes Storydoc to AI agents on every FlowRunner plan, including through MCP, at no cost to you. [See what FlowRunner offers integration partners](https://flowrunner.ai/integrations/partners), including how to keep this page current.

---
Markdown version of https://flowrunner.ai/integrations/storydoc-app. Site index: https://flowrunner.ai/llms.txt
