🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Jotform to Attio CRM, Slack alerts for every lead

Lisa Granqvist Partner Workflow Automation Expert

Leads come in, and somehow they still get missed. Someone forgets to create the deal. Someone else replies in Slack but never logs it. Two days later you’re staring at the same Jotform submission… again.

This Jotform Attio automation hits sales leads and marketing ops first, but founders feel it too when revenue is tied to response time. The outcome is simple: every submission becomes a tracked deal in Attio, and your team gets a Slack ping right away.

Below you’ll see exactly how the workflow routes new vs. existing leads, keeps your CRM structure clean, and makes sure follow-ups don’t quietly die in someone’s inbox.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Jotform to Attio CRM, Slack alerts for every lead

The Problem: Jotform Leads Fall Through the Cracks

If you collect inquiries in Jotform and handle sales in Attio, the messy part is the in-between. A form submission lands, then you (or someone on the team) has to copy the name, email, and message into the CRM, create a deal, pick the right stage, and notify someone to respond. Do that a few times per day and you’re spending real time on clerical work. Worse, the manual steps invite subtle mistakes: duplicate contacts, deals created in the wrong stage, or a “quick Slack heads up” that never becomes a tracked follow-up.

None of these alone is the problem. Together, they are.

  • Someone has to decide if the lead already exists, which is where duplicates are born.
  • Deals don’t get created consistently, so your pipeline looks cleaner than reality.
  • Stages drift over time because people improvise instead of following one structure.
  • Slack notifications happen informally, which means the “owner” is unclear and response time slows down.

The Solution: Clean Attio Deals + Instant Slack Alerts

This n8n workflow turns every Jotform submission into a controlled, repeatable CRM process. It starts the moment someone submits your form, then maps the incoming fields (name, email, message) into a consistent format. Next, it checks your Attio setup before it touches your data: if your “Pending” and “Urgent” deal stages don’t exist, the workflow creates them; if your “Message” attribute is missing, it adds that too. From there, it looks up the person by email and decides what to do based on deal status. New lead? Create the contact, create a new deal in “Pending,” then notify Slack. Existing lead with no deal? Create the deal and ping Slack. Existing lead with a deal already in play? Move that deal to “Urgent” and alert the team so it doesn’t sit.

The workflow begins with an incoming Jotform webhook, then it verifies your Attio structure (stages and message field) so your pipeline stays consistent. Finally, it routes the lead down the correct path and posts a Slack message after the CRM action is complete, which means the notification matches reality.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you get 15 Jotform leads per week. Manually, it’s usually about 10 minutes each to search Attio, create or update the contact, open a deal, choose a stage, paste the message, and then tell the team in Slack, so that’s roughly 2.5 hours every week. With this workflow, submitting the form is the only “work” the lead needs. n8n processes in the background and posts a Slack alert within a minute or two, which means you get those hours back and the pipeline stays current.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Jotform to capture lead submissions.
  • Attio CRM to create contacts and manage deals.
  • Slack to notify your team instantly.
  • Attio API access (generate a key in Attio developer settings).

Skill level: Intermediate. You’ll connect accounts, paste API keys, and test a few sample submissions.

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

A Jotform submission triggers everything. The workflow starts with an incoming webhook that receives the form fields (typically name, email, and message) the second the user hits submit.

The lead data gets cleaned and standardized. n8n maps the input into a predictable format so your Attio records don’t end up with slightly different field names or missing values. This is also where you can extend the mapping if your form includes company, budget, or source.

Attio is checked and prepared before any updates. The workflow verifies that “Pending” and “Urgent” deal stages exist and creates them if they’re missing. It also checks for a “Message” attribute so the original inquiry text can live inside the CRM, not just in Jotform.

The right CRM action happens, then Slack gets the alert. n8n looks up the person by email, routes the lead based on whether a deal exists, creates or updates the deal stage (including moving to “Urgent” for active leads), and posts a Slack notification once that’s done.

You can easily modify the stage names and the Slack message format based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Webhook Trigger

This workflow starts when a form submission hits your webhook endpoint.

  1. Add the Incoming Form Webhook node and set HTTP Method to POST.
  2. Set the Path to events so your form submits to /webhook/events.
  3. Click Listen for test event to generate the webhook URL and confirm it receives name, email, and message in the payload.

Step 2: Connect Attio and Normalize Input Data

Map incoming fields into a structured JSON object and prepare Attio status and column definitions.

  1. Open Map Input Fields and set Mode to raw.
  2. Paste the full JSON Output exactly as provided, including the expressions for {{ $json.body.name }}, {{ $json.body.email }}, and {{ $json.body.message }}.
  3. Review the predefined keys and labels like PENDING_STATUS, URGENT_STATUS, and the message column metadata to match your Attio schema.
  4. Map Input Fields outputs to Check Pending Stage Missing, Check Urgent Stage Missing, Check Message Field Missing, Verify Deal ID Absent, Verify People ID Absent, and Lookup Customer by Email in parallel—confirm all branches are connected.
  5. Credential Required: Connect your httpBearerAuth credentials to all Attio HTTP nodes including Fetch Deal Object ID, Create Pending Stage, Create Urgent Stage, Fetch People Object ID, Create Message Attribute, Lookup Customer by Email, Modify Existing Deal, Generate New Deal, and Create Customer Record.

Step 3: Set Up Data Table Checks and Schema Bootstrapping

