Description
n8n-nodes-campaignkit
This is an n8n community node for CampaignKit Email Validation. It lets you validate email addresses and receive notifications when validation jobs complete in your n8n workflows.
n8n is a fair-code licensed workflow automation platform.
Installation
Follow the installation guide in the n8n community nodes documentation.
Community Node Installation
- Go to Settings > Community Nodes in your n8n instance
- Select Install
- Enter
n8n-nodes-campaignkitin the Enter npm package name field - Click Install
Manual Installation
If you're self-hosting n8n, you can install the node manually:
npm install n8n-nodes-campaignkit
For Docker-based installations, add the package to your n8n Docker image or install it in your running container.
Operations
CampaignKit Node
The main CampaignKit node supports the following operations:
Validate Email
Validates a single email address and returns detailed verification results.
Input:
email(string, required): The email address to validate
Output:
{
"email": "user@example.com",
"is_valid": true,
"is_risky": false,
"is_invalid": false,
"is_disposable": false,
"is_role_email": false,
"is_catchall": false,
"is_blacklisted": false,
"is_free_email": true,
"is_mx_found": true,
"is_smtp_valid": true,
"score": 10,
"classifier": "valid",
"domain": "example.com",
"mx_record": "mail.example.com",
"smtp_provider": "Google",
"free_email_provider": "Gmail",
"did_you_mean": ""
}
Validate Batch
Validates multiple email addresses as a batch job.
Input:
emails(string, required): Email addresses to validate (one per line)label(string, optional): Label for the validation job
Output:
{
"job_id": 12345,
"email_count": 100,
"status": "pending",
"label": "My Email List",
"created_at": "2025-01-15T10:00:00Z"
}
Get Job Status
Retrieves the status and results of a validation job.
Input:
jobId(number, required): The ID of the validation job
Output:
{
"job_id": 12345,
"account_id": 456,
"label": "My Email List",
"state": "done",
"email_count": 100,
"valid_count": 85,
"invalid_count": 10,
"risky_count": 5,
"deliverable_count": 85,
"undeliverable_count": 15,
"credits_used": 100,
"progress": 100,
"created_at": "2025-01-15T10:00:00Z",
"started_at": "2025-01-15T10:00:05Z",
"finished_at": "2025-01-15T10:05:00Z"
}
CampaignKit Trigger
The CampaignKit Trigger node responds to events from CampaignKit.
Job Completed
Triggers when a validation job is completed.
Output:
{
"event": "validation.job.completed",
"job_id": 12345,
"account_id": 456,
"label": "My Email List",
"state": "done",
"email_count": 100,
"deliverable_count": 85,
"undeliverable_count": 15,
"risky_count": 5,
"credits_used": 100,
"created_at": "2025-01-15T10:00:00Z",
"finished_at": "2025-01-15T10:05:00Z"
}
Credentials
To use this node, you need a CampaignKit API key.
Getting Your API Key
- Sign up for a CampaignKit account
- Navigate to Settings > API Keys
- Create a new API key or copy an existing one
Configuring Credentials in n8n
- In your n8n workflow, add a CampaignKit node
- Click on Credentials > Create New
- Select CampaignKit API
- Enter your API key
- (Optional) Modify the Base URL if using a custom instance
- Click Save
The credential will be automatically tested by making a request to /v1/account/me.
Example Workflows
Example 1: Validate Single Email
Manual Trigger → CampaignKit (Validate Email) → Filter (is_valid = true) → Send Email
- Trigger workflow manually or via webhook
- Use CampaignKit node with Validate Email operation
- Filter results to only include valid emails
- Send confirmation email for valid addresses
Example 2: Batch Validation with Notification
Schedule Trigger → HTTP Request (Get Emails) → CampaignKit (Validate Batch) → Wait → CampaignKit (Get Job Status) → Send Notification
- Schedule workflow to run daily
- Fetch email list from your database/API
- Start batch validation with CampaignKit
- Wait for job to complete (or use webhook trigger)
- Get final job results
- Send summary notification
Example 3: Webhook-Based Batch Validation
CampaignKit Trigger (Job Completed) → Filter (deliverable_count > 0) → HTTP Request (Update Database) → Slack Notification
- CampaignKit Trigger listens for job completion
- Filter to only process jobs with deliverable emails
- Update your database with results
- Send Slack notification with summary
Understanding Email Validation Scores
CampaignKit assigns each email a score from 0-10:
- 10: Valid – All checks passed, email is deliverable
- 9: Valid but unverified – Syntax and MX checks passed, but SMTP verification failed
- 2: Risky – Email exists but may be a spam trap or temporary
- 0: Invalid – Email will bounce
Key Output Fields
is_valid: Email is deliverable (score 9-10)is_invalid: Email will bounce (score 0)is_risky: Email is suspicious (score 2)is_disposable: Temporary/disposable email serviceis_role_email: Generic role address (info@, support@, etc.)is_catchall: Domain accepts all email addressesis_blacklisted: Email is on CampaignKit's blacklistdid_you_mean: Suggested correction for typos
API Rate Limits
CampaignKit API has the following limits:
- Authenticated requests: Based on your account plan
- Batch validation: Uses credits based on email count
- Webhook delivery: Up to 5 retry attempts with exponential backoff
Monitor your credit usage via the /v1/account/billing/balance endpoint or in your CampaignKit dashboard.
Troubleshooting
Credential Test Fails
- Verify your API key is correct
- Check that your CampaignKit account is active
- Ensure the Base URL is correct (default:
https://api.campaignkit.cc)
Webhook Not Receiving Events
- Ensure your n8n instance is accessible from the internet
- Check that the workflow is activated
- Verify webhook was created successfully in CampaignKit dashboard
- Check n8n execution logs for incoming webhook requests
Batch Job Stuck in "Pending"
- Large batches may take time to process
- Use the Get Job Status operation to monitor progress
- Jobs process at approximately 100-500 emails/minute depending on validation type
"Insufficient Credits" Error
- Check your account credit balance
- Purchase additional credits in your CampaignKit dashboard
- Contact support@campaignkit.cc for billing assistance
Development
Building the Node
npm install
npm run build
Local Testing
- Build the node
- Link it to your n8n installation:
npm link cd ~/.n8n/nodes npm link n8n-nodes-campaignkit - Restart n8n
Project Structure
n8n-nodes-campaignkit/
├── credentials/
│ └── CampaignKitApi.credentials.ts
├── nodes/
│ └── CampaignKit/
│ ├── CampaignKit.node.ts
│ └── CampaignKitTrigger.node.ts
├── types/
│ └── CampaignKit.types.ts
├── package.json
├── tsconfig.json
└── README.md
Resources
- n8n community nodes documentation
- CampaignKit API Documentation
- CampaignKit Dashboard
- CampaignKit Support
Compatibility
- n8n version: 0.220.0 or higher
- Node.js version: 18.x or higher
License
Version History
0.1.0 (Initial Release)
- ✅ Validate Email operation
- ✅ Validate Batch operation
- ✅ Get Job Status operation
- ✅ Job Completed webhook trigger
- ✅ API Key authentication
- ✅ Comprehensive error handling
Support
For issues related to:
- This n8n node: Open an issue on GitHub
- CampaignKit API: Contact support@campaignkit.cc
- n8n platform: Visit n8n community forum