Category Archives: Community

road landscape art street

Direct Action Buttons in Power Apps

No. “Direct action” buttons aren’t a new feature or button type. It’s just a term I’ve used in conversations and sessions talking about Power Apps and more often than not SharePoint lists or Microsoft Lists.

The default experiences users see with Lists or wizard-created apps in Power Apps are to act on a record or item as a whole (see image below). This by itself is fine as it accounts for plenty of use cases. However, there are also times where users want to take a specific action on a record. For example, in the case of managing requests, users may want to take ownership of a request, quickly assign a priority, or close a request. These can be accomplished with buttons build specifically for those use cases.

Microsoft list item editing. Showing the item menu selecting the "Edit" option.
Default list editing

In the default experience, operating on items in a data source (List, or other) the “close request” activity requires both technical knowledge and business knowledge.

  • The technical knowledge they need looks something like: Find the item, open/edit the item, change the value for the specific field from one value to another, and close/save the item.
  • The business knowledge users need, at a minimum, is to change *which field* to *which value*.

You’d hope both of these activities would be intuitive, but in many cases they are not. In most cases the process and user experience can be improved – even a little bit. Enter “direct action” buttons.

What does a simple, typical example look like? How about this? In a work request list, setting a request priority with a button click:

Two records with buttons to set each item to “High Priority”.

Logically, the example image probably has its priorities messed up (please rescue the raccoon before mowing the grass), but it illustrates a user wanting to take specific changes to an individual item.

Patch Command

The above items are in a Power Apps gallery. So, the code – in the OnSelect formula for the button might look something like this:

Patch('Work Requests List’, LookUp('Work Requests List',ID=Parent.Selected.ID),
{Priority: { Value: "1 - Needs immediate" }})

The Patch command is the key here. The example above breaks down as follows:

  • Patch('Work Requests List’, – The data source being updated
  • LookUp('Work Requests List',ID=Parent.Selected.ID), – Identify the specific item in the data source to update.
  • {Priority: { Value: "1 - Needs immediate" }}) – Set the “Priority” field to this value

For a more detailed look at the Patch command, check out the reference links below.

Note: In an example where the user selects an item in a Data Table, the formula will be slightly different:

Patch('Work Requests List’, LookUp('Work Requests List',ID=DataTable1.Selected.ID),
{Status: { Value: "Closed" }})

Crawl, Walk, Run

Once you get started down this path, there are so many options for makers to fulfill business needs with these approaches.

Intake lists (a generic term for request lists of all types) often evolve over time. These lists might start simply where “closing” a request is literally changing a status field from “open” to “closed”. As these processes mature, closing a request might turn into something like:

  • Change a status field to “closed”
  • Store the name of the person that closed the request (in a field separate from the modifiedby field)
  • Capture the date/time the request was closed (in a field separate from the modified field)
  • Send a notification to someone about the ticket closing (send an email, post to a Teams channel, etc.)

While the requirements get more complicated, all of these tasks can still be dealt with using Power Apps formulas or other approaches.

Alternate – JSON

There are ways to create buttons and actions within the List interface using JSON to implement view and column formatting. This is, by some, billed as another “no-code” approach, though it is not in my opinion. It is, however, an approved approach within the platform.

You can look into these approaches here: Advanced formatting concepts

Bonus Footage

A few extra notes.

DisplayMode for button

You may have noticed in the image above that the button can show up as enabled or disabled. This is accomplished by setting the DisplayMode formula to something like this:

If(ThisItem.Priority.Value="1 - Needs immediate", DisplayMode.Disabled ,DisplayMode.Edit)

The formula roughly translates to: If the item is already set to high priority, disable the button. If not, enable the button.

Refresh as needed

I haven’t looked into the details of the mechanics behind how screens and data sources work, but sometimes the screen updates right away after a Patch, other times it doesn’t. So, try the Patch and see if the screen and controls update the way you want. If they do, great! If the data doesn’t update quickly, you could add a Refresh to your button to force the data to refresh.

The “trick” here is that the refresh isn’t of the controls, but of the data source:
Refresh(DataSource)

Ramblings

