Back to Blog
TutorialMar 2026

n8n TikTok Automation: Complete No-Code Guide 2026

n8n has exploded in popularity — searches are up 320% as teams look for self-hosted alternatives to Zapier and Make. But there's a problem: n8n doesn't have an official TikTok node. If you've been searching for n8n TikTok automation, you've probably hit a wall.

This guide solves that. You'll learn how to build no-code TikTok bots using n8n's HTTP Request node with Postqued's API. By the end, you'll have automated workflows that post to TikTok from Google Sheets, RSS feeds, webhooks, and even AI-generated content pipelines.

What You'll Build

  • Scheduled TikTok posting — Set up cron-based workflows
  • Bulk uploads from spreadsheets — Post directly from Google Sheets
  • RSS-to-TikTok automation — Auto-post new content from feeds
  • AI content pipelines — Generate captions and post automatically
  • Multi-platform workflows — Post to multiple accounts simultaneously

Prerequisites

Before building your n8n TikTok integration, you'll need:

  1. n8n instancen8n Cloud (easiest) or self-hosted
  2. Postqued accountSign up free
  3. Connected TikTok account — Link in your Postqued dashboard
  4. Postqued API key — Generate in Settings → API Keys
  5. Video files — Content ready for posting

Step 1: Set Up n8n

  1. Visit n8n.io/cloud and create an account
  2. Choose a plan (free tier available with execution limits)
  3. Your instance URL will be something like yourname.n8n.cloud

Pros: No server management, automatic updates, hosted HTTPS
Cons: Execution limits on free tier, less control

Option B: Self-Hosted (Docker)

For unlimited executions and full control:

docker run -it --rm \
  --name n8n \
  -p 5678:5678 \
  -v ~/.n8n:/home/node/.n8n \
  n8nio/n8n

Access at http://localhost:5678. For production, use Docker Compose with persistent storage and reverse proxy.

Pros: Unlimited executions, data privacy, custom nodes
Cons: Requires server management, SSL setup

Step 2: Create Your First Workflow

  1. Open n8n and click Add Workflow
  2. Name it: TikTok Auto Poster
  3. Click Save (Ctrl+S)

This workflow will demonstrate the core n8n social media workflow pattern: trigger → process → post.

Basic Workflow Structure

Your n8n workflow to post TikTok follows this pattern:

[Trigger] → [Prepare Data] → [Upload Video] → [Publish to TikTok] → [Log Result]

Step 3: Add the HTTP Request Node for Postqued API

Since there's no official TikTok node, we use the HTTP Request node — n8n's most powerful feature for API integrations.

Configure Authentication

First, create a credential for your Postqued API key:

  1. Click the key icon in the top right → Create New Credential
  2. Select Header Auth
  3. Name: Postqued API
  4. Header Name: Authorization
  5. Value: Bearer pq_your_api_key_here
  6. Click Save

Tip: Store your API key in n8n credentials, never hardcode it in nodes. This enables secure sharing and environment-specific configs.

Test the Connection

Add an HTTP Request node to verify authentication:

  1. Drag HTTP Request onto the canvas
  2. Configure:
    • Method: GET
    • URL: https://api.postqued.com/v1/platform-accounts
    • Authentication: Header Auth → Postqued API
  3. Click Test Step

You should see your connected TikTok accounts in the response. If you get a 401 error, check your API key.

Step 4: Build the Upload Workflow

Now let's create a complete n8n TikTok automation that uploads a video and schedules it for posting.

Node 1: Trigger (Manual)

  1. Add When clicking 'Test workflow' trigger
  2. Add sample data in JSON:
{
  "filename": "my-video.mp4",
  "caption": "Automated via n8n! #automation #n8n",
  "scheduleTime": "2026-03-15T14:00:00Z"
}

Node 2: Request Upload URL

Add an HTTP Request node:

  • Name: Get Upload URL
  • Method: POST
  • URL: https://api.postqued.com/v1/content/upload
  • Authentication: Postqued API
  • Headers:
    • Content-Type: application/json
  • Body: JSON
{
  "filename": "{{ $json.filename }}",
  "contentType": "video/mp4",
  "fileSize": 5242880
}

