Understand Action Types for Actionable Messages in Outlook (PART 3/?)

Welcome Back!

If you are new to this "series", firstly welcome! Second, I will have a link back to other posts if you have missed them and would like to catch up. I am new and learning, so just know I could explain things wrong and such, please correct me and help me learn as well as other readers. Disclaimer over and we are jumping right back in it.

Part 1 | Introduction
Part 2 | Understand the Format of Actionable Messages in Outlook


Today is going to be a rough one. Based off of my notes, we have quite a bit to learn. Fortunately, we don't have all too much technical learning, but rather we have a ton of definitions and commands to remember their uses.

As we have learned in the previous posts, actionable messages are built upon the Adaptive Card format. Outlook extends this schema to define additional actions to support AM scenarios. Some of these application-specific actions will be listed and explained, there's a lot of info so they will be sectioned out.

  • Action.http
  • Action.InvokeAddInCommand
  • Action.DisplayMessageForm
  • Action.DisplayAppointmentForm
  • Action.ToggleVisibility

Action.http - Core action used to make an AM interact with your service

This action sends out an HTTP POST to your service, which can also include user input. This can allow your service to send a new card, and permanently replaces the old card.

Action.http has many functions, but some of the use cases are for reporting back the status of an action. For example, your service sends out a survey, once completed the action.http will send the user a thank you card for doing the survey.

In a cooperative business environment, this action can keep teammates updated and notified. For example, the service will send an approval request to multiple approvers. An auto-invoke action is used to query the service to check if it has been approved. In such case, it could replace the card asking the recipient to approve with a card informing others who approved it and when.

The code below shows how to implement it.


Action.InvokeAddInCommand - Invokes an Outlook task pane add-in

InvokeAddInCommand can be quite versatile, it has the ease of use for users and it does not need to be installed for the recipient. However, if one does want to install, it is a one-click process.

The command can be used for for complex actions, requiring more from the user but keeping them on the Outlook platform. Mass adoption is more likely as the simple installation makes for less frustration or procrastination.

Below, is the code for implementation.


Action.DisplayMessageForm & Action.DisplayAppointmentForm

As both of these do the same thing excluding minor differences, I am going to be putting them together and explaining as one. The only difference is whether a message form is being looked at or an appointment.

Both of these can be used to open an existing email message or appointment in the recipients mailbox.

Code implementation will be shown here. ( Message form was used over Appointment)



ToggleVisibility can be used to show/hide specific elements of a card resulting from a recipient clicking on a button or some other actionable content.

Code will be right here.


That's All

Whew! We made it.. I mean its a lot of information to remember and understand the use-case for. But ultimately not too bad compared to some of the more complex and "technical" stuff. If you have any questions, please feel free to comment down below and I will try my best to help or someone else can hop in and help.

Also, as I am writing this on the 30th. It came in!!

Screenshot 2022-06-30 121847.png

As the challenge ended on the 21st, it took some days for verification and sending out valid exam opportunities. That's what I presume took so long, so now I am officially possibly maybe a Microsoft Cloud Builder. 😂

Anyway, hope you guys enjoyed and learned something. I'll catch ya later!

Thanks for reading!
Until next time...



Very interesting. Some of those commands make more sense to me than others, but I get the general idea of what is going on. It really makes you appreciate all of the work that goes into the back end of taking that simple 3 second survey inside your email.


Some commands confused me, but the more I looked and read, and writing this post made it much easier to comprehend.

Oh tell me about it, I don't understand the mental fortitude it takes to spend 8+ hours on something that the user will see (and be irritated at) for max 30 seconds.

And I guess that is why backend developers make the big bucks right off the bat, this stuff is not fun.


Congratulations @iikrypticsii! You have completed the following achievement on the Hive blockchain and have been rewarded with new badge(s):

You received more than 8000 upvotes.
Your next target is to reach 9000 upvotes.

You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Check out the last post from @hivebuzz:

Our Hive Power Delegations to the June PUM Winners
Feedback from the July 1st Hive Power Up Day

I'm not a fan of Microsoft, but I love coding :)


Thanks for your contribution to the STEMsocial community. Feel free to join us on discord to get to know the rest of us!

Please consider delegating to the @stemsocial account (85% of the curation rewards are returned).

You may also include @stemsocial as a beneficiary of the rewards of this post to get a stronger support.