I’ve been trying to figure out why it’s taken me so long to get a post out. It’s not technically challenging. In fact, it’s quite simple from the Power Apps perspective. From an experienced maker or pro-dev perspective, creating buttons is second nature. Power Apps offers plenty of power and flexibility in this department.

I think I just wanted to give enough context for makers to understand that while the concept is simple, the potential and implications can be huge – both in the capabilities makers have and in the improved experience for users. For makers, using something like Patch is a next step after working with the default form and the Save/Cancel options that come with the default experiences offered by Lists and wizard-created Power Apps.

It’s not rocket science. But plenty of folks just haven’t gone here yet. After almost every session where I mention “direct action” buttons, people are super excited about the possibilities. When they figure it out – it opens up so many cool options. Just a small step of growing in the Power Platform.

References

Updates

Note: The Patch function does NOT bypass Microsoft (and SharePoint) Lists updating the Modified date and Modified By fields. These fields do get updated when the Patch function updates anything in the item/record.

M365 Twin Cities Winter 2023 by the Numbers

Background

Our first post-COVID M365 “Saturday” Twin Cities event was on January 21, 2023. Not our normal time of year, but we (the organizing committee, attendees, sponsors, and speakers) have been chomping at the bit to get back in-person so here we are. 🙂 Normally, we host our events twice a year – in the Spring and Fall. Our schedule is primarily dictated by living in the upper Midwest, where Winter can be harsh, and Summer is dedicated to being outside. No one wants to give up summer weekends. So that leaves us with the “shoulder seasons” where we have plenty of other variables to deal with, but we’ve historically had success with. However, we wanted to get back as soon as possible – so here we are. All things considered; I think the event went off well for all involved.

Coming back post-COVID for this event had its own new variables to work with. Specific to the pandemic, were people willing to come back to an in-person event? We knew there were some vocal and passionate folks that would but weren’t sure we’d get back to our normal volume on the first event back. We definitely weren’t as large as we’ve been, but still had successful numbers, I think.

I’m pretty sure there was also a bit of Zoom/Online meeting fatigue. People just want to be back in-person. Me included. That part probably helped us a bit.

Scheduling in the middle of a Minnesota Winter would throw some challenges at us. Weather could have a huge impact. Folks may not want to travel to the event from outside the metro. It can get *really* cold this time of year. Thankfully the day of, we lucked out with both moderate temperatures and no snow. But we likely lost a few sponsors, speakers, and attendees that didn’t plan to attend even with the chance of having to travel in adverse conditions.

For attendees, registering for the event and deciding at the last minute to attend or not isn’t a big deal (for them – it stinks for organizers). They can sign up but not come if the weather turned. For speakers, we figured we’d lean on local folks where we could, but not limit our selection, to local and regional speakers that would be less likely to need to cancel. Signing sponsors for the event seemed to take the biggest hit as we usually have a mix of local, regional, and national companies – even international from time to time. For this event most sponsors ended up being local companies with only 2 coming from out of state. We love *all* our sponsors, but it was unique to have such a local focus.

Numbers

  • 393 Registered attendees
  • 11 sponsors with 9 on-site and 2 that were not
  • 7 on-site sponsors were local companies. 2 were from out of state
  • 25-30 folks staffing vendor booths
  • 130 session submissions from 59 speakers
  • 1 new venue
  • 10 rooms
  • 4 session slots in the schedule (we’ve done up to 5, letting folks out earlier)
  • 43 speakers
    • 16 current or former MVPs
    • 5 Microsoft employees
    • 6 Canadians
    • 6 new speakers
  • 38 sessions
    • 27 M365 sessions
    • 10 Power Platform sessions
    • 5 Viva sessions
    • 2 JSON sessions (whoa, really?)
  • 0 changes to the schedule after printing
  • 30 dozen donuts (we had plenty)
  • 88 pizzas (plus 30 salads)
  • 13,946 steps (Wes)

Some tweaking to do here and there, but we’ll be back. Targeting Fall 2023. As soon as we have a date, we’ll let you know.

Thanks to everyone involved for a wonderful event and return to in-person events!

