Samples and Templates

These samples are just a teaser of the type of cards you can create. Go ahead and tweak them to make any scenario possible!

Important note about accessibility: In version 1.3 of the schema we introduced a label property on Inputs to improve accessibility. If the Host app you are targetting supports v1.3 you should use label intead of a TextBlock as seen in some samples below. Once most Host apps have updated to the latest version we will update the samples accordingly.

Choose sample:

Templating enables the separation of data from the layout in an Adaptive Card. It helps design a card once, and then populate it with real data at runtime. Note: The binding syntax changed in May 2020. Get started with templating

Simple fallback sample

JSON
{
	"type": "AdaptiveCard",
	"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
	"version": "1.2",
	"body": [
		{
			"type": "TextBlock",
			"text": "Fallback test:"
		},
		{
			"type": "Steve Holt!",
			"egg": "her?",
			"fallback": "drop"
		},
		{
			"type": "Graph",
			"someProperty": "foo",
			"fallback": {
				"type": "TextBlock",
				"text": "No graph support. Guess we'll just use this textblock instead."
			}
		}
	]
}
Data JSON
{
    "fallback": {
        "message":"No graph support. Guess we'll just use this textblock instead."
    }
}
Template JSON
{
    "type": "AdaptiveCard",
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.2",
    "body": [
        {
            "type": "TextBlock",
            "text": "Fallback test:"
        },
        {
            "type": "Steve Holt!",
            "egg": "her?",
            "fallback": "drop"
        },
        {
            "type": "Graph",
            "someProperty": "foo",
            "fallback": {
                "type": "TextBlock",
                "text": "${fallback.message}"
            }
        }
    ]
}
Adaptive Card