Always-on iMessage concierge for inbound texts

When someone texts your Linq number, an AI assistant looks them up in HubSpot, checks your calendar, and writes back a friendly, personalized reply.

Agentic Task
LinqHubSpotGoogle CalendarSalesPersonal ProductivityLead EnrichmentMeeting WorkflowsNotifications & Alerts

Build me an always-on iMessage concierge that handles inbound texts to my Linq business number. I want this to live entirely inside iMessage with no app for the other person to install, similar to how Poke and Sidekicks work.

Trigger: a webhook from Linq for incoming message events. Subscribe my Linq account to the incoming-message event via Linq's Create Webhook Subscription so this agent fires the moment a new inbound message lands on one of my numbers.

When the agent fires, it should do the following, in order:

1. Call Linq's List Phone Numbers to get every phone number assigned to my account. If the inbound sender matches any of my own numbers (me texting myself, a teammate on another seat, a test from sandbox), stop immediately without replying.

2. Take the sender's phone number from the webhook payload and look it up in HubSpot using Search Contacts with a phone-number filter. If there is a match, follow up with Get Contact to pull useful context like first and last name, company, lifecycle stage, and any notes properties on the contact. Optionally use Search Deals to find recent open or recently closed deals tied to that contact for added context.

3. Check my Google Calendar availability for the next few business days using List Events on my primary calendar. Build a short list of two or three concrete open time windows (default to 30-minute slots inside my normal working hours of 9am to 6pm in my local timezone, skipping anything that conflicts with an existing event).

4. Read the actual content of the inbound message and decide what they are asking for. If they are asking to meet, propose the concrete time slots in the reply. If they are asking a factual question about me or my company that the HubSpot context answers, answer it directly. If it is a warm hello, keep it friendly and conversational and offer to find time.

5. Draft a friendly, personalized reply in my voice (first-person, warm, concise, no emojis unless the inbound used them). Reference the HubSpot context naturally where it helps, but never quote raw CRM jargon like "lifecycle stage" or "deal stage" back at the person.

6. Send the reply back on the same chat using Linq's Send Message, posting from the same Linq number the inbound message came in on so the conversation thread stays clean in iMessage.

Guardrails the agent must respect:

- If the inbound message looks like spam, an automated marketing blast, a one-word reaction, or anything ambiguous the agent is not confident handling, quietly bail without sending anything so I can take it over manually. Do not send an "I am not sure how to help" message; just stay silent.

- Never reply to a number that appears in my Linq List Phone Numbers.

- Respect Linq's per-pair rate limit of 30 messages per 60-second window. Never send more than one outbound reply per inbound message, and if the same thread starts looping (same person texting back rapidly with the same intent), stop responding and surface the thread to me instead.

- Only propose calendar times the calendar actually says are free. Never invent a slot or propose something inside an existing event.

- If there is no matching HubSpot contact, that is fine: still reply if the message is clearly something I would want answered (a meeting request from a new prospect, a question about my company), but be a little more cautious and offer to learn more about who they are.

Make this an agent-style workflow with natural-language instructions, not a rigid code path: I want the model to reason about each inbound message and decide whether and how to reply, not blindly follow a script.

Additional information

What does this prompt do?
  • Listens for incoming texts to your Linq business number and reacts in real time.
  • Looks up the sender in HubSpot to see who they are, their company, lifecycle stage, and recent deal context.
  • Checks your Google Calendar for open windows over the next few days and proposes concrete time slots.
  • Writes a warm, personalized reply and sends it back to the same iMessage chat.
  • Stays quiet on spam, on messages from your own team numbers, and on anything the agent is not confident handling so you can take over manually.
What do I need to use this?
  • A Linq account with at least one phone number assigned to you for sending iMessage, RCS, or SMS.
  • A HubSpot login so the agent can search your contacts and read their company, lifecycle stage, and deal context.
  • A Google Calendar account so the agent can read your availability on your primary calendar.
  • A clear sense of which conversations you want handled automatically versus which ones you want left for you.
How can I customize it?
  • Change the tone: warmer, more formal, shorter, or with a signature line you specify.
  • Adjust the booking window: the next two business days, the rest of this week, or a custom range.
  • Tighten what counts as a confident reply: only respond to known HubSpot contacts, only certain lifecycle stages, or skip anyone above a deal stage you care about handling personally.
  • Expand the quiet list: skip auto-replying to specific numbers, your team, or contacts tagged a certain way in HubSpot.

Frequently asked questions

How does the assistant know who is texting me?
When a text comes in, the agent takes the sender's phone number and searches your HubSpot contacts for a match. If it finds one, it pulls in their name, company, lifecycle stage, and any recent deal activity to make the reply feel personal.
Will it ever reply to a teammate or to myself by accident?
No. The agent first pulls the list of phone numbers attached to your Linq account and skips any inbound text from one of those numbers, so internal pings and your own test messages stay quiet.
What happens if the agent is not sure how to respond?
It quietly bails without sending anything, so the conversation lands in your inbox like a normal unread iMessage and you can pick it up yourself. Spam and anything it cannot confidently handle are left for you.
How does it pick the meeting times it suggests?
It reads your primary Google Calendar for the next few days, finds open windows that match your working hours, and proposes two or three concrete slots in the reply instead of a vague "let me know when works."
Will this spam someone if we get into a back and forth?
No. Linq caps each pair of numbers at thirty messages per minute, and the agent is told to keep replies measured, never echo the same message twice, and stop if the same thread starts looping.

Turn your business number into a 24/7 concierge.

Connect Linq, HubSpot, and Google Calendar once, and inbound texts get a thoughtful reply with real time slots while you sleep.