M365TC – Tools to organize an event and community

As we returned to hosting in-person events again, we find ourselves figuring out *how* to do it again. Here are the tools that we’ve used. Maybe it’ll help you if you’re starting an event or building a community.

Note: We’re definitely not a benchmark, but if any information here helps someone else run an event, then fantastic. 🙂
What do you use?

Speaker and Session Management – Sessionize

Sessionize has become the standard for managing the Call for Speakers (CFS), speaker submissions, the session approval process, and communication between event organizers and speakers. We also use it to schedule sessions, which we do as a part of the review and approval process.

Note: For our Winter 2023 event, we had the most submissions we’ve ever had. It took our team over 4 hours to sort through 130 sessions submitted by 59 speakers and walk away with a schedule for a one day event with 10 rooms and 4 speaking slots per room.

Event Registration, Attendee Info, Badges – Eventbrite

We’ve used Eventbrite for years. It may be time to revisit this tool as it’s changed quite a bit over the years, but it does still do the primary job of letting us set up an event with all the required details and allow folks to register for it. This gives us an attendee list, allows us to do a bit of information gathering during the registration process, and gives us a platform to provide (opt-in) email addresses for sponsors. We also use the registration list export to populate our master mailing list that we keep from event to event.

Attendee info

We do ask for a few additional bits of info during registration – Custom Questions:

  • Primary attendee “role” – Useful to us and for sponsors
  • Dietary restrictions – to get an idea of how many alternate meals to provide
  • Attendees opt-out for sponsor emails

Multiple ticket “types”

Something new we did this time around. Rather than keeping registration open through the event, we used to close the main registration a few days ahead of time to get printables and other things done. What we found was that closing registration can be confusing for folks finding the site prior to the event and after we’ve closed tickets… So, this year we added a second “ticket” (Eventbrite term) that opened at the same time we closed the main “ticket”. This approach allows us to go forward with sending the main attendee list to the printer to create badges while still having a normal registration process from the perspective of folks signing up. Then we print a smaller group of badges on our own the night before the event.

Attendee list for vendors

After the event, we use the filtered (by opt-out) attendee list to distribute to sponsors – providing name, company, and email.

Attendee list for printing badges