The workflow uses multiple data table checks to determine whether it needs to create Attio statuses, attributes, and object IDs.

  1. In Check Pending Stage Missing, set the condition key to {{ $json.statuses.pending.key }} and ensure Operation is rowNotExists.
  2. In Check Urgent Stage Missing, set the condition key to {{ $json.statuses.urgent.key }} with Operation as rowNotExists.
  3. In Check Message Field Missing, set the condition key to {{ $json.columns.message.key }} and Operation to rowNotExists.
  4. In Verify Deal ID Absent and Verify People ID Absent, confirm the key values are DEALS_ID and PEOPLE_ID, respectively.
  5. Use Retrieve Deal ID Entry, Retrieve Deal ID Entry 2, and Retrieve People ID Entry with Operation set to get and Limit to 1 to fetch object IDs for stage/attribute creation.
  6. Keep Store Deal ID in Table, Store People ID in Table, Record Pending Stage, Record Urgent Stage, and Record Message Attribute mapped to {{ $('Map Input Fields').item.json.data_tables_id }} so the lookup table stays consistent.

⚠️ Common Pitfall: Leaving data_tables_id blank in Map Input Fields will cause all data table operations to fail. Ensure this ID is set before testing.

Step 4: Configure Attio Customer and Deal Logic

This section determines whether a customer exists, then updates or creates deals and people records accordingly.

  1. In Lookup Customer by Email, set the URL to https://api.attio.com/v2/objects/people/records/query and keep the JSON Body filter as {{ $('Map Input Fields').item.json.customer.email }}.
  2. Ensure Assemble Customer Profile uses the provided JavaScript to output exists and deal.exists booleans.
  3. Configure Validate Customer Presence to evaluate {{ $json.exists }} and branch to Route by Deal Status or Create Customer Record.
  4. In Route by Deal Status, confirm the two outputs “Deal exists” and “Deal doesn't exist” use the condition {{ $json.deal.exists }}.
  5. For Modify Existing Deal, keep the URL as https://api.attio.com/v2/objects/deals/records/{{ $json.deal.details.target_record_id }} and the JSON Body stage value as {{ $('Map Input Fields').item.json.statuses.urgent.value }}.
  6. For Create Customer Record and Generate New Deal, preserve the dynamic values for name, email, message, stage, and owner as shown in their JSON Body fields.

Tip: If your Attio workspace uses different stage titles, update Pending and Urgent in Map Input Fields so the values sent in Create Pending Stage, Create Urgent Stage, and Modify Existing Deal match your pipeline.

Step 5: Configure Notifications and Output Handling

Notify your team in Slack after a deal is created or updated.

  1. In Post Slack Notification, keep the JSON Body text as <!channel> Data has been {{ $('Assemble Customer Profile').item.json.deal.exists ? "updated": "created" }} for this <{{ $json.data.web_url }}|deal>.
  2. Ensure both Modify Existing Deal and Generate New Deal connect to Post Slack Notification.
  3. If your Slack endpoint requires authentication, add it directly in Post Slack Notification (this node currently has no credentials configured).

Step 6: Test and Activate Your Workflow

Verify the full lead-processing flow before turning the workflow on.

  1. Click Execute Workflow and send a test payload to the Incoming Form Webhook with name, email, and message fields.
  2. Confirm that Lookup Customer by Email returns data and Assemble Customer Profile outputs exists and deal.exists as expected.
  3. Verify that either Modify Existing Deal or Generate New Deal runs and that Post Slack Notification posts a message with the deal URL.
  4. Check your data table entries are created by Record Pending Stage, Record Urgent Stage, Record Message Attribute, Store Deal ID in Table, and Store People ID in Table.
  5. When tests pass, toggle the workflow to Active to enable production processing.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Attio credentials can expire or need specific permissions. If things break, check your Attio API key status and workspace access first.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.

Frequently Asked Questions

How long does it take to set up this Jotform Attio automation automation?

About 45 minutes if your Attio API access is ready.

Do I need coding skills to automate Jotform Attio automation?

No. You will connect accounts, paste an API key, and test a few sample submissions.

Is n8n free to use for this Jotform Attio automation workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in Attio and Slack usage, but there’s no per-lead fee from this workflow itself.

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

Can I customize this Jotform Attio automation workflow for different stages like “New,” “Qualified,” and “Hot”?

Yes, but keep it consistent. You’d update the stage-check and stage-create HTTP Request nodes so they look for your stage names instead of “Pending” and “Urgent,” then adjust the routing logic that moves deals between stages. Many teams also customize the Slack message to include the lead’s message, the deal stage, and a direct link to the Attio record.

Why is my Attio connection failing in this workflow?

Most of the time it’s an expired or wrong API key. Regenerate your Attio key, update it in n8n, and confirm it has access to the right workspace. If it still fails, check the HTTP Request node logs for a 401/403 response and make sure the endpoint you’re calling matches your Attio object IDs.

How many leads can this Jotform Attio automation automation handle?

A lot. On n8n Cloud, your monthly execution limit depends on the plan you choose, and each form submission usually counts as one execution. If you self-host, there’s no execution cap from n8n, so the practical limit becomes your server size plus Attio and Slack rate limits.

Is this Jotform Attio automation automation better than using Zapier or Make?

Often, yes, for one reason: this workflow does more than move fields. It checks and creates CRM structure (stages and attributes), then routes logic based on “lead exists” and “deal exists,” which is where simpler automations get brittle. n8n also gives you the self-host option, so you can run high volume without paying per task. Zapier or Make can still be a fine fit if you only need “Jotform → create contact → send Slack” and nothing else. If you’re unsure, Talk to an automation expert and you’ll get a straight recommendation.

Once this is live, leads stop being a “remember to do it” task and start being a system. The workflow handles the repetitive parts, and your team can focus on replying fast and closing the deal.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal