jpetrucciani / hubspot3

python3.6+ hubspot client based on hapipy, but modified to use the newer endpoints and non-legacy python
MIT License
146 stars 72 forks source link

Question: Transactional Email API #87

Closed DragosChirila closed 4 years ago

DragosChirila commented 4 years ago

Hi there,

We have to integrate hubspot in our project and I found your package, great stuff!

However, are you planning to provide an integration for https://developers.hubspot.com/docs/methods/email/transactional_email/single-send-overview as well?

Thanks :)

DragosChirila commented 4 years ago

I wrote a client for this API:

from hubspot3.base import BaseClient
from hubspot3.utils import get_log

SINGLE_TRANSACTIONAL_EMAIL_API_VERSION = '1'

class SingleTransactionalEmailClient(BaseClient):
    """
        https://developers.hubspot.com/docs/methods/email/transactional_email/single-send-overview
    """
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.log = get_log("hubspot3.single_transactional_email")

    def _get_path(self, subpath):
        return 'email/public/v{}/singleEmail/{}'.format(
            SINGLE_TRANSACTIONAL_EMAIL_API_VERSION, subpath
        )

    def send_single_email(self, **options):
        """
        """
        return self._call('send', method='POST', **options)

Usage from inside a Django project:

hubspot_client = SingleTransactionalEmailClient(
    api_key=settings.HUBSPOT_API_KEY
)

# TEST-1-Registration | Parent
payload = {
    'emailId': ...,
    'message': {
        'to': '...'
    },
    'contactProperties': [
        {
            'name': 'firstname',
            'value': 'First Name'
        }
    ],
    'customProperties': [
        {
            'name': 'my_custom_property',
            'value': 'custom_value'
        }
    ]
}
hubspot_client.send_single_email(data=payload)

Regards, Dragos