← All tutorialsCRM

CRM auto-enrich

Read a HubSpot contact, search the web, write enriched fields back to the same record. crm.read + crm.write handle the auth.

Cost~$0.01 per contact
Operations
crm.readweb_search.querycrm.write

Prerequisites

  • HubSpot (or Salesforce) OAuth completed at /connected-apps.
  • crm.read + crm.write enabled.

Walkthrough

1. Read

crm.read by object_id. Returns the full property map normalized across vendors.

bash# Vendor-normalized contact read.
curl -X POST https://www.upivia.com/v1/service-requests \
  -H "Authorization: Bearer $AGENT_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "service":"crm",
    "operation":"read",
    "payload":{"object":"contact","id":"123456789"}
  }'

2. Search + extract

web_search.query for `<name> <domain>`, GPT-4o-mini extracts {company_size, role, industry} as JSON.

3. Write

crm.write merges the extracted fields back. Use approval_threshold_cents if you want a human to review bulk updates.

bash# Merge enriched fields back to HubSpot.
curl -X POST https://www.upivia.com/v1/service-requests \
  -H "Authorization: Bearer $AGENT_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "service":"crm",
    "operation":"write",
    "payload":{"object":"contact","id":"123456789","fields":{"company_size":"50-200","industry":"fintech"}}
  }'

Next steps

Audit every call at /audit-logs, watch spend at /usage, and tune budgets per service on the agent's page.

Create an account →