cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
turnbeNZ
Frequent Visitor

Sending push notifications inside If statement not working

Hi

 

I have an App that uses the reusable GeoFence conponent, that works fine. The app is a location check in/ out app so when you're in the GeoFence it allows check in, etc

 

What I'm trying to do is if the person forgets to check out, and they leave the geofence, the app sends them a PushNotification to say, "hey you might have forgotten to check out.."

 

Since there is no nice way to do this I have a timer control on the screen with the duration set to 5min, restart=true, autostart=true, this is all good.

 

In the "OnTimerEnd" property I have the following code

 

If(
    CheckinStatus = true And NotificationSent=false And GeoFence_StevenHouse.IsWithinRadius = false Or GeoFence_Dunedin.IsWithinRadius=false,
    PowerAppsNotification.SendPushNotification(
        {
            recipients: [UEmail],
            message: "You have moved out of the campus zone, but are showing as being checked in, please update your status."
        }
    );
    Set(NotificationSent,true),
    Set(NotificationSent,false);
);

 

 

  • CheckinStatus is set when they tap the check in button.
  • NotificationSent, is used so I have a flag to only send them one push notification and not one every 5 minutes
  • UEmail, is a variable I'm storing User().Email in

 

The current situation with this is, when I travel out of "StevenHouse" radius, the state of "GeoFence_StevenHouse.IsWithinRadius" changes to false as expected, the timer gets to its duration of 5 minutes, and it runs the If statement but the push notification doesnt happen, however it does set the "NotificationSent" variable correctly to true....

 

I have double checked the app id is correct in the setup of the pushNotification connection.

 

If I put a button on the form with the onselect property to be as follows the push notification works

 

    PowerAppsNotification.SendPushNotification(
        {
            recipients: [UEmail],
            message: "You have moved out of the campus zone, but are showing as being checked in, please update your status."
        }
    );

 

 

I can see whats happening in the If statement above, when it does set the variable correctly, which should occur after the push notification

 

Any ideas?

 

 

6 REPLIES 6
v-yutliu-msft
Community Support
Community Support

Hi @turnbeNZ ,

Do you mean that your send pushnotification action could only run in timer?

I've made a similar test and not met the same problem like your description.

I put formula like this in a button's OnSelect:

 PowerAppsNotification.SendPushNotification(
        {
            recipients:[User().Email],
            message: "asdasd."
        });Set(var,"aaa")

I put formula like this in a timer's OnSelect:

 PowerAppsNotification.SendPushNotification(
        {
            recipients:[User().Email],
            message: "aaaaaaa."
        });Set(var,"aaa")

Both of them worked correctly.

So I do not think that should be your control's problem, please check these things:

1)check whether these variables are right

CheckinStatus = true And NotificationSent=false And GeoFence_StevenHouse.IsWithinRadius = false Or GeoFence_Dunedin.IsWithinRadius=false

 2)try this formula:

If(
    (CheckinStatus = true && NotificationSent=false)&& (GeoFence_StevenHouse.IsWithinRadius = false|| GeoFence_Dunedin.IsWithinRadius=false),
    PowerAppsNotification.SendPushNotification(
        {
            recipients: [UEmail],
            message: "You have moved out of the campus zone, but are showing as being checked in, please update your status."
        }
    );
    Set(NotificationSent,true),
    Set(NotificationSent,false);
);

(the logic between the variables)

3)whether your network is on good condition

4)you should not click the button too frequently, or else action may not work

5)this action's limit:

  • Currently, notifications aren't displayed on Power Apps Mobile for Windows Phone.
  • Currently, we don't provide push notifications for users who run apps only in a web browser.
  • Notifications show the generic Power Apps icon instead of a specific app icon.
  • When you use Power Automate, you can send a push notification to only one recipient at a time.

 

Best regards,

Community Support Team _ Phoebe Liu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

I think the problem is in the If statement, I can see that the contents of the variables is correct, but the IF doesn't determine the right result.

 

I can turn my GPS on an off on the mobile phone for the PowerApps app, to simulate in and out of radius.

 

CheckinStatus = true

NotificationStatus = false

IsWithinRarius = gps on = true, off = false

 

Using the code below, and all the variables set as

 

CheckinStatus = true

NotificationStatus = false

GeoFence_StevenHouse.IsWithinRadius = true

GeoFence_Dunedin.IsWithinRadius = false

 

When the logic runs on timer end it still runs the true section of the If statement, when it shouldn't

 

