Skip to content

Weekly

Get a weekly CSV of your HubSpot contacts

A full export of your contacts arrives in your inbox every week, ready to open in a spreadsheet.

Runs
Weekly
Apps
HubSpot
AI
Not needed
Access
crm.objects.contacts.read

Send this to your assistant

Create a ClickRuntime automation: every Sunday at 7pm, export all my HubSpot contacts with name, email, company and lifecycle stage, and email me the CSV.

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 HubSpot contact export is a manual job that people do right before they need it, usually in a hurry. A finance lead wants the list for a mailing, an agency needs a snapshot before a migration, a founder wants a backup in case an import goes wrong. The export screen has limits on properties and size, someone has to wait for an email, and the file is saved wherever the person happened to download it, which means nobody can find last month's version.

Each week, every contact is paged through using HubSpot's API, a CSV file is built with the properties you choose, and it is emailed to you. You get a dated attachment in your inbox on a predictable day.

It is helpful for teams that want a regular backup, an offline analysis file or a feed to another tool.

What you get out of it

  • A regular backup of your contact data

    If a bad import overwrites records or a workflow clears a property, you have last week's file to compare and restore from. Without it, the only copy is the one that is wrong.

  • Data is ready when needed

    Finance, analysts and agencies can use the latest file without asking someone to run an export. The delay that usually accompanies such requests disappears. There is no waiting on whoever happens to have export permission that day.

  • Snapshots show change over time

    Comparing two weekly files shows who was added, who changed lifecycle stage and which fields were edited, which is useful for audits and reporting. That kind of history is hard to rebuild once records have been overwritten.

  • No row or property surprises

    A scripted export pages through all contacts, so you are not stuck with a UI limit that stops the file at a certain size. A scheduled export can cover every record, not only the first page of results.

  • A searchable archive in your inbox

    Dated attachments pile up in a place everybody can search, and you can find a given week's file in seconds. Nobody has to wonder whether a file from last quarter still exists in someone's Downloads folder.

How it works

What happens, step by step

  1. Once a week, ClickRuntime goes through every contact in your HubSpot account.

  2. It builds a CSV file with each contact's name, email, company and lifecycle stage.

  3. The file is emailed to you, with the contact count in the subject line, ready to open in a spreadsheet.

Before it runs live

  • Connect HubSpot

What you get

RunsWeekly
Get a weekly CSV of your HubSpot contactstoday, 9:00Succeeded
Email · HubSpot contacts export: 1,284 contactsfirstname,lastname,email,company,lifecyclestage Dana,Ruiz,dana@northwind.example,Northwind,customer

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

  • Run it at a different time, more or less often, or only on weekdays
  • 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.
contacts_export_emailed_as_csv.pyexample
import csv, io
from clickruntime import on_trigger, credentials, http, notify

FIELDS = ["firstname", "lastname", "email", "company", "lifecyclestage"]

@on_trigger
def run(event):
    headers = {"Authorization": f"Bearer {credentials.connection('hubspot', 'work')}"}
    rows, params = [], {"limit": 100, "properties": ",".join(FIELDS)}
    while True:
        page = http.get("https://api.hubapi.com/crm/v3/objects/contacts", headers=headers, params=params).json()
        rows += [{f: c["properties"].get(f) or "" for f in FIELDS} for c in page["results"]]
        after = page.get("paging", {}).get("next", {}).get("after")
        if not after:
            break
        params["after"] = after
    out = io.StringIO()
    writer = csv.DictWriter(out, fieldnames=FIELDS)
    writer.writeheader()
    writer.writerows(rows)
    notify.email_me(f"HubSpot contacts export: {len(rows)} contacts", out.getvalue())
    return {"contacts": len(rows)}

FAQ

Common questions

Which properties are included in the CSV?
Whatever you list, such as email, name, company, lifecycle stage and owner. The default set covers the common fields. If you want custom properties, name them and approve the change. A short list of columns also keeps the file small.
Is it safe to email contact data?
Contact lists contain personal data, so send them only to people who are entitled to see them and consider a secure inbox. If the file is sensitive, ask for a smaller property set or a different delivery route.
Will a large database fit in an email attachment?
Most email providers cap attachments around 25 MB. A CSV with tens of thousands of contacts and a handful of properties fits comfortably, but very large databases may need a narrower set of columns or a link instead.
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 runs (weekly). Checks that find nothing to do 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 a weekly CSV of your HubSpot contacts” from your assistant

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