- In this application we send marketing emails.
- All emails are arranged in a Sequence with a name and certain Steps.
- Each Step has a name, position and a delay before the previous step.
- For simplicity:
- We don't really send emails
- We don't have bodies of emails in steps
- We have a simple authentication scheme with Account ID sent in a header. (Imagine some API Gateway verifying tokens and passing account ID in a header)
At the moment we have only built-in Sequences. Only admins can edit the Steps. Users want to customize them, but it most likely result in chaos, so we decide to introduce a "Sequence Cloning" feature.
When cloning a Sequence with all its Steps, a user should be able to change its name and the names of any Steps, but not delays or their order in the Sequence. The cloned Sequence becomes associated with their account. When listing Sequences they now should receive all built-in Sequences and the clones they made, but not Sequence clones made by others.