Skip to main content

Overview

Enable your agents to manage companies and contacts within HubSpot. Create new records and streamline your CRM processes with AI-powered automation.

Prerequisites

Before using the HubSpot integration, ensure you have:
  • A CrewAI AMP account with an active subscription.
  • A HubSpot account with appropriate permissions.
  • Connected your HubSpot account through the Integrations page.

Setting Up HubSpot Integration

1. Connect Your HubSpot Account

  1. Navigate to CrewAI AMP Integrations.
  2. Find HubSpot in the Authentication Integrations section.
  3. Click Connect and complete the OAuth flow.
  4. Grant the necessary permissions for company and contact management.
  5. Copy your Enterprise Token from Account Settings.

2. Install Required Package

uv add crewai-tools

Available Actions

Description: Create a new company record in HubSpot.Parameters:
  • name (string, required): Name of the company.
  • domain (string, optional): Company Domain Name.
  • industry (string, optional): Industry. Must be one of the predefined values from HubSpot.
  • phone (string, optional): Phone Number.
  • hubspot_owner_id (string, optional): Company owner ID.
  • type (string, optional): Type of the company. Available values: PROSPECT, PARTNER, RESELLER, VENDOR, OTHER.
  • city (string, optional): City.
  • state (string, optional): State/Region.
  • zip (string, optional): Postal Code.
  • numberofemployees (number, optional): Number of Employees.
  • annualrevenue (number, optional): Annual Revenue.
  • timezone (string, optional): Time Zone.
  • description (string, optional): Description.
  • linkedin_company_page (string, optional): LinkedIn Company Page URL.
  • company_email (string, optional): Company Email.
  • first_name (string, optional): First Name of a contact at the company.
  • last_name (string, optional): Last Name of a contact at the company.
  • about_us (string, optional): About Us.
  • hs_csm_sentiment (string, optional): CSM Sentiment. Available values: at_risk, neutral, healthy.
  • closedate (string, optional): Close Date.
  • hs_keywords (string, optional): Company Keywords. Must be one of the predefined values.
  • country (string, optional): Country/Region.
  • hs_country_code (string, optional): Country/Region Code.
  • hs_employee_range (string, optional): Employee range.
  • facebook_company_page (string, optional): Facebook Company Page URL.
  • facebookfans (number, optional): Number of Facebook Fans.
  • hs_gps_coordinates (string, optional): GPS Coordinates.
  • hs_gps_error (string, optional): GPS Error.
  • googleplus_page (string, optional): Google Plus Page URL.
  • owneremail (string, optional): HubSpot Owner Email.
  • ownername (string, optional): HubSpot Owner Name.
  • hs_ideal_customer_profile (string, optional): Ideal Customer Profile Tier. Available values: tier_1, tier_2, tier_3.
  • hs_industry_group (string, optional): Industry group.
  • is_public (boolean, optional): Is Public.
  • hs_last_metered_enrichment_timestamp (string, optional): Last Metered Enrichment Timestamp.
  • hs_lead_status (string, optional): Lead Status. Available values: NEW, OPEN, IN_PROGRESS, OPEN_DEAL, UNQUALIFIED, ATTEMPTED_TO_CONTACT, CONNECTED, BAD_TIMING.
  • lifecyclestage (string, optional): Lifecycle Stage. Available values: subscriber, lead, marketingqualifiedlead, salesqualifiedlead, opportunity, customer, evangelist, other.
  • linkedinbio (string, optional): LinkedIn Bio.
  • hs_linkedin_handle (string, optional): LinkedIn handle.
  • hs_live_enrichment_deadline (string, optional): Live enrichment deadline.
  • hs_logo_url (string, optional): Logo URL.
  • hs_analytics_source (string, optional): Original Traffic Source.
  • hs_pinned_engagement_id (number, optional): Pinned Engagement ID.
  • hs_quick_context (string, optional): Quick context.
  • hs_revenue_range (string, optional): Revenue range.
  • hs_state_code (string, optional): State/Region Code.
  • address (string, optional): Street Address.
  • address2 (string, optional): Street Address 2.
  • hs_is_target_account (boolean, optional): Target Account.
  • hs_target_account (string, optional): Target Account Tier. Available values: tier_1, tier_2, tier_3.
  • hs_target_account_recommendation_snooze_time (string, optional): Target Account Recommendation Snooze Time.
  • hs_target_account_recommendation_state (string, optional): Target Account Recommendation State. Available values: DISMISSED, NONE, SNOOZED.
  • total_money_raised (string, optional): Total Money Raised.
  • twitterbio (string, optional): Twitter Bio.
  • twitterfollowers (number, optional): Twitter Followers.
  • twitterhandle (string, optional): Twitter Handle.
  • web_technologies (string, optional): Web Technologies used. Must be one of the predefined values.
  • website (string, optional): Website URL.
  • founded_year (string, optional): Year Founded.
