Abyssale
Developer ToolsAbyssale is a creative automation platform that renders images, videos, GIFs, HTML5 banners, and print-ready PDFs from templates. Agents generate on-brand assets in every format at once, build dynamic image URLs, and pull finished files or ZIP exports into the rest of a workflow.
What This Integration Enables
Abyssale is built for teams whose constraint is not making an asset, it is making the same asset again in every format a channel demands. The connector treats a design as a queryable object rather than a file: Get Design returns the formats, the configurable elements, and the template variables the text layers declare, so a workflow can discover what a design accepts instead of guessing at it. From there a single Generate Multiple Formats call fans one set of overrides out to images, video, GIFs, HTML5 banner bundles, and print-ready PDFs, and Export Files As ZIP packages the result for whoever has to upload it.
The design itself is also data. Export Design As Import Payload serializes an existing design into exactly the shape Create Design Import accepts, which means designs can be cloned, versioned, and diffed by a workflow rather than duplicated by hand in an editor. That composability is what lets FlowRunner connectors put creative production inside the same flow as the campaign that needs it. It is also why the human-in-the-loop step matters here: a rendering pipeline that runs at machine speed will publish a mistake at machine speed too, so the operations that reach an audience wait for a person.
Without FlowRunner
With FlowRunner
Use Case Scenarios
-
A product launch fanned out to every channel
A launch record in Airtable reaches its go date. The agent calls Get Design to read the launch design's formats and elements, maps the product name, price, and hero image into element overrides, and calls Generate Multiple Formats with the format list left empty so every format the design defines is produced at once. It polls Get Generation Request until is_finalized comes back true, reads the errors array for any format that failed, then calls Export Files As ZIP so the paid media team receives one archive instead of forty URLs. The summary posts to Slack with the failed formats listed by name.
-
Localized creative driven from a spreadsheet
A row per market lives in Google Sheets: locale, headline, offer, currency, and a font id from List Fonts. For each row the agent calls Generate Image against the static design and gets the finished file URL back in the same response, with no polling. The URLs land back in the sheet next to their row. When a market needs the animated version, the same overrides go to Generate Multiple Formats instead, because a video cannot be produced inside a synchronous request and the connector says so rather than failing obscurely.
-
Personalized creative inside a lifecycle email
A Klaviyo flow needs a per recipient image. The agent calls Create Dynamic Image URL once for the design, and the template embeds that URL with the recipient's own values as query parameters. Nothing is rendered ahead of time and no API call happens when the mail is opened by the recipient. Before that URL is handed to the email platform, the agent renders a sample, posts it for approval, and waits. Once the URL is in a send, the design behind it is what every future open will render.
Human-in-Loop Highlight
Create Dynamic Image URL is the one operation on this connector that cannot be taken back, and not because it deletes anything. Abyssale allows exactly one dynamic image per design, so calling it again returns the existing URL rather than minting a second one. That single URL renders from the design at view time, when the recipient opens the mail, which means the design is no longer a draft the moment the URL is embedded in a campaign. There is no second URL to point somewhere else and no way to freeze the version that was approved. So the agent builds the URL, renders a sample through Generate Image, and stops: "This dynamic URL is the only one this design will ever have, and it renders from the live design on every open. Sample attached. Confirm this is the design that stays behind it, or name a different design to build from." The marketing owner answers. The agent does the assembling; the commitment to a design that will keep rendering for an audience belongs to a person.
Agent Capabilities
28 actionsAccount
1- Verify API Key Confirms the configured key works and names the workspace it belongs to. Worth putting first in a flow, because a key on a plan without API access and a wrong key are otherwise indistinguishable.
Designs
4- List Designs Lists the designs in the workspace with their formats and configurable elements. A design missing from this list is usually still a workspace template rather than a design.
- Get Design Reads a design in full: every format with its dimensions, every configurable element, and the template variables the text layers declare. This is what tells a workflow which overrides to send.
- Get Design Format Reads one format of a design, including its preview URL, its dynamic image URL, and its elements as laid out in that format. Print designs also return DPI, bleed, and safe zone.
- Export Design As Import Payload Serializes an existing design into the shape Create Design Import accepts, with assets already hosted by Abyssale. Used to clone, fork, version, or diff a design.
Generation
5- Generate Image Generates one image from a static design and returns the file URL in the same response, with no polling. The right call when the flow needs the asset in its next step.
- Generate Multiple Formats Queues an asynchronous batch across several formats at once and returns a request id. This is the only path to videos, GIFs, HTML5 bundles, and print PDFs. Leaving the format list empty produces every format the design defines.
- Generate Multiple Formats And Wait Queues the same batch and polls until it finishes, returning the files rather than a request id. Used when a flow cannot wait on a webhook.
- Generate Multi Page PDF Queues a multi page print PDF with different element overrides per page. The shape a brochure, a catalog, or a variable data print job needs.
- Get Generation Request Polls an asynchronous batch. Completion is the is_finalized flag rather than the status code, and per format failures arrive in an errors array alongside the successful files.
Files
2- Get File Reads a generated file by id, returning both a download URL and a CDN URL suitable for embedding in a page or an email.
- Export Files As ZIP Queues a job that packages generated files of any output type into a single archive. Used to hand a whole campaign to a media team in one download.
Dynamic Images
1- Create Dynamic Image URL Creates the design's dynamic image URL, which renders a personalized image straight from query parameters at view time. Only one exists per design, which is why this page's human gate sits here.
Projects
2- List Projects Lists the projects that group designs. Only a design assigned to a project is reachable through the API at all.
- Create Project Creates a project to group designs in. Designs are assigned to it in the Abyssale editor rather than through the API.
Workspace Templates
4- List Workspace Templates Lists the organization level master designs shared across the workspace. A template cannot be generated from until it has been duplicated into a project.
- List Workspace Template Categories Lists the categories that group workspace templates, whose ids are what the category filter takes.
- Duplicate Workspace Template Copies a workspace template into a project, which is what turns it into a design a workflow can generate from. The copy is asynchronous.
- Get Duplication Request Polls a duplication until it reads COMPLETED, at which point it names the new design id a generation call needs.
Fonts
1- List Fonts Lists the fonts available in the workspace, both Google Fonts and custom uploads. A font id from here is what overrides a text or button element's font.
Design Import
4- List Design Imports Lists the workspace's JSON design imports, newest first. Its real value is recovery, because an import whose id was lost between steps cannot otherwise be resumed.
- Create Design Import Creates a design from a JSON payload describing its formats and layers, which is how a design is built without opening the editor. Public URLs and data URIs queue immediately; bare filenames return presigned uploads to complete first.
- Get Design Import Polls an import through its lifecycle to DONE or FAILED, carrying the vendor's own suggested delay before the next poll and a structured error once it fails.
- Validate Design Import Confirms every presigned upload has completed, which is what actually queues the import for processing. Abyssale checks each expected asset and names the missing ones.
Webhooks
4- Get Signing Secret Returns the workspace's webhook signing secret, creating it on the first call. Deliveries are unsigned until this has been called at least once.
- Rotate Signing Secret Issues a new signing secret while keeping the previous one valid for 24 hours, so every delivery carries both and a receiver can be updated on its own schedule.
- Revoke Previous Signing Secret Ends the rotation overlap early by invalidating the previous secret. Used after a rotation prompted by a leak rather than by routine hygiene.
- Verify Webhook Signature Checks an Abyssale signature header against the raw delivery body and the workspace secret. Abyssale has no webhook management API, so this is what makes an incoming delivery trustworthy.
Frequently Asked Questions
What can FlowRunner do with Abyssale?
FlowRunner agents can run Verify API Key, List Designs, and Get Design in Abyssale, plus 25 more actions.
Does connecting Abyssale to FlowRunner require OAuth?
No. Abyssale connects to FlowRunner with an API key, no OAuth flow required.
Can Abyssale trigger a FlowRunner workflow automatically?
Abyssale doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.
Start building with Abyssale
Free plan, no card required. Connect in minutes.