HubSpot

The HubSpot component is an application component that allows users to use HubSpot application to do various tasks. It can carry out the following tasks:

#Release Stage

Alpha

#Configuration

The component definition and tasks are defined in the definition.yaml and tasks.yaml files respectively.

#Setup

In order to communicate with HubSpot, the following connection details need to be provided. You may specify them directly in a pipeline recipe as key-value pairs within the component's setup block, or you can create a Connection from the Integration Settings page and reference the whole setup as setup: ${connection.<my-connection-id>}.

FieldField IDTypeNote
Token (required)tokenstringFill in your HubSpot private app access token. Go here for more information.

#Supported Tasks

#Get Contact

Get contact information using contact ID or Email

InputField IDTypeDescription
Task ID (required)taskstringTASK_GET_CONTACT
Contact ID or Email (required)contact-id-or-emailstringInput contact ID or email. If the input has @, it will search the contact using email.
OutputField IDTypeDescription
Owner ID (optional)owner-idstringThe user who is assigned to the object.
Email Address (optional)emailstringEmail address.
First Name (optional)first-namestringFirst name.
Last Name (optional)last-namestringLast name.
Phone Number (optional)phone-numberstringPhone number. If you plan to use the number formatting feature in HubSpot, use country code + phone number. Example: +886xxxxxxxxx.
Company (optional)companystringCompany.
Job Title (optional)job-titlestringJob title.
Lifecycle Stage (optional)lifecycle-stagestringLifecycle stages are used to track how contacts or companies move forward in your process. Default format is in small letters, all words are combined. Example: salesqualifiedlead. However, remember to check internal value for custom fields.
Lead Status (optional)lead-statusstringThe contact's sales, prospecting or outreach status. Default format is in capital letters, with _ as space. Example: IN_PROGRESS. However, remember to check internal value for custom fields.
Contact IDcontact-idstringContact ID.

#Create Contact

Create new contact

InputField IDTypeDescription
Task ID (required)taskstringTASK_CREATE_CONTACT
Owner IDowner-idstringThe user who is assigned to the object.
Email Address (required)emailstringEmail address.
First Namefirst-namestringFirst name.
Last Namelast-namestringLast name.
Phone Numberphone-numberstringPhone number. If you plan to use the number formatting feature in HubSpot, use country code + phone number. Example: +886xxxxxxxxx.
CompanycompanystringCompany.
Job Titlejob-titlestringJob title.
Lifecycle Stagelifecycle-stagestringLifecycle stages are used to track how contacts or companies move forward in your process. Default format is in small letters, all words are combined. Example: salesqualifiedlead. However, remember to check internal value for custom fields.
Lead Statuslead-statusstringThe contact's sales, prospecting or outreach status. Default format is in capital letters, with _ as space. Example: IN_PROGRESS. However, remember to check internal value for custom fields.
Create Object -> Deal Association Using Deal IDscreate-deals-associationarray[string]Existing deal IDs to be associated with the object.
Create Object -> Company Association Using Company IDscreate-companies-associationarray[string]Existing company IDs to be associated with the object.
Create Object -> Ticket Association Using Ticket IDscreate-tickets-associationarray[string]Existing ticket IDs to be associated with the object.
OutputField IDTypeDescription
Contact IDcontact-idstringContact ID.

#Get Deal

Get deal information using deal ID

InputField IDTypeDescription
Task ID (required)taskstringTASK_GET_DEAL
Deal ID (required)deal-idstringInput deal ID.
OutputField IDTypeDescription
Owner ID (optional)owner-idstringThe user who is assigned to the object.
Deal Namedeal-namestringDeal name.
PipelinepipelinestringA pipeline is the place where you document and manage how your prospects move through the steps of your sales process. HubSpot uses interval value rather than the name displayed in the view.
Deal Stagedeal-stagestringDeal stages allow you to categorize and track the progress of the deals that you are working on. Default format is in small letters, all words are combined. Example: qualifiedtobuy. However, remember to check internal value for custom fields.
Amount (optional)amountnumberThe total amount of the deal.
Deal Type (optional)deal-typestringThe type of deal. Default format is in small letters, all words are combined. Example: newbusiness. However, remember to check internal value for custom fields.
Close Date (optional)close-datestringDate the deal was closed. Set automatically by HubSpot. Format is in ISO 8601. Example: 2024-07-01T11:47:40.388Z.
Create Date (optional)create-datestringCreate date. Format is in ISO 8601. Example: 2024-07-01T11:47:40.388Z.
Associated Contact IDs (optional)associated-contact-idsarray[string]Contact IDs associated with the object.

#Create Deal

Create new deal

