Look up any GetResponse contact beside their HubSpot deals

Type an email and see every list someone is on, what they opened and clicked, and their open deals, without anyone opening GetResponse.

App
GetResponseHubSpotMarketingSalesLead EnrichmentEmail Automation
PromptCreate

Build me an internal lookup desk that my support and account teams open whenever someone asks whether a customer is even on our email list and whether they got the last send. Today that question gets forwarded to marketing, because nobody else has a GetResponse login and marketing has to click through one list at a time to answer it. The app runs on GetResponse for subscription and engagement data and HubSpot for the commercial picture. It is a single person profile surface rather than a report: someone types an email address and gets one answer.

Everything starts from one search box that takes an email address. Note that there is no single get contact by email operation in GetResponse, so resolve the address this way: read List Campaigns once to get every list on the account, then use List Contacts, which searches across one or more campaigns, to find the address. That returns one row per list the person sits on, each with its own contact id, and the same person commonly sits on more than one list. Merge those rows into a single profile instead of showing one campaign at a time. Contact ids are short alphanumeric tokens such as p86zQ and are never numeric, so treat them as strings everywhere. Cache the campaign list since it changes rarely, and let me pick in a settings area which lists the desk searches, so a big account with dozens of lists stays fast.

The GetResponse side of the profile shows first which lists they are on, and for each one when they subscribed and how they subscribed, which List Contacts returns as the origin of the record, for example a signup form, an import or the API. Underneath that show their tags and their custom field values. Read List Custom Fields once to get the human readable names for the fields, so the profile shows a labelled value rather than a raw field id. Custom field values always come back as arrays of strings even when the field only ever holds one value, so render a single value plainly instead of exposing a one item array.

Then the engagement timeline, which is the reason this app exists. Take the contact id from each list the person appears on, call Get Contact Activities for each one, and merge the results into a single timeline sorted newest first. Show opens, clicks and subscription events together, each with the message name, the date and which list it came from, and make clicks visually distinct from opens because they are the stronger signal. If the person is on three lists this is still one timeline, not three separate histories. Put a short note near the open history explaining that open tracking is unreliable when recipients use mail privacy features that pre-load images, so a rep reading the screen does not over-trust an open count. Page through activities rather than assuming a single page covers it, and default the view to the last ninety days with a control to load more.

The right side of the profile is HubSpot, loaded from the same email address. Use Search Contacts filtered on email to find the record and show the contact owner, lifecycle stage and company. Then use Search Deals to load their open deals, showing deal name, stage, amount, close date and owner, sorted by amount. This pairing is the whole point of the screen: a rep should be able to see at a glance that someone has clicked the last three sends while sitting in a late stage deal, or that a big open deal has gone completely quiet on email.

I want to act from the profile without opening GetResponse. Give me three actions. First, edit their tags or custom field values with Update Contact. Second, add them to a different list with Create Contact, picking the target list from the campaigns already loaded. Third, remove them with Delete Contact, behind an explicit confirmation dialog that names the person and the list, since it is destructive and cannot be undone. Bake in how this API actually behaves: updates are a POST to the contact id and there is no PUT or PATCH, campaignId is required on every contact write so always carry the campaign id of the list row being acted on, and custom field values must be sent as arrays of strings. Create Contact returns 202 Accepted, meaning the contact is queued rather than created immediately, so do not re-read straight away and report a failure. Show a queued state and confirm once the contact resolves on a later read.

Add a write the follow-up button to the profile that starts a background agent. The agent reads what this person actually opened and clicked from their activity history, plus their HubSpot deal stage, deal amount and owner, and then drafts a short personalised follow-up email that references the specific things they engaged with rather than generic copy. It posts the draft back into the app on the same profile, where the rep can read it, copy it and send it themselves from their own mail client. The agent never sends anything and never writes to either system. Show a visible running state while it works, keep the last few drafts for that person so a rep can compare, and stamp each draft with the date it was written.

Keep a list of recent lookups for each user, so reopening a profile someone checked earlier is one click instead of retyping the address. Store it per user rather than per workspace and show it on the empty state before anyone searches. Handle the not found case precisely, because a vague no results message is exactly what sends people back to marketing: say whether the address is missing from GetResponse only, missing from HubSpot only, or missing from both, and word each case in plain language, for example that this address is not on any of your GetResponse lists but does exist in HubSpot with an open deal. When someone is missing from GetResponse only, offer the add to a list action directly from that empty state.

