Skip to content

Every 15 minutes

Get an email for each new Constant Contact contact

Within 15 minutes of someone joining my list, I get their name and email.

Runs
Every 15 minutes
Apps
Constant Contact
AI
Not needed
Access
contact_data

Send this to your assistant

Create a ClickRuntime automation: check Constant Contact every 15 minutes and email me the name and email of each new contact added since the last check.

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

A new contact in Constant Contact might be a customer who signed up at a trade show, a webinar attendee or a lead from a landing page. The best moment to reach out is right then, but contact lists are rarely watched. Weeks later someone exports the list and finds a dozen warm leads that nobody welcomed.

Every fifteen minutes, this asks Constant Contact for contacts updated since the last check, picks out the ones that were newly created, and sends each by email or to a chat channel. It saves a checkpoint after every run so a contact is announced once and never repeated.

Sales teams, event organizers and anyone collecting signups through Constant Contact forms use it to react while interest is high. Each message names the contact as Constant Contact holds it, so the person reading it can act on the record at once, with no need to open the list and hunt for the newest rows.

What you get out of it

  • Welcome new contacts while interest is high

    A friendly message sent within the hour of signup feels personal. Waiting weeks turns it into a cold follow-up that few people remember asking for. A friendly note within the hour of signup feels personal, while the same note weeks later reads like a cold follow-up.

  • Route valuable leads to sales quickly

    A contact from a pricing page form needs a different response than a newsletter subscriber. Seeing each new contact lets someone decide who deserves a call. A contact from a pricing page form needs a different reply than a newsletter subscriber, and each notice lets someone decide.

  • Check that signup forms work

    If you expect signups after a campaign and nothing arrives, a form may be broken. The silence is noticed within the day, not at the next export. If you expect signups after a campaign and none arrive, a broken form is noticed that day and not at the next export.

  • Keep other systems in step

    New contacts can be copied into a CRM or spreadsheet when they are announced. That prevents lists in separate tools from drifting apart. New contacts can be copied to a CRM or spreadsheet when they are announced, which keeps separate lists from drifting apart.

  • Spot suspicious signups

    A burst of strange addresses may signal bot signups. Seeing them as they arrive allows you to remove them before they harm your sender reputation. A burst of strange addresses may indicate bot signups, and removing them early protects your sender reputation.

How it works

What happens, step by step

  1. Every 15 minutes, ClickRuntime checks Constant Contact for contacts changed since its last check.

  2. It keeps only contacts that were newly created in that time, so updates to existing contacts and people already reported are skipped.

  3. If anyone new joined, you get one email listing each new contact's name and email address.

Before it runs live

  • Connect Constant Contact

What you get

RunsEvery 15 minutes
Get an email for each new Constant Contact contacttoday, 9:00Succeeded
Email · New contacts2 new Constant Contact contacts Dana Reyes <dana@northwind.com>

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 Constant Contact 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_notification_constant_contact.pyexample
from datetime import datetime, timezone
from clickruntime import on_trigger, state_initializer, credentials, notify, http, state, report_fetched

@state_initializer
def init():
    state.set("since", datetime.now(timezone.utc).isoformat())

@on_trigger
def run(event):
    since = state.get("since")
    now = datetime.now(timezone.utc).isoformat()
    resp = http.get("https://api.cc.email/v3/contacts",
                    headers={"Authorization": f"Bearer {credentials.connection('constant-contact', 'work')}"},
                    params={"updated_after": since, "include": "list_memberships", "limit": 500})
    resp.raise_for_status()
    new = [c for c in resp.json()["contacts"] if c.get("created_at", "") > since]
    report_fetched(len(new))
    if not new:
        return {"new": 0}
    lines = [f"{c.get('first_name', '')} {c.get('last_name', '')} <{c['email_address']['address']}>" for c in new]
    notify.email_me(f"{len(new)} new Constant Contact contacts", "\n".join(lines))
    state.set("since", now)
    return {"new": len(new)}

FAQ

Common questions

How does it tell new contacts from updated ones?
Constant Contact returns contacts that were updated after the checkpoint, and the automation uses the created timestamp to separate new ones. Edits to existing contacts are therefore ignored. Constant Contact returns contacts updated after the checkpoint, and the created timestamp is used to separate new contacts from edited ones.
What if several contacts are added at once?
Each new contact is found in the same run and gets its own message. An import of five hundred contacts would be noisy, so ask for a single combined message if you often bulk upload. A bulk upload produces one message per contact, and you can turn it down.
Where can the notification be sent?
Email by default, and a chat channel such as Slack if you prefer. Tell your AI assistant where you want it and review the changed destination before it goes live. Email is the default and a chat channel is available.
What permissions does it need?
contact_data. 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 “Get an email for each new Constant Contact contact” from your assistant

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