Setu Recipes: reusable workflows across every app.Browse templates
Setuसेतु

Integrations / HubSpot

HubSpot

CRM: contacts, companies and deals.

5 actions OAuth 2 2 read3 write Calls api.hubapi.com

Connect

TypeScript
const conn = await setu.connections.initiate({ userId: "user_1", toolkit: "hubspot" });
console.log(conn.connectUrl); // show this to your user
await conn.waitUntilActive();

Permissions requested

ScopeWhy it is requested
oauthIdentify the connected HubSpot account
crm.objects.contacts.readRead contacts
crm.objects.contacts.writeCreate and update contacts
crm.objects.companies.readRead companies
crm.objects.deals.readRead deals
crm.objects.deals.writeCreate and update deals

Actions

Create contactwritehubspot.create_contactCreate a contact from a property map (email, firstname, lastname...).

Needs scope: crm.objects.contacts.write

InputTypeDescription
propertiesobjectRequiredHubSpot contact properties
TypeScript
await setu.execute({
  userId: "user_1",
  action: "hubspot.create_contact",
  input: {
    "properties": {}
  },
});
Create dealwritehubspot.create_dealCreate a deal from a property map (dealname, amount, dealstage...).

Needs scope: crm.objects.deals.write

InputTypeDescription
propertiesobjectRequired
TypeScript
await setu.execute({
  userId: "user_1",
  action: "hubspot.create_deal",
  input: {
    "properties": {}
  },
});
List companiesreadhubspot.list_companiesList companies in the CRM.

Needs scope: crm.objects.companies.read

InputTypeDescription
limitintegerOptional
TypeScript
await setu.execute({
  userId: "user_1",
  action: "hubspot.list_companies",
  input: {},
});
Search contactsreadhubspot.search_contactsSearch contacts by a text query.

Needs scope: crm.objects.contacts.read

InputTypeDescription
querystringRequired
limitintegerOptional
TypeScript
await setu.execute({
  userId: "user_1",
  action: "hubspot.search_contacts",
  input: {
    "query": "<query>"
  },
});
Update contactwritehubspot.update_contactUpdate properties of an existing contact.

Needs scope: crm.objects.contacts.write

InputTypeDescription
contact_idstringRequired
propertiesobjectRequired
TypeScript
await setu.execute({
  userId: "user_1",
  action: "hubspot.update_contact",
  input: {
    "contact_id": "<contact_id>",
    "properties": {}
  },
});