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'
endThe 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)
=> trueHere 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).submitThe 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 installThen, run
bundle exec rspec specto 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.