How to Connect Your Website to DenchClaw
Learn how to connect your website to DenchClaw CRM to capture leads, sync form submissions, and automate your sales pipeline from day one.
How to Connect Your Website to DenchClaw
Every form submission on your website is a potential lead. Most teams let those submissions pile up in a Gmail inbox or a spreadsheet — they get stale, the context disappears, and follow-ups happen days too late if at all.
Connecting your website to DenchClaw means every visitor who fills out a contact form, requests a demo, or signs up for a newsletter automatically appears as a structured entry in your CRM — with no manual data entry and an AI agent ready to kick off the next step.
What "Connected" Means for a Local-First CRM#
DenchClaw is local-first: your data lives in DuckDB on your machine. That's a feature, not a limitation — but it does mean website integration works differently than plugging into HubSpot's JavaScript tracking pixel.
The two main connection patterns:
- Webhook: Your website POSTs form data to a DenchClaw webhook endpoint. The agent receives it, creates a CRM entry, and can trigger follow-up actions.
- Email forwarding: Your contact form sends an email to a designated inbox. DenchClaw reads that inbox, parses the lead, and creates the entry.
For teams running DenchClaw on a home server or VPS with a public IP, webhooks are the cleanest path. For local-only setups, email parsing is simpler.
Option 1: Webhook Integration#
Set Up a Webhook Endpoint#
DenchClaw's webhook handling lets you define endpoints that the agent processes when POST requests arrive.
Configure a webhook in your workspace:
# In your DenchClaw workspace settings or via the agent:
# "Set up a webhook at /webhooks/lead-capture that creates a new people entry"The agent will acknowledge the webhook and start listening. For public access, you'll need your DenchClaw gateway exposed — either on a VPS or via a tunneling tool like ngrok for development.
Wire Up Your Contact Form#
For any HTML form, add a fetch call to POST to your DenchClaw webhook:
document.getElementById('contact-form').addEventListener('submit', async (e) => {
e.preventDefault();
const formData = {
name: document.getElementById('name').value,
email: document.getElementById('email').value,
company: document.getElementById('company').value,
message: document.getElementById('message').value,
source: 'website-contact-form',
timestamp: new Date().toISOString()
};
const response = await fetch('https://your-denchclaw-instance/webhooks/lead-capture', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(formData)
});
if (response.ok) {
showSuccessMessage();
}
});Process the Webhook in DenchClaw#
When the webhook fires, the agent runs a skill that:
- Parses the incoming JSON
- Creates a new entry in your
peopleobject - Links it to a company if one exists
- Sets the lead status to "New"
- Optionally triggers a follow-up action
The agent can be instructed: "When a webhook arrives at /webhooks/lead-capture, create a people entry with the name, email, company, and source fields. Set Status to 'New Lead'. If a company with that domain already exists, link the person to it."
Option 2: Email Parsing#
If your website contact form sends an email to a dedicated address (like leads@yourcompany.com), DenchClaw can read that inbox and extract the lead automatically.
Using the himalaya or gog (Gmail) skill:
"Every 30 minutes, check the leads@yourcompany.com inbox for new messages. For each new message, parse the sender name and email, any company or message fields mentioned, and create a new entry in the people object with Status = 'New Lead'."
The agent sets up a heartbeat cron job that polls the inbox and processes new emails.
Option 3: Zapier / Make as a Bridge#
If you're running DenchClaw locally without a public URL, a third-party automation tool can act as a relay:
- Website form → Zapier
- Zapier → email to your inbox OR → DenchClaw webhook (if you have a public URL)
This adds a third party but is useful during development or if public exposure isn't an option.
Setting Up the Lead Pipeline#
Once form submissions are flowing into DenchClaw, set up a pipeline view to manage them:
- name: Website Leads
filters:
- field: Source
operator: equals
value: website-contact-form
- field: Status
operator: in
values: ["New Lead", "Contacted", "Qualified"]
sort:
- field: Created At
direction: descThis gives you a real-time view of every lead from your website, sorted by newest first.
Automating Follow-Up#
The power of connecting your website to DenchClaw isn't just data capture — it's what happens next. Set up an automatic follow-up when a new lead arrives:
"When a new entry appears in the people object with Source = 'website-contact-form', send me a Telegram message with their name, email, and company. After 24 hours, if I haven't updated their status, remind me again."
Or go further with automated email:
"When a new website lead comes in, draft a personalized welcome email based on their company and message, and put it in my drafts folder for review before sending."
Because DenchClaw has access to your Gmail via the gog skill and your browser session, it can draft the email without leaving the platform.
Tracking Lead Sources#
Add a Source field to your people object to track where leads come from:
- name: Source
type: enum
options: [website-contact, demo-request, newsletter-signup, referral, linkedin, cold-outreach, event]Then query by source to understand which channels are working:
SELECT ef.value as source, COUNT(*) as leads
FROM entry_fields ef
JOIN fields f ON ef.field_id = f.id
WHERE f.name = 'Source'
GROUP BY ef.value
ORDER BY leads DESC;Ask the agent: "Show me a breakdown of leads by source this month" — it runs the query and renders a pie chart.
Connecting Multiple Forms#
Most websites have several forms: contact, demo request, newsletter, pricing inquiry. Set up separate webhook endpoints or email addresses for each, and use the Source field to distinguish them:
| Form | Webhook | Source Tag | Default Status |
|---|---|---|---|
| Contact form | /webhooks/contact | website-contact | New Lead |
| Demo request | /webhooks/demo | demo-request | Demo Scheduled |
| Newsletter | /webhooks/newsletter | newsletter | Subscriber |
| Pricing inquiry | /webhooks/pricing | pricing-inquiry | Qualified |
Different forms get different initial statuses — a demo request is already further along the funnel than a generic contact.
Privacy and Data Handling#
One advantage of DenchClaw's local-first architecture: form submissions never transit through a third-party SaaS CRM's servers. The data goes directly from your website to your machine. For teams handling sensitive industries — legal, healthcare, finance — this is a significant compliance advantage.
Combined with DenchClaw's GDPR-friendly data model, you get a lead capture workflow that respects data residency requirements from day one.
Frequently Asked Questions#
Do I need a public server to connect my website to DenchClaw?#
For webhook-based integration, yes — DenchClaw needs to be reachable from the public internet. You can use a VPS deployment, a home server with port forwarding, or a tunneling service like ngrok during development. For email-based parsing, no public URL is needed.
Can I connect a Webflow, WordPress, or Squarespace form?#
Yes. Any platform that lets you customize form submission behavior (via custom code, a redirect, or an integration) can POST to a DenchClaw webhook. WordPress users can use a plugin like WPForms with custom webhook actions. Webflow supports webhooks natively in its form settings.
How do I prevent duplicate leads?#
Add a deduplication step to the webhook handler: before creating a new entry, check if an entry with the same email address already exists. If it does, update the existing record instead of creating a new one.
Can the agent automatically qualify leads from form submissions?#
Yes. If your form collects enough context (company name, role, message), the agent can score or qualify the lead automatically. Ask: "When a new lead comes in, if their role includes 'CEO', 'Founder', or 'VP', set their status to Qualified immediately."
What if I want real-time Slack notifications when a lead comes in?#
DenchClaw can message you on any connected channel. Since most teams use Telegram or WhatsApp with DenchClaw, you'd get a message like: "New lead: Sarah Chen, Head of Product at Stripe — contacted via website demo form." Configure this as part of your webhook handling instruction.
Ready to try DenchClaw? Install in one command: npx denchclaw. Full setup guide →
