I’m nervous about testing new stories in case they trigger something real, like sending a Slack message to a channel or making a change in a production system. Is there a safe way to test stories or individual actions without the risk of live side effects? What’s the standard approach people use?
Great instinct! Tines is built for exactly this, so you’ve got a few safe options!
TLDR of the most common approaches:
- Test individual actions with sample data as you build.
- Record one real run so you’ve got realistic test data.
- Mock anything with live side effects.
- Re-run the saved test in the sandbox and check the diff.
Here’s the longer breakdown:
Test single actions with sample data. If you just want to check one action’s logic, you don’t need to run the whole story. Click the action → Test tab → run it against sample data. You can use real events it’s already received (Inbound Events tab) or paste your own payload (Editor tab). Great for sanity-checking formulas and field references without sending anything anywhere.
Save a run and replay it in a sandbox. For full end-to-end testing:
- On your trigger action (webhook or receive email), go to the Test tab and hit Record. The next input gets saved.
- Later, replay it with Run test.
The important bit: this replays in a sandbox. Payloads get built so you can inspect them, but requests don’t actually go out for anything you’ve mocked (more on that next). Bonus, saved runs aren’t wiped by your event retention, and you get up to 20 per action.
Mock the risky actions. This is the part that solves your actual worry. When replaying a saved run, you can mock the actions that touch the outside world (Slack, HTTP requests, record changes, etc.):
- On the saved run → Edit saved story run → View run and manage mocks.
- Toggle Use as mock payload on anything you don’t want to actually fire.
Use drafts as a buffer. If you’ve got change control on in your Tines tenant, your edits sit in a draft until you publish. So you can build and test away without touching what’s live.
Here are a couple of links to the relevant docs if you want to go deeper: