Jump to content

Editing SML

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
= SML (Structured Email) =
= SML (Structured Email) =
SML (Structured Email) is a standard for adding machine-readable data to email messages.  
SML (Structured Email) is an emerging standard for adding machine-readable data to email messages.  
It enables developers to create more intelligent email applications that can understand and act on the content of messages, rather than just treating them as plain text.
By implementing SML, developers can create more sophisticated email experiences, such as interactive elements, automated actions, and smarter filtering based on the actual content of messages.


It enables developers to create more intelligent email applications that can understand and act on the content of messages, rather than just treating them as plain text. There are infinite use cases in which gathering information from email and re-using them can be useful. Help us to find them all. 
= Brainstorm Use cases and UI representation =
Examples of possible use cases for SML:


What is currently done via email, but manually? How can we automate it? 
# Poll
# Finding a meeting time that suits most people, or the most important participants. UI: Could show my calendar appointements at the proposed times. Optionally deny all proposals where I have a conflicting appointment.
# Location tracking UI: show on map. Possibly with trace (past locations) and direction (where heading). Open in Google maps, allowing me to route there.
# email verification Button does http call, no browser page then deletes message
# invoice, order confirmation sent to accounting application puts products and price in a database of pitched products
# delivery notification when linked to order and/or invoice by ID, can show overall status of each ordered product , including order, delivery status, dates, price, etc currently scattered in at least 4 emails


What is currently not done by email, but whatsapp etc? What could be done, what nobody does right now?
'''What is currently done via email, but manually? How can we automate it? What is currently not done by email, but whatsapp etc? What could be done, what nobody does right now?'''
 
Feel free to add on the list!
= Brainstorm Use cases and UI representation =
Examples of possible use cases for SML:


* Polls
* Finding a meeting time that suits most people, or the most important participants. UI: Could show my calendar appointements at the proposed times. Optionally deny all proposals where I have a conflicting appointment.
* Location tracking UI: show on map. Possibly with trace (past locations) and direction (where heading). Open in Google maps, allowing me to route there.
* Email verification Button does http call, no browser page then deletes message
* Invoice, order confirmation sent to accounting application puts products and price in a database of pitched products
* Delivery notification when linked to order and/or invoice by ID, can show overall status of each ordered product , including order, delivery status, dates, price, etc currently scattered in at least 4 emails.
* Order Management: When receiving an meeting invitation, seeing whether you already have appointments can show overall status of each ordered product, including order, delivery status, expected delivery time, dates, price, vendor information, custom notes, etc. Currently, this information is scattered in at least 4 emails, or even more when orders are split or merged during delivery.
* Order Management: When receiving an meeting invitation, seeing whether you already have appointments can show overall status of each ordered product, including order, delivery status, expected delivery time, dates, price, vendor information, custom notes, etc. Currently, this information is scattered in at least 4 emails, or even more when orders are split or merged during delivery.
  * Repairs: Guarantee. Terms. Call service technician.


  * Related products: Toner for printer, headphones/case for phone
* Repairs: Guarantee. Terms. Call service technician.
* Related products: Toner for printer, headphones/case for phone


* Parcels
* Parcels
Line 34: Line 32:
** To make order: Product + Quantity + Price, Customer data -> Order
** To make order: Product + Quantity + Price, Customer data -> Order
* Coupon
* Coupon
* Manage subscriptions


<nowiki>*</nowiki> Manage subscriptions
* Show list of subscriptions that I pay monthly/yearly.
* When it renews, when to cancel etc., make event to cancel at a certain time.
* Compare PayPal subscriptions.
* Show all emails related to that subscription


  * Show list of subscriptions that I pay monthly/yearly.
* Tell my contacts that I moved to a new home/business address.


  * When it renews, when to cancel etc., make event to cancel at a certain time.
* Ditto for email address or chat
* Update companies that I have a contract with. Authentication using the data (customer/contract numbers) in the original customer welcome email. (Include in the human-readable text part a hint that this contains structured email, to convince companies to accept this.)


  * Compare PayPal subscriptions.
* Email encryption


  * Show all emails related to that subscription
* Request email pubkey.
 
* Company welcome email requests customer email pubkey.
<nowiki>*</nowiki> Tell my contacts that I moved to a new home/business address.
* Company can send invoices encrypted
 
