API Limits within Automations / Execute Script (AKA Enterprise Readiness of Tape)

I’m not sure if this is a bug or not, so I thought I’d just post it here instead as a starting point.

We have built a pretty extensive time management system in Tape and it’s working awesome. Every user gets a time sheet, a time card for every day within that 14 day period, and then they log time entries for what they’re working again, and with the power of Tape’s calculation field, everything is rolled up into nice neat little summaries.

One of the main features of this system is that we’re using record permissions all the way. Essentially, NOBODY has access to these three apps. Instead, when a time sheet is created, we share it with that user, as well as all time cards and all time entries once they’ve been created, so the user will have perfect views in these three apps of only THEIR records. Again, all working great.

We were just testing it out amongst one or two employees and we basically launched it last week. This means we have about 15 time sheets on the go right now which equates to about 210 time cards. Our workflow process is to use a single relationship field to select the employees, create a time sheet for each one, fire additional workflows to create a set of time cards, and use the bulk API permissions tool to set all the permissions of every new item.

However, I just noticed a problem. On our second run of timesheet/time card creation, we hit API limit errors. They’re based on the use of the bulk permissions tool so the work is being done within an Execute Script function. I’m not sure if this is because I’m setting an API key for a specific user (which seems to be a requirement to make this API call work) and therefore overwriting the normal API routines that might take place.

There is almost never a situation inside PWA where you hit rate limits. You get 5M actions per month (just like Tape) and as long as you don’t go absolutely super crazy, I’ve never seen a rate limit problem ever. I’ve done 10K imports of new items, workflows take forever to run but they eventually run and never produce rate limit errors. I wanted to make a recommendation for Tape to consider removing all rate limits (or making them astronomically high) from the Automation tool and from the use of the API SDK inside an Execute Script function. If Tape is going to be an enterprise level application, it needs the ability to do more than this. I’m only creating 200 items and hitting rate limits already? How is the system possibly going to function when it’s 100 employees, 100 time sheets and 1400 time cards a week? It would be incredibly complicated to try and parse this out in smaller batches and it should not be necessary.

Maybe it’s just the SDK that’s the problem? I’ve done some pretty extensive operations in Tape and I have never run into rate limit issues like this so I’m just trying to think around the problem to try and find the best solution.

Thanks!

3 Likes

I wanted to give this another bump. We are still experiencing this problem.

@Leo @Tim we have built a pretty robust time tracking system in Tape. Basically, our own version of Toggl. Every two weeks, we create a pay period which creates timesheets for all employees and then creates 14 time cards for those employees. Each of the timesheets and timecards are shared with the employee because they should not have access to anything except what’s theirs.

Right now, on the day, we’re creating timesheets for about 16 employees, which leads to 224 time cards. We expect this to grow over time. However, when this workflow runs, inevitably I’m running into API rate limit errors when trying to use the permissions API to give the employee access.

I don’t think what I’m asking for here is unreasonable. I still don’t understand why any access to the Tape API in an Execute Script function would be producing API errors. No doubt this is happening because I’m using my own API key but I HAVE to do it this way in order to get the endpoint to work.

What can I do here to improve this? You’ve already upgraded my API key. Perhaps you should just remove all API limits on this permissions endpoint? Or perhaps finally add a permissions action in the Automation tool that would work without the need to use Execute Script?

This is really important. This comes down to whether or not Tape is enterprise ready, and considering what we’re currently building, we really need to know this now, conclusively.

4 Likes

Thanks for the bump @andrew.cranston - and fully understood.

Indeed, you need to use those user API keys when hitting the respective permissions API endpoint inside workflow execute script actions currently. We will enable workflows to be able to use it in the future, which will make that obsolete.

For now, we have significantly reduced the API credits consumed by that endpoint - the change has gone live today and should greatly reduce the chances of any rate limit hit. Could you monitor on your end and check whether this resolves the issue?

On another note: Is the same API key used for other activity, that could also count into the rate limit? Just to make sure this is not caused by another concurrent usage of the same key.

Thanks in advance & also for your patience
Tim

3 Likes

Hi Tim,

That sounds AMAZING and I will definitely monitor going forward. I am indeed using the same key for both this workflow and my Supabase integration, so perhaps I should separate them. I’ll use another API key for the permissions pieces in the hopes that the lowered credit consumption will fix the problem overall.

Thank you again for a quick turnaround on this!

2 Likes