Overview
Connect Marky to n8n for automated social media posting. Common workflows:- Blog published → social posts — RSS trigger → create post in Marky → schedule
- New lead → welcome posts — CRM trigger → create branded social content
- Weekly batch — Schedule trigger → create a week of posts
Option A: the community node (recommended)
Installn8n-nodes-marky in n8n under Settings > Community
Nodes > Install. It adds two nodes:
- Marky: list workspaces and connected accounts, create a post (as a draft or scheduled in the same step), get, schedule, list and delete posts, and upload media from a URL. (Post Get and Delete arrived in 0.1.1.)
- Marky Trigger: starts a workflow when a post is published
(
post.published). Activating the workflow registers the webhook for you, and every delivery’s signature and timestamp are checked before the workflow runs, so forged or replayed calls are refused.
mk_live_ API key. The Base URL
defaults to https://api.mymarky.ai.
Create steps send an Idempotency-Key per execution and item, so turning on
n8n’s Retry On Fail can never post twice.
Example: draft, read back, delete
Manual Trigger → Marky (Post > Create) → Marky (Post > Get) → Marky (Post > Delete). Leave Schedule For empty and the post is a draft (statusNEW): nothing is
published. In Get and Delete, set Post ID to {{ $('Marky').item.json.id }}.
On 0.1.0 of the node, which has no Post Get or Delete, use an HTTP Request
node instead, with Authentication Predefined Credential Type > Marky API
(it reuses your credential) and the URL
https://api.mymarky.ai/api/businesses/{{ $('Marky').item.json.business_id }}/posts/{{ $('Marky').item.json.id }}.
Option B: HTTP Request nodes
1. Create an HTTP Request node
2. Body
3. Schedule the post (optional)
Add a second HTTP Request node:
n8n’s built-in looping makes it easy to create multiple posts and schedule them with staggered times.
Use a specific design template
To make every post use the same design, you need its template ID. The app does not show template IDs, so get them from the API.1. List your templates
Add an HTTP Request node (same auth header as above):
Each item in
items has a template_id, a name, and a preview_url so you
can see which design it is. If next is not null, call again with
&cursor={{ $json.next }} to get the next page.
2. Generate posts with that template
GET .../templates/{template_id}
shows the text fields and image slots, and POST .../designs renders it.