* Company can accept customer email signed and as authenticated
  * Ditto for email address or chat
* Increases security, for customer and company.
 
  * Update companies that I have a contract with. Authentication using the data (customer/contract numbers) in the original customer welcome email. (Include in the human-readable text part a hint that this contains structured email, to convince companies to accept this.)
 
<nowiki>*</nowiki> Email encryption
 
  * Request email pubkey.
 
    * Company welcome email requests customer email pubkey.
 
    * Company can send invoices encrypted
 
    * Company can accept customer email signed and as authenticated
 
    * Increases security, for customer and company.
 
<nowiki>*</nowiki> Signup: Prefill fields
 
<nowiki>*</nowiki> Location sharing between friends: Facilitate real-time location sharing for efficient meetups.


* Signup: Prefill fields
* Location sharing between friends: Facilitate real-time location sharing for efficient meetups.
* Real time updates in a privacy-sensitive way, using server chosen by sender. Allow sender to choose how long to send updates: Not, 1 hour, 1 day, forever.
* Real time updates in a privacy-sensitive way, using server chosen by sender. Allow sender to choose how long to send updates: Not, 1 hour, 1 day, forever.
* UI: Show person on map. Possibly with trace (locations in the last few minutes) and direction (where heading).
* UI: Show person on map. Possibly with trace (locations in the last few minutes) and direction (where heading).
* Open location in preferred routing app (Google Maps etc.), allowing me to route there.
* Open location in preferred routing app (Google Maps etc.), allowing me to route there.
* Also: Location destination (complement to street address), navigation (from/to)
* Also: Location destination (complement to street address), navigation (from/to)
 
* Calendar invitation (exists, standard, but complex): Propose meeting event. Invitee can respond with Yes/No/Maybe
<nowiki>*</nowiki> Calendar invitation (exists, standard, but complex): Propose meeting event. Invitee can respond with Yes/No/Maybe
* Poll: Create a poll system for anything that needs opinion of others, similar to what
 
<nowiki>*</nowiki> Poll: Create a poll system for anything that needs opinion of others, similar to what


WhatsApp and other apps do.
WhatsApp and other apps do.


<nowiki>*</nowiki> Event Organization: Agree on the best time for meetings of a larger group. Integrates with the calendar: Can show which options conflict with existing meetings in my calendar, and easily reject those. When an option is chosen, add it to my calendar. Similar to Calendarly etc., but without external web site needed. Directly integrated in the mail. No need to sync my calendar to a third party service, therefore more privacy sensitive.
* Event Organization: Agree on the best time for meetings of a larger group. Integrates with the calendar: Can show which options conflict with existing meetings in my calendar, and easily reject those. When an option is chosen, add it to my calendar. Similar to Calendarly etc., but without external web site needed. Directly integrated in the mail. No need to sync my calendar to a third party service, therefore more privacy sensitive.
* Processing email bounces, vacation notifications and other automatic mail.
* Email login verification: Button does http call, no browser page. Then automatically deletes the message.


<nowiki>*</nowiki> Processing email bounces, vacation notifications and other automatic mail.
When in the browser form (see below), user agent can send email, without waiting for email from site. web form can contain token that the user sends to the site. User is in the form and confirms that he wants it to be sent. user can stay in the form without going to email app.


<nowiki>*</nowiki> Email login verification: Button does http call, no browser page. Then automatically deletes the message.
* Travel Coordination


  When in the browser form (see below), user agent can send email, without waiting for email from site. web form can contain token that the user sends to the site. User is in the form and confirms that he wants it to be sent. user can stay in the form without going to email app.
* After booking a flight, adding the event to the calendar.
* When the date is approaching, showing local transport options to/from airport, e.g. using Google Maps.
* Show weather at target location
* Compare KDE Itinerary app.
* Flight: Change time zone in calendar app, for that day range only.


<nowiki>*</nowiki> Travel Coordination
* Event tickets: Like event + location + song
* Links


  * After booking a flight, adding the event to the calendar.
* Show small preview of the web page
* Fetch page, find Structured Data in the page (e.g. recipe, spotify song etc.), extract the data.
* UI
* Show it inline in the email (possibly with expander)
* Show it on the sidebar
* with an applet or app (see Song)
* Store as bookmark, with title, URL, and structured data


  * When the date is approaching, showing local transport options to/from airport, e.g. using Google Maps.
