package
0.40.0-beta
Repository: https://github.com/instill-ai/pipeline-backend.git
Documentation: pkg.go.dev

# README


title: "HubSpot" lang: "en-US" draft: false description: "Learn about how to set up a VDP HubSpot component https://github.com/instill-ai/instill-core"

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.json and tasks.json 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

InputIDTypeDescription
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
OutputIDTypeDescription
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

InputIDTypeDescription
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
OutputIDTypeDescription
Contact IDcontact-idstringContact ID

Get Deal

Get deal information using deal ID

InputIDTypeDescription
Task ID (required)taskstringTASK_GET_DEAL
Deal ID (required)deal-idstringInput deal ID
OutputIDTypeDescription
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

InputIDTypeDescription
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
OutputIDTypeDescription
Deal IDdeal-idstringDeal ID

Update Deal

Update existing deal

InputIDTypeDescription
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
OutputIDTypeDescription
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

InputIDTypeDescription
Task ID (required)taskstringTASK_GET_COMPANY
Company ID (required)company-idstringInput company ID
OutputIDTypeDescription
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

InputIDTypeDescription
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
OutputIDTypeDescription
Company IDcompany-idstringCompany ID

Get Ticket

Get ticket information using ticket ID

InputIDTypeDescription
Task ID (required)taskstringTASK_GET_TICKET
Ticket ID (required)ticket-idstringInput ticket ID
OutputIDTypeDescription
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

InputIDTypeDescription
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
OutputIDTypeDescription
Ticket IDticket-idstringTicket ID

Update Ticket

Update existing ticket

InputIDTypeDescription
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
OutputIDTypeDescription
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.

InputIDTypeDescription
Task ID (required)taskstringTASK_GET_THREAD
Thread ID (required)thread-idstringInput thread ID
OutputIDTypeDescription
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)

InputIDTypeDescription
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
OutputIDTypeDescription
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.

InputIDTypeDescription
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
OutputIDTypeDescription
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

InputIDTypeDescription
Task ID (required)taskstringTASK_GET_OWNER
ID Type (required)id-typestringSpecify the type of ID you will use to get owner's information.
ID (required)idstringCan either be owner ID or user ID; according to the ID type you selected.
OutputIDTypeDescription
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)

InputIDTypeDescription
Task ID (required)taskstringTASK_GET_ALL
Object Type (required)object-typestringThe object which you want to get all IDs for
OutputIDTypeDescription
Object ID Arrayobject-idsarray[string]An array of object ID
Object IDs Lengthobject-ids-lengthintegerThe number of object IDs

# Functions

No description provided by the author
No description provided by the author
No description provided by the author

# Structs

No description provided by the author
No description provided by the author
need to create CustomClient because the go-hubspot sdk we are using does not support threads (conversation inbox) future functionalities that go-huspot sdk doesn't support will go here or need to be modified will go here.
No description provided by the author
No description provided by the author
No description provided by the author
Create Company.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
Create Ticket.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
Get Company.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
Update Ticket.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Interfaces

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author