contentdrips-api

n8n community node for Contentdrips - Create carousels and static graphics using the Contentdrips API

Package Information

Released: 7/5/2025
Downloads: 7 weekly / 19 monthly
Latest Version: 1.1.3
Author: n8n contributor

Documentation

n8n-nodes-contentdrips-api

n8n.io - Workflow Automation

This is an n8n community node that lets you use Contentdrips in your n8n workflows.

Contentdrips is a powerful API for creating carousels and static graphics programmatically. It enables you to automate content creation using templates, making it perfect for social media automation, marketing campaigns, and content generation workflows.

n8n is a fair-code licensed workflow automation platform.

Installation

Follow the installation guide in the n8n community nodes documentation.

GUI Installation

  1. Go to Settings > Community Nodes
  2. Select Install
  3. Enter n8n-nodes-contentdrips-api
  4. Select Install

Manual Installation

To get started, install the package in your n8n root directory:

npm install n8n-nodes-contentdrips-api

For Docker installations, add the following line before the font installation command in your n8n Dockerfile:

RUN cd /usr/local/lib/node_modules/n8n && npm install n8n-nodes-contentdrips-api

Operations

Graphic Resource

  • Create: Generate a static graphic using a Contentdrips template

Carousel Resource

  • Create: Generate a multi-slide carousel using a Contentdrips template

Job Resource

  • Get Status: Check the processing status of a job
  • Get Result: Get the final result of a completed job

Credentials

You need to authenticate with the Contentdrips API using an API token.

Prerequisites

  1. Sign up for a Contentdrips account
  2. Create an API token in your API Management dashboard

Setup

  1. In n8n, go to Credentials and create a new Contentdrips API credential
  2. Enter your API token
  3. Save the credential

Configuration

Template Setup

Before using this node, you need to:

  1. Create templates in your Contentdrips dashboard
  2. Label the elements you want to update dynamically:
    • Right-click on textboxes or images in the template editor
    • Select "Add Label" and give it a name (e.g., title_1, hashtag_1)
    • Use these labels in your n8n workflow to update content

Supported Output Formats

  • PNG: High-quality raster images
  • PDF: Perfect for print and professional documents

Basic Usage

Creating a Static Graphic

{
  "resource": "graphic",
  "operation": "create",
  "templateId": "126130",
  "output": "png",
  "contentUpdates": {
    "updates": [
      {
        "type": "textbox",
        "label": "title_1",
        "value": "My Dynamic Title"
      },
      {
        "type": "textbox", 
        "label": "hashtag_1",
        "value": "#automation"
      }
    ]
  }
}

Creating a Carousel - Flexible Structure

Intro Slide (Optional):

  • Enable/disable toggle
  • When enabled: heading, description, and image fields automatically appear

Content Slides (Main content):

  • Method 1 - Build in UI: Manually add slides using the interface
  • Method 2 - JSON Expression: Use dynamic data with expressions like {{ $json.slides }}

Ending Slide (Optional):

  • Enable/disable toggle
  • When enabled: heading, description, and image fields automatically appear

Example - UI Method:

{
  "resource": "carousel",
  "operation": "create", 
  "templateId": "126130",
  "output": "png",
  "enableIntroSlide": true,
  "introSlideHeading": "Welcome!",
  "introSlideDescription": "Let's get started",
  "contentSlidesInputMethod": "ui",
  "contentSlides": {
    "slide": [
      {
        "heading": "Step 1",
        "description": "First step details"
      },
      {
        "heading": "Step 2", 
        "description": "Second step details"
      }
    ]
  },
  "enableEndingSlide": true,
  "endingSlideHeading": "Thank you!",
  "endingSlideDescription": "Follow for more tips"
}

Example - JSON Method for Content Slides:

{
  "resource": "carousel",
  "operation": "create", 
  "templateId": "126130",
  "output": "pdf",
  "contentSlidesInputMethod": "json",
  "contentSlidesJson": "{{ $json.dynamicSlides }}"
}

Where $json.dynamicSlides contains:

[
  {
    "heading": "Dynamic Tip 1",
    "description": "Generated from data"
  },
  {
    "heading": "Dynamic Tip 2", 
    "description": "Another generated tip"
  }
]

Branding

You can include branding information that will be automatically applied to templates with branding placeholders:

{
  "addBranding": true,
  "branding": {
    "name": "John Doe",
    "handle": "@johndoe",
    "bio": "Content Creator & Marketer",
    "website_url": "https://johndoe.com",
    "avatar_image_url": "https://example.com/avatar.jpg"
  }
}

Job Management

Contentdrips processes requests asynchronously. After creating a graphic or carousel:

  1. You'll receive a job_id in the response
  2. Use the Job > Get Status operation to check processing status
  3. Use the Job > Get Result operation to get the final download URLs

Compatibility

  • Minimum n8n version: 0.198.0
  • Tested with n8n version: 1.0.0+

Usage Examples

Social Media Automation

Create a workflow that:

  1. Triggers on a schedule
  2. Fetches content from a CMS or spreadsheet
  3. Uses Contentdrips to generate social media graphics
  4. Posts to social platforms automatically

Marketing Campaign Generator

Build a workflow that:

  1. Reads campaign data from Google Sheets
  2. Generates branded graphics for each campaign
  3. Stores results in cloud storage
  4. Sends notification emails with download links

Dynamic Workflow Examples

Example 1: Variable Slide Count from Spreadsheet

Google Sheets → Read Data → Code Node (Transform) → Contentdrips → Save Results

Code Node example to transform spreadsheet data:

// Input: Array of tips from spreadsheet
const tips = $input.all()[0].json.tips;

// Transform to Contentdrips format
const slides = tips.map((tip, index) => ({
  heading: tip.title,
  description: tip.description,
  image: tip.image_url || `https://example.com/slide${index + 1}.jpg`
}));

return [{
  json: {
    slides: { slide: slides }
  }
}];

Example 2: AI-Generated Content with Variable Length

OpenAI → Generate Tips → Code Node → Contentdrips → Post to Social

The AI might generate 5 tips one day and 12 tips another day - the Contentdrips node handles both scenarios seamlessly.

Example 3: RSS Feed to Carousel

RSS Feed → Filter Items → Transform → Contentdrips → Cloud Storage

Number of slides depends on RSS feed items - could be 3 today, 10 tomorrow.

Troubleshooting

Common Issues

Authentication Errors

  • Verify your API token is correct
  • Check that the token has proper permissions
  • Ensure you're using the latest version of the node

Template Errors

  • Confirm the template ID exists in your Contentdrips account
  • Verify that labeled elements match your content updates
  • Check that required fields are provided

Job Processing

  • Jobs typically take 2-5 minutes to process
  • Use the Job Status operation to monitor progress
  • Failed jobs will include error details in the response

Getting Help

Resources

Version History

1.0.0

  • Initial release
  • Support for creating static graphics and carousels
  • Job status and result management
  • Branding and content update features
  • Full API coverage for Contentdrips v1

License

MIT

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Discussion