snapcoat©
Zapier Docs

Zapier Webhook Integration

Complete API Documentation
Integrate SnapCoat CRM with thousands of apps using Zapier. This guide covers everything you need to set up the webhook integration and start creating leads automatically.

Overview

The SnapCoat CRM Zapier webhook allows you to automatically create leads in your sales pipeline from any trigger source. Each lead is instantly assigned a unique Deal ID, placed in your "New Lead" stage, and triggers notifications to your team.

Secure & Unique

Each company gets a cryptographically secure webhook token

Real-Time

Leads appear instantly in your pipeline with automatic notifications

Flexible & Comprehensive

4 required fields + 25+ optional fields for rich lead data

Integration Methods

SnapCoat CRM offers two ways to integrate with Zapier. Choose the method that best fits your needs:

Webhook Method

Recommended for most users
  • Easiest setup - just copy/paste webhook URL
  • Works with any Zapier trigger
  • No authentication setup needed
  • Perfect for creating leads from forms
Use when: You want to create leads from external sources (forms, ads, etc.)

REST API Method

For advanced integrations
  • Full API access with authentication
  • Polling triggers ("New Lead" events)
  • Multiple actions (create, update, get)
  • Professional native Zapier app
Use when: Building a native Zapier app or need advanced features

📚 Documentation Structure

This page covers the Webhook Method. For REST API integration details including authentication setup and API endpoints, see:
REST API Endpoints:
  • Auth Test: GET /api/zapier/auth/test
  • Create Lead: POST /api/zapier/leads
  • Get Leads: GET /api/zapier/leads
  • Update Lead: PATCH /api/zapier/leads/:id
Authentication: Include your webhook token via x-webhook-token header

Getting Started

Prerequisites

  • • Active SnapCoat CRM account
  • • Zapier account (free or paid)
  • • Look for the "Connect to Zapier" button in your SnapCoat header

Step 1: Get Your Webhook URL

  1. 1Log into SnapCoat CRM and click "Connect to Zapier" button in the header (top navigation bar)
  2. 2In the dialog that opens, click the "Lead Creation" tab
  3. 3Click "Copy Webhook URL" to copy your unique webhook URL
  4. 4Your unique URL will look like: https://www.snapcoatcrm.com/api/webhooks/leads/wh_your_token...

Step 2: Configure Zapier

  1. 1Create a new Zap in your Zapier dashboard
  2. 2Choose your trigger app (e.g., Google Forms, Facebook Lead Ads, Typeform)
  3. 3Add action: Search for "Webhooks by Zapier" and select "POST"
  4. 4Paste your webhook URL and map the required fields (see below)
  5. 5Test your Zap and turn it on!

Webhook Configuration

Method:POST
Content-Type:application/json
Authentication:Token in URL
Timeout:30 seconds

Complete Field Reference

Required Fields

No companyId needed - your unique URL handles authentication!
Supports both camelCase and lowercase field names
firstName
First name (or firstname)
lastName
Last name (or lastname)
email
Email address
phone
Phone number
source
Lead source (optional)
notes
Project type or notes (optional)
💡 Highly Encouraged: While source and notes are optional, we highly recommend including them! Use the notes field for project details or type of work the customer is requesting (e.g., "Interior Painting", "Exterior Painting", "Cabinet Refinishing").
Optional FieldsEnhance your lead data with these additional fields

Contact Information

Field NameTypeDescription
alternateEmailStringSecondary email address
alternatePhoneStringSecondary phone number
companyNameStringCompany name (for B2B customers)

Address Information

💡 Best Practice: When providing address fields, include all of address, city, state, and zip together. This triggers automatic customer record creation with a unique Customer ID.
Field NameTypeDescription
addressStringStreet address
unitNumberStringApt, suite, or unit number
cityStringCity name
stateStringState (2-letter code recommended, e.g., "CA")
zipStringZIP/Postal code
gateCodeStringProperty gate access code