* Song


  * Show weather at target location
* play the song with your preferred song app. Even if you send me a spotify link, I can still play it in Apple Music.
* Follow the artist. Show new songs of that artist.


  * Compare KDE Itinerary app.
* News / RSS
* COVID vaccination yes/no with confirmation/signature
* Issue and ticketing system


  * Flight: Change time zone in calendar app, for that day range only.
* Reply to comment
* Close issue, assign, change priority


<nowiki>*</nowiki> Event tickets: Like event + location + song
* Refresh information
* Forms


<nowiki>*</nowiki> Links
* Compare AMP, but doesn't have meaning, Form is a JSON.
 
* Request Data object (schema.org), contains fields
  * Show small preview of the web page
* UI infers form from the data types
 
* Update form before load, with server sender via HTTP.
  * Fetch page, find Structured Data in the page (e.g. recipe, spotify song etc.), extract the data.
* Already submitted
 
* Show what other people already submitted, e.g. polls.
  * UI
* Add meaning (SML) to each field. This allows the client to auto-fill the fields.
 
* Mobile
    * Show it inline in the email (possibly with expander)
* Doesn't support web extensions
 
* webviewer in mail client
    * Show it on the sidebar
* replace mobile browser
 
* Use cases
    * with an applet or app (see Song)
* Polls
 
* Rating
  * Store as bookmark, with title, URL, and structured data
* Comment
 
* Ticket system changes
<nowiki>*</nowiki> Song
* Appointment, e.g. doctor's appointment, with extra data
 
  * play the song with your preferred song app. Even if you send me a spotify link, I can still play it in Apple Music.


  * Follow the artist. Show new songs of that artist.
* Discovery of form via HTTP, after entering email address
 
<nowiki>*</nowiki> News / RSS
 
<nowiki>*</nowiki> COVID vaccination yes/no with confirmation/signature
 
<nowiki>*</nowiki> Issue and ticketing system
 
  * Reply to comment
 
  * Close issue, assign, change priority
 
<nowiki>*</nowiki> Refresh information
 
<nowiki>*</nowiki> Forms
 
  * Compare AMP, but doesn't have meaning, Form is a JSON.
 
  * Request Data object (schema.org), contains fields
 
    * UI infers form from the data types
 
  * Update form before load, with server sender via HTTP.
 
    * Already submitted
 
    * Show what other people already submitted, e.g. polls.
 
  * Add meaning (SML) to each field. This allows the client to auto-fill the fields.
 
  * Mobile
 
    * Doesn't support web extensions
 
    * webviewer in mail client
 
    * replace mobile browser
 
  * Use cases
 
    * Polls
 
    * Rating
 
    * Comment
 
    * Ticket system changes
 
    * Appointment, e.g. doctor's appointment, with extra data
 
<nowiki>*</nowiki> Discovery of form via HTTP, after entering email address


# Patient enters doctor as recipient
# Patient enters doctor as recipient
Line 178: Line 129:
# Doctor system can auto-process the request, e.g. appointment
# Doctor system can auto-process the request, e.g. appointment


<nowiki>*</nowiki> Requesting appointment with doctor, person, restaurant
* Requesting appointment with doctor, person, restaurant
 
* On web forms, display link to email with form, advertizing that I can send this by email
<nowiki>*</nowiki> On web forms, display link to email with form, advertizing that I can send this by email
 
  * email client can prefill form values


  * calendar can show availability
* email client can prefill form values
* calendar can show availability


<nowiki>*</nowiki> Resource booking
* Resource booking


  * Meeting room
* Meeting room
 
* Book it
     * Book it
* Call maintenance staff
 
* Get info about equipment
     * Call maintenance staff
* Has QR code -> webpage
 
     * Get info about equipment
 
     * Has QR code -> webpage
 
<nowiki>*</nowiki> When receiving links


* When receiving links
* whitelist of sites that offer schema.org meta data in their web pages
* whitelist of sites that offer schema.org meta data in their web pages
* UI: Offer expander after link. When clicked, fetch webpage, extract schema.org data and offer corresponding UI.
* UI: Offer expander after link. When clicked, fetch webpage, extract schema.org data and offer corresponding UI.
* When sending links (shared or pasted)


