Schedule an API workflow on a list at dynamic times

I’m trying to set up a workflow to “Schedule API Workflow on a List” - in this case transferring a list of old Stripe subscriptions to new Stripe subscriptions because Stripe doesn’t allow you to change the price of a Plan (odd, but whatever).

Everything’s been set up and looks great with one exception. Because these subscriptions end at different times, for a seamless customer transition, the workflow needs to run at each subscription’s end time rather than at one time for all subscriptions (if we did that, they’d all be charged the new price today).

Here’s the current setup:

What I’m trying to do essentially is change “Current date/time” to “This Usercredit’s EndDate”, but that doesn’t seem to be an option. I can use that reference in a custom workflow, but I can’t schedule a custom workflow on a list.

Any ideas on how this can be done? I must be missing something really simple, but I can’t seem to crack what it is.

Can you do it by having a recursive routine running at regular intervals and then just run the update on the list immediately using conditions where enddate < current date and user hasn’t yet been transferred.