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".