Skip to content

HubSpot

Turn the page you’re on into a CRM record. Read a profile, extract the details, and create or update a contact or company in HubSpot — then attach the page itself as a note.

Creates or updates contacts and companies (deduplicated by email / domain), logs notes from the current page against a record, and lists deals. This is the classic sales-extension pattern — “log the profile I’m viewing” — as a composable workflow: read the page, extract with the Information Extractor, upsert the contact, attach the URL.

ResourceOperations
ContactCreate or update (dedup by email), Update, Search
CompanyCreate or update (dedup by domain), Search
NoteCreate (attach the current page to a record)
DealList

“Create or update” searches for an existing record by its unique property first — email for contacts, domain for companies. If a match is found the record is updated; otherwise a new one is created. The result includes created: true | false so the rest of your workflow knows which happened.

Note: HubSpot search is eventually consistent — a record created moments earlier may not be searchable yet, so two upserts fired back-to-back for the same email can create a duplicate.

SettingNotes
CredentialA HubSpot Private App token (see below).
Resource / OperationWhat to act on and how.
EmailContact unique key (Contact → Create or update).
DomainCompany unique key (Company → Create or update).
First name / Last name / Phone / Company / Job title / WebsiteContact properties.
Name / City / Country / Website / PhoneCompany properties.
Contact IDThe contact to update (Contact → Update).
QueryFull-text search term (Search).
Note / Source URL / SelectionThe note text, the page URL, and any quoted selection (Note → Create).
Associate with / Associated record IDAttach the note to a contact, company, or deal.
LimitNumber of results for list/search.
  • Auth: a HubSpot Private App token, sent as Authorization: Bearer <token>. Create one under Settings → Integrations → Private Apps in HubSpot.
  • ⚠️ Scope guidance: a private app token is account-wide — it is scope-limited but not scoped per-record. Grant only the scopes you need:
    • crm.objects.contacts.read, crm.objects.contacts.write
    • crm.objects.companies.read, crm.objects.companies.write
    • crm.objects.deals.read
  • The token is stored in your credential vault and never passes through awflow’s backend. Treat it like a password — a leak exposes your CRM to the extent of those scopes.

This node is extension-only. The HubSpot API isn’t confirmed to send browser-CORS headers, so run it in the awflow browser extension.

  • 403 / missing scope — the private app is missing a scope the operation needs. Add it in HubSpot (Settings → Integrations → Private Apps) and retry. The node calls this out in the error.
  • A duplicate was created — two “create or update” calls for the same email/domain ran before HubSpot’s search index caught up. Space them out, or search first.
  • Note isn’t attached — set both Associate with and Associated record ID; a note with neither is created standalone.