Description: Create a new contact record in HubSpot.Parameters:
  • email (string, required): Email address of the contact.
  • firstname (string, optional): First Name.
  • lastname (string, optional): Last Name.
  • phone (string, optional): Phone Number.
  • hubspot_owner_id (string, optional): Contact owner.
  • lifecyclestage (string, optional): Lifecycle Stage. Available values: subscriber, lead, marketingqualifiedlead, salesqualifiedlead, opportunity, customer, evangelist, other.
  • hs_lead_status (string, optional): Lead Status. Available values: NEW, OPEN, IN_PROGRESS, OPEN_DEAL, UNQUALIFIED, ATTEMPTED_TO_CONTACT, CONNECTED, BAD_TIMING.
  • annualrevenue (string, optional): Annual Revenue.
  • hs_buying_role (string, optional): Buying Role.
  • cc_emails (string, optional): CC Emails.
  • ch_customer_id (string, optional): Chargify Customer ID.
  • ch_customer_reference (string, optional): Chargify Customer Reference.
  • chargify_sites (string, optional): Chargify Site(s).
  • city (string, optional): City.
  • hs_facebook_ad_clicked (boolean, optional): Clicked Facebook ad.
  • hs_linkedin_ad_clicked (string, optional): Clicked LinkedIn Ad.
  • hs_clicked_linkedin_ad (string, optional): Clicked on a LinkedIn Ad.
  • closedate (string, optional): Close Date.
  • company (string, optional): Company Name.
  • company_size (string, optional): Company size.
  • country (string, optional): Country/Region.
  • hs_country_region_code (string, optional): Country/Region Code.
  • date_of_birth (string, optional): Date of birth.
  • degree (string, optional): Degree.
  • hs_email_customer_quarantined_reason (string, optional): Email address quarantine reason.
  • hs_role (string, optional): Employment Role. Must be one of the predefined values.
  • hs_seniority (string, optional): Employment Seniority. Must be one of the predefined values.
  • hs_sub_role (string, optional): Employment Sub Role. Must be one of the predefined values.
  • hs_employment_change_detected_date (string, optional): Employment change detected date.
  • hs_enriched_email_bounce_detected (boolean, optional): Enriched Email Bounce Detected.
  • hs_facebookid (string, optional): Facebook ID.
  • hs_facebook_click_id (string, optional): Facebook click id.
  • fax (string, optional): Fax Number.
  • field_of_study (string, optional): Field of study.
  • followercount (number, optional): Follower Count.
  • gender (string, optional): Gender.
  • hs_google_click_id (string, optional): Google ad click id.
  • graduation_date (string, optional): Graduation date.
  • owneremail (string, optional): HubSpot Owner Email (legacy).
  • ownername (string, optional): HubSpot Owner Name (legacy).
  • industry (string, optional): Industry.
  • hs_inferred_language_codes (string, optional): Inferred Language Codes. Must be one of the predefined values.
  • jobtitle (string, optional): Job Title.
  • hs_job_change_detected_date (string, optional): Job change detected date.
  • job_function (string, optional): Job function.
  • hs_journey_stage (string, optional): Journey Stage. Must be one of the predefined values.
  • kloutscoregeneral (number, optional): Klout Score.
  • hs_last_metered_enrichment_timestamp (string, optional): Last Metered Enrichment Timestamp.
  • hs_latest_source (string, optional): Latest Traffic Source.
  • hs_latest_source_timestamp (string, optional): Latest Traffic Source Date.
  • hs_legal_basis (string, optional): Legal basis for processing contact’s data.
  • linkedinbio (string, optional): LinkedIn Bio.
  • linkedinconnections (number, optional): LinkedIn Connections.
  • hs_linkedin_url (string, optional): LinkedIn URL.
  • hs_linkedinid (string, optional): Linkedin ID.
  • hs_live_enrichment_deadline (string, optional): Live enrichment deadline.
  • marital_status (string, optional): Marital Status.
  • hs_content_membership_email (string, optional): Member email.
  • hs_content_membership_notes (string, optional): Membership Notes.
  • message (string, optional): Message.
  • military_status (string, optional): Military status.
  • mobilephone (string, optional): Mobile Phone Number.
  • numemployees (string, optional): Number of Employees.
  • hs_analytics_source (string, optional): Original Traffic Source.
  • photo (string, optional): Photo.
  • hs_pinned_engagement_id (number, optional): Pinned engagement ID.
  • zip (string, optional): Postal Code.
  • hs_language (string, optional): Preferred language. Must be one of the predefined values.
  • associatedcompanyid (number, optional): Primary Associated Company ID.
  • hs_email_optout_survey_reason (string, optional): Reason for opting out of email.
  • relationship_status (string, optional): Relationship Status.
  • hs_returning_to_office_detected_date (string, optional): Returning to office detected date.
  • salutation (string, optional): Salutation.
  • school (string, optional): School.
  • seniority (string, optional): Seniority.
  • hs_feedback_show_nps_web_survey (boolean, optional): Should be shown an NPS web survey.
  • start_date (string, optional): Start date.
  • state (string, optional): State/Region.
  • hs_state_code (string, optional): State/Region Code.
  • hs_content_membership_status (string, optional): Status.
  • address (string, optional): Street Address.
  • tax_exempt (string, optional): Tax Exempt.
  • hs_timezone (string, optional): Time Zone. Must be one of the predefined values.
  • twitterbio (string, optional): Twitter Bio.
  • hs_twitterid (string, optional): Twitter ID.
  • twitterprofilephoto (string, optional): Twitter Profile Photo.
  • twitterhandle (string, optional): Twitter Username.
  • vat_number (string, optional): VAT Number.
  • ch_verified (string, optional): Verified for ACH/eCheck Payments.
  • website (string, optional): Website URL.
  • hs_whatsapp_phone_number (string, optional): WhatsApp Phone Number.
  • work_email (string, optional): Work email.
  • hs_googleplusid (string, optional): googleplus ID.
