In a continuation of my earlier article, Adaptive Cards with Microsoft Teams with Examples, we continue with the details of how to create these Adaptive Cards authored with JSON templates. The templates can be used as-is, edited to suit your organization’s needs, or used as a launching point to customize your templates.
Samples and Templates of Adaptive Cards for Microsoft Teams
This is exciting as these select samples and templates are created and offered for Microsoft Teams to show what you can create. These can be copied, edited, and tweaked to create limitless scenarios.
Expense Report with Labels
Data JSON: { "code": "ER-13052", "message": "success", "created_by_name" : "Matt Hidinger", "created_date" : "2019-07-15T18:33:12+0800", "submitted_date": "2019-04-14T18:33:12+0800", "creater_email" : "[email protected]", "status" : "Pending", "status_url" : "https://adaptivecards.io/content/pending.png", "approver": "Thomas", "purpose" : "Trip to UAE", "approval_date" : "2019-07-15T22:33:12+0800", "approver" : "Thomas", "approver_email" : "[email protected]", "other_submitter" : "David", "other_submitter_email" : "[email protected]", "expenses": [ { "expense_id": "16367000000083065", "approver" : "Thomas", "date": "2017-02-21", "description": "Air Travel Expense", "created_by": "636965431200000000", "created_by_name": "PATRICIA", "employee_number": "E001", "currency_id": "16367000000000097", "currency_code": "USD", "paid_through_account_id": "16367000000036003", "paid_through_account_name": "Employee Reimbursements", "bcy_total": 13900.79, "bcy_subtotal": 13900.79, "total": 300, "total_without_tax": 300, "is_billable": true, "is_reimbursable": true, "reference_number": "DD145", "due_days": "Due in 15 days", "merchant_id": "16367000000074027", "merchant_name": "ABS Solutions", "status": "approved", "created_time": "2019-06-19T18:33:12+0800", "last_modified_time": "2017-02-21T18:42:46+0530", "receipt_name": "receipt1.jpg", "report_id": "16367000000083075", "mileage_type": "non_mileage", "report_name": "Purchase", "is_receipt_only": false, "distance": 0, "per_diem_rate": 0, "per_diem_days": 0, "per_diem_id": "", "per_diem_name": "", "expense_type": "non_mileage", "location": "Washington", "receipt_type": "jpg", "policy_violated": false, "comments_count": 0, "report_status": "submitted", "price_precision": 2, "mileage_rate": 0, "mileage_unit": "km", "receipt_status": "processed", "is_uncategorized": false, "is_expired": false, "gl_code": "LG001", "exchange_rate": 66.943366, "start_reading": "", "end_reading": "", "payment_mode": "Check", "customer_id": "27927000000075081", "customer_name": "ACME Corp.", "custom_fields": [ { "customfield_id": "16367000000277001", "label": "Other Name", "value": "Leg 1 on Tue, Jun 19th, 2019 at 6:00 AM." }, { "customfield_id": "16367000000277001", "label": "Other Name", "value": "Leg 2 on Tue, Jun 19th, 2019 at 7:15 PM." } ], "project_id": "27927000001243001", "project_name": "Coffee Research", "transaction_description": "", "tax_id": "16367000000086001", "tax_name": "Sales Tax", "tax_percentage": 2, "amount": 207.65, "is_inclusive_tax": false, "vehicle_type": "Bike", "vehicle_id": "17456000000078029", "fuel_type": "lpg", "engine_capacity_range": "between_1401cc_and_1600cc", "is_personal": false, "policy_id": "16367000000092011", "policy_name": "LIC", "documents": [ { "file_name": "receipt1.jpg", "file_size_formatted": "71.8 KB", "attachment_order": 1, "document_id": "16367000000083071" } ], "reimbursement_reference": "", "reimbursement_date": "", "reimbursement_paid_through_account_id": "", "reimbursement_paid_through_account_name": "", "reimbursement_currency_id": "", "reimbursement_currency_code": "" }, { "expense_id": "16367000000083065", "date": "2019-06-19", "description": "Auto Mobile Expense", "created_by": "636965431200000000", "created_by_name": "PATRICIA", "employee_number": "E001", "currency_id": "16367000000000097", "currency_code": "USD", "paid_through_account_id": "16367000000036003", "paid_through_account_name": "Employee Reimbursements", "bcy_total": 13900.79, "bcy_subtotal": 13900.79, "total": 100, "total_without_tax": 100, "is_billable": true, "is_reimbursable": true, "reference_number": "DD145", "due_days": "Due in 15 days", "merchant_id": "16367000000074027", "merchant_name": "ABS Solutions", "status": "submitted", "created_time": "2019-06-19T18:33:12+0800", "last_modified_time": "2017-02-21T18:42:46+0530", "receipt_name": "receipt1.jpg", "report_id": "16367000000083075", "mileage_type": "non_mileage", "report_name": "Purchase", "is_receipt_only": false, "distance": 0, "per_diem_rate": 0, "per_diem_days": 0, "per_diem_id": "", "per_diem_name": "", "expense_type": "non_mileage", "location": "Washington", "receipt_type": "jpg", "policy_violated": false, "comments_count": 0, "report_status": "submitted", "price_precision": 2, "mileage_rate": 0, "mileage_unit": "km", "receipt_status": "processed", "is_uncategorized": false, "is_expired": false, "gl_code": "LG001", "exchange_rate": 66.943366, "start_reading": "", "end_reading": "", "payment_mode": "Check", "customer_id": "27927000000075081", "customer_name": "ACME Corp.", "custom_fields": [ { "customfield_id": "16367000000277001", "label": "Other Name", "value": " Contoso Car Rentrals, Tues 6/19 at 7:00 AM" } ], "project_id": "27927000001243001", "project_name": "Coffee Research", "transaction_description": "", "tax_id": "16367000000086001", "tax_name": "Sales Tax", "tax_percentage": 2, "amount": 207.65, "is_inclusive_tax": false, "vehicle_type": "Bike", "vehicle_id": "17456000000078029", "fuel_type": "lpg", "engine_capacity_range": "between_1401cc_and_1600cc", "is_personal": false, "policy_id": "16367000000092011", "policy_name": "LIC", "documents": [ { "file_name": "receipt1.jpg", "file_size_formatted": "71.8 KB", "attachment_order": 1, "document_id": "16367000000083071" } ], "reimbursement_reference": "", "reimbursement_date": "", "reimbursement_paid_through_account_id": "", "reimbursement_paid_through_account_name": "", "reimbursement_currency_id": "", "reimbursement_currency_code": "" }, { "expense_id": "16367000000083065", "date": "2019-06-21", "description": "Excess Baggage Cost", "created_by": "636967159200000000", "created_by_name": "PATRICIA", "employee_number": "E001", "currency_id": "16367000000000097", "currency_code": "USD", "paid_through_account_id": "16367000000036003", "paid_through_account_name": "Employee Reimbursements", "bcy_total": 13900.79, "bcy_subtotal": 13900.79, "total": 50.38, "total_without_tax": 4.3, "is_billable": true, "is_reimbursable": false, "reference_number": "DD145", "due_days": "Due in 15 days", "merchant_id": "16367000000074027", "merchant_name": "ABS Solutions", "status": "submitted", "created_time": "2019-06-21T18:33:12+0800", "last_modified_time": "2017-02-21T18:42:46+0530", "receipt_name": "receipt1.jpg", "report_id": "16367000000083075", "mileage_type": "non_mileage", "report_name": "Purchase", "is_receipt_only": false, "distance": 0, "per_diem_rate": 0, "per_diem_days": 0, "per_diem_id": "", "per_diem_name": "", "expense_type": "non_mileage", "location": "Washington", "receipt_type": "jpg", "policy_violated": false, "comments_count": 0, "report_status": "submitted", "price_precision": 2, "mileage_rate": 0, "mileage_unit": "km", "receipt_status": "processed", "is_uncategorized": false, "is_expired": false, "gl_code": "LG001", "exchange_rate": 66.943366, "start_reading": "", "end_reading": "", "payment_mode": "Check", "customer_id": "27927000000075081", "customer_name": "ACME Corp.", "custom_fields": [ ], "project_id": "27927000001243001", "project_name": "Coffee Research", "transaction_description": "", "tax_id": "16367000000086001", "tax_name": "Sales Tax", "tax_percentage": 2, "amount": 207.65, "is_inclusive_tax": false, "vehicle_type": "Bike", "vehicle_id": "17456000000078029", "fuel_type": "lpg", "engine_capacity_range": "between_1401cc_and_1600cc", "is_personal": false, "policy_id": "16367000000092011", "policy_name": "LIC", "documents": [ { "file_name": "receipt1.jpg", "file_size_formatted": "71.8 KB", "attachment_order": 1, "document_id": "16367000000083071" } ], "reimbursement_reference": "", "reimbursement_date": "", "reimbursement_paid_through_account_id": "", "reimbursement_paid_through_account_name": "", "reimbursement_currency_id": "", "reimbursement_currency_code": "" } ] } Template JSON: { "type": "AdaptiveCard", "body": [ { "type": "Container", "style": "emphasis", "items": [ { "type": "ColumnSet", "columns": [ { "type": "Column", "items": [ { "type": "TextBlock", "size": "large", "weight": "bolder", "text": "**EXPENSE APPROVAL**", "style": "heading" } ], "width": "stretch" }, { "type": "Column", "items": [ { "type": "Image", "url": "${status_url}", "altText": "${status}", "height": "30px" } ], "width": "auto" } ] } ], "bleed": true }, { "type": "Container", "items": [ { "type": "ColumnSet", "columns": [ { "type": "Column", "items": [ { "type": "TextBlock", "size": "ExtraLarge", "text": "${purpose}", "wrap": true, "style": "heading" } ], "width": "stretch" }, { "type": "Column", "items": [ { "type": "ActionSet", "actions": [ { "type": "Action.OpenUrl", "title": "EXPORT AS PDF", "url": "https://adaptivecards.io" } ] } ], "width": "auto" } ] }, { "type": "TextBlock", "spacing": "small", "size": "small", "weight": "bolder", "text": "[${code}](https://adaptivecards.io)" }, { "type": "FactSet", "spacing": "large", "facts": [ { "title": "Submitted By", "value": "**${created_by_name}** ${creater_email}" }, { "title": "Duration", "value": "${formatTicks(min(select(expenses, x, int(x.created_by))), 'yyyy-MM-dd')} - ${formatTicks(max(select(expenses, x, int(x.created_by))), 'yyyy-MM-dd')}" }, { "title": "Submitted On", "value": "${formatDateTime(submitted_date, 'yyyy-MM-dd')}" }, { "title": "Reimbursable Amount", "value": "$${formatNumber(sum(select(expenses, x, if(x.is_reimbursable, x.total, 0))), 2)}" }, { "title": "Awaiting approval from", "value": "**${approver}** ${approver_email}" }, { "title": "Submitted to", "value": "**${other_submitter}** ${other_submitter_email}" } ] } ] }, { "type": "Container", "spacing": "large", "style": "emphasis", "items": [ { "type": "ColumnSet", "columns": [ { "type": "Column", "items": [ { "type": "TextBlock", "weight": "bolder", "text": "DATE" } ], "width": "auto" }, { "type": "Column", "spacing": "large", "items": [ { "type": "TextBlock", "weight": "bolder", "text": "CATEGORY" } ], "width": "stretch" }, { "type": "Column", "items": [ { "type": "TextBlock", "weight": "bolder", "text": "AMOUNT" } ], "width": "auto" } ] } ], "bleed": true }, { "$data": "${expenses}", "type": "Container", "items": [ { "type": "ColumnSet", "columns": [ { "type": "Column", "items": [ { "type": "TextBlock", "text": "${formatDateTime(created_time, 'MM-dd')}", "wrap": true } ], "width": "auto" }, { "type": "Column", "spacing": "medium", "items": [ { "type": "TextBlock", "text": "${description}", "wrap": true } ], "width": "stretch" }, { "type": "Column", "items": [ { "type": "TextBlock", "text": "$${formatNumber(total, 2)}", "wrap": true } ], "width": "auto" }, { "type": "Column", "spacing": "small", "selectAction": { "type": "Action.ToggleVisibility", "title": "expand", "targetElements": [ "cardContent${$index}", "chevronDown${$index}", "chevronUp${$index}" ] }, "verticalContentAlignment": "center", "items": [ { "type": "Image", "id": "chevronDown${$index}", "url": "https://adaptivecards.io/content/down.png", "width": "20px", "altText": "Details collapsed" }, { "type": "Image", "id": "chevronUp${$index}", "url": "https://adaptivecards.io/content/up.png", "width": "20px", "altText": "Details expanded", "isVisible": false } ], "width": "auto" } ] }, { "type": "Container", "id": "cardContent${$index}", "isVisible": false, "items": [ { "type": "Container", "items": [ { "$data": "${custom_fields}", "type": "TextBlock", "text": "* ${value}", "isSubtle": true, "wrap": true }, { "type": "Container", "items": [ { "type": "Input.Text", "id": "comment${$index}", "label": "Add your comment here" } ] } ] }, { "type": "Container", "items": [ { "type": "ColumnSet", "columns": [ { "type": "Column", "items": [ { "type": "ActionSet", "actions": [ { "type": "Action.Submit", "title": "Send", "data": { "id": "_qkQW8dJlUeLVi7ZMEzYVw", "action": "comment", "lineItem": 1 } } ] } ], "width": "auto" } ] } ] } ] } ] }, { "type": "ColumnSet", "spacing": "large", "separator": true, "columns": [ { "type": "Column", "items": [ { "type": "TextBlock", "horizontalAlignment": "right", "text": "Total Expense Amount \t", "wrap": true }, { "type": "TextBlock", "horizontalAlignment": "right", "text": "Non-reimbursable Amount", "wrap": true }, { "type": "TextBlock", "horizontalAlignment": "right", "text": "Advance Amount", "wrap": true } ], "width": "stretch" }, { "type": "Column", "items": [ { "type": "TextBlock", "text": "$${formatNumber(sum(select(expenses, x, x.total)), 2)}" }, { "type": "TextBlock", "text": "(-) $${formatNumber(sum(select(expenses, x, if(x.is_reimbursable, 0, x.total))), 2)} \t" }, { "type": "TextBlock", "text": "(-) 0.00 \t" } ], "width": "auto" }, { "type": "Column", "width": "auto" } ] }, { "type": "Container", "style": "emphasis", "items": [ { "type": "ColumnSet", "columns": [ { "type": "Column", "items": [ { "type": "TextBlock", "horizontalAlignment": "right", "text": "Amount to be Reimbursed", "wrap": true } ], "width": "stretch" }, { "type": "Column", "items": [ { "type": "TextBlock", "weight": "bolder", "text": "$${formatNumber(sum(select(expenses, x, if(x.is_reimbursable, x.total, 0))), 2)}" } ], "width": "auto" }, { "type": "Column", "width": "auto" } ] } ], "bleed": true }, { "type": "ColumnSet", "columns": [ { "type": "Column", "selectAction": { "type": "Action.ToggleVisibility", "targetElements": [ "cardContent4", "showHistory", "hideHistory" ] }, "verticalContentAlignment": "Center", "items": [ { "type": "TextBlock", "id": "showHistory", "horizontalAlignment": "right", "color": "accent", "text": "Show history", "wrap": true }, { "type": "TextBlock", "id": "hideHistory", "horizontalAlignment": "right", "color": "accent", "text": "Hide history", "wrap": true, "isVisible": false } ], "width": 1 } ] }, { "type": "Container", "id": "cardContent4", "isVisible": false, "items": [ { "type": "Container", "items": [ { "type": "TextBlock", "text": "* Expense submitted by **${created_by_name}** on {{DATE(${formatDateTime(created_date, 'yyyy-MM-ddTHH:mm:ssZ')}, SHORT)}}", "isSubtle": true, "wrap": true }, { "type": "TextBlock", "text": "* Expense ${expenses[0].status} by **${expenses[0].approver}** on {{DATE(${formatDateTime(approval_date, 'yyyy-MM-ddTHH:mm:ssZ')}, SHORT)}}", "isSubtle": true, "wrap": true } ] } ] }, { "type": "Container", "items": [ { "type": "ActionSet", "actions": [ { "type": "Action.Submit", "title": "Approve", "style": "positive", "data": { "id": "_qkQW8dJlUeLVi7ZMEzYVw", "action": "approve" } }, { "type": "Action.ShowCard", "title": "Reject", "style": "destructive", "card": { "type": "AdaptiveCard", "body": [ { "type": "Input.Text", "id": "RejectCommentID", "label": "Please specify an appropriate reason for rejection", "isMultiline": true, "isRequired": true, "errorMessage": "A reason for rejection is necessary" } ], "actions": [ { "type": "Action.Submit", "title": "Send", "data": { "id": "_qkQW8dJlUeLVi7ZMEzYVw", "action": "reject" } } ], "$schema": "http://adaptivecards.io/schemas/adaptive-card.json" } } ] } ] } ], "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", "version": "1.2", "fallbackText": "This card requires Adaptive Cards v1.2 support to be rendered properly." }
Show Card Wizard
Data JSON: { "formTitle": "Please provide the following information:", "nameCard": { "title": "Name", "idPrefix": "name", "fields": [ { "label": "First Name", "id": "FirstName", "required": true }, { "label": "Middle Name", "id": "MiddleName", "required": false }, { "label": "Last Name", "id": "LastName", "required": true } ] }, "addressCard": { "title": "Address", "idPrefix": "address", "textInputFields": [ { "label": "Address line 1", "id": "addressLine1", "required": true }, { "label": "Address line 2", "id": "addressLine2", "required": false } ], "columnFields": [ { "label": "City", "id": "city", "required": false }, { "label": "State", "id": "state", "required": false }, { "label": "Zip Code", "id": "zip", "required": true } ] }, "contactCard": { "title": "Phone/Email", "idPrefix": "contact", "fields": [ { "label": "Mobile number", "id": "mobileNumber", "required": false }, { "label": "Home number", "id": "homeNumber", "required": false }, { "label": "Email address", "id": "emailAddress", "required": true } ] } } Template JSON: { "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", "type": "AdaptiveCard", "version": "1.0", "body": [ { "type": "TextBlock", "text": "${formTitle}", "wrap": true } ], "actions": [ { "type": "Action.ShowCard", "title": "${nameCard.title}", "card": { "type": "AdaptiveCard", "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", "body": [ { "type": "Container", "id": "${nameCard.idPrefix}Properties", "items": [ { "$data": "${nameCard.fields}", "type": "Input.Text", "label": "${label}", "id": "${id}", "isRequired": "${required}", "errorMessage": "'${label}' is required" } ] } ], "actions": [ { "type": "Action.ShowCard", "title": "${addressCard.title}", "card": { "type": "AdaptiveCard", "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", "body": [ { "type": "Container", "id": "${addressCard.idPrefix}Properties", "items": [ { "$data": "${addressCard.textInputFields}", "type": "Input.Text", "label": "${label}", "id": "${id}", "isRequired": "${required}", "errorMessage": "'${label} is required" }, { "type": "ColumnSet", "columns": [ { "$data": "${addressCard.columnFields}", "type": "Column", "width": "stretch", "items": [ { "type": "Input.Text", "label": "${label}", "id": "${id}", "isRequired": "${required}", "errorMessage": "'${label}' is required" } ] } ] } ] } ], "actions": [ { "type": "Action.ShowCard", "title": "${contactCard.title}", "card": { "type": "AdaptiveCard", "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", "body": [ { "$data": "${contactCard.fields}", "type": "Input.Text", "label": "${label}", "id": "${id}", "isRequired": "${required}", "errorMessage": "'${label}' is required" } ], "actions": [ { "type": "Action.Submit", "title": "Submit" } ] } } ] } } ] } } ] }
JSON Scripts and Templates: Microsoft.com