InputField IDTypeDescription
Task ID (required)taskstringTASK_CREATE_DEAL
Owner IDowner-idstringThe user who is assigned to the object.
Deal Name (required)deal-namestringDeal name.
Pipeline (required)pipelinestringA pipeline is the place where you document and manage how your prospects move through the steps of your sales process. HubSpot uses interval value rather than the name displayed in the view.
Deal Stage (required)deal-stagestringDeal stages allow you to categorize and track the progress of the deals that you are working on. Default format is in small letters, all words are combined. Example: qualifiedtobuy. However, remember to check internal value for custom fields.
AmountamountnumberThe total amount of the deal.
Deal Typedeal-typestringThe type of deal. Default format is in small letters, all words are combined. Example: newbusiness. However, remember to check internal value for custom fields.
Close Dateclose-datestringDate the deal was closed. Set automatically by HubSpot. Format is in ISO 8601. Example: 2024-07-01T11:47:40.388Z.
Create Object -> Contact Association Using Contact IDscreate-contacts-associationarray[string]Existing contact IDs to be associated with the object.
OutputField IDTypeDescription
Deal IDdeal-idstringDeal ID.

#Update Deal

Update existing deal

InputField IDTypeDescription
Task ID (required)taskstringTASK_UPDATE_DEAL
Deal ID (required)deal-idstringInput deal ID.
Owner IDowner-idstringThe user who is assigned to the object.
Deal Namedeal-namestringDeal name.
PipelinepipelinestringA pipeline is the place where you document and manage how your prospects move through the steps of your sales process. HubSpot uses interval value rather than the name displayed in the view.
Deal Stagedeal-stagestringDeal stages allow you to categorize and track the progress of the deals that you are working on. Default format is in small letters, all words are combined. Example: qualifiedtobuy. However, remember to check internal value for custom fields.
AmountamountnumberThe total amount of the deal.
Deal Typedeal-typestringThe type of deal. Default format is in small letters, all words are combined. Example: newbusiness. However, remember to check internal value for custom fields.
Close Dateclose-datestringDate the deal was closed. Set automatically by HubSpot. Format is in ISO 8601. Example: 2024-07-01T11:47:40.388Z.
Create Object -> Contact Association Using Contact IDscreate-contacts-associationarray[string]Existing contact IDs to be associated with the object.
OutputField IDTypeDescription
Updated by User IDupdated-by-user-idstringUser ID that updated the deal.
Updated Atupdated-atstringThe time when the deal was updated.

#Get Company

Get company information using company ID

InputField IDTypeDescription
Task ID (required)taskstringTASK_GET_COMPANY
Company ID (required)company-idstringInput company ID.
OutputField IDTypeDescription
Owner ID (optional)owner-idstringThe user who is assigned to the object.
Company Name (optional)company-namestringCompany name.
Company Domain (optional)company-domainstringThe domain name of the company.
Description (optional)descriptionstringDescription of the company.
Phone Number (optional)phone-numberstringPhone number of the company. If you plan to use the number formatting feature in HubSpot, use country code + phone number. Example: +886xxxxxxxxx.
Industry (optional)industrystringThe industry the company belongs to. Default format is in capital letters, with _ as space. Example: BROADCAST_MEDIA.
Company Type (optional)company-typestringType of company. Default format is capital letter. Example: RESELLER.
City (optional)citystringCity.
State (optional)statestringState.
Country (optional)countrystringCountry.
Postal Code (optional)postal-code,stringPostal code.
Time Zone (optional)time-zonestringTime zone.
Annual Revenue (optional)annual-revenuenumberAnnual revenue.
Total Revenue (optional)total-revenuenumberTotal revenue. Calculated automatically by HubSpot.
Linkedin Page (optional)linkedin-pagestringLinkedin page of the company.
Associated Contact IDs (optional)associated-contact-idsarray[string]Contact IDs associated with the object.

#Create Company

Create new company

InputField IDTypeDescription
Task ID (required)taskstringTASK_CREATE_COMPANY
Owner IDowner-idstringThe user who is assigned to the object.
Company Namecompany-namestringCompany name.
Company Domain (required)company-domainstringThe domain name of the company.
DescriptiondescriptionstringDescription of the company.
Phone Numberphone-numberstringPhone number of the company. If you plan to use the number formatting feature in HubSpot, use country code + phone number. Example: +886xxxxxxxxx.
IndustryindustrystringThe industry the company belongs to. Default format is in capital letters, with _ as space. Example: BROADCAST_MEDIA.
Company Typecompany-typestringType of company. Default format is capital letter. Example: RESELLER.
CitycitystringCity.
StatestatestringState.
CountrycountrystringCountry.
Postal Codepostal-code,stringPostal code.
Time Zonetime-zonestringTime zone.
Annual Revenueannual-revenuenumberAnnual revenue.
Linkedin Pagelinkedin-pagestringLinkedin page of the company.
Create Object -> Contact Association Using Contact IDscreate-contacts-associationarray[string]Existing contact IDs to be associated with the object.
OutputField IDTypeDescription
Company IDcompany-idstringCompany ID.

