← Build log · Part 5 of 8

Sample data you can load, update and verify

A seeded generator, batch loading, a guarded mass update and a verify script that says PASS or FAIL.

HubSpotTesting

Empty systems teach nothing, so we generated data: 15 companies, 50 contacts, 20 deals and 25 tickets. The generator is seeded, so it produces the same records every run.

Tagging makes cleanup safe

Every record carries sample_data_batch = demo-1. The loader can reset by deleting only that batch, and the mass-update script refuses to touch anything outside it unless you pass --all on purpose.

Batch calls and associations

The batch endpoints take 100 records at a time, with associations inline. They use numeric type IDs, for example 1 for contact to company, 5 for deal to company and 16 for ticket to contact.

The search index lags

Right after a load, a search returned 6, then 0, then 18 records, never the expected number. Writes are visible to the object APIs immediately, but the search index catches up a moment later. The verify script now polls until the count settles instead of trusting the first answer, and it respects the search rate limit of roughly four requests a second.

Verify, don't assume

The verify script runs 11 read-only checks across properties, pipeline stages, forms and data, and prints PASS or FAIL for each. It is the answer to "how do I confirm it is working".

Kulkarni Inc.
Notes from building the Kulkarni Inc. stack. See all