Important: Set fileSize to your actual file size in bytes. The example is ~5MB.

Node 3: Upload File

This node uploads the actual video file to the presigned URL:

  • Name: Upload Video File
  • Method: PUT
  • URL: {{ $json.upload.url }}
  • Authentication: None (presigned URL is pre-authenticated)
  • Headers:
    • Content-Type: video/mp4
  • Body: Binary Data
  • Binary Property: data (you'll set this via file input)

Note: For testing, manually upload a file and reference its binary property. In production, this connects to Google Drive, Dropbox, or S3 triggers.

Node 4: Confirm Upload

  • Name: Confirm Upload
  • Method: POST
  • URL: https://api.postqued.com/v1/content/upload/complete
  • Authentication: Postqued API
  • Body: JSON
{
  "contentId": "{{ $('Get Upload URL').item.json.contentId }}",
  "key": "{{ $('Get Upload URL').item.json.upload.fields.key }}",
  "filename": "{{ $json.filename }}",
  "contentType": "video/mp4",
  "size": 5242880,
  "width": 1080,
  "height": 1920,
  "durationMs": 15000
}

Node 5: Publish to TikTok

  • Name: Publish to TikTok
  • Method: POST
  • URL: https://api.postqued.com/v1/content/publish
  • Authentication: Postqued API
  • Headers:
    • Idempotency-Key: {{ $now.format('x') }} (timestamp ensures uniqueness)
  • Body: JSON
{
  "contentIds": ["{{ $('Get Upload URL').item.json.contentId }}"],
  "targets": [
    {
      "platform": "tiktok",
      "accountId": "your-tiktok-account-id",
      "intent": "draft",
      "caption": "{{ $('When clicking 'Test workflow'').item.json.caption }}",
      "dispatchAt": "{{ $('When clicking 'Test workflow'').item.json.scheduleTime }}",
      "options": {
        "privacyLevel": "PUBLIC_TO_EVERYONE",
        "disableDuet": false,
        "disableStitch": false,
        "disableComment": false
      }
    }
  ]
}

Important: Replace your-tiktok-account-id with your actual account ID from Step 3.

Execute the Workflow

  1. Click Test Workflow
  2. The video will upload and schedule as a TikTok draft
  3. Check your TikTok inbox to see the scheduled post

Step 5: Add Triggers

The real power of n8n social media workflow comes from automation triggers. Let's add practical triggers beyond manual execution.

Trigger Option 1: Schedule (Cron)

Post daily at 9 AM:

  1. Replace manual trigger with Schedule Trigger
  2. Trigger Interval: Days
  3. Days Between Triggers: 1
  4. Trigger at Hour: 9
  5. Trigger at Minute: 0

Use this for consistent posting schedules. Pull content from a database or queue in subsequent nodes.

Trigger Option 2: Webhook

Post when external systems call your workflow:

  1. Add Webhook trigger
  2. Method: POST
  3. Path: tiktok-post
  4. Response Mode: Last Node

Now you can POST to https://your-n8n-instance/webhook/tiktok-post with:

{
  "videoUrl": "https://cdn.example.com/video.mp4",
  "caption": "Posted via webhook",
  "scheduleTime": "2026-03-15T10:00:00Z"
}

Perfect for integrating with CMS systems, e-commerce platforms, or custom apps.

Trigger Option 3: Form Submission

Let non-technical team members submit posts:

  1. Add n8n Form trigger
  2. Form Title: Submit TikTok Content
  3. Add fields:
    • Video File (File)
    • Caption (Text)
    • Post Now vs Schedule (Options)
    • Schedule Date (Date, if scheduling)

This creates a simple form URL that content creators can use without touching n8n.

Advanced Workflows

Now that you understand the basics, let's explore production-ready n8n TikTok automation patterns.

Workflow 1: Post from Google Sheets

Build a content calendar in Sheets that automatically posts to TikTok.

Setup:

  1. Create a Google Sheet with columns: Date, Video URL, Caption, Status, Posted At
  2. Add Google Sheets trigger: Row Added
  3. Add HTTP Request nodes for upload and publish
  4. Add Google Sheets update node to mark Status as "Posted"

Sheet Structure:

DateVideo URLCaptionStatusPosted At
2026-03-15drive://video1.mp4Morning vibes!Ready
2026-03-16s3://bucket/video2.mp4Tutorial timeReady

Benefits: Non-technical team collaboration, visual content calendar, easy bulk uploads.

Workflow 2: RSS Feed to TikTok

Auto-convert blog posts or news to TikTok content.

Setup:

  1. Add RSS Read trigger
  2. Feed URL: Your blog's RSS feed
  3. Add HTTP Request to fetch featured images
  4. Use ImageMagick or FFmpeg nodes to create video from images
  5. Post to TikTok with blog excerpt as caption

Use Cases: News aggregation, content repurposing, evergreen promotion.

Workflow 3: AI-Generated Content Pipeline

Combine n8n with AI for fully automated content creation.

Workflow:

[Schedule Trigger] → [OpenAI: Generate Script] → [ElevenLabs: Voiceover] → 
[HTTP: Stock Footage] → [FFmpeg: Merge] → [Upload to TikTok] → 
[OpenAI: Generate Caption] → [Postqued: Publish]

Components:

  1. OpenAI node generates video script
  2. ElevenLabs converts text to voiceover
  3. Pexels/Unsplash nodes fetch relevant footage
  4. FFmpeg node stitches everything together
  5. Postqued API publishes final video

This creates a no-code TikTok bot that generates and posts content daily without human intervention.

Workflow 4: Multi-Platform Posting

Post to TikTok, Instagram, and YouTube Shorts simultaneously.

Since Postqued supports multiple platforms, modify the publish node:

{
  "contentIds": ["content-uuid"],
  "targets": [
    {
      "platform": "tiktok",
      "accountId": "tiktok-account-id",
      "intent": "draft",
      "caption": "Multi-platform test #tiktok"
    },
    {
      "platform": "instagram",
      "accountId": "ig-account-id",
      "intent": "draft",
      "caption": "Multi-platform test #instagram"
    }
  ]
}

Benefits: Single workflow controls your entire social presence. Update once, post everywhere.

Sample Workflow JSON

Import this complete workflow into n8n to get started immediately:

{
  "name": "TikTok Auto Poster - Postqued",
  "nodes": [
    {
      "parameters": {},
      "id": "trigger",
      "name": "When clicking 'Test workflow'",
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [250, 300]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.postqued.com/v1/content/upload",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendBody": true,
        "contentType": "json",
        "body": {
          "filename": "={{ $json.filename }}",
          "contentType": "video/mp4",
          "fileSize": 5242880
        }
      },
      "name": "Get Upload URL",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.1,
      "position": [450, 300]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.postqued.com/v1/content/upload/complete",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendBody": true,
        "contentType": "json",
        "body": {
          "contentId": "={{ $json.contentId }}",
          "key": "={{ $json.upload.fields.key }}",
          "filename": "={{ $('When clicking 'Test workflow'').item.json.filename }}",
          "contentType": "video/mp4",
          "size": 5242880,
          "width": 1080,
          "height": 1920,
          "durationMs": 15000
        }
      },
      "name": "Confirm Upload",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.1,
      "position": [650, 300]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.postqued.com/v1/content/publish",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Idempotency-Key",
              "value": "={{ $now.format('x') }}"
            }
          ]
        },
        "sendBody": true,
        "contentType": "json",
        "body": {
          "contentIds": ["={{ $('Get Upload URL').item.json.contentId }}"],
          "targets": [
            {
              "platform": "tiktok",
              "accountId": "YOUR_ACCOUNT_ID",
              "intent": "draft",
              "caption": "={{ $('When clicking 'Test workflow'').item.json.caption }}",
              "dispatchAt": "={{ $('When clicking 'Test workflow'').item.json.scheduleTime }}",
              "options": {
                "privacyLevel": "PUBLIC_TO_EVERYONE"
              }
            }
          ]
        }
      },
      "name": "Publish to TikTok",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.1,
      "position": [850, 300]
    }
  ],
  "connections": {
    "When clicking 'Test workflow'": {
      "main": [
        [
          {
            "node": "Get Upload URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Upload URL": {
      "main": [
        [
          {
            "node": "Confirm Upload",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Confirm Upload": {
      "main": [
        [
          {
            "node": "Publish to TikTok",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

To import: Copy → n8n → Workflows → Import from URL → Paste JSON

Troubleshooting Common Issues

Error: 401 Unauthorized

Cause: Invalid API key
Fix: Verify your API key in Postqued dashboard. Keys start with pq_. Check credential is selected in HTTP Request node.

Error: 400 Bad Request - MISSING_IDEMPOTENCY_KEY

Cause: Missing unique idempotency header
Fix: Add Idempotency-Key header with unique value (timestamp or UUID).

Error: 404 Account Not Found

Cause: Invalid TikTok account ID
Fix: Run GET /v1/platform-accounts to get correct account ID. Must be exact match.

Video Upload Fails

Cause: Incorrect file size or presigned URL expired
Fix: Ensure fileSize in bytes matches actual file. Complete upload within 15 minutes of generating URL.

Workflow Executes But No TikTok Post

Cause: Using intent: publish without approval
Fix: Use intent: draft for all posts. TikTok API requires special approval for direct publishing.

Rate Limiting (429)

Cause: Too many requests
Fix: Add Wait nodes between requests. Limits: 10 publishes/min, 20 uploads/min.

Binary Data Not Found

Cause: File not properly loaded
Fix: Ensure previous node outputs binary data. Check binary property name matches (default: data).

n8n vs Zapier vs Make for TikTok

Featuren8n + PostquedZapierMake
PricingFree (self-hosted)$19.99+/mo$9+/mo
TikTok Support✅ Via API❌ None❌ None
Self-Hosted Option✅ Yes❌ No❌ No
Code Nodes✅ JavaScript/PythonLimitedLimited
Execution ControlFullLimitedLimited
Data PrivacyFull controlVendor-hostedVendor-hosted

Winner: n8n + Postqued is the only solution offering free, self-hosted TikTok automation with full API control.

Best Practices for n8n TikTok Automation

  1. Always use idempotency keys — Prevents duplicate posts if workflow retries
  2. Handle errors gracefully — Add Error Trigger workflows to notify on failures
  3. Log everything — Send execution logs to Airtable/Notion for audit trails
  4. Rate limit your workflows — Respect TikTok's limits (max 10 posts/min)
  5. Test with drafts first — Never test with publish intent on production accounts
  6. Monitor API changes — Subscribe to Postqued changelog for endpoint updates
  7. Use credential vault — Never hardcode API keys in node parameters
  8. Version your workflows — Export JSON backups before major changes

Next Steps

You now have a complete n8n TikTok integration that rivals enterprise social media tools. Here's how to expand:

  1. Connect your data sources — Link Google Sheets, Notion, or Airtable for content management
  2. Add AI content generation — Integrate OpenAI for automatic caption writing
  3. Build approval workflows — Add human-in-the-loop review before posting
  4. Monitor performance — Track which posts perform best, optimize timing
  5. Scale to multiple accounts — Use the same workflow for client management

The combination of n8n's flexibility and Postqued's TikTok API gives you unlimited automation possibilities. Start with the basic workflow above, then gradually add complexity as your needs grow. For AI-powered approaches, check out our MCP TikTok AI agent guide and learn how to post to TikTok with an AI agent. For more API details, see our guide on scheduling TikTok posts via API.

Ready to automate? Get your Postqued API key and start building your n8n TikTok automation today.


Have questions about your specific workflow? Check our API documentation or reach out to support.