New form lead → CRM contact + team ping
Leads from your website form go straight into HubSpot and your team is notified.
How it works
Trigger: Typeform — new submission
- Receive the form answers.
- Create or update the contact in HubSpot.
- Post the lead name, company and message to #sales in Slack.
Diagram
Trigger App
Build it
Pick your tool — same automation, step by step.
Copy and paste straight into an n8n canvas (Ctrl+V), or download and use Import from File. Then connect your own credentials and replace every YOUR_… placeholder.
Show code (106 lines)
{
"name": "New form lead → CRM contact + team ping (Flowngn)",
"nodes": [
{
"parameters": {
"content": "## New form lead → CRM contact + team ping\nLeads from your website form go straight into HubSpot and your team is notified.\n\n**Setup**\n1. Open each node and connect your own credentials.\n2. Replace every YOUR_… placeholder.\n3. Test once, then activate.\n\nFree template from Flowngn",
"height": 260,
"width": 340
},
"id": "2799d3cb-55ad-4ae7-aee2-1169c6262cca",
"name": "Setup notes",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-420,
-60
]
},
{
"parameters": {
"formId": "YOUR_FORM_ID"
},
"id": "2799d3cb-55ad-4ae7-aee2-1169c6262cca",
"name": "New form entry",
"type": "n8n-nodes-base.typeformTrigger",
"typeVersion": 1.1,
"position": [
0,
0
],
"webhookId": "2799d3cb-55ad-4ae7-aee2-1169c6262cca"
},
{
"parameters": {
"authentication": "appToken",
"resource": "contact",
"operation": "upsert",
"email": "={{ $json['Your email'] }}",
"additionalFields": {
"firstName": "={{ $json['Your name'] }}",
"companyName": "={{ $json['Company'] }}"
}
},
"id": "2799d3cb-55ad-4ae7-aee2-1169c6262cca",
"name": "Create or update contact",
"type": "n8n-nodes-base.hubspot",
"typeVersion": 2.1,
"position": [
300,
0
]
},
{
"parameters": {
"select": "channel",
"channelId": {
"__rl": true,
"value": "#sales",
"mode": "name"
},
"text": "=🎯 New lead: {{ $('New form entry').item.json['Your name'] }} ({{ $('New form entry').item.json['Company'] }})\n{{ $('New form entry').item.json['Message'] }}",
"otherOptions": {}
},
"id": "2799d3cb-55ad-4ae7-aee2-1169c6262cca",
"name": "Ping #sales",
"type": "n8n-nodes-base.slack",
"typeVersion": 2.2,
"position": [
600,
0
]
}
],
"connections": {
"New form entry": {
"main": [
[
{
"node": "Create or update contact",
"type": "main",
"index": 0
}
]
]
},
"Create or update contact": {
"main": [
[
{
"node": "Ping #sales",
"type": "main",
"index": 0
}
]
]
}
},
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"meta": {
"templateCredsSetupCompleted": false
},
"tags": []
}In Make, create a new scenario and add these modules in order:
- Typeform › Watch Responses
- HubSpot CRM › Create/Update a Contact
- Slack › Create a Message
- Every module run uses Make operations — the free plan includes a monthly quota.
- Module and step names can differ slightly as Make and Zapier update their apps.
In Zapier, create a new Zap and add these steps in order:
- Typeform — New Entry
- HubSpot — Create or Update Contact
- Slack — Send Channel Message
- Zaps with more than two steps need a paid Zapier plan.
- Module and step names can differ slightly as Make and Zapier update their apps.
Tips
- Works the same with Google Forms, Tally or Jotform.
Related flows
Sales & CRMEasy
Calendly bookings → HubSpot contact
When someone books a call on Calendly, create the contact in HubSpot and alert your team.
Calendly → HubSpot → Slack3h/mo
Sales & CRMAdvanced
AI lead qualifier
AI scores each new lead and fast-tracks the hot ones to your sales team.
Webhook → AI model → Slack → Gmail8h/mo
Sales & CRMMedium
Welcome new subscribers from Stripe
When someone subscribes, send a personal welcome email and celebrate in Slack.
Stripe → Gmail → Slack2h/mo