AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified Apache-2.0 Self-run

Crm Lookup

skill-hubspot-agent-cli-skills-crm-lookup · by HubSpot

Find a specific CRM record by ID, email, domain, or name fragment, and traverse associations for the full account picture.

— No reviews yet
0 installs
42 views
0.0% view→install

Install

$ agentstack add skill-hubspot-agent-cli-skills-crm-lookup

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • ✓ Prompt-injection patterns
  • ✓ Secret / credential exfiltration
  • ✓ Dangerous shell & filesystem operations
  • ✓ Untrusted network calls
  • ✓ Known-malicious package signatures

What it can access

  • ✓ Network access No
  • ✓ Filesystem access No
  • ✓ Shell / process execution No
  • ✓ Environment & secrets No
  • ✓ Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-hubspot-agent-cli-skills-crm-lookup)

Reliability & compatibility

✓ Security review passed
0 installs to date
— no reviews yet
● 2mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Crm Lookup? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Source of truth

hubspot --help is authoritative. Read [bulk-operations/SKILL.md](../bulk-operations/SKILL.md) first — it owns JSONL piping, pagination, batch-get-via-stdin, and the safety flow for any write that comes after a lookup. This skill is read-only.

Pick properties from the live schema

Schemas drift. Run hubspot properties list --type for the live set. First-pass --properties for a brief:

| Object | --properties | |---|---| | contacts | email,firstname,lastname,company,phone,lifecyclestage,hubspot_owner_id | | companies | name,domain,industry,annualrevenue,numberofemployees,hubspot_owner_id | | deals | dealname,amount,dealstage,closedate,hubspot_owner_id,hs_is_closed_won | | tickets | subject,hs_pipeline_stage,hs_ticket_priority,hubspot_owner_id |

Contact ad/campaign attribution lives on hs_analytics_* (e.g. hs_analytics_source, hs_analytics_source_data_1/_2, hs_analytics_first_touch_converting_campaign, hs_analytics_last_touch_converting_campaign). Full list: hubspot properties list --type contacts | grep hs_analytics_.

1. Lookup by ID

Up to ~100 IDs in a single batch call:

hubspot objects get --type contacts 12345 67890 23456 --properties email,firstname,lastname,company,phone,lifecyclestage

2. Find one by email / domain (exact match)

email/domain are exact-match — normalize to lowercase. Multiple --filter flags are OR'd.

hubspot objects search --type contacts --filter "email=jane@acme.com" \
  --properties email,firstname,lastname,company,lifecyclestage,hubspot_owner_id

hubspot objects search --type companies --filter "domain=acme.com" \
  --properties name,domain,industry,annualrevenue,hubspot_owner_id

# OR — multiple emails in one call
hubspot objects search --type contacts \
  --filter "email=alice@acme.com" --filter "email=bob@acme.com" --properties email,firstname

3. Find by partial name (token + client-side narrowing)

~ is CONTAINS_TOKEN — matches whole space-separated words. dealname~acme finds "Acme Renewal" but not "AcmeCorp". For substring, pipe to jq. There's no full-text search across all fields — pick the property.

hubspot objects search --type deals --filter "dealname~acme" --properties dealname,amount,dealstage \
| jq -c 'select(.properties.dealname | ascii_downcase | contains("acme corp"))'

4. Find all associated records (two CLI calls, not xargs)

Pattern: associations list → jq -c '{id}' → objects get batch. Never xargs -I{} hubspot objects get … — that spawns one process per record. Use plural in --from (contacts:, companies:, deals:); --help shows singular but only plural avoids a warning.

# All contacts at a company
hubspot associations list --from companies:67890 --to contacts \
| jq -c '{id}' \
| hubspot objects get --type contacts --properties email,firstname,lastname,jobtitle

# Open deals for a contact (filter client-side; "open" varies by pipeline)
hubspot associations list --from contacts:12345 --to deals | jq -c '{id}' \
| hubspot objects get --type deals --properties dealname,amount,dealstage,hs_is_closed \
| jq -c 'select(.properties.hs_is_closed != "true")'

5. Get a record plus its associations

contact_id=12345
hubspot objects get --type contacts $contact_id --properties email,firstname,lastname,company,lifecyclestage

# Associated company (usually one)
hubspot associations list --from contacts:$contact_id --to companies | jq -c '{id}' | head -1 \
| hubspot objects get --type companies --properties name,domain,industry,annualrevenue

# Associated deals
hubspot associations list --from contacts:$contact_id --to deals | jq -c '{id}' \
| hubspot objects get --type deals --properties dealname,amount,dealstage,closedate

Constraints

  • Search returns ≤100 per page. For more, use the pagination loop in bulk-operations/SKILL.md.
  • ~ is token-based; substring filtering happens in jq after the search.
  • If the lookup feeds a write (update, delete, merge), follow the --dry-run → digest → --confirm flow in bulk-operations/SKILL.md.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.