Papyrs
ProductivityPapyrs is the drag-and-drop intranet and wiki. Agents create and update pages and the widgets inside them, read and write form records, search the site, look up the people directory, and follow the activity stream.
What This Integration Enables
Papyrs is an intranet made of widgets rather than documents, and its API is honest about it. A page is a list of columns, each holding text boxes, headings, attachments, and forms. There is no page update route at all. A page is changed by creating, updating, and deleting individual widgets on it, and updating a widget gives it a new id while returning the old one alongside. The rate limit is six requests every sixty seconds, which is tight enough that editing a page widget by widget is a real cost rather than a footnote. The practical conclusion, and the way this connector is best used, is to build a page whole and let the source systems own the truth.
That makes Papyrs a good target for agents and a poor target for scripts. FlowRunner agents assemble a page from the systems that already hold the facts, publish it in one call, read the form submissions people make on it, search the whole site across pages, files, people, form entries, and comments in a single query, and post into the activity stream and page discussions. Where a step is consequential, human-in-the-loop puts a person in front of it rather than trusting a template. Every action is built and verified against Papyrs' published v1 API.
Without FlowRunner
With FlowRunner
Use Case Scenarios
-
Form submissions that turn into work
A department runs its requests through a Papyrs form: equipment, access, travel, whatever the team has standardized. On a schedule, the agent calls List Page Records to read the submissions made on that page. Each record comes back as a list of field and value pairs rather than an object, so the agent reads fields by name and normalizes them before anything downstream sees them. Complete requests open a ticket in ServiceNow or a task in Asana with the submitter resolved against List People. Incomplete ones get a comment back on the page through Post Comment To Page, on the page's own discussion where the submitter is already looking. The form stays where people know how to use it; the work leaves it.
-
The policy page that rebuilds itself
A procedure changes in the system of record. Rather than asking someone to remember that the intranet says something different, the agent assembles the new page: headings, the current steps, the owner, and the effective date, plus the source document as an attachment widget. Because there is no update route, the agent uses Create Page to publish the new version whole, then Post To Activity Stream so everyone with access sees that it moved. The previous page is retired with Delete Page only after the new one is confirmed live. The result is an intranet page whose contents are downstream of the process rather than a snapshot of what it looked like the day someone wrote it.
-
A search that answers a question instead of a person
Somebody asks in Slack where the expense policy lives. The agent runs Search, which queries pages, files, people, form entries, and comments at once and labels each result with its kind, so the agent can prefer a page over a stray comment that happens to mention the phrase. It replies with the page and the specific widget that answers the question, pulled with Get Page. When nothing matches, it says so and offers to open a request for the page to be written, rather than returning the closest thing and letting the asker work out that it is wrong.
Human-in-Loop Highlight
The gate here sits before the page exists, which is unusual, and it exists because Papyrs cannot patch a mistake. Leaving Permissions out of Create Page gives administrators edit access and everyone else none, unless the group has a default template. A page published that way is not broken in any visible sense. It is simply invisible to the people it was written for, and since there is no page update route, the fix is to delete it and create it again, which loses its id and its URL and every link anyone has already shared. So the publishing agent builds the permission map from List People, resolves each name to the user id Papyrs wants, and then stops: "Publishing 'Expense Policy 2026' to the Finance group, 14 people by user id, plus edit for the two policy owners. Nobody outside that map will see the page, and this cannot be changed afterwards without republishing at a new URL. Confirm the audience?" A person confirms, and the page is created once, correctly, at a URL that will keep working.
Agent Capabilities
16 actionsPages
5- List Pages Returns every page the token's user can see, newest first, with title, folder, and tags. It does not carry contents, so a workflow that needs the widgets follows with Get Page.
- Get Page Returns one page with its whole contents as columns of widgets, plus its permission and notification maps keyed by user id. This is where widget ids come from.
- Create Page Creates a page with its contents in one call. Building a page whole here is much cheaper than adding widgets one at a time, and the permission map decides who can see it at all.
- Delete Page Deletes a page and everything on it. Used to retire a superseded page after its replacement is confirmed live.
- List Page Records Returns the form submissions made on a page. Each record is a list of field and value pairs rather than an object, so a workflow reads fields by name.
Widgets
6- Get Widget Returns one widget from a page. The kind has to be named, because Papyrs routes text boxes, headings, and attachments to different endpoints rather than looking an id up.
- Create Text Widget Adds a text box or a heading to a page. Format decides how the value is read, and it defaults to HTML, so a value containing angle brackets is treated as markup.
- Update Text Widget Rewrites a text box or heading. Papyrs assigns the widget a new id on every update and returns the old one alongside, and both keep working, so a workflow that caches ids should keep the original.
- Create Attachment Widget Uploads a file onto a page as a new attachment widget. Used to put the source document beside the page that summarizes it.
- Update Attachment Widget Uploads a file into an existing attachment widget, replacing what was there. Like the text widgets, its id changes on update.
- Delete Widget Removes a widget from a page. The precise edit, used when rebuilding the whole page would cost more than it is worth.
Search
1- Search Runs a query through Papyrs' own search engine across pages, files, people, form entries, and comments at once, with each result naming its kind so a workflow can filter after the fact rather than choosing a scope up front.
People
2- List People Returns everyone in the People Directory, newest first, including who has been invited but has not accepted yet. This is where the user ids for permission maps come from. Guests invited to a single page are not included.
- Delete Person Permanently deletes a user from the account, and only a site administrator can do it. A workflow reaching for this one should be part of an offboarding process with its own approval, not a cleanup script.
Feed
2- Post To Activity Stream Posts a message to the account's activity stream, where everyone with access sees it. Used to announce that something people rely on has changed.
- Post Comment To Page Posts a comment onto a page's discussion, which is where a reply to a form submission belongs. It requires the page to have a Discussion widget, since without one there is nothing to post to.
Frequently Asked Questions
What can FlowRunner do with Papyrs?
FlowRunner agents can run List Pages, Get Page, and Create Page in Papyrs, plus 13 more actions.
Does connecting Papyrs to FlowRunner require OAuth?
No. Papyrs connects to FlowRunner with an API key, no OAuth flow required.
Can Papyrs trigger a FlowRunner workflow automatically?
Papyrs doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.
Start building with Papyrs
Free plan, no card required. Connect in minutes.