Skip to main content
This walkthrough is for developers, and it runs in a terminal. If you are here to understand what Boom does rather than to integrate it, read start here instead.
Set your key and base URL:
1

Upsert a person

Returns { "externalId": "user_123", "created": true }.Send a reachable channel, email and/or phoneNumber (E.164 format), as top-level fields. They populate the person’s typed contact columns, which is what lets event-triggered journeys reach them. Anything else goes in attributes.
2

Make sure the object type exists

List your types, and create one if you need to. Objects can only be upserted against a type that already exists.
3

Upsert a custom object

4

Register a relationship type

Returns the type with a relationshipTypeId (e.g. rt_2hk9). Keep it for the next step. See relationship types for the full field and cardinality catalog.
5

Link them

Returns { "created": true, "relationshipTypeId": "rt_2hk9" }. The relationshipTypeId is required: it fixes the role and object type, so you don’t repeat them here.
6

Record an event

Log a behavioral event for the person you created:
Read it back with GET /events/evt_1, or list a person’s events with GET /events?personExternalId=user_123. See Events for the full model.
Run any upsert twice: the first returns created: true, the second created: false. That’s the upsert working as intended.
Already have this data in a PostgreSQL or MySQL database? Skip the API and connect your database. Boom syncs people, objects, and relationships from a read-only query on a schedule.

Authentication

Create an API key and authenticate your requests.

Events

Record behavioral events and read them back.

Relationship types

Register the link shapes you need before creating relationships.

Connect your database

Sync the same data from your database instead of pushing it.