Turn Squarespace signups into enriched HubSpot contacts hourly

Every hour, pull fresh Squarespace mailing list and customer signups, research them on the web, and add enriched HubSpot contacts with a first-outreach note attached.

Agentic Task
Squarespace FormsHubSpotSalesMarketingLead EnrichmentData Sync

Every hour, find new Squarespace signups (mailing list subscribers, donors, and customers), research each one on the web, and create or update a corresponding HubSpot contact with a research note attached. Trigger this on an hourly cron because Squarespace Forms is not a poll provider.

Step 1: Pull new profiles from Squarespace. Call the Squarespace Forms "Retrieve All Profiles" operation, sorted by created date descending. Use a persisted lastSeenAt state value to filter to profiles that appeared since the last run. On the very first run, default lastSeenAt to one hour ago so the first execution does not backfill the entire mailing list. Update lastSeenAt to the newest profile's created timestamp at the end of the run.

Step 2: Enrich each new profile. For each profile, take the email address and any first/last name and run a focused web search to find a likely LinkedIn profile, a company website matching the email domain, or another noteworthy public signal (recent press, a personal site, a notable role). Keep the research light, one or two searches per profile. If nothing credible turns up, mark the profile as not-enriched and move on; do not fabricate.

Step 3: Upsert into HubSpot. Call the HubSpot "Batch Upsert Contacts" operation, keyed on the email property, for all new profiles in the batch. Include email, first name, last name, and any address or phone fields Squarespace returned. Upserting (not creating) means re-runs do not duplicate contacts if the same email reappears.

Step 4: Attach a research note. For each contact whose web research actually turned up something, call the HubSpot "Create Note" operation and associate the note with the upserted contact. The note should be short: a one-paragraph summary of what was found (with the LinkedIn URL or company site clearly visible), followed by a single suggested talking point for the first outreach. If a profile had only an email with nothing else findable, still upsert the contact but skip the note for that contact.

Step 5: Final output. Print a short tally: number of new Squarespace profiles seen this run, number of HubSpot contacts upserted, and number of those that got an enrichment note. Include any profiles that were skipped due to research failures so the operator can sanity-check.

Guardrails: cap the per-run profile batch at 50 to stay polite to both APIs. If Squarespace returns nothing new, exit early without calling HubSpot. Treat any HubSpot 409 (duplicate) as an expected case and continue. If web research errors out for a specific profile, still upsert the contact and skip just the note for that one.

Additional information

What does this prompt do?
  • Checks Squarespace every hour for new mailing list subscribers, donors, and customer profiles since the last run.
  • Researches each new signup on the web to find a likely LinkedIn profile, company website, or other public signal worth knowing about.
  • Adds or updates a HubSpot contact for every new signup, keyed on email so re-runs never create duplicates.
  • Writes a note on the contact summarizing what the research turned up and suggesting a talking point for the first outreach.
  • Wraps up with a tally of how many new contacts were added and how many were enriched with real research.
What do I need to use this?
  • A Squarespace site on a plan that includes Forms (Core, Plus, Advanced, Business, Commerce Basic, or Commerce Advanced).
  • A HubSpot account where you can create and update contacts and attach notes.
  • A few minutes to sign in to both when you first run the workflow.
How can I customize it?
  • Change how often it runs. Hourly is the default, but a busier site might want every 15 minutes and a quieter one could go daily.
  • Tighten what counts as a real enrichment. By default any web finding qualifies, but you can require a confirmed LinkedIn profile or a company website match before a note gets written.
  • Tweak the talking point style. Ask for a warmer first-line, a question to open with, or a specific tie-in to your product.

Frequently asked questions

Will I end up with duplicate contacts in HubSpot if the same person signs up twice?
No. Each signup is matched to HubSpot by email address, so a repeat subscriber just updates the existing contact instead of creating a new one.
What happens if the workflow cannot find anything useful about a signup?
The contact still gets created in HubSpot so you have a complete record, but the research note is skipped. You only get notes on contacts where the web research actually turned up something.
Does this cover regular contact form submissions, or only mailing list signups?
It covers everyone Squarespace tracks as a profile, which includes mailing list subscribers, donors, and customers. Generic contact form submissions that do not create a profile are not included.
Can I use this with HubSpot Free?
Yes. Creating contacts and attaching notes are both available on HubSpot Free, so you do not need a paid Sales Hub plan.
How do I change the schedule or the research style?
Just tell Geni what you want. You can change the cadence, the kind of research that counts, and the tone of the talking point at any time without rebuilding the workflow.

Stop letting Squarespace signups sit cold.

Connect Squarespace and HubSpot once, and Geni quietly enriches every new signup in the background every hour.