Hubspot Single Send API SDK for use with Ruby on Rails
Wraps the HubSpot Single Send API https://developers.hubspot.com/docs/methods/email/transactional_email.
Documentation for the Single Send API can be found here: https://developers.hubspot.com/docs/methods/email/transactional_email/single-send-overview
Setup
gem install hubspot-mailer
Or with bundler,
gem "hubspot-mailer"
Authentication with an API key
Before using the library, you must initialize it with your HubSpot API key. If you're using Rails, put this code in an initializer:
Hubspot.configure(hapikey: "YOUR_API_KEY")
If you have a HubSpot account, you can get your api key by logging in and visiting this url: https://app.hubspot.com/keys/get
Usage
The usage is the same as for ActionMailer with that difference there is no way to add attachments and a set of additional params.
class ApplicationMailer < Hubspot::Mailer
default from: "info@example.com"
def test_mail
mail(
to: "john.doe@example.com",
subject: "Test Email",
email_id: 123,
send_id: SecureRandom.hex(8)
contact_properties: { first_name: "John", last_name: "Doe" },
custom_properties: { property: "Value" }
)
end
end
Properties
email_id
The content ID for the transactional email, which can be found in Email Tool UI.
send_id
The ID of a particular send. No more than one email with a given sendId will be send per portal, so including a sendId is a good way to prevent duplicate email sends.
contact_properties
Each property will get set on the contact record and will be visible in the template under {{ contact.NAME }}.
custom_properties
Each property will be visible in the template under {{ custom.NAME }}.
Testing
Add this line to config/environments/test.rb
:
Hubspot::Mailer.delivery_method = :test
Now you can use the same ActionMailer::Base.deliveries
to read sent emails in your tests.