A few practical constraints. GetResponse list endpoints are paginated with page and perPage parameters, so page through rather than assuming the first page is everything. The account is rate limited, so resolve each profile with a sensible number of calls: campaigns cached, one contact search, then activities only for the lists the person actually matched, rather than fanning out across every campaign. Search only when I submit the box, not on every character typed. Keep the whole desk read only until I press an action button, and never write to either system in the background.

What does this prompt do?

  • Type an email address and get one merged profile, so a customer who sits on three different lists shows up once instead of as three separate campaign views
  • See exactly what they opened and clicked over time, when and how they subscribed, and every tag and custom field on their record
  • Read their CRM record and open deals on the same screen, so marketing engagement and pipeline sit side by side instead of in two tools
  • Act without switching tools: edit tags and fields, add someone to a different list, or remove them behind a confirmation step
  • Press write the follow-up and an assistant reads what this person actually engaged with plus their deal stage and owner, then drafts a personalised email back into the app for a rep to review and copy

What do I need to use this?

  • A GetResponse account with your contact lists already set up
  • A HubSpot account with contacts and deals, and permission to view deal records
  • Nothing for the people using it day to day, which is the point: support and account reps never need a GetResponse login

How can I customize it?

  • Choose which lists the desk searches, so an account with dozens of lists stays fast to look up
  • Change how far back the engagement timeline reaches by default, and whether opens show alongside clicks or clicks only
  • Adjust the tone and length of the drafted follow-up, and which deal details it is allowed to reference

FAQs

Does this change anything in GetResponse or HubSpot on its own?
No. The desk only reads from both systems until you press something. Editing tags, adding someone to a list and removing them are all actions you take on the screen, removal asks you to confirm first, and nothing runs in the background.
What happens when the email address is not found?
It tells you exactly which side is missing rather than showing a blank no results. You will see whether the address is missing from GetResponse only, missing from HubSpot only, or missing from both, and when it is only missing from your email lists you can add them right from that screen.
Will it work if the same person is on more than one list?
Yes, and that is a large part of why it exists. The profile merges every list a contact appears on into one view, showing when they joined each one and combining their activity into a single timeline instead of making you check each list separately.
Can my support team use this without a GetResponse login?
Yes. That is the main reason to build it. The app holds the connection, so anyone you give access to can answer whether a customer is on the list and whether they got the last send, without a seat in GetResponse.
Why do the open numbers look higher than I expect?
Mail privacy features used by some inboxes pre-load images, which registers as an open even when nobody read the message. The desk flags this next to the open history so your team treats clicks as the reliable signal of real interest.

Related templates

Prospecting desk that builds account lists from the live web

Stop buying stale lists. Reps run a saved search, work the results like an inbox, and only the accounts they approve ever reach your CRM.

Hyperbrowser
HubSpot
Google Sheets
App
Plan a field sales day around drive time and neglected accounts

Pick a date, a starting point and a radius, then build a sequenced day of customer visits that lands straight on your calendar.

Geolocation
HubSpot
Google Calendar
App
Find ICP accounts, verify the emails, file them in HubSpot

One screen where reps filter for companies that fit, see who is actually reachable at each account, and save only the addresses that verify.

Hunter
HubSpot
App
Competitive battlecard workspace ranked by open pipeline

See every competitor battlecard next to the number of open deals that name that competitor, so the cards carrying real pipeline get refreshed first.

Guru
HubSpot
Slack Bot
App
Account coverage board that shows where you are single threaded

Score every target account against the buying committee you actually need, see the exact holes, and have an assistant fill them in your CRM.

Hunter
HubSpot
App
Work every Help Scout inbox from a single triage board

See open and pending conversations from all your Help Scout inboxes in one queue, sorted so the customers who have waited longest on you come first.

Help Scout
HubSpot
App

Stop asking marketing whether a customer got the email.

Give your support and account teams one screen that answers it in seconds, with the pipeline sitting right beside it.