Eventbrite used to provide additional functionality for creating badges but has backed that out and now offers integration to partner products to do it. We opted to export our list to Excel and do a mail merge with Microsoft Word using Avery name tag templates (#5390). We send the file to Kinko’s where they print and cut the badges from card stock. This method is less expensive than printing to Avery labels but is a pain as we need to sort the badges ourselves. (Sorry volunteers, but thank you for sorting these)

Community Days

We were initially interested in the Community Days site as it manages the main calendar for our community – which is great for scheduling and making folks aware of local/regional events. But the site itself has pretty good utility with one of the biggest benefits being integration with Sessionize. As sessions and speakers are approved and scheduled, the list of speakers, speaker info, session info, and schedule are all available on the event site almost instantaneously.

The Sessionize integration here is also key for speakers as it pulls directly from current Sessionize data – as the speakers update their biographic info and contact information, it’s available through our event page.

During event ramp-up, this will likely be our primary point of contact for folks looking for information on our event. Between events, we’ll likely still maintain a presence with a traditional website or page.

Our most recent event page.

Manual website

We maintain a domain and website for our team, event, and community. This is our primary “surface” when we’re in-between actively planning an event and have active Eventbrite and Community Days pages. Our current site is a manually created HTML/Bootstrap site – so there are definitely other ways of doing that. I don’t remember how we got here, but I think the decision had to do with having the control we wanted to integrate with other platforms. At the moment we’re using the approach of using Community Days page and integrations during event ramp-up and maintaining the manual site throughout the rest of the year.

Lots of options for building and hosting sites. We briefly considered WordPress as it would be super easy to maintain content on it. At the end of the day, it’s a “what’s your hammer” sort of decision. Use the tool that you’re comfortable with.

We also use our homepage as a connection to Constant Contact sign-up pages for the various groups we want to connect with: Speakers, sponsors, attendees, and Coffee Crew (networking events between the big events):

Finally, we also use the site to host historical content like sessions from previous events as well as any other items we need to make available that might not fit on the Community Days page. Most recently, we host our printable schedule file here.

The domain also provides us with a little more legitimacy when dealing with sponsors as well as creating distribution groups for ourselves. 🙂

Social Networks – Facebook and Twitter

While all of our attendees aren’t on social media, we still maintain accounts on these as we do have plenty of folks in the community that do connect with us here. We’ll hit these sites hard as we plan for and ramp up to our primary events to drive speaker submissions, sponsor sign-ups, and attendee registrations.

We also manage Coffee Crew (small networking events) events on our Facebook page, make them public, and share the link on all of our channels. We could probably use something like Meetup here but haven’t made the change yet.

Note: We’ve often considered a page on LinkedIn but haven’t made that move yet. We’re not sure if it will bring additional visibility or just be another site to maintain.

Mailing Lists – Constant Contact (paid)

There are two main things we use Constant Contact for – maintaining a master list of attendees and providing a place for folks to add themselves to contact lists between events.

We have mailing lists for: Attendees, Speakers, Sponsors, and our Coffee Crew. These include signup forms for each, branded with our logo.

We try not to spam our attendee list as it’s the folks we’re trying to serve. We currently use these lists to ping the community as we’re planning events, have a “Save the Date” announcement, have opened registration, want to get feedback with a poll or something. When we’re actively working on an event, we’ll usually switch over to the Eventbrite email tool so we’re only hitting the folks that have registered.

We’ll also use the speaker and sponsor lists when we have dates announced and start our call for speakers and call for sponsors.

Session and Event surveys – Microsoft Forms

For years we used Guidebook. But when we decided to return and run another event post-COVID, we also decided to trim down a bit and be a bit more frugal with our sponsor dollars. So, we cut Guidebook and went to a more manual option that we’ll likely change or build on for future events.

Our current tool post-Guidebook is Microsoft Forms. We’ve created forms for attendee feedback for the event, session feedback, feedback from sponsors, and other smaller questions.

Budget – Excel

Yes, we have a budget. As we balance the dollars from sponsors, we figure out what we can afford while running our event. We use Excel to track this. The spreadsheet I have right now has reference columns from a previous event or two, has an estimate column, and an actual spend column. I have a second tab/page where I track paid sponsors revenue.

M365 – OneDrive / SharePoint / Microsoft Lists / Microsoft Teams (paid/free)

Yes, of course we’re using M365. Though, admittedly we need to clean up our tenant (who doesn’t). We’ve been using it for years and both the product capabilities and how we use it has evolved significantly.

Document libraries and OneDrive for managing content, our logo files, sponsor logo files, any other support docs like sponsor level info sheets, etc.

I’m currently managing our sponsor lists and process in a List and will be adding some automation and forms to streamline it when I’m able. Maybe something to blog about after we have it working smoothly.

We use Teams for our virtual meetings and ongoing persistent conversations threads.

(Update) Microsoft Community Tenant

Don’t forget to check out the Microsoft Community Tenant. It’s a free M365 offering for folks doing exactly what we’re doing, and you want to do – run community events.
(Thank you Karuana for the reminder)

Now, go sign up for it, use it, then pull together some case study content for a session at your own conference. People love case studies.

Recap

That’s everything I can think of at the moment. If we come up with other tools, we’ll update or post follow-ups.

Let me know if this helps and/or if you have any questions!

M365TC Sponsors!! – Thank you

While I’m currently talking and thinking about sponsors for our #M365TC event later this week, the following applies to many/most events in our community – even the paid events.

We can’t do this without you. Yes, it’s a somewhat symbiotic relationship between event organizers, sponsors, attendees, and even speakers. Sponsors have another marketing path and sales gets the opportunity to meet with potential clients and customers. We, the event organizers get to put on our event and reach attendees with our knowledge, experience, news – aka: training.

Hopefully it’s mutually beneficial. To what degree of success, is up to many variables, but those of us organizing events do focus on making it a valuable experience for all. Like many things, it’s a bit of a balancing game for everyone involved – finding the right exposure for all without breaking trust with others.

As an organizer of a free community event, we’re even more dependent on sponsors to bring these events to life and we do very much appreciate your investment in time and money.

For the #M365TC – M365 Twin Cities Winter 2023 event, we had a shorter prep timeline than we usually do and scheduled our “back to in-person” event a bit off of our usual “shoulder season” in Minnesota dates – but sponsors still came through. I assume your sales and marketing folks have also been chomping at the bit to some degree to return to in-person opportunities. While there has been a plethora of virtual event opportunities, it’s just not the same for networking and community development.

Our #M365TC Winter 2023 sponsors:

I could put a blurb about each but wouldn’t do them justice – so please click on each, check them out, and be sure to visit with them on Saturday (no really, have a chat – more than just getting their bingo sticker…). We’ve got a few new folks in addition to companies that have been regular and ongoing supporters. While we have a few out-of-town companies, this event will be very local-focused – I suspect a combination of shorter duration planning, MN winters, being so close to the start of the year, and companies getting back up to speed post-COVID.

So, say “Hello”, visit with them on Saturday, and thank them for making our event possible!

If you haven’t registered yet, here’s the link:
M365 Twin Cities – Winter 2023 Tickets, Sat, Jan 21, 2023 at 8:00 AM | Eventbrite

Check out the schedule (including track sponsor and ISV sponsor sessions):
Community Days | M365 Twin Cities

Thank you sponsors!

M365 Twin Cities #M365TC

What is M365 Twin Cities?

M365TC is and organization and event built on the foundation of 10+ years of SharePoint Saturday events. M365TC – like SharePoint Saturdays, SQL Saturdays, and Code Camps, and others – is a free one-day in-person training event put on and supported by the community. Organized by volunteers. Paid for by sponsors. With sessions presented by industry, platform, and community experts in their fields. It’s a ton of great learning potential for you as an individual and for your organization as a whole.

It’s an opportunity for attendees to get free training regardless of organizational budgets. It’s an opportunity for folks to exercise their personal initiative to learn and explore. It’s an opportunity for new speakers to give presenting a try and experienced speakers opportunities to share their knowledge. It’s a mentoring opportunity. It’s a touch point for local service providers and broader service and product vendors to connect with local folks as customers and partners. It’s a networking event to connect with peers in the metro and region.

We usually have two events per year – in the Spring and Fall – that support the rapidly changing technology we talk about. If we have a successful January 2023 event, we’ll likely return to that cadence starting in the Fall of 2023.

By the numbers

For the Saturday January 21, 2023 event, we have:

Why M365?

“M365” is a shift from “SharePoint” as the Microsoft ecosystem shifted, morphed, and expanded. Our SharePoint Saturday events had SharePoint at the center but covered plenty of tangential topics where technology and skill integrations happened. Now, under the M365 umbrella, SharePoint is still a foundational piece but is complemented by a suite of related products and platforms – led now by Teams and working along other areas such as the Power Platform and Azure to name just a few. “M365” provides for the broader scope required to attract attendees, speakers, and sponsors.

Our event here in Minnesota has historically been one of the larger events in the country, though the pandemic took a bite out of our momentum. It’ll take a little time to work back to the events we’ve had in the past – assuming the community still demands them. So please let us know if you are interested in what we’re doing by registering to attend, by spreading the word to co-workers and peers, by letting your organizational leadership and vendors know that we need sponsors to put these events on.

Links

SharePoint Saturday Twin Cities – What would have been… Spring 2020

With the ongoing COVID situation we had to cancel our Spring SharePoint Saturday event scheduled for tomorrow 5/30 (we did this a while ago). Today I’m bummed – seeing calendar reminders for when we would have been setting up for the event and having our speaker dinner tonight – with the actual event and follow-up events tomorrow and tomorrow night.

It’s unfortunate and sad that we won’t be hosting speakers, sponsors, attendees and friends here in the Twin Cities today and tomorrow. I and others are missing our friends at a time we could really use those visits and quality time with the community we’re all a part of.

Stay safe! We’re looking forward to seeing you all again soon!