If(
    (CheckinStatus = true && NotificationSent = false) && (GeoFence_StevenHouse.IsWithinRadius = false || GeoFence_Dunedin.IsWithinRadius = false),
    Set(
        NotificationSent,
        true
    );
    Notify("Push sent" & "   CheckinStatus: " & CheckinStatus & "   NotificationSent: " & NotificationSent & "   Is in radius? " & GeoFence_StevenHouse.IsWithinRadius & "   " & GeoFence_Dunedin.IsWithinRadius),
    
    
    Notify("Push Not sent" & "   CheckinStatus: " & CheckinStatus & "   NotificationSent: " & NotificationSent & "   Is in radius? " & GeoFence_StevenHouse.IsWithinRadius     & "   " & GeoFence_Dunedin.IsWithinRadius);
    
);

 

  the problem seems to be with the Or section of the If?

Hi @turnbeNZ ,

If the problem is about the if statement logic, could you describe more clearly about when do you want to send push, when do you want to not send push?

The formula that you use:

(CheckinStatus = true && NotificationSent = false) && (GeoFence_StevenHouse.IsWithinRadius = false || GeoFence_Dunedin.IsWithinRadius = false)

represents this logic:

when  CheckinStatus = true ,

           NotificationSent = false,

          GeoFence_StevenHouse.IsWithinRadius=false or GeoFence_Dunedin.IsWithinRadius =false

(means these two situations: CheckinStatus = true && NotificationSent = false&& GeoFence_StevenHouse.IsWithinRadius = false 

                                              CheckinStatus = true && NotificationSent = false && GeoFence_Dunedin.IsWithinRadius = false)

send push.

Or else not send push.

 

Also, please check whether these variables have the right value that you want when you act this action.

 

 

Best regards,

Community Support Team _ Phoebe Liu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Hi,

 

After further investigation I think the logic is correct thank you, but there is something odd happening with the contents of the variables.

 

I am putting the variables into the Notify message, to see what's in them, this is the current running code in the "OnTimerEnd"

 

If(
    (CheckinStatus = true && NotificationSent = false) && (GeoFence_StevenHouse.IsWithinRadius = false || GeoFence_Dunedin.IsWithinRadius = false),
    Set(
        NotificationSent,
        true
    );
    Notify("Push sent" & "   CheckinStatus: " & CheckinStatus & "   NotificationSent: " & NotificationSent & "   Is in radius? " & GeoFence_StevenHouse.IsWithinRadius & "   " & GeoFence_Dunedin.IsWithinRadius),
    
    
    Notify("Push Not sent" & "   CheckinStatus: " & CheckinStatus & "   NotificationSent: " & NotificationSent & "   Is in radius? " & GeoFence_StevenHouse.IsWithinRadius     & "   " & GeoFence_Dunedin.IsWithinRadius);
    
);

 

 

Test 1: GPS on

Real world situation

CheckinStatus = true

NotificationSent = false

GeoFence_StevenHouse.IsWithinRadius = true

 

Results

  • In the first timer duration interval "Push Sent CheckinStatus: true NotificationStatus: true Is in radius: true false" so the presented variables in the notify statement are correct, but it should not have run the true side of the IF statement, because I was inside one of the radius.
  • In subsequent timer duration intervals "Push Not Sent..." which is correct.

 

Test 2: GPS off

Real world situation

CheckinStatus = true

NotificationSent = false

GeoFence_StevenHouse.IsWithinRadius = false

 

Results

  • In the first timer interval "Push Sent CheckinStatus: true NotificationStatus: true Is in radius: false false" so this is the correct response
  • In subsequent
  • timer duration intervals "Push Not Sent..." which is correct.

 

Thanks for your help, so in test 1 why did it run the true side first?

Anonymous
Not applicable

@turnbeNZ 

This app build hasme intrigued, I like what you are doing here!

 

To jump in here and offer my idea/s - notwithstanding the great work already provided by @v-yutliu-msft  - I think you may have some GEO math slightly off here.

 

The logic which has both of your GeoFence checks only needs ONE condition to be true to return true. Your example returns [ true, false ] which equates to TRUE because you are using OR. My suggestion would be to run two If() statements, one for each GeoFence. The other thing you could try is using NOT (!) and rearrange your logic to keep only one If() statement but that get a little messy?

 

Could it be possible in a real world scenario that a user would be inside one fence but outside the other? I'm trying the picture the geography you are putting a 'fence' around.

Hi @turnbeNZ ,

Do you mean that your test1 firstly run the true side, then run the false side?

Could you tell me the value of GeoFence_Dunedin.IsWithinRadius in your test1?

Even if GeoFence_StevenHouse.IsWithinRadius = true, if GeoFence_Dunedin.IsWithinRadius=false, the condition still is the true side.

What's more, since the if statement will run true side firstly, false side secondly, please check:

1)whether you've set these variables before the timer runs

