What is Schema.org?
Why should Providers adopt Schema.org?
- Make your messages stand out: Highlight the most important information (e.g., delivery dates, check-in times) so users can see what matters at a glance.
- Enable connected workflows: When your data is structured, Outlook can power contextual workflows like calendar event creation, follow-up reminders, or status tracking.
- Improve discoverability: Structured emails are easier to search, classify, and act upon.
- Drive engagement: Partners who’ve adopted structured markups have seen up to 30% higher engagement rates.
Supported scenarios:
Get Started
<html>
<body>
<p>
Dear Stuart, thanks for booking your flight with Scandinavian Airlines.
</p>
<p>
<b>BOOKING DETAILS</b><br/>
Passenger: STUARTMR TONGE<br/>
Airline: Scandinavian Airlines (SK)<br/>
Flight Number: SK532<br/>
From: Heathrow Airport (LHR), Terminal 2<br/>
To: Arlanda Airport (ARN), Terminal 5<br/>
Departure: July 20, 2021 – 13:55 GMT<br/>
Arrival: July 20, 2021 – 17:25 GMT<br/>
Reservation Number: NFNEV5<br/>
Status: Confirmed<br/>
</p>
</body>
</html>
Marking up this email is very easy. Add the relevant pieces of information in the email body at one place at the beginning as shown in the example.
<html>
<head>
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "FlightReservation",
"reservationId": "NFNEV5",
"reservationStatus": "ReservationConfirmed",
"underName": {
"@type": "Person",
"name": "Stuart Tonge"
},
"reservationFor": {
"@type": "Flight",
"flightNumber": "SK532",
"provider": {
"@type": "Airline",
"name": "Scandinavian Airlines",
"iataCode": "SK"
},
"departureAirport": {
"@type": "Airport",
"name": "Heathrow Airport",
"iataCode": "LHR"
},
"departureTime": "2021-07-20T13:55:00+00:00",
"arrivalAirport": {
"@type": "Airport",
"name": "Arlanda Airport",
"iataCode": "ARN"
},
"arrivalTime": "2021-07-20T17:25:00+00:00"
},
"reservedTicket": {
"@type": "Ticket",
"ticketedSeat": {
"@type": "Seat",
"seatNumber": null
}
}
}
</script>
</head>
<body>
<p>
Dear Stuart, thanks for booking your flight with Scandinavian Airlines.
</p>
<p>
<b>BOOKING DETAILS</b><br/>
Passenger: STUARTMR TONGE<br/>
Airline: Scandinavian Airlines (SK)<br/>
Flight Number: SK532<br/>
From: Heathrow Airport (LHR), Terminal 2<br/>
To: Arlanda Airport (ARN), Terminal 5<br/>
Departure: July 20, 2021 – 13:55 GMT<br/>
Arrival: July 20, 2021 – 17:25 GMT<br/>
Reservation Number: NFNEV5<br/>
Status: Confirmed<br/>
</p>
</body>
</html>
Partner With Us
Step1: Domain identification & whitelisting
Goal: Ensure Outlook systems are authorized to process emails from the provider’s sending domains.
Partners should:
- Share the list of domains from which booking/transactional confirmation emails are sent to users ->Email: txppro@microsoft.com
- Explain your requirements- what kind of support are you looking for – Flight booking, hotel booking, car booking & parcel tracking are supported currently.
What we will do:
- We whitelist the shared domains on our end to enable schema extraction and testing.
- This will take close to 2 weeks.
- Whitelisting is a prerequisite for end-to-end testing mentioned in Step 4
Step 2: Prepare & validate the schema markup
Goal: Ensure the schema payload is correct before it ever reaches Outlook systems.
Partners should:
- Identify the relevant Schema.org fields for their scenario (flight, hotel, delivery, etc.). E.g. for Flight reservations, take reference from FlightReservation – Schema.org Type
- Map their internal data to the required and recommended schema fields.
- Validate the schema payload using the Schema.org validator.
-
- The schema can be checked for its correctness at schema.org site: Schema Markup Validator
- Add your Json block to this tool
- Click on validate to check if there are any errors or warning. In case if there is any, our system will not process these Json blocks
- If you want to check multiple blocks at once you can put it in an array format- [{Json block 1}, (Json block 2},…].
- Here is a video explaining how to use the validator tool:
Step 3: Embed schema into the email
Goal: Ensure the validated schema is correctly embedded in the email.
Partners should:
- Embed the validated schema payload into the email HTML (using the prescribed <script type=”application/ld+json”> format).
- Have the <script> block only at one place at the beginning as shown in above example. (This won’t render on the UI)
Step 4: Testing & onboarding confirmation
Goal: Validate that Outlook systems can successfully extract and process the schema.
- After successfully validating adding schema markup to the emails, send 2–3 booking confirmation emails containing the markup to schemaonboarding@microsoft.com
- Post domain allowlisting (Refer Step 1), you’d be able to test at your end and validate things end to end.
- Points to test
- Ensure Outlook settings-> Calendar->“Events From Email” setting is enabled to show “Event summaries in Email and Calendar”
- If you get a booking flight/cab/hotel confirmation emails, you should be able to see a summary card at the top of the email.
- A corresponding calendar event should have created for the booking.
FAQs
Do domains need to be whitelisted for testing? → Yes. Domain whitelisting (Step 1) is required before end-to-end testing can be completed.
Is schema validation alone sufficient to guarantee the experience? → No. Schema validation confirms correctness, but end-to-end extraction testing (Step 4) is required to validate the actual Outlook experience.
Does Microsoft support all Schema.org types? → No. Microsoft & Outlook currently supports a curated set of schema types relevant for travel and logistics scenarios such as FlightReservation, LodgingReservation, RentalCarReservation, and ParcelDelivery. Additional types may not be recognized by Outlook’s extraction pipeline even if they are validated on schema.org.
Do we need DMARC, DKIM, SPF header checks? → Strongly recommended. Failing these checks will result in sender authentication failure, which will lead to event not being generated for these bookings.
0 comments
Be the first to start the discussion.