Skip to main content

n8n Integration

Connect Status Check to your n8n workflows for automated domain and email validation.

Overview​

The official Status Check n8n community node brings powerful domain and email validation capabilities to your n8n automation workflows.

What You Can Do​

  • Validate emails and domains directly in your workflows
  • Create and manage leads with automatic validation
  • Set up webhooks for event-driven automation
  • Trigger workflows when validations complete or credits run low
  • Filter and enrich lead data with validation results

Installation​

  1. Open your n8n instance
  2. Go to Settings → Community Nodes
  3. Click Install a community node
  4. Enter: @status-check/n8n-nodes-status-check
  5. Click Install

Manual Installation​

For self-hosted n8n instances:

cd ~/.n8n/custom
npm install @status-check/n8n-nodes-status-check

Then restart n8n:

n8n restart

Setup​

1. Get Your API Key​

  1. Log in to Status Check
  2. Navigate to Profile or Account Settings
  3. Copy your API key (starts with sk_live_...)

2. Add Credentials to n8n​

  1. In n8n, add a new Status Check node to your workflow
  2. Click Create New Credentials
  3. Enter your API key
  4. Select environment: Production (or Test for local development)
  5. Click Save

The credentials will be automatically tested by calling the /v1/credits endpoint.

Available Nodes​

Regular Nodes (Actions)​

Status Check Node​

The main node with three resources:

Validation Resource​

Standalone validation without creating leads.

  • Check Website: Validate domain status, detect parking, follow redirects
  • Check Email: SMTP-based email deliverability validation
  • Get Validation Job: Retrieve async validation job results
Lead Resource​

Create and manage leads with validation.

  • Create Lead: Create new lead with optional validation
  • Get Lead: Retrieve lead by ID
  • Update Lead: Update lead information
  • List Leads: Query leads with filters
  • Bulk Create: Create multiple leads at once
Webhook Resource​

Manage webhook subscriptions.

  • Create Webhook: Register webhook endpoints
  • List Webhooks: Get all registered webhooks
  • Delete Webhook: Remove webhook subscriptions
  • Test Webhook: Send test events to webhooks

Trigger Nodes (Webhooks)​

Automatically start workflows when events occur.

Validation Triggers:

  • Validation Started Trigger: Fires when validation job begins
  • Validation Complete Trigger: Fires when email/domain validation finishes
  • Validation Failed Trigger: Fires when validation job fails

Credits Triggers:

  • Credits Low Trigger: Fires when account credits fall below threshold
  • Credits Depleted Trigger: Fires when credits are exhausted

Lead Triggers:

  • Lead Created Trigger: Fires when new lead is created
  • Lead Updated Trigger: Fires when lead is updated
  • Lead Validated Trigger: Fires when lead validation completes

Example Workflows​

Example 1: Email Validation from Form​

Goal: Validate email addresses from form submissions and only add valid leads to your CRM.

[Webhook Trigger]
↓
[Status Check - Check Email]
↓
[Filter - Only Valid Emails]
↓
[CRM - Add Contact]

Configuration:

  1. Webhook Trigger: Receive form submission
  2. Status Check Node:
    • Resource: Validation
    • Operation: Check Email
    • Email: {{ $json.email }}
    • Return Details: true
  3. Filter Node:
    • Condition: {{ $json.valid }} === true
  4. CRM Node: Add the validated contact

Example 2: Bulk Lead Validation​

Goal: Validate a list of leads from Google Sheets and update the sheet with results.

[Schedule Trigger]
↓
[Google Sheets - Read]
↓
[Status Check - Bulk Create]
↓
[Wait for Validation Complete Trigger]
↓
[Google Sheets - Update]

Configuration:

  1. Schedule: Run daily at 9 AM
  2. Google Sheets: Read rows with leads
  3. Status Check Node:
    • Resource: Lead
    • Operation: Bulk Create
    • Leads:
    {{ $json.rows.map(row => ({
    email: row.email,
    firstName: row.firstName,
    website: row.website
    })) }}
  4. Validation Complete Trigger: Catches webhook when validation finishes
  5. Google Sheets Update: Write validation results back

Example 3: Domain Parking Detection​

Goal: Check if a domain is parked before scraping it.

[Manual Trigger]
↓
[Status Check - Check Website]
↓
[IF - Is Parked?]
├─ True → [Notify - Skip Domain]
└─ False → [Scrape Website]

Configuration:

  1. Manual Trigger: Start with domain input
  2. Status Check Node:
    • Resource: Validation
    • Operation: Check Website
    • Website: {{ $json.domain }}
    • Return Details: true
  3. IF Node:
    • Condition: {{ $json.isParked }} === true
  4. If Parked: Send notification, skip scraping
  5. If Active: Proceed with web scraping

Example 4: Auto-Purchase Credits​

Goal: Automatically purchase more credits when balance is low.