Description: Create a new deal record in HubSpot.Parameters:
  • dealname (string, required): Name of the deal.
  • amount (number, optional): The value of the deal.
  • dealstage (string, optional): The pipeline stage of the deal.
  • pipeline (string, optional): The pipeline the deal belongs to.
  • closedate (string, optional): The date the deal is expected to close.
  • hubspot_owner_id (string, optional): The owner of the deal.
  • dealtype (string, optional): The type of deal. Available values: newbusiness, existingbusiness.
  • description (string, optional): A description of the deal.
  • hs_priority (string, optional): The priority of the deal. Available values: low, medium, high.
Description: Create a new engagement (e.g., note, email, call, meeting, task) in HubSpot.Parameters:
  • engagementType (string, required): The type of engagement. Available values: NOTE, EMAIL, CALL, MEETING, TASK.
  • hubspot_owner_id (string, optional): The user the activity is assigned to.
  • hs_timestamp (string, optional): The date and time of the activity.
  • hs_note_body (string, optional): The body of the note. (Used for NOTE)
  • hs_task_subject (string, optional): The title of the task. (Used for TASK)
  • hs_task_body (string, optional): The notes for the task. (Used for TASK)
  • hs_task_status (string, optional): The status of the task. (Used for TASK)
  • hs_meeting_title (string, optional): The title of the meeting. (Used for MEETING)
  • hs_meeting_body (string, optional): The description for the meeting. (Used for MEETING)
  • hs_meeting_start_time (string, optional): The start time of the meeting. (Used for MEETING)
  • hs_meeting_end_time (string, optional): The end time of the meeting. (Used for MEETING)
