gatsby-source-hubspot
This source plugin for Gatsby will make posts from a Hubspot blog available in GraphQL queries.
Installation
# Install the plugin
yarn add gatsby-source-hubspot
For Gatsby version 1 support use version 1.0.0 of this package
yarn add gatsby-source-hubspot@1.0.0
Configuration
In gatsby-config.js
:
module.exports = {
plugins: [
{
resolve: 'gatsby-source-hubspot',
options: {
key: 'YOUR_HUBSPOT_API_KEY'
}
}
]
};
NOTE: More information on Hubspot authentication.
Filter Options
The filter
options for this plugin mirror the “Optional query string filters & options”. Please review those docs for more details.
Parameter name | Description |
---|---|
limit |
The number of items to return. Defaults to 20 |
offset |
The offset set to start returning rows from. Defaults to 0. |
archived |
Returns the posts that match the boolean lookup (e.g. archived=false returns all posts currently not archived). |
blog_author_id |
Returns the posts that match a particular blog author ID value. |
campaign |
Returns the posts that match the campaign guid. The campaign guid can be found in the campaign dashboard URL (e.g. https://app.hubspot.com/campaigns/:portal_id/#/details/:campaign_guid). |
content_group_id |
Returns the posts that match the blog guid. The blog guid can be found in the blog dashboard URL (e.g. https://app.hubspot.com/blog/:portal_id/dashboard/:blog_guid). |
created |
Returns the posts that match a particular created time value. Supports exact, range, gt, gte, lt, lte lookups. |
deleted_at |
Returns the posts that match a particular deleted time value. Supports exact, gt, gte, lt, lte lookups. |
name |
Returns the posts that match the name value. Supports exact, contains, icontains, ne lookups. |
slug |
Returns the posts that match a particular slug value. |
updated |
Returns the posts that match a particular updated time. Supports exact, range, gt, gte, lt, lte lookups. |
state |
DRAFT, PUBLISHED, or SCHEDULED. |
order_by |
Return the posts ordered by a particular field value. Blog posts can currently only be sorted by publish_date. Use a negative value to sort in descending order (e.g. order_by=-publish_date). |
Example Filter Option Configuration
module.exports = {
plugins: [
{
resolve: 'gatsby-source-hubspot',
options: {
key: process.env.HUBSPOT_API_KEY,
filters: {
limit: 10,
state: 'PUBLISHED',
offset: 2
}
}
}
]
};
Querying Hubspot Posts
Once the plugin is configured, two new queries are available in GraphQL: allHubspotPost
and HubspotPost
.
Here’s an example query to load 10 posts:
query PostQuery {
allHubspotPost(limit: 10) {
edges {
node {
id,
title,
body,
state,
author {
id
avatar,
name,
full_name,
bio,
email,
facebook,
google_plus,
linkedin,
twitter,
twitter_username,
website,
slug
},
feature_image {
url,
alt_text
},
meta {
title,
description
},
summary,
published,
updated,
created,
slug
}
}
}
}
See the Hubspot COS Blog Post API docs or the GraphiQL UI for info on all returned fields.