[Credits Low Trigger]
↓
[Stripe - Create Payment]
↓
[Slack - Send Notification]

Configuration:

  1. Credits Low Trigger: Automatically fires when credits < threshold
  2. Stripe Node: Create payment intent for credit package
  3. Slack Node: Notify team of auto-purchase

Example 5: Lead Enrichment Pipeline​

Goal: Validate and enrich leads from multiple sources.

[Webhook - New Lead]
↓
[Status Check - Create Lead]
↓
[Validation Complete Trigger]
↓
[IF - Valid Email?]
├─ True → [Clearbit - Enrich] → [CRM - Add]
└─ False → [Google Sheets - Add to Review List]

Configuration:

  1. Webhook: Receive lead from form/API
  2. Status Check - Create Lead: Validate email and domain
  3. Validation Complete Trigger: Wait for validation
  4. IF Node: Check {{ $json.emailValid }}
  5. If Valid: Enrich with Clearbit, add to CRM
  6. If Invalid: Add to review list for manual check

Node Reference​

Check Email Operation​

Inputs:

FieldTypeRequiredDescription
EmailStringYesEmail address to validate
TimeoutNumberNoMax seconds to wait (5-60, default: 30)
Return DetailsBooleanNoReturn full validation details
Webhook URLStringNoCallback URL for async results

Output:

{
"email": "user@example.com",
"valid": true,
"catch_all": false,
"service": "Google",
"domain": "example.com",
"creditsDeducted": 2,
"creditsRemaining": 98
}

Check Website Operation​

Inputs:

FieldTypeRequiredDescription
WebsiteStringYesDomain or URL to validate
Return DetailsBooleanNoReturn full validation details

Output:

{
"website": "example.com",
"status": "active",
"valid": true,
"httpStatus": 200,
"isParked": false,
"redirectChain": ["https://example.com"],
"creditsDeducted": 1,
"creditsRemaining": 99
}

Create Lead Operation​

Inputs:

FieldTypeRequiredDescription
EmailStringYesLead email address
WebsiteStringNoLead website/domain
First NameStringNoFirst name
Last NameStringNoLast name
CompanyStringNoCompany name
Custom FieldsJSONNoAdditional custom data
ValidateBooleanNoTrigger validation immediately (default: true). Validates email always, website if provided

Output:

{
"id": "lead_abc123",
"email": "john@example.com",
"website": "example.com",
"firstName": "John",
"validationStatus": "verified",
"emailValid": true,
"websiteStatus": "active",
"createdAt": "2025-01-15T10:00:00Z"
}

Webhook Events​

Available events for triggers:

EventDescriptionUse Case
validation.startedValidation job beginsTrack validation progress
validation.completeValidation finishes successfullyProcess validated leads
validation.failedValidation job failsError handling, retry logic
credits.lowCredits below thresholdAuto-purchase, notifications
credits.depletedCredits exhaustedPause workflows, urgent alerts
lead.createdNew lead createdCRM sync, welcome emails
lead.updatedLead information updatedUpdate external systems
lead.validatedLead validation completesEnrich validated leads

Best Practices​

1. Use Validation Resource for Standalone Checks​

If you don't need lead management, use the Validation resource for faster, simpler validation:

✅ Good: Validation → Check Email
❌ Avoid: Lead → Create (if you only need validation)

2. Batch with Bulk Create​

For multiple leads, use Bulk Create instead of looping:

✅ Good: Bulk Create with array of leads
❌ Avoid: Loop → Create Lead (slower, more API calls)

3. Handle Async Validations​

Email validation may timeout on slow mail servers. Use webhooks or polling:

// Check if job ID returned
if ($json.jobId) {
// Wait and poll, or use Validation Complete Trigger
}

4. Filter Early in Workflows​

Use validation results to filter early and save credits on downstream services:

Check Email → Filter Valid → Expensive API Call

5. Monitor Credit Balance​

Set up Credits Low Trigger to avoid workflow interruptions:

Credits Low Trigger → Slack Alert → Auto-Purchase

Troubleshooting​

Node Not Appearing in n8n​

Solution:

  • Restart n8n: n8n restart
  • Check installation: npm list @status-check/n8n-nodes-status-check
  • Verify n8n version compatibility (requires n8n v0.200.0+)

Invalid API Key Error​

Solution:

  • Verify API key from Account Settings
  • Ensure key starts with sk_live_ for production
  • Check environment selection matches key type

Validation Timing Out​

Solution:

  • Increase timeout parameter (max: 60 seconds)
  • Use Webhook URL for async results
  • Use Validation Complete Trigger to catch results

Webhook Not Triggering​

Solution:

  • Ensure webhook is active in Status Check dashboard
  • Check n8n webhook URL is publicly accessible
  • Verify correct events are subscribed
  • Test webhook using Test Webhook operation

Resources​

Support​

Need help with the n8n integration?