The goal was simple: learn how far code-driven development in HubSpot can go. The first surprise was a wall. Custom objects, the natural way to model your own data, are an Enterprise feature, and our portal is on Free.
What is available on Free
The CRM itself is generous. Contacts, companies, deals and tickets are all there, and each accepts custom properties, so most of what a custom object would hold can live on a standard object with a few extra fields.
What is not
- Workflows (automation) and granular user permissions.
- "View as" for testing what a restricted user can see.
- The knowledge base.
- Marketing email and campaign APIs, as we found later.
The decision
We kept the plan and changed the question. Instead of "which features can we get", it became "which parts of a real setup can we make repeatable". Properties, ticket stages, forms, sample data and the website all turned out to be scriptable on Free, and every one of them became a script in a git repository with a commit message saying why it changed.
The rest of this series follows that history in order.