Skip to the content.

Quick reference (TL;DR for agents)

Why connect Skool to n8n?

Skool has no official API and the existing “Skool by Skool” Zapier/n8n connector only triggers on a few events (new member, new post) — it doesn’t write. You can’t approve members, post content, publish courses, or update Auto DM from it.

The Apify-hosted Skool All-in-One API actor wraps the entire Skool admin surface (posts, comments, members, classroom, files, groups) in a single HTTP endpoint. From n8n you call it with one HTTP Request node.

What you can automate from n8n

n8n flow Skool action Recipe
Schedule trigger → LLM screen → approve/reject members:pendingmembers:approve Auto-approve members
Cron → posts with 0 replies → AI draft → Telegram approval → publish posts:filterposts:createComment Reply unanswered
Listmonk/ConvertKit campaign sent → mirror to community feed posts:create Newsletter to Skool
Webhook (Stripe / new signup) → set personalized Auto DM groups:setAutoDM Auto DM new members
Markdown files in Git → full course in Skool classroom classroom:createCourse + classroom:setBody Publish course from markdown
Schedule → batch refresh course covers via R2/S3 URLs files:uploadImage + classroom:updateCourse Batch update covers

Architecture

n8n                                Apify                       Skool
───                                ─────                       ─────
[Cron / Webhook trigger]
       │
       ▼
[HTTP Request node ─────POST JSON────→ run-sync-get-dataset-items ──→ api.skool.com]
{ action, cookies, ... }                                              (cookies + WAF + buildId
       │                                                              handled by actor)
       ◄────────────── { success: true, data: ... } ◄────────────────┘

Every Skool operation = one HTTP POST. No SDK to install in n8n. No node to develop. Idempotent retries are safe.

Setup — 5 minutes

1. Get your Apify API token

Sign up at apify.com (free tier covers most personal use). Token from console.apify.com/account/integrations.

2. Store the token in n8n Credentials

n8n → Credentials → New → Header Auth:

(Alternatively, use n8n’s HTTP Query Auth and put the token in the URL.)

3. Bootstrap your Skool cookies (one-time, valid ~3.5 days)

In n8n, create a one-off workflow with a single HTTP Request node:

{
  "action": "auth:login",
  "email": "admin@yourcommunity.com",
  "password": "your-skool-password",
  "groupSlug": "your-community-slug"
}

Execute once. Copy the cookies field from the response. Save it as a new n8n Credential called Skool Cookies. Plan to rotate it every ~3.5 days (or branch on WAF_EXPIRED error and call auth:login automatically — see Production gotchas).

4. Make your first write — post a community update

Create a new workflow with one HTTP Request node:

{
  "action": "posts:create",
  "cookies": "",
  "groupSlug": "your-community",
  "params": {
    "title": "Workflow shipped today",
    "content": "Just shipped the auto-approval workflow. It now screens applicants with GPT-4o before approving. Saved me 30 minutes today.",
    "labelId": null
  }
}

Done. The new post appears in your community feed within 1-2 seconds.

Example: the n8n auto-approve template

I published this workflow as an official n8n template — clone it directly into your n8n.

Flow:

  1. Webhook receives Skool’s “new applicant” notification (or schedule polls members:pending every 5 min if you don’t have a Skool webhook)
  2. Function extracts applicant LinkedIn + answers from the apply form
  3. OpenAI/Claude/Anthropic node screens against your criteria (returns approve | reject | review)
  4. Switch branches on the LLM verdict
  5. HTTP Request to members:approve or members:reject
  6. Telegram / Slack notifies you with the verdict + member info

Cost: ~$0.02 per applicant in LLM + ~$0.01 per Skool call. For 30 applicants/week: ~$5/mo.

Production gotchas

Full workflow JSON — minimal “post on schedule”

Click to expand ```json { "name": "Skool — daily community update", "nodes": [ { "parameters": { "rule": {"interval": [{"field": "hours", "hoursInterval": 24}]} }, "id": "1", "name": "Daily 9am", "type": "n8n-nodes-base.scheduleTrigger", "typeVersion": 1.1, "position": [200, 300] }, { "parameters": { "method": "POST", "url": "=https://api.apify.com/v2/acts/cristiantala~skool-all-in-one-api/run-sync-get-dataset-items?token=&build=latest&timeout=90", "sendBody": true, "specifyBody": "json", "jsonBody": "={\n \"action\": \"posts:create\",\n \"cookies\": \"\",\n \"groupSlug\": \"your-community\",\n \"params\": {\n \"title\": \"Daily standup — \",\n \"content\": \"What are you shipping today? Drop it in this thread.\"\n }\n}", "options": {"timeout": 120000} }, "id": "2", "name": "Post to Skool", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [500, 300] } ], "connections": { "Daily 9am": {"main": [[{"node": "Post to Skool", "type": "main", "index": 0}]]} } } ```

Start automating Skool from n8n today

→ Open the Skool All-in-One API actor on Apify

No Skool community yet? Launch one in 10 minutes — 14-day free trial. Need an n8n instance? Get started free — the workflow tool we use throughout these recipes.