Business & Lead Details

Field NameTypeDescriptionDefault
source⭐ EncouragedStringLead source identifier (e.g., "Facebook Ads", "Google PPC")"Zapier Integration"
notes⭐ EncouragedStringProject type or notes (e.g., "Interior Painting", "Exterior Painting", "Cabinet Refinishing")NULL
internalNotesStringInternal notes for team onlyNULL
estimatedValueNumber/StringEstimated project value (decimal format, e.g., "5000.00")NULL
statusStringInitial lead status"New Lead"

Appointment Request Fields

Field NameTypeDescriptionFormat
isAppointmentRequestNumberFlags this as an appointment request0 or 1
preferredDate1StringFirst preferred appointment dateYYYY-MM-DD
preferredTime1StringFirst preferred appointment timeHH:MM (24-hour)
preferredDate2StringSecond preferred appointment dateYYYY-MM-DD
preferredTime2StringSecond preferred appointment timeHH:MM (24-hour)

Assignment & Categorization

Field NameTypeDescriptionFormat
assignedToString/NumberUser ID to assign the lead toValid user ID
tagsArrayArray of string tags for categorization["tag1", "tag2"]
📊 Pro Tip: Use the source field to track campaign ROI, estimatedValue for pipeline forecasting, and tags for advanced segmentation and automation triggers.

Example Payloads

1. Minimal Required Fields Only

Basic lead creation with just the required fields:
JSON
{
  "firstName": "John",
  "lastName": "Smith",
  "email": "john.smith@example.com",
  "phone": "+15551234567"
}
Result: Lead created with source "Zapier Integration"

2. With Custom Lead Source

Track where your leads come from by specifying a source:
JSON
{
  "firstName": "Jane",
  "lastName": "Doe",
  "email": "jane.doe@example.com",
  "phone": "(555) 987-6543",
  "source": "Facebook Ads - Summer Campaign"
}
Result: Lead created with source "Facebook Ads - Summer Campaign" • Phone auto-formatted to +15559876543

3. Complete Lead with Address

Comprehensive lead data that triggers automatic customer creation:
JSON
{
  "firstName": "Sarah",
  "lastName": "Williams",
  "email": "sarah.williams@example.com",
  "phone": "(555) 321-7654",
  "alternatePhone": "(555) 321-7655",
  "companyName": "Williams Properties LLC",
  "address": "789 Oak Avenue",
  "unitNumber": "Suite 200",
  "city": "Los Angeles",
  "state": "CA",
  "zip": "90001",
  "gateCode": "#4567",
  "source": "Facebook Ads - Spring Campaign",
  "notes": "Interested in full exterior repaint",
  "internalNotes": "High-value lead, follow up within 24 hours",
  "estimatedValue": "8500.00",
  "tags": ["commercial", "high-value", "urgent"]
}
Result: Lead created with complete details + Customer record automatically generated with unique Customer ID

4. Appointment Request

Lead with appointment booking information:
JSON
{
  "firstName": "Mike",
  "lastName": "Johnson",
  "email": "mike.j@example.com",
  "phone": "+15555551234",
  "address": "456 Pine Street",
  "city": "San Francisco",
  "state": "CA",
  "zip": "94102",
  "source": "Website Booking Form",
  "isAppointmentRequest": 1,
  "preferredDate1": "2025-12-15",
  "preferredTime1": "10:00",
  "preferredDate2": "2025-12-16",
  "preferredTime2": "14:00",
  "notes": "Need color consultation for living room"
}
Result: Lead created with appointment request flags for easy scheduling and follow-up

Validation Rules

📞Phone Number Processing

Accepted Formats:
  • (555) 123-4567
  • 555-123-4567
  • 5551234567
  • +15551234567
Output: Automatically normalized to E.164 format (+1XXXYYYZZZZ)

📧Email Validation

Format: Standard email validation appliedDuplicate Policy: Same email allowed (customers can have multiple projects)Case Sensitivity: Not case-sensitive

