Every 5 minutes
Post HubSpot form submissions to Slack
Each new form submission shows up in Slack with the answers, within a few minutes.
- Runs
- Every 5 minutes
- Apps
- HubSpot
- AI
- Not needed
- Access
- forms (read)
Send this to your assistant
Create a ClickRuntime automation: every 5 minutes, check my HubSpot forms for new submissions and post each one to #leads in Slack with all the submitted fields.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A prospect fills in the "Request a quote" form on your site, and HubSpot dutifully stores the submission. Then nothing else happens. The notification email lands in a shared inbox that three people assume someone else is watching, and the lead sits for most of a day. Buyers who send several quote requests tend to go with whoever answers first, so a slow reply is a lost deal that never shows up in any report.
Every 5 minutes, ClickRuntime looks through your HubSpot forms for submissions it has not seen before and posts each one to a Slack channel you choose. The message carries the form name and the answers the person gave, so whoever is on point can pick it up straight from Slack.
It suits small sales and marketing teams that live in Slack and do not want to build a HubSpot workflow for every form they publish.
What you get out of it
Replies go out while interest is high
A quote request answered in ten minutes is a different conversation from one answered tomorrow. Posting the submission into the channel your team already watches shortens the gap between a form being filled in and a person writing back.
One alert covers every form
New landing pages and event sign-up forms are picked up as they start receiving submissions. You do not have to remember to wire a notification to each one, which is how forms end up silently unmonitored.
Nobody assumes someone else saw it
Because the post appears in a shared channel where people can react or reply, ownership becomes visible. A thumbs-up or a thread comment says who has the lead, and double outreach to the same person stops.
Spot form problems early
If a form that normally gets ten submissions a day goes quiet, or sends garbled answers, the channel shows it. Broken embeds and misconfigured fields are noticed in hours instead of at the next monthly report.
Leads do not depend on one inbox
Notification emails go to whoever was set as the form owner, who may be on leave or have left the company. A Slack post reaches the whole team, so coverage no longer hangs on one person.
How it works
What happens, step by step
Every five minutes, ClickRuntime checks each of your HubSpot forms for new submissions.
It only picks up submissions newer than the last one it saw, so nothing is posted twice.
Each submission is posted to your Slack channel with the form name and every answer, like email, company and message.
Before it runs live
- Connect HubSpot
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Act only on the items that match your own rules, and skip the rest
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other HubSpot steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_trigger, credentials, http, state, notify, report_fetched
@on_trigger
def run(event):
headers = {"Authorization": f"Bearer {credentials.connection('hubspot', 'work')}"}
since = state.get("since") or 0
forms = http.get("https://api.hubapi.com/marketing/v3/forms", headers=headers).json()["results"]
new = []
for form in forms:
subs = http.get(f"https://api.hubapi.com/form-integrations/v1/submissions/forms/{form['id']}",
headers=headers, params={"limit": 50}).json()["results"]
new += [(form["name"], s) for s in subs if s["submittedAt"] > since]
report_fetched(len(new))
if not new:
return {"posted": 0}
for name, sub in sorted(new, key=lambda x: x[1]["submittedAt"]):
fields = "\n".join(f"• {v['name']}: {v['value']}" for v in sub["values"])
notify.slack(f"New submission on {name}\n{fields}", channel="#leads")
state.set("since", max(s["submittedAt"] for _, s in new))
return {"posted": len(new)}FAQ
Common questions
Does it pick up submissions from every HubSpot form?
Will I get a duplicate post if the same person submits twice?
What HubSpot access does it need?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Assign new HubSpot deals to the right rep
Deals without an owner are given to a rep based on the company's country and size, within minutes.
See how it worksPost new HubSpot contacts to Slack
Your team sees each new contact's name, email and source in Slack within minutes.
See how it worksGet a Slack message when a deal changes stage
When a deal moves stage, the deal name, new stage and amount are posted to Slack.
See how it worksKeep exploring
Set up “Post HubSpot form submissions to Slack” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.