A Hubspot Client. Currently we only support the following CRM Parts:
- Contact
- Company
- Properties
Also:
- Communication Preferences
Add this line to your application's Gemfile:
gem 'hubspot_client'
And then execute:
$ bundle
Or install it yourself as:
$ gem install hubspot_client
You need to configure the hubspot_client
first:
HubspotClient.configure do |config|
config.access_token = 'PRIVATE_APP_ACCESS_TOKEN'
end
The following models exists and should be mainly used. However you can also use the clients itself, if you like, but you need to understand the code by yourself.
You can find by hubspot_id
or email
HubspotClient::Model::Contact.find(hubspot_id: '1337')
=> #<HubspotClient::Model::Contact createdate="2022-11-11T11:57:15.901Z", email="vader@example.com", firstname="Darth", hs_object_id="1337", lastmodifieddate="2022-11-17T13:31:00.526Z", lastname="Vader">
HubspotClient::Model::Contact.find(email: 'vader@example.com')
=> #<HubspotClient::Model::Contact createdate="2022-11-11T11:57:15.901Z", email="vader@example.com", firstname="Darth", hs_object_id="1337", lastmodifieddate="2022-11-17T13:31:00.526Z", lastname="Vader">
hubspot_contact = HubspotClient::Model::Contact.find(hubspot_id: '1337')
=> #<HubspotClient::Model::Contact createdate="2022-11-11T11:57:15.901Z", email="vader@example.com", firstname="Darth", hs_object_id="1337", lastmodifieddate="2022-11-17T13:31:00.526Z", lastname="Vader">
hubspot_contact.associate_primary_company(6582942445)
=> true
Here you can find the Hubspot-Companies-API-Documentation
Find a company be hubspot_id
HubspotClient::Model::Company.find(hubspot_id: '6614067165')
=> #<HubspotClient::Model::Company address="Todesternstraße 1", city="Todestern", createdate="2022-11-28T13:45:40.989Z", hs_lastmodifieddate="2022-11-28T13:45:44.933Z", hs_object_id="6614067165", name="Todesternverwaltungs GmbH", phone="0152123456789", zip="1337">
example_properties = { name: 'Todesternverwaltungs GmbH',
phone: '0152123456789',
address: 'Todesternstraße 1',
city: 'Todestern',
zip: '1337' }
HubspotClient::Model::Company.create(example_properties)
=> #<HubspotClient::Model::Company address="Todesternstraße 1", city="Todestern", createdate="2022-11-28T13:45:40.989Z", hs_lastmodifieddate="2022-11-28T13:45:40.989Z", hs_object_id="6614067165", hs_pipeline="companies-lifecycle-pipeline", lifecyclestage="lead", name="Todesternverwaltungs GmbH", phone="0152123456789", zip="1337">
hubspot_company = HubspotClient::Model::Company.find(hubspot_id: '6614067165')
# You can change the attribute like so:
hubspot_company.name = 'Blubber'
# or like so:
hubspot_company.assign_attributes(name: 'Blubber')
# then you can run:
hubspot_company.update
# you can also do it directly in the update method:
hubspot_company.update({ name: 'Blubber' })
Clients are normally under the hood of models. However you can use them directly if you like.
forms/submit_form_v3_authentication
With the HubspotClient::Client::Form.all_forms
method you can get all forms from your hubspot instance.
Checkout which fields you need.
HubspotClient::Client::Submission.new(portal_id: '1337', form_guid: '1337', fields: fields).submit
The fields
parameter is a list of objects with the following properties:
[
{
"objectTypeId": '0-1', # Optional
"name": 'email',
"value": 'darth_garllon@example.com'
}
]
the context
parameter is a hash of the following attributes:
{
"pageUri": 'https://example.com',
"pageName": 'Example page'
}
The leagalConsentOptions
parameter is a hash of the following attributes:
{
consent: {
consentToProcess: true,
text: "I agree to allow #{company_name} to store and process my personal data.",
communications: []
}
}
After checking out the repo, run
bundle install
Then, run
bundle exec rspec spec
to run the tests.
You can also run bin/console
for an interactive prompt that will allow you to experiment.
You need a .env
file looks like, if you want to test it against your hubspot instance:
ACCESS_TOKEN=<youur_private_app_access_token>
Bug reports and pull requests are welcome on GitHub at https://github.com/farbfox/hubspot_client. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
The gem is available as open source under the terms of the MIT License.
Everyone interacting in the HubspotClient project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.