Back to Templates

Form-Based X/Twitter Poster

Last update

Last update 23 days ago

Categories

Share


🚀 Form-Based X/Twitter Poster (v2)

A user-friendly n8n workflow that enables users to submit tweets through a simple web form — with optional image, video, or GIF uploads — and posts them to a connected X/Twitter account. Designed for ease of use, this workflow handles both media and text-only posts, providing clear feedback upon submission.


🧭 Overview

Workflow Name: Form-Based X/Twitter Poster (v2)
Goal: Provide a web form for users to create tweets, upload optional media, and post directly to X/Twitter.


🛠 How It Works

1. Form Submission Trigger

  • Node: On form submission
  • Type: formTrigger
  • Purpose: Renders a web form for tweet creation.
  • Fields:
    • Post Content: Required textarea for tweet text.
    • Media: Optional file upload (.jpg, .png, .gif, .mp4, etc.).
  • Button: "Submit"
  • Output: JSON with text and binary media (if any).

2. Extract Media Details

  • Node: Extract Media Details
  • Type: code
  • Purpose: Extracts tweet text, checks for media, determines media type.
  • Output Example:
{
  "content": "My tweet!",
  "mime_type": "image/jpeg",
  "media_type": "IMAGE"
}

3. If Media Exists

  • Node: If Media Exists
  • Type: if
  • Purpose: Checks whether media was uploaded.
  • True Path: Media was uploaded.
  • False Path: No media uploaded.

4. Upload Media to X/Twitter (True path only)

  • Node: Upload Media (X)
  • Type: httpRequest
  • Purpose: Uploads media to Twitter via API v1.1.
  • Media Category: TWEET_IMAGE (can be customized)
  • Auth: Twitter OAuth1 API
  • Output: Includes media_id_string

5. Post Tweet with Media (True path)

  • Node: X
  • Type: twitter
  • Purpose: Posts tweet with uploaded media.
  • Auth: Twitter OAuth2 API

6. Post Text-Only Tweet (False path)

  • Node: X1
  • Type: twitter
  • Purpose: Posts tweet without media.
  • Auth: Twitter OAuth2 API

7. Show Confirmation Message

  • Node: End Form
  • Type: form
  • Purpose: Displays thank-you message post-submission.
  • Title: Thank you so much for sharing your experience on X! 🖤
  • Message: We truly appreciate your support and are so glad we could make a positive impact. Your words mean the world to us!

🛠 How to Customize

  • Form Fields: Change form title, labels, help texts, or file formats.
  • Media Logic:
    • Add logic for distinguishing GIF vs VIDEO.
    • Adjust media upload URL dynamically:
      https://upload.twitter.com/1.1/media/upload.json?media_category={{ $json.media_type === 'VIDEO' ? 'TWEET_VIDEO' : ($json.media_type === 'GIF' ? 'TWEET_GIF' : 'TWEET_IMAGE') }}
      
  • Error Handling: Add Error Trigger nodes to catch and manage failures gracefully.
  • Tweet Text: Customize tweet text with extra formatting or default content.
  • Advanced Ideas:
    • Schedule tweets
    • Post to multiple accounts
    • Add content approval steps

🔐 Required Credentials

1. Twitter OAuth1 API

  • Used by: Upload Media (X)
  • Required for: Media upload via v1.1
  • Credentials: Consumer Key, Consumer Secret, Access Token, Access Token Secret
  • Workflow Credential Name: X OAuth - Akhil

2. Twitter OAuth2 API

  • Used by: X, X1
  • Required for: Posting tweets
  • Scopes: tweet.read, tweet.write, users.read, offline.access
  • Workflow Credential Name: X OAuth2 - Akhil

💡 Use Cases

  • Easy Tweet Tool: For non-technical users to share content.
  • Content Approval: Internal review system before posting.
  • Announcements: Quickly broadcast updates.
  • Campaign Posting: Streamline recurring content sharing.

🧑‍💻 Node Naming Suggestions

Old Name Suggested Name
If Image Exists If Media Exists
X Post Tweet with Media
X1 Post Text-Only Tweet

❤️ Made with love by Akhil using n8n