#Get Ticket

Get ticket information using ticket ID

InputField IDTypeDescription
Task ID (required)taskstringTASK_GET_TICKET
Ticket ID (required)ticket-idstringInput ticket ID.
OutputField IDTypeDescription
Owner ID (optional)owner-idstringThe user who is assigned to the object.
Ticket Nameticket-namestringTicket name.
Ticket Statusticket-statusstringThe pipeline stage that contains this ticket. Default format is number. Example: 1. However, remember to check internal value for custom fields. Note: In Instill AI, ticket-status is displayed as string because of the possible custom internal value.
PipelinepipelinestringA pipeline organizes and tracks the progression of tickets through various stages of resolution within your support process. HubSpot uses interval value rather than the name displayed in the view.
Categories (optional)categoriesarray[string]The main reason customer reached out for help. Default format is in capital letters. Example: BILLING_ISSUE. However, remember to check internal value for custom fields.
Priority (optional)prioritystringThe level of attention needed on the ticket. Default format is in capital letters. Example: MEDIUM. However, remember to check internal value for custom fields.
Source (optional)sourcestringChannel where ticket was originally submitted. Default format is in capital letters. Example: EMAIL.
Record Source (optional)record-sourcestringHow this record was created.
Create Date (optional)create-datestringCreate date. Format is in ISO 8601. Example: 2024-07-01T11:47:40.388Z.
Last Modified Date (optional)last-modified-datestringLast modified date. Format is in ISO 8601. Example: 2024-07-01T11:47:40.388Z.
Associated Contact IDs (optional)associated-contact-idsarray[string]Contact IDs associated with the object.

#Create Ticket

Create new ticket

InputField IDTypeDescription
Task ID (required)taskstringTASK_CREATE_TICKET
Owner IDowner-idstringThe user who is assigned to the object.
Ticket Name (required)ticket-namestringTicket name.
Ticket Status (required)ticket-statusstringThe pipeline stage that contains this ticket. Default format is number. Example: 1. However, remember to check internal value for custom fields. Note: In Instill AI, ticket-status is displayed as string because of the possible custom internal value.
Pipeline (required)pipelinestringA pipeline organizes and tracks the progression of tickets through various stages of resolution within your support process. HubSpot uses interval value rather than the name displayed in the view.
Categoriescategoriesarray[string]The main reason customer reached out for help. Default format is in capital letters. Example: BILLING_ISSUE. However, remember to check internal value for custom fields.
PriorityprioritystringThe level of attention needed on the ticket. Default format is in capital letters. Example: MEDIUM. However, remember to check internal value for custom fields.
SourcesourcestringChannel where ticket was originally submitted. Default format is in capital letters. Example: EMAIL.
Create Object -> Contact Association Using Contact IDscreate-contacts-associationarray[string]Existing contact IDs to be associated with the object.
OutputField IDTypeDescription
Ticket IDticket-idstringTicket ID.

#Update Ticket

Update existing ticket

InputField IDTypeDescription
Task ID (required)taskstringTASK_UPDATE_TICKET
Owner IDowner-idstringThe user who is assigned to the object.
Ticket ID (required)ticket-idstringInput ticket ID.
Ticket Nameticket-namestringTicket name.
Ticket Statusticket-statusstringThe pipeline stage that contains this ticket. Default format is number. Example: 1. However, remember to check internal value for custom fields. Note: In Instill AI, ticket-status is displayed as string because of the possible custom internal value.
PipelinepipelinestringA pipeline organizes and tracks the progression of tickets through various stages of resolution within your support process. HubSpot uses interval value rather than the name displayed in the view.
Categoriescategoriesarray[string]The main reason customer reached out for help. Default format is in capital letters. Example: BILLING_ISSUE. However, remember to check internal value for custom fields.
PriorityprioritystringThe level of attention needed on the ticket. Default format is in capital letters. Example: MEDIUM. However, remember to check internal value for custom fields.
SourcesourcestringChannel where ticket was originally submitted. Default format is in capital letters. Example: EMAIL.
Create Object -> Contact Association Using Contact IDscreate-contacts-associationarray[string]Existing contact IDs to be associated with the object.
OutputField IDTypeDescription
Updated Atupdated-atstringThe time when the ticket was updated.

#Get Thread

Retrieve all the messages inside a thread (conversation inbox). The messages will be sorted from most recent to least recent. Note: This task uses Conversation API from HubSpot, which is still in BETA.