Description: Update an existing company record in HubSpot.Parameters:
  • recordId (string, required): The ID of the company to update.
  • name (string, optional): Name of the company.
  • domain (string, optional): Company Domain Name.
  • industry (string, optional): Industry.
  • phone (string, optional): Phone Number.
  • city (string, optional): City.
  • state (string, optional): State/Region.
  • zip (string, optional): Postal Code.
  • numberofemployees (number, optional): Number of Employees.
  • annualrevenue (number, optional): Annual Revenue.
  • description (string, optional): Description.
Description: Create a record for a specified object type in HubSpot.Parameters:
  • recordType (string, required): The object type ID of the custom object.
  • Additional parameters depend on the custom object’s schema.
Description: Update an existing contact record in HubSpot.Parameters:
  • recordId (string, required): The ID of the contact to update.
  • firstname (string, optional): First Name.
  • lastname (string, optional): Last Name.
  • email (string, optional): Email address.
  • phone (string, optional): Phone Number.
  • company (string, optional): Company Name.
  • jobtitle (string, optional): Job Title.
  • lifecyclestage (string, optional): Lifecycle Stage.
Description: Update an existing deal record in HubSpot.Parameters:
  • recordId (string, required): The ID of the deal to update.
  • dealname (string, optional): Name of the deal.
  • amount (number, optional): The value of the deal.
  • dealstage (string, optional): The pipeline stage of the deal.
  • pipeline (string, optional): The pipeline the deal belongs to.
  • closedate (string, optional): The date the deal is expected to close.
  • dealtype (string, optional): The type of deal.
Description: Update an existing engagement in HubSpot.Parameters:
  • recordId (string, required): The ID of the engagement to update.
  • hs_note_body (string, optional): The body of the note.
  • hs_task_subject (string, optional): The title of the task.
  • hs_task_body (string, optional): The notes for the task.
  • hs_task_status (string, optional): The status of the task.
Description: Update a record for a specified object type in HubSpot.Parameters:
  • recordId (string, required): The ID of the record to update.
  • recordType (string, required): The object type ID of the custom object.
  • Additional parameters depend on the custom object’s schema.
Description: Get a list of company records from HubSpot.Parameters:
  • paginationParameters (object, optional): Use pageCursor to fetch subsequent pages.
Description: Get a list of contact records from HubSpot.Parameters:
  • paginationParameters (object, optional): Use pageCursor to fetch subsequent pages.
Description: Get a list of deal records from HubSpot.Parameters:
  • paginationParameters (object, optional): Use pageCursor to fetch subsequent pages.
Description: Get a list of engagement records from HubSpot.Parameters:
  • objectName (string, required): The type of engagement to fetch (e.g., “notes”).
  • paginationParameters (object, optional): Use pageCursor to fetch subsequent pages.
Description: Get a list of records for any specified object type in HubSpot.Parameters:
  • recordType (string, required): The object type ID of the custom object.
  • paginationParameters (object, optional): Use pageCursor to fetch subsequent pages.
Description: Get a single company record by its ID.Parameters:
  • recordId (string, required): The ID of the company to retrieve.
Description: Get a single contact record by its ID.Parameters:
  • recordId (string, required): The ID of the contact to retrieve.
Description: Get a single deal record by its ID.Parameters:
  • recordId (string, required): The ID of the deal to retrieve.
Description: Get a single engagement record by its ID.Parameters:
  • recordId (string, required): The ID of the engagement to retrieve.
Description: Get a single record of any specified object type by its ID.Parameters:
  • recordType (string, required): The object type ID of the custom object.
  • recordId (string, required): The ID of the record to retrieve.
Description: Search for company records in HubSpot using a filter formula.Parameters:
  • filterFormula (object, optional): A filter in disjunctive normal form (OR of ANDs).
  • paginationParameters (object, optional): Use pageCursor to fetch subsequent pages.
Description: Search for contact records in HubSpot using a filter formula.Parameters:
  • filterFormula (object, optional): A filter in disjunctive normal form (OR of ANDs).
  • paginationParameters (object, optional): Use pageCursor to fetch subsequent pages.
