Hi @LeoLiao Thanks for reaching out!
This certainly sounds doable ![]()
You can trigger a workflow from your app using a webhook. Then, you can add a response to your workflow, that sends the modified data back to the app.
Here's an example of a query calling a workflow from an app and passing data from a file input component to the workflow:

For the download path, you can trigger a query in the app to download as an Excel file
For the email path, you can connect an email resource (we recently shipped Retool Email) and send the data to the user's email
For the insert path, you can upload the data to Retool db via an insert query