Short answer
Programmable emails use HubL to render CRM data in marketing emails. Marketing Hub Professional can read standard objects such as contacts, companies and products; Enterprise adds HubDB tables and custom objects. The more CRM functions an email uses, the fewer recipients it can go to: 1 function allows 500,000 recipients, 5 functions (the maximum) allow 100,000.
1. HubSpot's product example
{% set product = crm_object("product", 2444498793, "name,description,price") %}
Name: {{ product.name }}
Description: {{ product.description }}
Price: {{ product.price }}
This is the crm_object example from HubSpot's developer docs. The docs also note programmable emails using CRM functions cannot be A/B tested and send more slowly. A coded email template can opt in with isEnabledForEmailV3Rendering: true.
2. Recipient limits
- 1 CRM function: 500,000 recipients.
- 2: 250,000. 3: 165,000. 4: 125,000.
- 5 (maximum): 100,000.
3. Related
Simple tokens: personalization token defaults. AI rewriting instead of code: nurture agent.