InputField IDTypeDescription
Task ID (required)taskstringTASK_GET_THREAD
Thread ID (required)thread-idstringInput thread ID.
OutputField IDTypeDescription
Messagesresultsarray[object]An array of messages.
Number of Messagesno-of-messagesintegerThe number of messages in a thread.
Output Objects in Get Thread

Messages

FieldField IDTypeNote
Channel Account IDchannel-account-idstringThe ID of an account that is part of the channel-id channel.
Channel IDchannel-idstringThe ID of a generic channel returned from the channels endpoint, like 1000 for live chat, 1001 for Facebook Messenger, 1002 for email, etc.
Start Conversation Messagecreated-atstringmessage to start a conversation.
RecipientsrecipientsarrayRecipients' information.
SendersenderobjectSender's information.
SubjectsubjectstringThe subject of the message.
TexttextstringThe content of the message.

Sender

FieldField IDTypeNote
Actor IDsender-actor-idstringThe actor ID of the sender.
Namesender-namestringThe name of the sender.
Typesender-typestringSpecify the category of sender information.
Valuesender-valuestringContains the actual sender information (e.g.: email address).

Recipients

FieldField IDTypeNote
NamenamestringThe name of the recipient.
TypetypestringSpecify the category of recipient information.
ValuevaluestringContains the actual recipient information (e.g.: email address).

#Insert Message

Insert message into a thread (only support email thread)

InputField IDTypeDescription
Task ID (required)taskstringTASK_INSERT_MESSAGE
Thread ID (required)thread-idstringInput thread ID.
Sender Actor ID (required)sender-actor-idstringInput sender actor id. Example: A-12345678. To obtain this, it is recommended to use and copy the 'Get Thread task' sender output. For more information about actor id.
Recipients (required)recipientsarray[string]Recipients of the message.
Channel Account ID (required)channel-account-idstringThe ID of an account that is part of the channel-id channel. On an existing thread, it is recommended to copy channel-account-id of the most recent message on the thread.
Subject (required)subjectstringThe subject of the message.
Text (required)textstringThe body of the message.
OutputField IDTypeDescription
StatusstatusstringThe message status.

#Retrieve Association

Get the object IDs associated with contact ID (contact->objects). If you are trying to do the opposite (object->contacts), it is possible using the other tasks. Example: Go to get deal task to obtain deal->contacts. Remember to check that the contact ID you input exists, because there won't be an error message if the contact ID doesn't exist.

InputField IDTypeDescription
Task ID (required)taskstringTASK_RETRIEVE_ASSOCIATION
Contact ID (required)contact-idstringInput contact ID.
Object Type (required)object-typestringInput object type (CRM objects or 'Threads'). Note: CRM objects include 'Deals', 'Companies', 'Tickets', etc.
Enum values
  • Deals
  • Companies
  • Tickets
  • Threads
OutputField IDTypeDescription
Object ID Arrayobject-idsarray[string]An array of object ID associated with the contact.
Object IDs Lengthobject-ids-lengthintegerThe number of object IDs.

#Get Owner

Get information about HubSpot owner using either owner ID or user ID. For more information about owner, please go to here

InputField IDTypeDescription
Task ID (required)taskstringTASK_GET_OWNER
ID Type (required)id-typestringSpecify the type of ID you will use to get owner's information.
Enum values
  • Owner ID
  • User ID
ID (required)idstringCan either be owner ID or user ID; according to the ID type you selected.
OutputField IDTypeDescription
First Namefirst-namestringFirst name.
Last Namelast-namestringLast name.
EmailemailstringEmail.
Owner IDowner-idstringOwner ID. Usually used to associate the owner with other objects.
User IDuser-idstringUser ID. Usually used to indicate the owner who performed the action. User ID can be seen in Update Deal task output.
Teams (optional)teamsarray[object]The owner's teams information.
Created Atcreated-atstringCreated at.
Updated Atupdated-atstringUpdated at.
ArchivedarchivedbooleanArchived.
Output Objects in Get Owner

Teams

FieldField IDTypeNote
Team IDteam-idstringThe ID of the team.
Team Nameteam-namestringThe name of the team.
Team Primaryteam-primarybooleanIndicate whether this team is the primary team of the owner.

#Get All

Get all the IDs for a specific object (e.g. all contact IDs)

InputField IDTypeDescription
Task ID (required)taskstringTASK_GET_ALL
Object Type (required)object-typestringThe object which you want to get all IDs for.
Enum values
  • Contacts
  • Deals
  • Companies
  • Tickets
  • Threads
  • Owners
OutputField IDTypeDescription
Object ID Arrayobject-idsarray[string]An array of object ID.
Object IDs Lengthobject-ids-lengthintegerThe number of object IDs.