n8n Integration
Wire Growero into any n8n workflow. Schedule LinkedIn posts, react to publish events, and build multi-step content pipelines.
Overview
The n8n-nodes-growero community node connects Growero to n8n's 700+ integrations. Common use cases:
- Auto-publish content from RSS feeds, databases, or AI generators to LinkedIn
- Trigger automations when posts publish (notify Slack, log to Google Sheets, create follow-ups)
- Bulk-import scheduled posts from spreadsheets or other tools
- AI pipelines: generate content with OpenAI/Claude, then schedule via Growero
0 deps
Zero dependencies
3.7 KB
Package size
Live channel
Installation
From n8n UI (recommended)
- Open your n8n instance
- Go to Settings → Community Nodes
- Click Install
- Enter
n8n-nodes-groweroand confirm - Wait ~10 seconds; the Growero node appears in the palette
Self-hosted (Docker)
docker exec -it <n8n-container> sh -c \
"cd /home/node/.n8n/nodes && npm install n8n-nodes-growero"
docker restart <n8n-container>From tarball (air-gapped)
docker cp n8n-nodes-growero-0.1.1.tgz <container>:/tmp/
docker exec -it <container> sh -c \
"cd /home/node/.n8n/nodes && npm install /tmp/n8n-nodes-growero-0.1.1.tgz"
docker restart <container>Authentication
- Generate an API key at app.growero.io → Settings → API Keys
- In n8n, add a new Growero API credential
- Paste your API key (
growero_live_...for production) - (Optional) Override the Base URL for self-hosted Growero
- n8n tests the credential against
/api/v1/whoamiautomatically
growero_test_... key to test workflows without actually publishing to social channels.Operations
| Operation | What it does | Scope |
|---|---|---|
| Post → List | Get up to 200 posts, filter by status/platform | posts:read |
| Post → Get | Fetch a single post by ID | posts:read |
| Post → Create | Schedule a new post (LinkedIn live; more channels rolling out) | posts:write |
| Post → Delete | Delete a scheduled post | posts:write |
Channel availability
Example Workflows
RSS feed → AI rewrite → LinkedIn post
Schedule Trigger (every hour)
↓
RSS Feed Read (your blog URL)
↓
Filter (only items < 1 hour old)
↓
OpenAI Node (rewrite headline for LinkedIn tone)
↓
Growero Node (Post → Create)
- Platform: linkedin
- Text: {{ $json.rewritten_text }}
- Scheduled at: (leave blank for immediate)Google Sheets content calendar → Growero
Schedule Trigger (daily at 8am)
↓
Google Sheets (read rows where "status" = "ready")
↓
Loop Over Items
↓
Growero Node (Post → Create)
- Platform: linkedin
- Text: {{ $json.post_text }}
- Scheduled at: {{ $json.publish_date }}
↓
Google Sheets (update status → "scheduled")Post published → Slack notification
Cron Trigger (every 5 minutes)
↓
Growero Node (Post → List, status: published)
↓
Function (filter to posts published since last run)
↓
Slack Node (send to #marketing)Webhook trigger (real-time)
For instant reactions, use Growero's outbound webhooks instead of polling:
n8n Webhook Node (receives POST from Growero)
- URL: https://your-n8n.example.com/webhook/growero
↓
Switch Node (route by event type)
↓
post.published → Slack notification
post.failed → Email alert
comment.received → AI reply generatorWebhook Triggers
Instead of polling, configure Growero to push events to your n8n webhook endpoint in real-time.
Setup steps
- In n8n, add a Webhook node and copy its URL
- In Growero (CLI or app), create a webhook endpoint pointing to that URL:
growero webhooks create \
--url https://your-n8n.example.com/webhook/abc123 \
--events post.published,post.failed,comment.received- Test it:
growero webhooks test - Your n8n workflow triggers instantly when events fire
Available webhook events
post.createdpost.publishedpost.failedpost.updatedpost.deletedcomment.receivedmention.receivedfollower.gainedping.testVerifying webhook signatures
Every webhook delivery includes an X-Growero-Signature header (HMAC-SHA256). Validate it in a Function node:
const crypto = require('crypto');
const secret = 'your_signing_secret';
const body = JSON.stringify($input.first().json);
const sig = $input.first().headers['x-growero-signature'];
const [tPart, vPart] = sig.split(',');
const ts = tPart.split('=')[1];
const expected = crypto
.createHmac('sha256', secret)
.update(ts + '.' + body)
.digest('hex');
if (vPart.split('=')[1] !== expected) {
throw new Error('Invalid webhook signature');
}
return $input.all();Security
- Zero runtime dependencies — the published package contains 5 files totaling 3.7 KB
- No
postinstall/preinstallscripts — zero install-time code execution - API key is stored encrypted in n8n's credential store, never logged
- All API calls use HTTPS + Bearer auth header (no query-string secrets)
- Package provenance verifiable via
npm audit signatures
Troubleshooting
"Node not found in palette"
Restart n8n after installing. For Docker: docker restart n8n
"Authentication failed"
Check your API key at app.growero.io → Settings → API Keys. Ensure it hasn't been revoked.
"SLOT_TAKEN" error on Create
Another post is already scheduled for that exact time. Offset by 1 minute or use a different time slot.
Rate limited (429)
Default: 60 reads/min, 30 writes/min per key. Add a Wait node between bulk operations.