2)whether these variables change when the timer runs

3)whether you set any formula in these properties: OnSelect, OnTimeStart

 

Since you keeps moving when you test the app, I think the most possible problem is the variable changing when timer runs, which will make the timer act differently.

If so, I suggest you change the Timer's Duration to a very small value to avoid time delay.

 

 

Best regards,

Community Support Team _ Phoebe Liu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Helpful resources

Announcements

Hear what's next for the Power Up Program

Hear from Principal Program Manager, Dimpi Gandhi, to discover the latest enhancements to the Microsoft #PowerUpProgram, including a new accelerated video-based curriculum crafted with the expertise of Microsoft MVPs, Rory Neary and Charlie Phipps-Bennett. If you’d like to hear what’s coming next, click the link below to sign up today! https://aka.ms/PowerUp  

Tuesday Tip: Community User Groups

It's time for another TUESDAY TIPS, your weekly connection with the most insightful tips and tricks that empower both newcomers and veterans in the Power Platform Community! Every Tuesday, we bring you a curated selection of the finest advice, distilled from the resources and tools in the Community. Whether you’re a seasoned member or just getting started, Tuesday Tips are the perfect compass guiding you across the dynamic landscape of the Power Platform Community.   As our community family expands each week, we revisit our essential tools, tips, and tricks to ensure you’re well-versed in the community’s pulse. Keep an eye on the News & Announcements for your weekly Tuesday Tips—you never know what you may learn!   Today's Tip: Community User Groups and YOU Being part of, starting, or leading a User Group can have many great benefits for our community members who want to learn, share, and connect with others who are interested in the Microsoft Power Platform and the low-code revolution.   When you are part of a User Group, you discover amazing connections, learn incredible things, and build your skills. Some User Groups work in the virtual space, but many meet in physical locations, meaning you have several options when it comes to building community with people who are learning and growing together!   Some of the benefits of our Community User Groups are: Network with like-minded peers and product experts, and get in front of potential employers and clients.Learn from industry experts and influencers and make your own solutions more successful.Access exclusive community space, resources, tools, and support from Microsoft.Collaborate on projects, share best practices, and empower each other. These are just a few of the reasons why our community members love their User Groups. Don't wait. Get involved with (or maybe even start) a User Group today--just follow the tips below to get started.For current or new User Group leaders, all the information you need is here: User Group Leader Get Started GuideOnce you've kicked off your User Group, find the resources you need:  Community User Group ExperienceHave questions about our Community User Groups? Let us know! We are here to help you!

Super User of the Month | Ahmed Salih

We're thrilled to announce that Ahmed Salih is our Super User of the Month for April 2024. Ahmed has been one of our most active Super Users this year--in fact, he kicked off the year in our Community with this great video reminder of why being a Super User has been so important to him!   Ahmed is the Senior Power Platform Architect at Saint Jude's Children's Research Hospital in Memphis. He's been a Super User for two seasons and is also a Microsoft MVP! He's celebrating his 3rd year being active in the Community--and he's received more than 500 kudos while authoring nearly 300 solutions. Ahmed's contributions to the Super User in Training program has been invaluable, with his most recent session with SUIT highlighting an incredible amount of best practices and tips that have helped him achieve his success.   Ahmed's infectious enthusiasm and boundless energy are a key reason why so many Community members appreciate how he brings his personality--and expertise--to every interaction. With all the solutions he provides, his willingness to help the Community learn more about Power Platform, and his sheer joy in life, we are pleased to celebrate Ahmed and all his contributions! You can find him in the Community and on LinkedIn. Congratulations, Ahmed--thank you for being a SUPER user!  

Tuesday Tip: Getting Started with Private Messages & Macros

Welcome to TUESDAY TIPS, your weekly connection with the most insightful tips and tricks that empower both newcomers and veterans in the Power Platform Community! Every Tuesday, we bring you a curated selection of the finest advice, distilled from the resources and tools in the Community. Whether you’re a seasoned member or just getting started, Tuesday Tips are the perfect compass guiding you across the dynamic landscape of the Power Platform Community.   As our community family expands each week, we revisit our essential tools, tips, and tricks to ensure you’re well-versed in the community’s pulse. Keep an eye on the News & Announcements for your weekly Tuesday Tips—you never know what you may learn!   This Week's Tip: Private Messaging & Macros in Power Apps Community   Do you want to enhance your communication in the Community and streamline your interactions? One of the best ways to do this is to ensure you are using Private Messaging--and the ever-handy macros that are available to you as a Community member!   Our Knowledge Base article about private messaging and macros is the best place to find out more. Check it out today and discover some key tips and tricks when it comes to messages and macros:   Private Messaging: Learn how to enable private messages in your community profile and ensure you’re connected with other community membersMacros Explained: Discover the convenience of macros—prewritten text snippets that save time when posting in forums or sending private messagesCreating Macros: Follow simple steps to create your own macros for efficient communication within the Power Apps CommunityUsage Guide: Understand how to apply macros in posts and private messages, enhancing your interaction with the Community For detailed instructions and more information, visit the full page in your community today:Power Apps: Enabling Private Messaging & How to Use Macros (Power Apps)Power Automate: Enabling Private Messaging & How to Use Macros (Power Automate)  Copilot Studio: Enabling Private Messaging &How to Use Macros (Copilot Studio) Power Pages: Enabling Private Messaging & How to Use Macros (Power Pages)

