Look up any subscriber across Kit and HubSpot on one screen

By General Input

Type an email, a name or a company and see someone's newsletter status beside their CRM record, then tag, unsubscribe or update without switching tabs.

Integrations

  • ConvertKit
  • HubSpot

Type

App

Categories

  • Marketing
  • Sales

Build me an internal lookup console that my marketing and sales people open whenever someone asks who is this person and are they on our list. Right now that means keeping Kit and HubSpot open in two tabs, and I want one screen instead. The app has two tabs: a person profile lookup, and a gaps view that reconciles the two systems.

The profile tab starts with a single search box that accepts an email address, a person name, or a company name. When the input looks like an email, resolve the person directly on both sides: HubSpot Get Contact with idProperty set to email, and Kit List Subscribers filtered by email address. For a name or a company, use HubSpot Search Contacts across first name, last name, email and company, alongside Kit List Subscribers, and show the matches as a short result list so I can pick the right person before the full profile loads. Once a person is chosen, load their complete Kit record with Get Subscriber.

The left panel is the Kit side. Show subscription state (active, unsubscribed, bounced, complained), the date they subscribed, and every custom field on the record, from Get Subscriber and List Subscribers. Underneath that, list every tag currently on the subscriber using List Tags for Subscriber. Then show which of my tracked sequences they sit in.

Sequence membership needs care. Kit only exposes membership as List Sequence Subscribers per sequence, so do not scan everything. Read List Sequences once, let me pick in a settings area which sequences actually matter to me, persist that choice for the workspace, and check membership only against the picked sequences. Show each tracked sequence with the person's state in it, and cache the per sequence subscriber sets so the console is not refetching them on every single lookup.

The right panel is the HubSpot side. From Search Contacts and Get Contact, show lifecycle stage, contact owner and associated company. Then show their open deals: use List Deals with associations to find the deals linked to that contact, and Get Deal for each one to pull deal name, amount, stage and close date. Sort them by amount, and say so plainly when there are no open deals rather than showing an empty box.

I want to act from that same screen without opening either tool. Give me: apply a tag with Tag Subscriber by Email and remove one with Remove Tag from Subscriber by Email, with the tag picker fed by List Tags so I am choosing from real tags instead of typing them; drop someone into a nurture sequence with Add Subscriber to Sequence by Email, choosing from my tracked sequences; unsubscribe them with Unsubscribe Subscriber, which takes the Kit subscriber id already loaded with the profile, behind a confirmation step since it is destructive; and stamp their newsletter status onto the CRM record with Update Contact, writing subscribed, unsubscribed or not on the list plus the date into a HubSpot contact property I nominate in settings. After any action, refresh only the affected panel and show a short confirmation.

The second tab shows the gaps between the two systems, as two lists. First, HubSpot contacts attached to an open deal who are not subscribed in Kit: pull open deals with List Deals using associations to get their contacts, resolve each contact with Get Contact, and compare those email addresses against Kit. Second, Kit subscribers with no HubSpot contact at all: page through List Subscribers and check each email against HubSpot with Get Contact using idProperty email, or Batch Read Contacts to resolve up to a hundred emails in one call, which is the efficient way to check a page of subscribers. Give each row enough context to judge it: deal name and amount for the first list, signup date and tags for the second.

Every gap row gets a one click fix. Missing from Kit becomes Create Subscriber. Missing from HubSpot becomes Create Contact, carrying over the email plus first and last name wherever Kit has them. Kit create endpoints upsert, returning 200 when the record already exists and 201 when it is newly created, so the add to Kit fix is safe to press twice; make the button reflect that instead of surfacing an error. Let me fix rows one at a time, and also select several and fix them together, and drop a row off the list once it is resolved.

Kit list endpoints are cursor paginated, so page through with the end cursor rather than assuming a single page covers it. The gaps tab is the expensive view, so build it on demand behind a refresh button with a visible last refreshed time, cache the results, and show progress while it compares rather than freezing the screen. HubSpot search is rate limited to a few requests per second, so throttle and batch the comparison instead of firing a request per row. Keep the whole console read only until I press something, and never write to either system in the background.

Related prompts

Explore more prompts
Turn Mailjet email clicks into ranked HubSpot follow-upsiMessage campaign console with pre-flight checks and delivery boardA searchable RFP answer library your bid team drafts fromSee which target accounts just started advertising on LinkedInAccount health board that puts product usage next to your CRMLook up a customer's full chat history mid conversationLusha prospecting workbench with credit-safe revealsWhich companies your LinkedIn ads reach, matched to your CRMLead response desk with a running clock on every new leadApprove Lusha enrichment field by field before HubSpot saves it