Tutorials

Connect a CRM

Wire HubSpot or Salesforce so operators can read deals, update contacts, and follow up on leads.

A sales operator without a CRM connection is missing 80% of its job. This tutorial walks you through connecting HubSpot end-to-end. Salesforce is identical except for the OAuth screen.

Actions page — 179 actions including a github MCP row with 90 sub-tools. CRM integrations land here after install

Prerequisites

  • A Guilde guild with at least one sales-ish operator (Solo or a Sales squad bundle works)
  • Admin access to your CRM (HubSpot in this example)
  • ~5 minutes

Step 1 — Install the integration

Sidebar → Integrations (under TEAM, sibling to Actions) → search HubSpot → click the row → Install.

You're redirected to HubSpot's authorize page. Pick the HubSpot account you want to grant Guilde access to, review the requested scopes, click Authorize.

By default Guilde requests:

  • crm.objects.contacts.read / .write
  • crm.objects.deals.read / .write
  • crm.objects.companies.read

Toggle off anything you don't want before authorizing.

Step 2 — Verify the actions registered

The integration installs at the user level. Its actions register into the guild's flat Actions list under the hubspot provider group. You should see verbs like contacts.search, deals.update, companies.get, …

If they're not there: the install didn't complete. Go back to Integrations, click HubSpot, hit Re-authorize.

Step 3 — Wire actions to operators

Default for any new action is "no operator linked". On the Actions page → click the HubSpot provider group → Manage → pick the operators (or roles) that should be able to call HubSpot verbs. Save.

Operators only see actions they've been explicitly granted.

Step 4 — Test from a conversation

Open a conversation with your sales operator. Try:

  • "Pull my 5 most recent deals from HubSpot and tell me which need follow-up."
  • "Find every contact tagged 'enterprise-trial' that hasn't been contacted in 14 days."
  • "Create a contact for Dana Smith at acme.com, mark them as MQL."

The operator should:

  1. Call the HubSpot API via the action
  2. Show the tool call inline in the conversation (expand to see the request + response)
  3. Synthesize a response with the data

If the operator says "I don't have access to HubSpot", check that the action is wired to that operator on the Actions page.

Step 5 — Set up a routine (optional)

Now that the operator can read HubSpot, schedule something useful:

  • Daily pipeline summary at 9am — operator pulls every active deal, surfaces the ones with risk indicators (no activity in 7 days, past close date), drops a digest in Slack.

See Build a routine for the walkthrough.

Refresh + revoke

OAuth tokens auto-refresh while valid. If you change scopes on HubSpot's side, or revoke the grant, the integration flips to expired — operators get a clear error in conversations. Click Reconnect to redo the OAuth.

To revoke entirely: Integrations → HubSpot → Revoke. Guilde deletes its tokens. HubSpot still remembers the grant — revoke from HubSpot's side too if you're being thorough.

What's next