Approve every Jotform enquiry before it reaches HubSpot
Work every form enquiry from one queue that already tells you who is new, who is a duplicate and who has a deal open, then push only what you approve.
Build me a triage console for the enquiries that come in through my Jotform intake forms. Nothing should reach HubSpot until a person looks at the row and says yes. This is deliberately the opposite of an automatic lead router: the app never runs on a schedule and never reacts to a submission arriving, it only does something when someone clicks. My CRM is already full of junk records and duplicates created by automatic pushes, so the whole point of this app is the duplicate check running before the push, a human approving each record, and being able to approve a clean batch in one go.
Start with a settings view where I pick which of my forms feed the queue. List my forms with Jotform Get User Forms and let me tick the intake ones. For each selected form, pull the field definitions with Jotform Get Form Questions and let me map which question holds the person's email, first and last name, company, phone and website, since every form names them differently. Let me also set the HubSpot pipeline, deal stage and owner that approved enquiries are created against, whether deal creation is on or off, and which Slack channel the summary goes to. Save all of it in the app so I configure it once.
The main view is the queue. For each selected form read submissions with Jotform Get Form Submissions and show every one that has not been actioned yet, newest first, with a search box and filters by form and by status. Use the labels from Get Form Questions so each row reads like the form itself rather than a row of numeric field IDs. Before I touch anything, each row already carries a status: run HubSpot Search Contacts on the submitted email address and HubSpot Search Deals on the submitted company name, then label the row New, Already a contact, or Open deal exists. Show the matched contact or deal name inline with a link into HubSpot. Cache each check result against the submission so the queue does not re-query on every render, and give me a refresh control to run it again. If a submission has no email address, mark the row No email so I know the duplicate check could not run.
Clicking a row opens a detail pane with the complete answer set, every question label beside its answer, plus the form name, the submission date and any uploaded files. The matched HubSpot contact and any open deals for that company sit alongside it so I can compare before deciding.
From a row or the detail pane I take one of three decisions. Push to HubSpot creates the record set: HubSpot Create Contact from the mapped fields, HubSpot Create Deal associated to that contact using the pipeline, stage and owner from settings, and HubSpot Create Note associated to both, carrying the full labelled answer set and the submission date so the entire enquiry lives on the record. Attach to existing contact skips contact creation, uses the contact the duplicate check matched, and files the same note against it, creating a deal only if there is not already an open one. Mark as spam writes nothing to HubSpot at all. Whichever decision I take, stamp the submission with Jotform Update Submission so it is flagged on the Jotform side too, and record the decision in the app with the submission ID, the decision, who made it, when, and the IDs of whatever was created in HubSpot. A stamped submission never comes back into the queue.
Bulk actions matter. Let me tick rows and push a batch, typically around ten clean New rows, in one go. Show a progress list with a result per row, keep going past individual failures, and only stamp the submissions that actually succeeded so a failed row stays in the queue for another attempt. Re-run the duplicate check at push time rather than trusting the cached status, and skip any row that turned out to already exist, telling me it was skipped and why. Rows that are not New should need an explicit confirmation from me before they join a bulk push.
Every row also gets a Research this enquiry button that starts a background agent. Give it the company name, the website and the answer set, have it search the open web for what the company does, its size and market, anything recent worth knowing and how well it fits what they asked for, then write a short qualification brief of a few paragraphs with a suggested next step and the sources it used. The brief gets written back into the app against that submission so the row shows it and I can read it before deciding. If the enquiry is already linked to a HubSpot contact or deal, file the same brief there with HubSpot Create Note. If it has not been pushed yet, hold the brief in the app and fold it into the note created when I push. Show the row as researching while the agent works and surface the brief the moment it lands.
A decision log view lists everything actioned with the date, the decision, who made it and links to the HubSpot records created, filterable by day and by person. From that view a Post summary button composes the day's numbers, how many enquiries were accepted, how many were attached to existing contacts and how many were binned as spam, with the company names listed under each, and sends it to the configured channel with Slack Send a Message using the Slack Bot connection so it posts as a bot rather than as me. That post happens when I click it, never on a timer.
Rules to hold to throughout: nothing is written to HubSpot without a click, no record is created for a row the duplicate check flagged unless I explicitly chose to attach or to override it, and every decision path ends with the submission stamped so the queue only ever shows work that is genuinely outstanding.
What does this prompt do?
- Every unprocessed enquiry from your intake forms lands in one queue, with the real question labels beside each answer instead of raw field codes.
- Each row is checked against your CRM before you even look at it, so it arrives marked new, already a contact, or open deal exists.
- Push an enquiry into HubSpot as a contact, a deal and a note carrying the full answer set, attach it to the contact you already have, or bin it as spam. Anything you action is stamped and drops out of the queue for good.
- Select ten clean rows and push them in one go, ask a background assistant to research any company and write a qualification brief, then post the day's accepted and rejected list to Slack when you are ready.
What do I need to use this?
- A Jotform account with the intake forms you want to triage
- A HubSpot login that can create contacts, deals and notes
- The pipeline and deal stage you want approved enquiries to land in
- A Slack workspace, if you want the summary posted to a channel
How can I customize it?
- Choose which forms feed the queue, and map which question holds the email, name, company and phone on each one.
- Set the pipeline, stage and owner that approved enquiries are created against, or switch deal creation off and create the contact only.
- Change the Slack channel the summary goes to, or skip Slack entirely and read the decision log inside the app.
FAQs
Does anything reach HubSpot automatically?
How does it decide an enquiry is a duplicate?
Will enquiries I have already dealt with come back tomorrow?
Can I push more than one enquiry at a time?
What does the research button actually do?
Will this work on a free Jotform plan?
Related templates
Plan every email and SMS send on one calendar, see how past campaigns performed inline, and let an assistant write and file the next draft in Klaviyo.
Your committee opens one board to score every application, see where reviewers disagree, and send the decisions without merging a single spreadsheet.
Open any campaign, pick this month versus last, and have a written client report drafted into Google Docs and posted to their Slack channel.
Work every open WhatsApp chat from one board, sorted by how long you have left to reply for free, with claims so two people never answer the same customer.
See every sending domain as Active, Reserve or Retiring, watch your bench against the 20 to 25 percent target, and refill it before a domain burns.
Pick a client, get ranked domain suggestions with live prices, and buy domains and mailboxes in one confirmed step instead of juggling tabs and a spreadsheet.
Stop letting form enquiries pollute your CRM.
Put a person between your intake forms and HubSpot, with the duplicate check already done before they decide.