⚠️Required Field Check

Rule: All 4 required fields must be present and non-emptyError: 400 Bad Request if any field is missingTip: Use Zapier's "Required" toggle to prevent empty values

🚫Duplicate Prevention

Rule: Prevents exact duplicates within 5-minute windowCriteria: Same firstName + lastName + email + phonePurpose: Prevents accidental double-submissions

Response Codes

201 Created - Success
201
Lead successfully created and added to your sales pipeline.
{ "success": true, "message": "Lead created successfully", "data": { "id": 12345, "dealId": "CMP-1-D12345", "firstName": "John", "lastName": "Smith", "fullName": "John Smith", "email": "john.smith@example.com", "phone": "+15551234567", "status": "New Lead", "leadSource": "Zapier Integration", "companyId": 1, "createdAt": "2025-12-09T10:30:00.000Z" }, "requestId": "uuid-here", "processingTime": "145ms" }
400 Bad Request - Missing Fields
400
One or more required fields are missing.
{ "success": false, "message": "Missing required fields. Please provide firstName, lastName, email, and phone", "receivedFields": ["firstName", "email"], "requestId": "uuid-here" }
Fix:Verify all 4 required fields are mapped and non-empty in your Zap.
401 Unauthorized - Invalid Token
401
Webhook token is invalid or expired.
{ "success": false, "message": "Invalid webhook token. Please check your webhook URL.", "requestId": "uuid-here" }
Fix:Click "Connect to Zapier" in header → "Lead Creation" tab → Copy exact URL

Security Best Practices

✅ DO

  • Keep your webhook URL private and secure
  • Store securely in Zapier only
  • Regenerate token if compromised
  • Monitor webhook activity regularly
  • Use HTTPS for all requests (enforced)

❌ DON'T

  • Share your webhook URL publicly
  • Include token in screenshots shared online
  • Commit webhook URLs to version control
  • Use same token across multiple companies
  • Ignore suspicious webhook activity

Token Regeneration

If you suspect your webhook token has been compromised, you can regenerate it:
  1. 1.Click "Connect to Zapier" button in the header
  2. 2.Go to the "Lead Creation" tab
  3. 3.Click "Regenerate Token"
  4. 4.Copy the new webhook URL and update your Zaps immediately
⚠️ Warning: Old token stops working immediately upon regeneration.

Troubleshooting

❌ "Missing required fields" Error

Cause:One or more of the 4 required fields is missing or empty.
Solution:
  • Check that all 4 required fields are mapped in Zapier: firstName, lastName, email, phone
  • Ensure mapped values are not empty or null
  • Use Zapier's "Required" toggle to prevent empty values
  • Test with sample data in Zapier's testing tool

🔒 "Invalid webhook token" Error

Cause:Webhook URL is incorrect or token has been regenerated.
Solution:
  • Click "Connect to Zapier" in the header and go to "Lead Creation" tab
  • Copy the exact webhook URL from SnapCoat
  • Replace the entire URL in Zapier (don't try to edit it)
  • Check for extra spaces or characters
  • Test the Zap again

👻 Leads Not Appearing in Pipeline

Cause:Leads may be filtered out or webhook failed silently.
Solution:
  • Check Zapier Task History for actual response code
  • Look for HTTP 201 success status
  • Toggle "Show All" in pipeline filters
  • Search by lead name or email
  • Check webhook activity in "Connect to Zapier" → "Status" tab

🔄 Duplicate Lead Errors

Cause:Same lead (name + email + phone) submitted within 5 minutes.
Solution:
  • This is intentional to prevent double-submissions
  • Wait 5 minutes before resubmitting
  • Check if duplicate was already created successfully
  • For legitimate repeat projects, modify one field slightly

📧 Need More Help?

If you're still experiencing issues, contact our support team:
When contacting support, please include your webhook token (first 10 characters only) and the requestId from any error responses.