April 4th Copilot Studio Coffee Chat | Recording Now Available

Did you miss the Copilot Studio Coffee Chat on April 4th? This exciting and informative session with Dewain Robinson and Gary Pretty is now available to watch in our Community Galleries!   This AMA discussed how Copilot Studio is using the conversational AI-powered technology to aid and assist in the building of chatbots. Dewain is a Principal Program Manager with Copilot Studio. Gary is a Principal Program Manager with Copilot Studio and Conversational AI. Both of them had great insights to share with the community and answered some very interesting questions!     As part of our ongoing Coffee Chat AMA series, this engaging session gives the Community the unique opportunity to learn more about the latest Power Platform Copilot plans, where we’ll focus, and gain insight into upcoming features. We’re looking forward to hearing from the community at the next AMA, so hang on to your questions!   Watch the recording in the Gallery today: April 4th Copilot Studio Coffee Chat AMA

Tuesday Tip: Subscriptions & Notifications

TUESDAY TIPS are our way of communicating helpful things we've learned or shared that have helped members of the Community. Whether you're just getting started or you're a seasoned pro, Tuesday Tips will help you know where to go, what to look for, and navigate your way through the ever-growing--and ever-changing--world of the Power Platform Community! We cover basics about the Community, provide a few "insider tips" to make your experience even better, and share best practices gleaned from our most active community members and Super Users.   With so many new Community members joining us each week, we'll also review a few of our "best practices" so you know just "how" the Community works, so make sure to watch the News & Announcements each week for the latest and greatest Tuesday Tips!   This Week: All About Subscriptions & Notifications We don't want you to a miss a thing in the Community! The best way to make sure you know what's going on in the News & Announcements, to blogs you follow, or forums and galleries you're interested in is to subscribe! These subscriptions ensure you receive automated messages about the most recent posts and replies. Even better, there are multiple ways you can subscribe to content and boards in the community! (Please note: if you have created an AAD (Azure Active Directory) account you won't be able to receive e-mail notifications.)   Subscribing to a Category  When you're looking at the entire category, select from the Options drop down and choose Subscribe.     You can then choose to Subscribe to all of the boards or select only the boards you want to receive notifications. When you're satisfied with your choices, click Save.   Subscribing to a Topic You can also subscribe to a single topic by clicking Subscribe from the Options drop down menu, while you are viewing the topic or in the General board overview, respectively.     Subscribing to a Label Find the labels at the bottom left of a post.From a particular post with a label, click on the label to filter by that label. This opens a window containing a list of posts with the label you have selected. Click Subscribe.           Note: You can only subscribe to a label at the board level. If you subscribe to a label named 'Copilot' at board #1, it will not automatically subscribe you to an identically named label at board #2. You will have to subscribe twice, once at each board.   Bookmarks Just like you can subscribe to topics and categories, you can also bookmark topics and boards from the same menus! Simply go to the Topic Options drop down menu to bookmark a topic or the Options drop down to bookmark a board. The difference between subscribing and bookmarking is that subscriptions provide you with notifications, whereas bookmarks provide you a static way of easily accessing your favorite boards from the My subscriptions area.   Managing & Viewing Your Subscriptions & Bookmarks To manage your subscriptions, click on your avatar and select My subscriptions from the drop-down menu.     From the Subscriptions & Notifications tab, you can manage your subscriptions, including your e-mail subscription options, your bookmarks, your notification settings, and your email notification format.     You can see a list of all your subscriptions and bookmarks and choose which ones to delete, either individually or in bulk, by checking multiple boxes.     A Note on Following Friends on Mobile Adding someone as a friend or selecting Follow in the mobile view does not allow you to subscribe to their activity feed. You will merely be able to see your friends’ biography, other personal information, or online status, and send messages more quickly by choosing who to send the message to from a list, as opposed to having to search by username.

Top Solution Authors
Top Kudoed Authors
Users online (4,523)