arcade-mcp/toolkits/hubspot/arcade_hubspot/properties.py
Renato Byrro de227c5f51
Hubspot toolkit (#363)
Reviewer:

1. DM me to get a client ID/secret for the Hubspot app and login
credentials for a sample Hubspot account
2. For now, you'll need to run the engine on the branch
`nate/token-introspection` for the auth flow to work with Hubspot
3. Add the following to `auth.providers` in your engine yaml:

```yaml
- id: arcade-hubspot
  description: 'Hubspot provider'
  enabled: true
  type: oauth2
  provider_id: hubspot
  client_id: ${env:HUBSPOT_CLIENT_ID}
  client_secret: ${env:HUBSPOT_CLIENT_SECRET}
```
2025-04-22 17:43:15 -03:00

127 lines
3 KiB
Python

from arcade_hubspot.enums import HubspotObject
HUBSPOT_OBJECT_PROPERTIES = {
HubspotObject.COMPANY: [
"type",
"name",
"about_us",
"address",
"city",
"state",
"zip",
"country",
"annualrevenue",
"hs_annual_revenue_currency_code",
"industry",
"phone",
"website",
"domain",
"numberofemployees",
"hs_lead_status",
"lifecyclestage",
"linkedin_company_page",
"twitterhandle",
],
HubspotObject.CONTACT: [
"salutation",
"email",
"work_email",
"hs_additional_emails",
"mobilephone",
"phone",
"firstname",
"lastname",
"lifecyclestage",
"annualrevenue",
"address",
"date_of_birth",
"degree",
"gender",
"buying_role",
"hs_language",
"hs_lead_status",
"hs_timezone",
"hubspot_owner_id",
"hubspot_owner_name",
"job_function",
"jobtitle",
"seniority",
"industry",
"twitterhandle",
],
HubspotObject.CALL: [
"hs_body_preview",
"hs_call_direction",
"hs_call_status",
"hs_call_summary",
"hs_call_title",
"hs_createdate",
"hubspot_owner_id",
"hs_call_disposition",
"hs_timestamp",
],
HubspotObject.DEAL: [
"dealname",
"dealstage",
"dealtype",
"closedate",
"closed_lost_reason",
"closed_won_reason",
"hs_is_closed_won",
"hs_is_closed_lost",
"hs_closed_amount",
"pipeline",
"hubspot_owner_id",
"description",
"hs_deal_score",
"amount",
"hs_forecast_probability",
"hs_forecast_amount",
],
HubspotObject.EMAIL: [
"hs_object_id",
"hs_body_preview",
"hs_email_sender_raw",
"hs_email_from_raw",
"hs_email_to_raw",
"hs_email_bcc_raw",
"hs_email_cc_raw",
"hs_email_subject",
"hs_email_status",
"hs_timestamp",
"hubspot_owner_id",
"hs_email_associated_contact_id",
],
HubspotObject.MEETING: [
"hs_object_id",
"hs_meeting_title",
"hs_body_preview",
"hs_meeting_location",
"hs_meeting_outcome",
"hubspot_owner_id",
"hs_meeting_start_time",
"hs_meeting_end_time",
],
HubspotObject.NOTE: [
"hs_object_id",
"hs_body_preview",
"hs_timestamp",
"hubspot_owner_id",
],
HubspotObject.TASK: [
"hs_object_id",
"hs_body_preview",
"hs_timestamp",
"hubspot_owner_id",
"hs_associated_contact_labels",
"hs_task_is_overdue",
"hs_task_priority",
"hs_task_status",
"hs_task_subject",
"hs_task_type",
],
}
def get_object_properties(object_type: HubspotObject) -> list[str]:
return HUBSPOT_OBJECT_PROPERTIES[object_type]