I have a flow that uses an approval block, sends the approval request to different many users and waits until they all have checked it. But I need to check in any time who has answered and who has not. Is there a way to do that? Maybe an API or even a way outside MS Flow?
Related
I'm creating a bot in botcomposer(v1.4.0) which involves an http request. What I'm looking for is an asynchronous call so that I don't have to wait for the response from the http call, while the user can continue to chat with the bot.
Also, I want to prompt the user when the response comes.
Thank you in advance.
Proactive messages would be the best option. Unfortunately, they are not implemented in Composer at this time. You might be able to create a custom action and accomplish your goal (my assumption without knowing more of what your requirements are).
I’m having a problem with a bot that has to reply automatically when a message is posted in a Teams channel. When it is activated, it also responds to messages that were posted prior to its activation. How can i avoid this ?
Thanks for your help
I'm assuming you're running a flow with a Microsoft Teams trigger.
I can see two possible causes of this.
This first is that Microsoft's Team trigger doesn't work very well and is firing for previous posts while the Flow is disabled. Very plausible
If that's the case you need to make a Condition to check if the post date is greater than the current time minus say 10 minutes, AddMins(UtcNow(),-10). If successful, continue, if not, terminate.
Hopefully, you can pull the post date directly from the Teams trigger, but if not you'll have to use a Teams action to look up information about the given post id provided by the trigger.
The second possibility is that you're not taking the ID from the trigger which will tell you what post to respond to, and accidentally doing some kind of reply to all posts in the channel.
Scenario:
My application dynamically generates a contract (PDF) on-the-fly through the use of some base language and replacement variables from user data. That pdf is then sent to the DocuSign REST API with the list of recipients/signers/tabs which handles delivery of the agreement to the various parties.
Issue:
At times during the negotiation process for the contract, users may need to make edits to the agreement. My application has a correction interface where they're able to regenerate the original PDF and then have an action that allows them to update the existing envelope.
To perform these corrections, I'm currently using the following API Calls for a single correction:
getEnvelope to retrieve the current status and make sure the envelope hasn't been voided, completed, etc.
deleteEnvelopeDocuments to remove all existing documents.
updateDocuments to send the base64 encoded document to the envelope.
updateEnvelope to send the recipients back to the envelope because they're deleted as a result to #2.
These 4 API calls feel like a mistake to me because if any one of them fails for whatever reason, the entire process fails. In addition, the processing time for the back-and-forth is also a consideration even though I could delegate that to a queue'd background process.
My Question (I know, finally)
Is there a better way to do what I'm trying to do? Perhaps I can skip #1 and just catch an exception thrown by DocuSign when attempting to update a completed / voided envelope. What I'm really interested in knowing is if I can consolidate #2-4 into a single call somehow. The API doesn't feel super clear on corrections and also doesn't send any notifications when an envelope is updated via the API.
I think this can be done with two API calls instead of four.
You can make a PUT call to replace a document
PUT .../envelopes/<envID>/documents/1
This API replaces an existing document, there's no need to do 2+3 separately.
This would eliminate the need to do #4 as well, because the tabs (not recipients as you stated) are not going to be removed if you don't delete the document but simply update it.
I have a route to accept request from user and return data to the user. There are the step
User send request to my app
Read data from database
Update my database
Return data to user
I want step 3 and step 4 above happen at the same time so the user will not be waiting for the update operation. How can I make this?
The thing you might be looking is called background task and luckily, FastAPI has an awesome documentation about how to implement that. Here you have!
But be careful, your title may be implying something different from your real question. The async/await will keep you away from blocking your server, but with background tasks you can make your user wait less time for their response. Saying that, if you're going to send a response without knowing anything else, remember to send a 202 status code (Accepted).
Is there a way we can trigger AWS Lambda function from Microsoft Teams. what I wanted to achieve is that stakeholders be able to approve merge requests from MS teams or maybe give an approval on Production rollout.
Is this connection possible at all?
Please help
Yes, this is definitely possible, but there are a bunch of things you need to do to get a full working solution, so it's hard to give it all in one answer here. Here are some guidelines to get started though:
You need a something for the user to actually "Approve", and way to do this. A common approach is to send a "Card" to Teams, which can have an "Approve" button. There are a few different kinds of cards, and different ways to send them to Teams, including a Bot, Flow/PowerAutomate (which uses it's own Bot behind the scenes) and incoming Webhooks.
When the user clicks the "Approve" (or "Reject") buttons, you need a way to handle the action (to link the button click to AWS).
If you've built Bots before, this might be the easiest option. If you want to use Flow/Power Automate, that's another option (see here for more information about important changes due "this quarter" - I'm not sure if they're released yet). If you've not used any of these, your best bet might be:
Configure an Incoming Webhook
Send a Connector Card with a "Post" button
Set the POST url to be your AWS Lambda