Make
The official FoPost app for Make, with polling and instant triggers, actions, and searches.
The official FoPost app for Make lets a scenario schedule and publish posts, react the moment a post goes live or fails, upload media, and read cross-platform analytics.
A Make custom app is a set of IML definitions Make's own runtime executes. There is no package to install and no compiled code.
This is a 0.x release. Modules and their fields are still settling and a minor version may change them.
Source and issues: github.com/fopost/fopost-make. MIT licensed.
Install
The Make app is not installable yet, and there is no invite link to share.
The app definition is complete and validated, and every release is published on GitHub. What is outstanding is deploying it into Make: their API refuses the write unless the account's role carries the admin apps edit permission, which is granted through Administration > Roles.
After that, the public catalog is a further step through Make's partner review, and every later change to an approved app needs their approval too.
Ask on the contact page if you want Make support and we will let you know when it lands.
Connect
The connection asks for one thing: a FoPost API key.
- Create a key at Settings → API Keys in the dashboard. It is shown once.
- Paste it into the connection. Make verifies it immediately with a call to
GET /v1/workspacesand refuses to save a key the API rejects.
A key can be scoped to a single workspace. A workspace-scoped key only ever sees that workspace: naming another one returns a permission error, and list modules return only its records. The key is stripped from every execution log.
Triggers
| Module | Type | What it does |
|---|---|---|
| Watch published posts | Polling | Emits a bundle for each post that reaches the published status |
| Watch failed posts | Polling | Emits a bundle for each post that failed to publish |
| Watch events | Instant (webhook) | Fires the moment FoPost sends a subscribed event: a delivery going live, failing, or being delayed, a post finishing, or an account's health changing. Registers and removes its own webhook |
Actions and searches
| Module | Endpoint |
|---|---|
| Create a post | POST /v1/posts |
| Update a post | PUT /v1/posts/{id} |
| Get a post | GET /v1/posts/{id} |
| Publish a post | POST /v1/posts/{id}/publish |
| Cancel a post | POST /v1/posts/{id}/cancel |
| Duplicate a post | POST /v1/posts/{id}/duplicate |
| Delete a post | DELETE /v1/posts/{id} |
| Upload a media file | POST /v1/media/upload |
| Create a label | POST /v1/labels |
| Trigger an automation | POST /v1/automations/{id}/trigger |
| Search posts | GET /v1/posts |
| List workspaces | GET /v1/workspaces |
| List accounts | GET /v1/accounts |
| List media files | GET /v1/media |
| Get an analytics overview | GET /v1/analytics/overview |
Make an API call performs an arbitrary authorized call for any endpoint this app does not model.
Workspace, account, and label pickers are filled live by remote procedure calls, so you choose a name instead of pasting a UUID.
How publishing works
Creating a post and publishing it are two steps:
- Create a post stores the post as a
draft, or asscheduledwith a Schedule at date, in which case FoPost publishes it for you and no further module is needed. - Publish a post hands a draft to the delivery queue. It returns as soon as delivery is queued, not once the post is live on the network.
To know the outcome, use Watch events, which arrives within seconds, or the polling Watch published posts and Watch failed posts triggers.
Media referenced by a post must already be reachable by URL, so run Upload a media file first and map the returned URL into the content block.
Errors
The app maps the API's {"error", "message"} envelope onto readable Make errors and picks the error type that makes a scenario behave sensibly.
| Status | Make error type | Effect |
|---|---|---|
| 401 | InvalidAccessTokenError | Scenario is deactivated and you are told to reconnect |
| 402 | InvalidConfigurationError | Scenario is deactivated; the message carries the upgrade link |
| 403 | InvalidConfigurationError | The key lacks the scope, or the account has no subscription |
| 404, 422 | DataError | The bundle is stored as an incomplete execution if you enabled that |
| 429 | RateLimitError | Make pauses the scenario and resumes it instead of counting an error |
| 5xx | ConnectionError | Make backs off and retries |
Next
Related documentation
- SDKs & Integrations
Official FoPost clients for TypeScript, Python, PHP, Ruby, Go, Rust, Java, .NET, Swift, Kotlin, Dart, and Elixir, framework integrations from Laravel to Next.js, and tooling for the CLI, CI, Terraform, and the automation platforms.
- SDKs Overview
Every official FoPost client, what it covers, and how to pick one.
- TypeScript SDK
The official TypeScript and Node.js client for the FoPost API.
- Python SDK
The official Python client for the FoPost API.
- PHP SDK
The official PHP client for the FoPost API, with no framework and no HTTP library.
- Ruby SDK
The official Ruby client for the FoPost API, with no runtime dependencies.
- Go SDK
The official Go client for the FoPost API.
- Rust SDK
The official Rust client for the FoPost API, async and built on reqwest.