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": "TextBlock", "text": "@{if(contains(triggerBody()?['sections'][0]?['facts'][0]?['value'], 'WANTS TO BE CONTACTED'), 'โ ๏ธ CLIENT WANTS TO BE CONTACTED โ ๏ธ', '')}", "weight": "Bolder", "size": "Medium", "color": "Attention", "horizontalAlignment": "Center", "wrap": true, "isVisible": "@{contains(triggerBody()?['sections'][0]?['facts'][0]?['value'], 'WANTS TO BE CONTACTED')}" }, { "type": "FactSet", "facts": [ { "title": "Ticket Number:", "value": "@{if(contains(triggerBody()?['sections'][0]?['facts'][0]?['value'], 'WANTS TO BE CONTACTED'), triggerBody()?['sections'][0]?['facts'][1]?['value'], triggerBody()?['sections'][0]?['facts'][0]?['value'])}" }, { "title": "Company:", "value": "@{if(contains(triggerBody()?['sections'][0]?['facts'][0]?['value'], 'WANTS TO BE CONTACTED'), triggerBody()?['sections'][0]?['facts'][2]?['value'], triggerBody()?['sections'][0]?['facts'][1]?['value'])}" }, { "title": "Submitted By:", "value": "@{if(contains(triggerBody()?['sections'][0]?['facts'][0]?['value'], 'WANTS TO BE CONTACTED'), triggerBody()?['sections'][0]?['facts'][3]?['value'], triggerBody()?['sections'][0]?['facts'][2]?['value'])}" }, { "title": "Email:", "value": "@{if(contains(triggerBody()?['sections'][0]?['facts'][0]?['value'], 'WANTS TO BE CONTACTED'), triggerBody()?['sections'][0]?['facts'][4]?['value'], triggerBody()?['sections'][0]?['facts'][3]?['value'])}" }, { "title": "Rating:", "value": "@{if(equals(triggerBody()?['sections'][0]?['activityTitle'], 'Positive rating'), '๐ Positive', if(equals(triggerBody()?['sections'][0]?['activityTitle'], 'Neutral rating'), '๐ Neutral', if(equals(triggerBody()?['sections'][0]?['activityTitle'], 'Negative rating'), 'โน๏ธ Negative', triggerBody()?['sections'][0]?['activityTitle'])))}" } ] }, { "type": "TextBlock", "text": "Feedback:", "weight": "Bolder", "spacing": "Medium" }, { "type": "TextBlock", "text": "@{coalesce(triggerBody()?['sections'][0]?['text'], 'No additional comments')}", "wrap": true }, { "type": "TextBlock", "text": "Timestamp:", "weight": "Bolder", "spacing": "Medium" }, { "type": "TextBlock", "text": "@{triggerBody()?['sections'][0]?['activitySubtitle']}", "wrap": true } ], "actions": [ { "type": "Action.OpenUrl", "title": "View Feedback in Portal", "url": "@{triggerBody()?['potentialAction'][0]?['targets'][0]?['uri']}" } ] } |
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": "TextBlock", "text": "@{if(contains(triggerBody()?['sections'][0]?['facts'][0]?['value'], 'WANTS TO BE CONTACTED'), 'โ ๏ธ CLIENT WANTS TO BE CONTACTED โ ๏ธ', '')}", "weight": "Bolder", "size": "Medium", "color": "Attention", "horizontalAlignment": "Center", "wrap": true, "isVisible": "@{contains(triggerBody()?['sections'][0]?['facts'][0]?['value'], 'WANTS TO BE CONTACTED')}" }, { "type": "FactSet", "facts": [ { "title": "Ticket Number:", "value": "@{if(contains(triggerBody()?['sections'][0]?['facts'][0]?['value'], 'WANTS TO BE CONTACTED'), triggerBody()?['sections'][0]?['facts'][1]?['value'], triggerBody()?['sections'][0]?['facts'][0]?['value'])}" }, { "title": "Company:", "value": "@{if(contains(triggerBody()?['sections'][0]?['facts'][0]?['value'], 'WANTS TO BE CONTACTED'), triggerBody()?['sections'][0]?['facts'][2]?['value'], triggerBody()?['sections'][0]?['facts'][1]?['value'])}" }, { "title": "Submitted By:", "value": "@{if(contains(triggerBody()?['sections'][0]?['facts'][0]?['value'], 'WANTS TO BE CONTACTED'), triggerBody()?['sections'][0]?['facts'][3]?['value'], triggerBody()?['sections'][0]?['facts'][2]?['value'])}" }, { "title": "Email:", "value": "@{if(contains(triggerBody()?['sections'][0]?['facts'][0]?['value'], 'WANTS TO BE CONTACTED'), triggerBody()?['sections'][0]?['facts'][4]?['value'], triggerBody()?['sections'][0]?['facts'][3]?['value'])}" }, { "title": "Rating:", "value": "@{if(equals(triggerBody()?['sections'][0]?['activityTitle'], 'Positive rating'), '๐ Positive', if(equals(triggerBody()?['sections'][0]?['activityTitle'], 'Neutral rating'), '๐ Neutral', if(equals(triggerBody()?['sections'][0]?['activityTitle'], 'Negative rating'), 'โน๏ธ Negative', triggerBody()?['sections'][0]?['activityTitle'])))}" } ] }, { "type": "TextBlock", "text": "Feedback:", "weight": "Bolder", "spacing": "Medium" }, { "type": "TextBlock", "text": "@{coalesce(triggerBody()?['sections'][0]?['text'], 'No additional comments')}", "wrap": true }, { "type": "TextBlock", "text": "Timestamp:", "weight": "Bolder", "spacing": "Medium" }, { "type": "TextBlock", "text": "@{triggerBody()?['sections'][0]?['activitySubtitle']}", "wrap": true } ], "actions": [ { "type": "Action.OpenUrl", "title": "View Feedback in Portal", "url": "@{triggerBody()?['potentialAction'][0]?['targets'][0]?['uri']}" } ] } |
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)
{ |
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 JSON 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
Article is closed for comments.