A Framer channel is one CMS collection in one Framer project — your Blog, a Journal, Case Studies. Post to it and Ocoya adds a new item: the title, the formatted content, the cover image and the date filled in. Then, unless you chose to keep it as a draft, Ocoya publishes the site.

Framer can also start a workflow: a new item in a collection can be shared to your other channels. See Framer in workflows below.

Before you start

Framer has no sign-in for apps. Instead, Ocoya uses Framer’s Server API, which is opened with an API key made in the project’s own settings. A key reaches that one project only — to connect three Framer sites, connect each with its own key.

You need to be able to open the project’s Site Settings.

Connect Framer

1

Create an API key in Framer

Open the project in Framer, then Settings → General. Under API keys, click Add, and copy the key.

2

Copy the project's address

With the project open, copy the address from your browser. It starts with https://framer.com/projects/.

3

Choose Framer in Ocoya

Select Channels in the left sidebar, then Connect channel, and pick Framer under Blogging.

4

Paste the address and the key

Paste them into Project address and Framer API key, then select Connect Framer. Ocoya opens the project straight away to check the key works.

5

Select the collections to add

Every collection in the project is listed, named Project name · Each post becomes an item. Choose the ones you want as channels for this brand. If there is only one, it’s added without asking.

A collection that a Framer plugin keeps in sync — from Google Sheets or Notion, say — is listed but can’t be picked: A plugin manages this collection, so posts cannot be added to it. Framer only lets that plugin write to it.

To replace the key, connect Framer again with the same project address and the new key. Your channels keep working.

How posts appear

Part of your postWhere it goes in Framer
TitleThe field the collection’s slug is based on — usually Title — up to 256 characters. With no title, the first line of your text is used
TitleThe Slug, in lowercase letters, numbers and hyphens. A slug already used in the collection gets -2, -3 and so on
TextA Formatted Text field named Content, Body or similar — otherwise the first Formatted Text field
First imageAn Image field named Image, Cover, Thumbnail or similar — otherwise the first Image field. Only the first image is used
SummaryA text field named Summary, Excerpt or Subtitle gets the article’s excerpt, or the first 160 characters of the text
DateA Date field named Date, Published or similar is set to the moment it was posted

If the text’s first line repeats the title, it’s left out of the body. Links you added to the post that aren’t already in the text go at the end. Markdown — headings, lists, quotes, bold, links — arrives as real formatted text, and image alt text is passed to Framer, which keeps its own copy of the image.

Every other field is left alone.

What publishing live does

Posts from the post editor are published live: Ocoya adds the item, then publishes the project and deploys it to your custom domain.

Framer publishes a project as a whole. Any other unpublished changes in the project go live with the article — a half-finished page, a redesign in progress. If somebody is working on the site, use a workflow with Keep as draft instead.

If Framer is briefly unavailable, Ocoya tries again a few times over the next minute. If it still can’t publish, the new item is taken out again and the post fails, so a failed post never leaves a stray item in your collection.

In a workflow, the Publish to Framer CMS step lets you choose under In Framer:

SettingWhat happens
Publish live (default)The item is added and the site is published
Keep as draftThe item is added as a draft. Framer leaves drafts out of every publish until somebody changes it

This is separate from the step’s Save as draft switch, which keeps the post in your Ocoya planner without sending it to Framer at all.

A published post links to its page on your site, using the path of the collection’s CMS page in Framer, such as /blog/your-post. If no page shows the collection, or the item is a draft, it links to the item in Framer instead.

You don’t need Framer open for any of this. Ocoya talks to Framer’s servers directly.

What you can post

Post typeSupported
TextYes
ImagesYes — the first becomes the cover. Framer collections hold one image per Image field
GIFYes, as an image
VideoNo

A post needs text or an image.

Framer’s limits

Limit
Post text100,000 characters
Title256 characters
Images1 used per post
HashtagsNo limit. Framer shows them as plain text

Deleting a post

Deleting a published post in Ocoya removes the item from the collection. Ocoya doesn’t publish the site when you delete, so nobody’s unfinished work goes live because of it — the item leaves your live site the next time the project is published. Items your team created are never touched.

Framer in workflows

Framer works at both ends of a workflow.

Publish to Framer CMS is an action. Choose the collection, a Title (its slug is made from it), the caption, and In Framer: Publish live or Keep as draft.

New item in a Framer collection is a trigger. Choose a collection channel, and the workflow runs once for each new item.

SettingWhat it does
CollectionThe collection to watch. It has to be connected as a channel first
Only whenOptional. A field name and a value, such as Category and News. The workflow then runs when an item reaches that value — drafts included — instead of when it’s added

How the trigger behaves:

  • Ocoya checks every 15 minutes. Framer doesn’t notify apps of changes, so a new item can take up to 15 minutes to start its run.
  • Drafts are skipped. Without Only when, an item runs once it’s in the collection and not a draft.
  • Nothing before you switch the workflow on counts. Items already in the collection are left alone, and an item counts from when it was created.
  • Each item runs once. Editing it later doesn’t post it again.
  • Up to 10 items run per check, oldest first.

Every field of the item is available to the steps after the trigger, written in lowercase with underscores: a field called Cover Image becomes {{trigger.cover_image}}. You can also use:

ValueWhat it holds
{{trigger.title}}The title field, otherwise the slug
{{trigger.url}}The item’s page on your site. Empty for a draft, or when no page shows the collection
{{trigger.text}}The summary field, otherwise the content as plain text, otherwise the title
{{trigger.image}}The first image. {{trigger.images}} holds them all

Formatted text arrives as plain text, options as their names, and references as item IDs. Leave a following Post to step’s caption or media empty and it uses {{trigger.text}} and the item’s images.

Disconnecting

Disconnecting a Framer channel in Ocoya stops Ocoya posting there. Items it already added stay in your collection.

To cut Ocoya’s access entirely, delete its API key in the project’s Site Settings → General. Every Framer channel from that project then shows Reconnect needed the next time it posts.

Common problems

“Framer no longer accepts this API key.” The key was deleted, or it belongs to another project. Create a new key in the project’s Site Settings and connect Framer again with it.

“Paste the project’s address from your browser…” The project address must start with https://framer.com/projects/. Copy it from the browser’s address bar with the project open.

“Framer would not publish the site (…), so the item was not added.” Framer refused to publish even after Ocoya tried again. Nothing was left behind in the collection. Try again later.

“A plugin manages the Framer collection …” That collection is synced by a plugin. Post to a collection you manage yourself.

“The Framer collection … has no formatted text field for the post.” Add a Formatted Text field to the collection in Framer.

“Framer is busy” / “Framer took too long to answer.” Framer’s servers were slow to open the project. Try again in a minute.

“Too many sessions are open with this Framer API key.” Several posts or workflows reached the project at once. Try again in a minute.