Help creating an ERROR scenario without an Error. Just undesired outcome

I have a seq that starts with an instant slack message that looks like this:

123445556,200

Broken down, the number to the left of comma are the epoch/round number (sequential identification numbers). Right of the comma is the seconds until the round begins. Both items are used later in the seq.

However, every couple hours the timing will get off. To prevent this I force the seq through a filter which does an http lookup and compares it to the epoch. Only a match can proceed.

Here is an example of a failed message:

kickoff message: 40044,300
Lookup: Most recent epoch was 40043
Filter: Does 40043 = 40044 ? No. Stop seq

In this case, the timing got off and the solution is to wait 1 minute and send the 40044,300 message once again. Since the epoch will have advanced to 40044, the filter will pass.

I would like to be able to create a branch - maybe with a router or error module that would create a delay and then retry the seq with the original message. But while this is easy enough to accomplish it’s also almost impossible to avoid setting up infinite loops should a message be more seriously off in timing or even just contain nonsense text - which does happen from time to time.

Since this situation doesn’t really qualify as an error (I’m murky here on what exactly is an error but I gather it’s a 400 or 500 error or other failed status from a module itself - not the result of a filter) its seems like I can’t take advantage of error handling’s “attempt x time” features, which seems required.

I appreciate your suggestions / insight.

Ryan

Maybe I just needed to process by writing it out here. Here is a solution that should work in most cases.

I added a route in case of failure. Added delay. Google sheet lookup for exact kickoff message. Added a filter step to prevent future steps if message found. Added a Google Sheets step to log the message. Added a slack step to fire the message and restart the seq.

Please share if you have a better / different suggestion.

Ryan

Actually still seeking some type of solution to enable a seq to pause at some point and retry a module then continue to the end, if possible. I appreciate your help.

Break you workflow down and use a database like airtable to process the waits and scenario retriggers after it meets the time delay. then trigger a webhook to restart the scenario

2 Likes

@James_CatalysisGroup do you have a suggestion for time waits? I’m really needing a module “pause seq until 1 pm” like zapier. But I’ve been stuck trying to calculate waiting periods in seconds following an event. It’s imperfect and frustrating.

Specifically, my code needs to run every 5 minutes, after a variable waiting period of 10-20 seconds. Additionally, there can be outages resulting in a restart time completely arbitrary. 5 minutes prior I know the next start time. That’s as good as it gets.

Thanks,
Ryan