Skip to content

Every 5 minutes

Post new HubSpot contacts to Slack

Your team sees each new contact's name, email and source in Slack within minutes.

Runs
Every 5 minutes
Apps
HubSpot
AI
Not needed
Access
crm.objects.contacts.read

Send this to your assistant

Create a ClickRuntime automation: every 5 minutes, post new HubSpot contacts to #sales in Slack with their name, email and original source.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

When a new contact lands in HubSpot, there is a short window in which a personal reply makes the difference. A founder who fills in the demo form at lunchtime expects to hear back that afternoon, and a partner who signs up for the newsletter after a conference is warmest in the first hour. HubSpot's own notifications are tied to individual users and email, so the shared team channel never hears about new contacts, and people keep asking in Slack whether anything came in.

Every 5 minutes, contacts with a creation date newer than the last run are searched, and each is posted to Slack with name, company, source and a link. The time of the latest contact is saved so none is announced twice.

It suits small sales and marketing teams who live in Slack and want new leads seen right away.

What you get out of it

  • Quick replies win leads

    A response within minutes is far more likely to start a conversation than one the next morning. A shared channel makes quick replies the norm. Speed signals interest, and interest tends to fade quickly in the first hours.

  • Everyone sees what marketing produces

    Campaign results become visible as contacts arrive, so the team feels the effect of a webinar or a launch while it is happening. That immediate feedback also makes marketing work feel more connected to what sales sees.

  • Fewer missed leads on busy days

    Notifications to one inbox get buried. A channel post is visible to several people, so a lead is unlikely to wait while the owner is away. A channel gives a safety net, because whoever is online can reply.

  • Source information travels with the post

    Seeing where each contact came from helps the right person pick it up and reply with relevant context. Knowing the campaign or form behind a lead gets the conversation started with the right context.

  • Gives marketing a live pulse

    Watching sign-ups arrive during a campaign helps teams judge quickly whether a message or channel is working. Quick feedback supports quick changes, such as swapping a headline or pausing an ad that attracts the wrong audience.

How it works

What happens, step by step

  1. Every five minutes, ClickRuntime checks HubSpot for contacts created since the last check.

  2. Each new contact is posted to your Slack channel with their name, email and where they came from, such as organic search.

  3. It remembers the time of the last check, so each contact is announced only once.

Before it runs live

  • Connect HubSpot

What you get

RunsEvery 5 minutes
Post new HubSpot contacts to Slacktoday, 9:00Succeeded
Slack · #salesNew contact: Dana Ruiz, dana@northwind.example (source: ORGANIC_SEARCH)

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • 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

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
new_contact_alert.pyexample
import time
from clickruntime import on_trigger, credentials, http, state, notify, report_fetched

@on_trigger
def run(event):
    since = state.get("since") or int((time.time() - 300) * 1000)
    contacts = http.post("https://api.hubapi.com/crm/v3/objects/contacts/search",
        headers={"Authorization": f"Bearer {credentials.connection('hubspot', 'work')}"},
        json={"limit": 50, "properties": ["firstname", "lastname", "email", "hs_analytics_source", "createdate"],
              "sorts": [{"propertyName": "createdate", "direction": "ASCENDING"}],
              "filterGroups": [{"filters": [{"propertyName": "createdate", "operator": "GT", "value": since}]}]}).json()["results"]
    report_fetched(len(contacts))
    if not contacts:
        return {"posted": 0}
    for c in contacts:
        p = c["properties"]
        notify.slack(f"New contact: {p.get('firstname', '')} {p.get('lastname', '')}, {p.get('email')} "
                     f"(source: {p.get('hs_analytics_source') or 'unknown'})", channel="#sales")
    state.set("since", int(time.time() * 1000))
    return {"posted": len(contacts)}

FAQ

Common questions

Does it post contacts created by imports?
Yes, any contact created after the last check is listed, including imports and integrations. A large import can post hundreds of contacts, so many teams filter by source to exclude bulk imports. Bulk loads are easy to exclude by source.
Can I post only contacts from a certain source or lifecycle stage?
Yes. Filtering by original source, lifecycle stage or a property such as company size is a specific change. Describe what you want and approve the updated version before it runs. Starting narrow is usually wise, then widening later.
How quickly will a contact appear in Slack?
Within about 5 minutes of being created, because it checks on that interval. That suits same-hour replies. It is polling, so it is not instant, but it is quicker than a manual look. It still beats waiting for somebody to notice.
What permissions does it need?
crm.objects.contacts.read. Nothing else in your accounts is used.
Does it need AI?
No. It runs without AI, so it doesn't use your plan's AI allowance.
How many runs does it use?
One run each time it checks. Checks that find nothing new and stop right away aren't counted.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Post new HubSpot contacts to Slack” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.