Hello Community.
I have been using Softr for years now and like most of you who are in the same shoes, have seen the good, the bad and the ugly…
Softr has a number of strengths and a number of drawbacks, like any other tool in this category.
For the drawbacks, many have a work-around. Some require a JS code injection here and there and Softr support is wonderful when it comes to helping out with those little code snippets.
Last year Softr introduced a “Call API” action. This was great, but it had a fundamental flaw. That is, when one utilizes the “Call API” action to call a third party tool like Make or n8n, for the purpose of making complicated data manipulations beyond what the native block’s CRUD actions offer, the changed data DOES NOT get reflected in the block’s data upon the automation’s completion. To see the changed data the user needs to either manually refresh the app’s page or a JS script needs to handle an automatic delayed page or block refresh.
Neither one of these two work-arounds are perfect. The first one is just bad. No serious modern application on the web would ever require a user to manually refresh the page after clicking a button that is supposed to change some data. The second work-around is not great either. A delay is usually an arbitrary number of seconds, estimating how long the backend automation may take before succeeding. But what if it takes longer than expected? What if it needs to do some delayed retries? There is just no guarantee that by the time the delayed refresh executes, the backend automation will have completed. Besides, that’s another thing that modern serious web apps don’t do - de-coupled delayed refreshes of pages after an on-page action by the user. So, both of these work-arounds violate the modern web app design and user experience.
The problem is that there is no true “signaling” back from the 3rd party API call response back to Softr, which other tools like Bubble or WeWeb might use. The API response is not waited for, not interpreted and not binded to the block’s data items.
I realize that the response’s binding to the block’s data items might be a bit too complex for a tool like Softr, but at least awaiting the API’s response would be great, ensuring that the page refreshes ONLY AFTER the backend operation has completed.
I use Make, but I know that both Make and n8n provide webhook response and structured output modules that can be the last modules in the workflow that can provide “signaling” back to the calling process. So, from Softr’s perspective, all it needs to do is await the response from those modules before completing the block’s action operation.
I honestly don’t know how many of Softr’s users have been struggling with this flaw. I certainly consider it “fundamental”. I’d like to think that it must be a considerable hindrance to those building anything beyond the most simple applications.
I hope this is something that Softr will address soon in their platform updates.
Thanks