FlowKit - User Guide

Complete guide for using nodes from FlowKit and creating your own nodes to share with the community.

Table of Contents

Using Nodes from the Directory

Step 1: Browse & Search

  1. Visit the directory - Open FlowKit.directory
  2. Search - Use the search bar to find nodes by name, description, or tags
  3. Filter - Click category buttons (API Integration, Data Processing, etc.)
  4. Browse - Scroll through the node cards to see what's available

Step 2: View Node Details

  1. Click "View Details" on any node card
  2. Review the information:
    • Node Information - Type, category, version, compatibility
    • HTTP Request Details - For HTTP nodes: method, endpoint, request body
    • Required Credentials - What authentication you'll need
    • Use Cases - Real-world examples
    • Installation Instructions - How to add to your workflow

Step 3: Copy the Node

Method 1: One-Click Copy (Recommended)

  1. Click the 📋 Copy button
  2. You'll see a success notification with instructions
  3. Open your n8n workflow editor
  4. Press Ctrl+V (Windows/Linux) or Cmd+V (Mac)
  5. The node will appear on your canvas!

Method 2: Download JSON (If copy doesn't work)

  1. Click the 💾 Download button
  2. Open the downloaded .json file in a text editor
  3. Select all content (Ctrl+A / Cmd+A)
  4. Copy (Ctrl+C / Cmd+C)
  5. Open n8n workflow editor
  6. Paste (Ctrl+V / Cmd+V)

Step 4: Configure the Node

After pasting the node into n8n:

  1. Set up credentials (if required)
    • Click on the node
    • Click "Select Credential" or "Create New Credential"
    • Follow the authentication setup
  2. Customize parameters
    • Update URLs, endpoints, or paths
    • Modify request bodies with your data
    • Adjust field mappings to match your workflow
  3. Test the node
    • Click "Execute Node" to test
    • Verify the output matches your expectations
    • Debug any errors in the execution panel

Creating New Nodes

What Makes a Good Node?

Step 1: Build Your Node in n8n

  1. Open n8n and create a new workflow
  2. Add nodes to accomplish your task
  3. Configure everything:
    • Set up HTTP requests
    • Add transformations (Code nodes, Set nodes, etc.)
    • Configure error handling
    • Test thoroughly
  4. Use expressions where appropriate:
// Good - dynamic
"locationId": "={{ $json.locationId }}"

// Bad - hardcoded
"locationId": "abc123xyz"
  1. Test with real data:
    • Run the workflow multiple times
    • Test with different inputs
    • Verify error handling works

Step 2: Export Your Node

For Single Node:

  1. Click on your node in n8n
  2. Right-click → Copy
  3. Paste into a text editor
  4. You'll get JSON like:
{
  "nodes": [{ ... }],
  "connections": {},
  "pinData": {}
}

For Multi-Node Workflow:

  1. Select all the nodes you want to share (Ctrl+A or drag-select)
  2. Right-click → Copy
  3. Paste into a text editor
  4. This includes all nodes and their connections

Clean Up the JSON:

Step 3: Prepare Metadata

Required:

Optional but Recommended:

Step 4: Submit Your Node

  1. Go to the submission form - Click "Submit a Node" on the website
  2. Fill out the form with all the information
  3. Paste your node JSON in the configuration field
  4. Review everything before submitting
  5. Click "Submit Node for Review"

You'll receive:

Best Practices

For HTTP Request Nodes

1. Use Clear Endpoints

// Good
"url": "=https://api.example.com/v1/contacts"

// Bad
"url": "=https://{{ $json.baseUrl }}/{{ $json.version }}/{{ $json.endpoint }}"

2. Document Required Headers

Include all necessary headers in your node:

"headerParameters": {
  "parameters": [
    {
      "name": "Content-Type",
      "value": "application/json"
    },
    {
      "name": "Authorization",
      "value": "={{ $credentials.token }}"
    }
  ]
}

3. Use Proper HTTP Methods

4. Include Error Handling

Add "On Error" settings to handle failures gracefully.

For Code Nodes

1. Add Comments

// Transform contact data for API
const contacts = $input.all();

// Map to required format
const formatted = contacts.map(item => ({
  firstName: item.json.first_name,
  lastName: item.json.last_name,
  email: item.json.email
}));

return formatted;

2. Handle Edge Cases

// Check if data exists
if (!$json.email || !$json.phone) {
  throw new Error('Missing required contact info');
}

// Provide defaults
const tags = $json.tags || [];
const source = $json.source || 'Unknown';

3. Use Descriptive Variable Names

// Good
const customerEmail = $json.email;
const orderTotal = $json.total;

// Bad
const e = $json.email;
const t = $json.total;

General Tips

1. Test Before Submitting

2. Make It Reusable

3. Security First

4. Documentation

Troubleshooting

"Copy button doesn't work"

Solution: Use the Download button instead, or ensure you're using HTTPS (not HTTP or file://).

"Node won't paste in n8n"

Solution:

"Credentials not working"

Solution:

"Expression errors"

Solution:

"HTTP request fails"

Solution:

"Node not showing in directory"

Solution:

Getting Help

For n8n Issues:

Join the Community:

Quick Reference

Node Categories

Category Use For
API Integration HTTP requests, webhooks, third-party APIs
Data Processing Transformations, parsing, formatting
Automation Notifications, scheduling, triggers
Utilities Helper functions, validation, tools

Common Node Types

Type Purpose
httpRequest Make HTTP API calls
code Custom JavaScript logic
webhook Receive incoming data
set Transform/set data fields
if Conditional logic
function Reusable functions

Useful n8n Expressions

// Current date/time
{{ $now.toISOString() }}

// Access input data
{{ $json.fieldName }}

// Loop through items
{{ $items.map(item => item.json.field) }}

// Conditional
{{ $json.status === 'active' ? 'yes' : 'no' }}

// String manipulation
{{ $json.name.toLowerCase() }}
{{ $json.email.includes('@gmail.com') }}

// JSON operations
{{ JSON.stringify($json) }}
{{ JSON.parse($json.stringData) }}

Ready to start? 🚀

Browse the directory, copy some nodes, and start building amazing automations!

← Back to Directory