<nowiki>*</nowiki> When sending links (shared or pasted)
* fetch webpage, extract schema.org data and add it as SML
 
    * fetch webpage, extract schema.org data and add it as SML


<nowiki>https://www.audriga.eu/test/sml-web/#/external?visual_debug=true&single=true&source=https://www.tagesschau.de/ausland/europa/ukraine-kinder-besatzung-100.html</nowiki>
<nowiki>https://www.audriga.eu/test/sml-web/#/external?visual_debug=true&single=true&source=https://www.tagesschau.de/ausland/europa/ukraine-kinder-besatzung-100.html</nowiki>
Line 211: Line 154:
<nowiki>https://miro.com/app/board/uXjVLWh1v_c=/</nowiki>
<nowiki>https://miro.com/app/board/uXjVLWh1v_c=/</nowiki>


=== Alternatives ===
== ''Alternatives'' ==


* PKPass (Apple) - Wallet, entry tickets, coupons
* PKPass (Apple) - Wallet, entry tickets, coupons
Line 218: Line 161:
** Actionable Messages (Microsoft) <nowiki>https://amdesigner.azurewebsites.net/</nowiki>
** Actionable Messages (Microsoft) <nowiki>https://amdesigner.azurewebsites.net/</nowiki>


=== Deployment ===
== ''Deployment'' ==
<nowiki>*</nowiki> When sending structured email, include in the human-readable text part a hint that this contains structured email and to change email clients.
 
<nowiki>*</nowiki> Process emails using JS - converts HTML into structured email. Addons. MIT license.
 
=== How to find more use cases ===
<nowiki>*</nowiki> What regular tasks are currently routinely done via email, but manually? How can we
 
automate it?


<nowiki>*</nowiki> What is currently done by WhatsApp etc, but not email?
* When sending structured email, include in the human-readable text part a hint that this contains structured email and to change email clients.
* Process emails using JS - converts HTML into structured email. Addons. MIT license.


<nowiki>*</nowiki> What could be done, what nobody does right now?
== ''URI schemes'' ==
 
<nowiki>*</nowiki> In what other aspects of users routines there is still space for automation? What other ideas do we have?
 
====== URI schemes ======
<nowiki>*</nowiki> Fallback


* Fallback
* Browser or OS have fallbacks hardcoded, for each URI scheme
* Browser or OS have fallbacks hardcoded, for each URI scheme
* Fallback URL in URI schemes, generic
* Fallback URL in URI schemes, generic
Line 243: Line 175:
<nowiki>https://searchfox.org/mozilla-central/source/toolkit/components/extensions/schemas/extension_protocol_handlers.json</nowiki>
<nowiki>https://searchfox.org/mozilla-central/source/toolkit/components/extensions/schemas/extension_protocol_handlers.json</nowiki>


=== Webbrowser ===
== ''Webbrowser'' ==
<structured data="JSON with schema.org">Fallback UI</structured> tag
<structured data="JSON with schema.org">Fallback UI</structured> tag


Line 256: Line 188:
* Show user's preferred music player inline in the page, to play the song. Play via Spotify, Apple Music, local player etc. Player UI in the page.
* Show user's preferred music player inline in the page, to play the song. Play via Spotify, Apple Music, local player etc. Player UI in the page.


=== PWA: WebShare ===
== ''PWA: WebShare'' ==


* register webapp in Android for "share" button
* register webapp in Android for "share" button
* register mimetypes
* register mimetypes


=== Specs ===
== ''Specs'' ==


* HTTP endpoints:
* HTTP endpoints:
Line 282: Line 214:
** https://<emaildomain>/.well-known/structured/person/<emailaddress>/
** https://<emaildomain>/.well-known/structured/person/<emailaddress>/
** Returns: List of forms -> URL, which returns form content
** Returns: List of forms -> URL, which returns form content
== ''How to find more use cases'' ==
* What regular tasks are currently routinely done via email, but manually? How can we
automate it?
* What is currently done by WhatsApp etc, but not email?
* What could be done, what nobody does right now?
* In what other aspects of users routines there is still space for automation? What other ideas do we have? Feel free to add any other possible use case!
Please note that all contributions to UX Parula may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see UX Parula:Copyrights for details). Do not submit copyrighted work without permission!
Cancel Editing help (opens in new window)