Hubspot plugins
- Bhooshan Mogal
- Artur Lytvynenko
Introduction
HubSpot is a developer and marketer of software products for inbound marketing and sales. HubSpot is an inbound marketing and sales platform that helps companies attract visitors, convert leads, and close customers. Its products and services aim to provide tools for social media marketing, content management, web analytics, CRM and search engine optimization. They expose an API that allows you to build an integration to their CRM software. The plugins will allow users to pull data from HubSpot CRM, and use it in CDAP pipelines to enrich and synthesize with other data.
User Storie(s)
- As a pipeline developer, I would like to pull data from an object in HubSpot in a streaming pipeline, so that I can transform, enrich and synthesize it in a data pipeline.
- As a pipeline developer, I would like to post data to an object in HubSpot in a batch or streaming pipeline, so that I can update HubSpot with my enriched data.
- As a pipeline developer, I would like to pull data from an object in HubSpot in a batch pipeline, so that I can transform, enrich and synthesize it in a data pipeline.
- As a pipeline developer, for both batch and streaming sources, I would like the schema to be auto-populated based on the selected objects.
- As a pipeline developer, for all interactions with HubSpot, I would like HubSpot's API limits to be handled by the framework, so that I do not have to worry about them. (https://developers.hubspot.com/apps/api_guidelines)
Plugin Type
- Batch Source
- Batch Sink
- Real-time Source
- Real-time Sink
- Action
- Post-Run Action
- Aggregate
- Join
- Spark Model
- Spark Compute
Configurables
Streaming Source
User Facing Name | Type | Description | Optional? | Default | Constraints |
---|---|---|---|---|---|
App Id | String | OAuth2 App ID | No | ||
API Key | String | OAuth2 API Key | No | ||
Object(s) to pull | select | Select from Contact Lists, Contacts, Email Events, Email Subscription, Recent Campaigns, Analytics, Companies, Deals, Deal Pipelines, Marketing Email, Products, Tickets | Yes | Analytics | |
Pull frequency | select | 15 min, 30 min, 1 hour, 4 hour, 8 hours | Yes | 30 min | |
Number of API calls per day | number | The number of API calls to make per day, to avoid hitting HubSpot's rate limits | Yes | 10000 |
Batch sink
User Facing Name | Type | Description | Optional? | Default | Constraints |
---|---|---|---|---|---|
App Id | String | OAuth2 App ID | No | ||
API Key | String | OAuth2 API Key | No | ||
Object to post to | select | Select from Contact Lists, Contacts, Email Events, Email Subscription, Recent Campaigns, Analytics, Companies, Deals, Deal Pipelines, Marketing Email, Products, Tickets | No | ||
Number of API calls per day | number | The number of API calls to make per day, to avoid hitting HubSpot's rate limits | Yes | 10000 |
Batch Source
User Facing Name | Type | Description | Optional? | Default | Constraints |
---|---|---|---|---|---|
API Key | String | OAuth2 API Key | No | ||
Object(s) to pull | multi-select | Select from Contact Lists, Contacts, Email Events, Email Subscription, Recent Campaigns, Analytics, Companies, Deals, Deal Pipelines, Marketing Email, Products, Tickets | Yes | Analytics | |
Report Type | select | Analytics report target to get data for. | Yes | totals | |
Report Content | select | The analytics report type of content that you want to get data for. Must be one of:
| Yes | ||
Report Category | select | The analytics report category used to break down the analytics data. Must be one of:
| Yes | ||
Report Type of object: | select | The analytics report type of object that you want the analytics data for. Must be one of:
| Yes | ||
Time Period | select | The time period used to group the data. Must be one of:
NOTE: When using daily, weekly, or monthly for the time_period, you must include at least one filter | Yes | total | |
Start Date | String | Start date for the report data. YYYYMMDD format. | Yes | ||
End Date | String | End date for the report data. YYYYMMDD format. | Yes | ||
Filters | dsv | Filter the analytics report data to include only the specified breakdowns. | Yes |
Design / Implementation Tips
- Tip #1
- Tip #2
Design
Approach(s)
Properties
Security
Limitation(s)
Future Work
- Some future work – HYDRATOR-99999
- Another future work – HYDRATOR-99999
Test Case(s)
- Test case #1
- Test case #2
Sample Pipeline
Please attach one or more sample pipeline(s) and associated data.
Pipeline #1
Pipeline #2
Table of Contents
Checklist
- User stories documented
- User stories reviewed
- Design documented
- Design reviewed
- Feature merged
- Examples and guides
- Integration tests
- Documentation for feature
- Short video demonstrating the feature