Description: Search for deal records in HubSpot using a filter formula.Parameters:
  • filterFormula (object, optional): A filter in disjunctive normal form (OR of ANDs).
  • paginationParameters (object, optional): Use pageCursor to fetch subsequent pages.
Description: Search for engagement records in HubSpot using a filter formula.Parameters:
  • engagementFilterFormula (object, optional): A filter for engagements.
  • paginationParameters (object, optional): Use pageCursor to fetch subsequent pages.
Description: Search for records of any specified object type in HubSpot.Parameters:
  • recordType (string, required): The object type ID to search.
  • filterFormula (string, optional): The filter formula to apply.
  • paginationParameters (object, optional): Use pageCursor to fetch subsequent pages.
Description: Delete a company record by its ID.Parameters:
  • recordId (string, required): The ID of the company to delete.
Description: Delete a contact record by its ID.Parameters:
  • recordId (string, required): The ID of the contact to delete.
Description: Delete a deal record by its ID.Parameters:
  • recordId (string, required): The ID of the deal to delete.
Description: Delete an engagement record by its ID.Parameters:
  • recordId (string, required): The ID of the engagement to delete.
Description: Delete a record of any specified object type by its ID.Parameters:
  • recordType (string, required): The object type ID of the custom object.
  • recordId (string, required): The ID of the record to delete.
Description: Get contacts from a specific list by its ID.Parameters:
  • listId (string, required): The ID of the list to get contacts from.
  • paginationParameters (object, optional): Use pageCursor for subsequent pages.
Description: Get the expected schema for a given object type and operation.Parameters:
  • recordType (string, required): The object type ID (e.g., ‘companies’).
  • operation (string, required): The operation type (e.g., ‘CREATE_RECORD’).

Usage Examples

Basic HubSpot Agent Setup

from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools

# Get enterprise tools (HubSpot tools will be included)
enterprise_tools = CrewaiEnterpriseTools(
    enterprise_token="your_enterprise_token"
)

# Create an agent with HubSpot capabilities
hubspot_agent = Agent(
    role="CRM Manager",
    goal="Manage company and contact records in HubSpot",
    backstory="An AI assistant specialized in CRM management.",
    tools=[enterprise_tools]
)

# Task to create a new company
create_company_task = Task(
    description="Create a new company in HubSpot with name 'Innovate Corp' and domain 'innovatecorp.com'.",
    agent=hubspot_agent,
    expected_output="Company created successfully with confirmation"
)

# Run the task
crew = Crew(
    agents=[hubspot_agent],
    tasks=[create_company_task]
)

crew.kickoff()

Filtering Specific HubSpot Tools

from crewai_tools import CrewaiEnterpriseTools

# Get only the tool to create contacts
enterprise_tools = CrewaiEnterpriseTools(
    enterprise_token="your_enterprise_token",
    actions_list=["hubspot_create_record_contacts"]
)

contact_creator = Agent(
    role="Contact Creator",
    goal="Create new contacts in HubSpot",
    backstory="An AI assistant that focuses on creating new contact entries in the CRM.",
    tools=[enterprise_tools]
)

# Task to create a contact
create_contact = Task(
    description="Create a new contact for 'John Doe' with email 'john.doe@example.com'.",
    agent=contact_creator,
    expected_output="Contact created successfully in HubSpot."
)

crew = Crew(
    agents=[contact_creator],
    tasks=[create_contact]
)

crew.kickoff()

Contact Management

from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools

enterprise_tools = CrewaiEnterpriseTools(
    enterprise_token="your_enterprise_token"
)

crm_manager = Agent(
    role="CRM Manager",
    goal="Manage and organize HubSpot contacts efficiently.",
    backstory="An experienced CRM manager who maintains an organized contact database.",
    tools=[enterprise_tools]
)

# Task to manage contacts
contact_task = Task(
    description="Create a new contact for 'Jane Smith' at 'Global Tech Inc.' with email 'jane.smith@globaltech.com'.",
    agent=crm_manager,
    expected_output="Contact database updated with the new contact."
)

crew = Crew(
    agents=[crm_manager],
    tasks=[contact_task]
)

crew.kickoff()

Getting Help

Need Help?

Contact our support team for assistance with HubSpot integration setup or troubleshooting.
I