To send Teams Notifications when a Ticket or Feedback is submitted, you can use a Power Automate Workflow to show an Adaptive Card that displays the Ticket Information to a specific Team and Channel.
Note: For Workflows to work with Teams, you'll need a Premium Power Automate License.
Creating the Power Automate Workflow
-
Login to Power Automate and select Create
- Search for post a card and select the template Post to a channel when a webhook request is received
- Click Continue and then Create
-
Note: You may be prompted to select the Team & Channel you want the Card to be directed to at the Continue prompt
- Click Edit to edit the workflow
- Select the action Select each adaptive card
-
Click the 3 dots on the pop-out and select Delete
- Click OK at Delete workflow graph
- Select + to insert a new action
- Search for post a card and select Post a card in a chat or channel
- Set the Post As option to Flow bot, the Post In option to Channel
- Set the Team and Channel you want to post the card to and paste the Adaptive Card JSON example from below into the appropriate field
JSON Schema for Ticket Feedback (ConnectWise Manage, Kaseya BMS, Syncro, Halo PSA)
{ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", "type": "AdaptiveCard", "version": "1.4", "body": [ { "type": "TextBlock", "text": "📝 Client Feedback 📝", "weight": "Bolder", "size": "Large", "color": "Attention", "horizontalAlignment": "Center", "wrap": true }, { "type": "FactSet", "facts": [ { "title": "Ticket Number:", "value": "@{triggerBody()['Ticket']['TicketString']}" }, { "title": "Subject:", "value": "@{triggerBody()['Ticket']['TicketSubject']}" }, { "title": "Rating:", "value": "@{if(equals(triggerBody()['Feedback']['FeedbackRating'], 5), '⭐⭐⭐⭐⭐', if(equals(triggerBody()['Feedback']['FeedbackRating'], 4), '⭐⭐⭐⭐', if(equals(triggerBody()['Feedback']['FeedbackRating'], 3), '⭐⭐⭐', if(equals(triggerBody()['Feedback']['FeedbackRating'], 2), '⭐⭐', if(equals(triggerBody()['Feedback']['FeedbackRating'], 1), '⭐', 'No Rating')))))}" }, { "title": "Follow Up:", "value": "@{if(equals(triggerBody()['Feedback']['FeedbackWantsFollowUp'], true), 'Yes', 'No')}" } ] }, { "type": "TextBlock", "text": "Feedback", "weight": "Bolder", "spacing": "Medium" }, { "type": "TextBlock", "text": "@{coalesce(triggerBody()['Feedback']['FeedbackComment'], 'No additional comments')}", "wrap": true }, { "type": "TextBlock", "text": "Submitted By", "weight": "Bolder", "size": "Medium", "spacing": "Medium" }, { "type": "FactSet", "facts": [ { "title": "Company:", "value": "@{triggerBody()['Company']['CompanyName']}" }, { "title": "User:", "value": "@{triggerBody()['User']['UserFirstName']}" }, { "title": "User Email:", "value": "@{triggerBody()['User']['UserEmail']}" } ] } ] } |
JSON Schema for Ticket Feedback (Autotask PSA)
{ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", "type": "AdaptiveCard", "version": "1.4", "body": [ { "type": "TextBlock", "text": "📝 Client Feedback 📝", "weight": "Bolder", "size": "Large", "color": "Attention", "horizontalAlignment": "Center", "wrap": true }, { "type": "FactSet", "facts": [ { "title": "Ticket Number:", "value": "@{triggerBody()?['Ticket']?['TicketString']}" // Dynamic Ticket # }, { "title": "Company:", "value": "@{triggerBody()?['Company']?['CompanyName']}" // Dynamic Company Name }, { "title": "Submitted By:", "value": "@{triggerBody()?['User']?['UserFirstName']} @{triggerBody()?['User']?['UserLastName']}" // Dynamic User Name }, { "title": "Email:", "value": "@{triggerBody()?['User']?['UserEmail']}" // Dynamic Email }, { "title": "Rating:", "value": "@{if(equals(triggerBody()?['Feedback']?['FeedbackRating'], 1), '😀 Positive', if(equals(triggerBody()?['Feedback']?['FeedbackRating'], 0), '😐 Neutral', '☹️ Negative'))}" // Maps Feedback Rating } ] }, { "type": "TextBlock", "text": "Feedback:", "weight": "Bolder", "spacing": "Medium" }, { "type": "TextBlock", "text": "@{triggerBody()?['Feedback']?['FeedbackComment']}", // Dynamic Feedback Text "wrap": true }, { "type": "TextBlock", "text": "Timestamp:", "weight": "Bolder", "spacing": "Medium" }, { "type": "TextBlock", "text": "@{utcNow()}", // Dynamic current timestamp "wrap": true } ], "actions": [ { "type": "Action.OpenUrl", "title": "View Feedback", "url": "@{triggerBody()?['uri']}" // Dynamic URL from webhook body } ] } |
JSON Schema for Ticket Notifications (ConnectWise Manage, Kaseya BMS, Syncro, Halo PSA)
{ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", "type": "AdaptiveCard", "version": "1.4", "body": [ { "type": "TextBlock", "text": "📝 New Ticket Submission 📝", "weight": "Bolder", "size": "Large", "color": "Attention", "horizontalAlignment": "Center", "wrap": true }, { "type": "FactSet", "facts": [ { "title": "Ticket Number:", "value": "" }, { "title": "Subject:", "value": "" }, { "title": "Description:", "value": "" }, { "title": "Submitted By:", "value": " " }, { "title": "Company:", "value": "" }, { "title": "Role:", "value": "" }, { "title": "Email:", "value": "" } ] } ] } |
JSON Schema for Ticket Notifications (Autotask PSA)
{ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", "type": "AdaptiveCard", "version": "1.4", "body": [ { "type": "TextBlock", "text": "📝 New Ticket Submission 📝", "weight": "Bolder", "size": "Large", "color": "Attention", "horizontalAlignment": "Center", "wrap": true }, { "type": "FactSet", "facts": [ { "title": "Ticket Number:", "value": "" // Changed to TicketString }, { "title": "Subject:", "value": "" }, { "title": "Description:", "value": "" }, { "title": "Submitted By:", "value": " " }, { "title": "Company:", "value": "" }, { "title": "Role:", "value": "" }, { "title": "Email:", "value": "" } ] }, { "type": "Action.OpenUrl", "title": "Open in Portal", "url": "@{triggerBody()?['uri']}" // Dynamic Portal URL } ] } |
13. Don't forget to Save your workflow
14. Select the action When a Teams webhook request is received and copy the HTTP URL
Note: The HTTP URL is the webhook you will use in CloudRadial. See below for where to add the webhook.
Adding the Webhook in CloudRadial
In the Ticket Areas:
- Edit or create a new form (Problem Reports or Service Requests)
- Select the Routing tab
- Paste the URL in the Teams Webhook URL field
- Select Submit
In the Feedback Area:
- Go to, Partner > Feedback
- Select Settings > Edit at the top right of the page
- Paste the URL in the Teams Webhook URL field
- Select Submit
Comments
0 comments
Please sign in to leave a comment.