November 11, 2019


Cameron Walker @cameron8

For my day job, I was tasked with building a Salesforce app. At the time, I had zero experience with Salesforce. After a month or so of building the app, I realized that I would eventually need sample data to test and demo the app.

For those unfamiliar with Salesforce, you can't just cut and paste data into salesforce. Programmatically entering data also isn't very easy because there is no way to perform SQL (or SOQL) insert statements. The other difficulty is that Salesforce hinges on the fact that you have related records. So, you also have to insert data in the correct order and properly link them.

Obviously, I didn't want to spend tens of hours manually entering and perfecting the data, so I started to look for solutions:

(0) Use a sandbox of your current Salesforce org.

  • You need a Salesforce org first, and your Salesforce org may not have the data you need.

(1) Use the sample data Salesforce gives you by default.

  • There isn't a lot of sample data.
  • The data doesn't include custom fields or custom objects.
  • The data may not represent what you want to display.

(2) Use Populate, a free AppExchange app.

  • The app only adds certain objects (four, to be exact).
  • The app only populates certain fields.
  • No custom objects or fields.
  • No controlling what the data looks like

(3) Use a mock data generator external to Salesforce (Mockaroo, After generating the data, you must upload the data to Salesforce one object at a time. If you want linked objects, you have to download the records after you upload them to retrieve IDs. Then you paste those IDs into the next object's data and upload. If you didn't understand any of that, just know IT'S A MESSY PROCESS. And this is the standard process. The good part is that this method is the only way to get data for custom objects and fields.

  • Lots of steps. Confusing. And if you mess up, you have to delete all those records (harder than it should be) and do it all again.
  • Knowledge of a lot of different tools required.
  • Requires quite a bit of technical Salesforce knowledge to execute because you need to know the API names of each field.

After researching all the options, I was surprised that there wasn't an easier way to do this. Even though I was new to Salesforce, I knew it was possible. So I started building!

I needed to solve for the following:

  • An intuitive solution with a modern UI.
  • No programming or database knowledge needed.
  • Extremely customizable data -- custom objects, custom fields, control over how the data looks and is distributed.
  • Related records. This is a huge one! I needed a tool in which I could set up two, three, or even four objects at once and have them each be linked to each other -- parent to child to grandchild to great grandchild.
Loading comments...
Today's Top Milestones
  • MVP Launch
    The road was long and bumpy, but we learned a lot from it. After a couple of months of working day and night, we finally finished the first MVP of wha
  • Public launch
    On June 1st we will finally launch publically and start our marketing offensive to acquire new customers. We will only serve the Luxembourgish market