hi, Iโm struggling with finding a workaround for a limitation explained at: Bots: The Essentials | AppSheet Help Center
saying:
โData change actions that are invoked by bots do not trigger other AppSheet bots. For example, if a client device performs an add, update, or delete that triggers a bot, and that bot invokes a data-change action, that data change action will not invoke any bots.โ
In short I have a situation where:
Right now I cannot find a workaround allowing me to do point 3. job. Scheduling is not an option, because action from point 3 should happen several times per day. I was thinking about an external system like Zapier or MS Flow calling an action on Order, but thatโs also not a good option due to timing limitations - I need this action to happen as soon as possible (in seconds) after data change in action 2 happens.
Can anyone please support how this could be achieved?
Regards,
Jarek
What activity changes the status of the Order? User change? AppSheet Automation?
If itโs something within AppSheet, then you can mostly likely simply tack on an additional action that calls the API - no bot required.
Sorry, I just re-read your post. Itโs Automation that is changing the status.
In Step 2, create a Grouped Action. First action in group changes Order Status. Second action calls the REST API.
If you also allow for users to change Order status manually, then you can attach the second action to the Form Saved behavior so that the REST API is also called in this scenario - of course, if necessary!
Would this feature help you out ?
I updated the documentation as well.
@Dan_Bahir and @WillowMobileSystems more clarifications from my side:
step 2. is a bit complicated since I use the following approach to update Order (parent) update based on Destinations (child objects), take a look:
After creating an Order (described in step 1 of my previous post) we have, the following situation:
Order #1 - NotStarted
User can manage Destinations statuses, any of such updates should trigger Orderโs update.
User firstly need to start Destination, then finish it. This is done using two actions - โStartโ and โStopโ that are visible on Destination Details card. When user click on โStartโ we should have the following situation:
Order #1 - InProgress
Above update of Order status is done in few steps:
Bot triggered when a Destination record is updated and the following condition is met:
[_THISROW_BEFORE].[Status]<> [_THISROW_AFTER].[Status]
This bot triggers a process โRun a data actionโ โ โUpdate Order Status - trigger when Destinations statuses changeโ:
mentioned action is set to โRun action on rowsโ which are referenced by LIST([Order]) in referenced action โUpdate Order Status to Completedโ that runs some logic to set appropriate status. (two remarks here - donโt be mislead by action naming โ itโs updating Order to an appropriate state, not only โCompletedโ , also Order = Job on my screenshot)
What Iโm trying to achieve?
Any update of Order status should trigger a webhook to external app.
What stage am I?
I have created another bot that is triggered when an Order record is updated and the following condition is met (example for InProgress state):
AND( [_THISROW_BEFORE].[Status]<> [_THISROW_AFTER].[Status], [_THISROW_AFTER].[Status]=โInProgressโ)
It turns out that bot is not being triggered because data change is caused by above described flow.
=====================
@WillowMobileSystems Iโm still trying to use your suggestion, but actually Iโm still facing the same issue that my final bot that should call REST API to external app is not being triggered
User | Count |
---|---|
35 | |
30 | |
30 | |
20 | |
18 |