# Community signals to warm leads: active community members at ICP accounts, flagged in the CRM

Source: https://mcpforgtm.com/recipes/community-signal-leads (StackMCP, independent directory of official MCP servers)

## Goal

SDRs and community or marketing teams who want to know which people active in their community work at accounts that fit the ICP, and get them flagged as warm in the CRM without stepping on account owners. HubSpot can be swapped for Salesforce, Attio or Pipedrive. There is no other community tool in this directory, so Common Room is the fixed piece.

## Connected tools

- Common Room: https://mcp.commonroom.io/mcp (setup: https://mcpforgtm.com/tools/common-room)
- HubSpot: https://mcp.hubspot.com (setup: https://mcpforgtm.com/tools/hubspot)

## Guardrails

- Read only in Common Room. Don't create segments, log activities or update contacts there.
- Mark organizations with blank fields as unknown fit. Don't guess.
- Search HubSpot by domain and email, and show owners and open deals, before suggesting any change.
- Change HubSpot only after I approve it, and only the property I name. Never change owners or lifecycle stages, and don't create contacts unless I ask.
- Never quote a member's community posts in outreach.

## Steps

1. In Common Room, show me my catalog: the segments, activity types and organization fields I can query. Don't change anything.
2. Find contacts in Common Room with activity in the last {days} days in {segment or channels}. Show name, organization, each activity with type and date, and an activity count. Skip anyone at {our domain} and anyone below {minimum activity}.
3. Check each organization against my ICP: {ICP, e.g. B2B software, 100–1,000 employees, US or UK}. Use only the organization fields Common Room returns, and mark fit as unknown where a field is blank. Show me a table with person, organization, fit, the reason and an activity summary.
4. For each person with a fit of yes, search HubSpot for the company by domain and the contact by email. Show the company owner, lifecycle stage, open deals and whether the contact exists. Flag customers and open deals. Don't change any records.
5. Write one line on why each remaining person is warm, without quoting their posts. After I approve it, set {property name} to 'Warm' on those HubSpot contacts, and create that property first only if it doesn't exist and I approve that too. Show me the current values first and skip any that aren't blank.

## Expected output

Warm community leads, HubSpot check and the flag waiting for approval. Example (all names fictional):

```
Common Room: 212 members with activity in the last 30 days in segment 'Community Slack'. Excluded 9 of our own employees.
ICP: B2B software, 100–1,000 employees, US or UK.
Fit: 7 yes, 3 unknown (blank fields), the rest no.

| Person | Organization | Fit | Activity, last 30 days | HubSpot |
|---|---|---|---|---|
| Priya Raman | Mossgate Labs (fictional), 340 employees | Yes | 4 posts in #forecasting, attended office hours Oct 8 | Contact exists, no company owner, no open deal |
| Dana Okafor | Fernhill Software (fictional), 140 employees | Yes | 2 questions in #integrations | Owner Alex Rivera, open deal 'Fernhill expansion'. Flagged for Alex, not tagged |
| Tomas Elling | Org unknown (personal email) | Unknown | 6 posts | No match. Skipped |
| Sam Whitlock | Larkspur Freightworks (fictional), 2,400 employees | No, over 1,000 | 1 reaction | Skipped |
...6 more

Why Priya is warm: asked twice how other teams handle multi-region forecasts, and joined the Oct 8 office hours.

Waiting for approval: set 'Community signal' to 'Warm' on 5 HubSpot contacts (current value blank on all 5). Owners and lifecycle stages won't change. Nothing has been updated yet.
```

## Watch for

- Light activity counted as a buying signal: A single reaction or a join event isn't much. Set a minimum (for example two posts or one event in {days} days), show every activity behind each person, and drop anyone below it.
- Wrong or missing organization: Members often join with a personal email, so the organization can be blank or wrong. Show where the organization came from, mark blank fields as unknown instead of guessing fit, and check HubSpot by name plus company for those.
- Stepping on an account owner: Some active members work at customers or accounts with an open deal. List the HubSpot owner and open deals for each, don't tag those contacts, and pass them to the owner instead.
- Outreach that quotes someone's community posts: Quoting a member's messages back to them feels like surveillance. Use activity to decide who to contact, and refer to the topic, not their words. Read every opener for quoted posts before it goes anywhere.
