04-06-2021 16:11 PM - last edited 01-22-2022 07:53 AM
Hey guys
Think of tinder for virtual coffee breaks. That's more or less what it is.
As a user, you need to register yourself to be in the pool of "registered users". Once you're registered, you're eligible to search for a possible coffee-match AND others can be matched with YOU. It's as easy as clicking on a button. The app will then filter out registered users that are not eligible for a match. It will then present you with a matched user and will also suggest timeslots for a coffee. You can even see if the user is available on suggested timeslots. If not, just let it generate new timeslots for you.
Not eligible users could be:
I'm planning to improve the conditions even further so users can choose, perhaps, their department to be matched with, their preferred timings, etc. For now, it's just what I stated above.
Coffee Flex needs the following connections:
Apart from that, it's also using two tables:
In the App.OnStart property, you can change the gblInvitationMessage variable to any HTML text you like. This is the one that is being used when an invitation will be sent (to the matched user).
To change the colors, simply adjust the colors in the colStyles library. The most important ones are primaryAccent.Fill, light.BorderColor, background.Fill, background.BorderColor, gradient, darkGradient, and lightGradient
I hope you like it.
If you have feedback, bugs, just want to say thank you or anything in between, please let me know and drop a comment.
Hi Fabian,
Thank you for this amazing app. It works great on my side.
I am a newbie in Power app. Kindly please help me how to add conditions.
No repeat with in 15 days Ex. User that previously matched should not be match again with the same person within 15 days.
Thank you for your help..
Hi @Art10
You're welcome🙂
If you click on the Find Match button and go to the OnSelect property, you can adjust the values according to your needs.
You would need to adjust the following part:
ClearCollect(
colNonMatches,
AddColumns(
Filter(
Matches,
With(
{
coffeeCondition:
'Coffee Date' = Today() ||
DateAdd('Coffee Date',1,Days) = Today() ||
DateAdd('Coffee Date',-1,Days) = Today()
},
//'User 1'.'Azure AD Object ID' = gblUser.id ||
coffeeCondition || (coffeeCondition && 'User 1'.'Azure AD Object ID' = gblUser.id)
)
),
"User",
'User 2'.'Azure AD Object ID'
)
);
to something like this:
ClearCollect(
colNonMatches,
AddColumns(
Filter(
Matches,
With(
{
coffeeCondition:
'Coffee Date' = Today() ||
DateAdd('Coffee Date',15,Days) = Today() ||
DateAdd('Coffee Date',-15,Days) = Today()
},
//'User 1'.'Azure AD Object ID' = gblUser.id ||
coffeeCondition || (coffeeCondition && 'User 1'.'Azure AD Object ID' = gblUser.id)
)
),
"User",
'User 2'.'Azure AD Object ID'
)
);
That should do the trick. I did not verify this, though.
Kind regards,
Fabian
Awesome! I will try it.
Thank you so much!
Would love to hear more about this, or get a view of the configuration.
Ideally would love to have it:
Future pairings should care to avoid pairing groups who have been paired before, pairing priority based on intervals first, then random.
Ideally a follow up survey is presented to provide feedback on the pair (did they meet. upload an image. provide any feedback)
Is there a way to edit what time zone it picks up? When I've tested it in Australia, it edits the teams meeting as if we were in Budapest.
Hi @Alexyoung
The meeting, however, is taking place at the correct time, right? It's just when editing the teams meeting the wrong timezone is selected, but the time would theoretically be correct?
If so, its because the timezone is in UTC. You can change that by clicking on the "Find Match" button, respectively the "btnFindMatch" element. Scroll all the way down until you see this:
Set(gblMeetingStart,DateAdd(DateTimeValue(First(colMeetingTimes).StartTime), -TimeZoneOffset(DateTimeValue(First(colMeetingTimes).StartTime)), Minutes));
Set(gblMeetingEnd,DateAdd(DateTimeValue(First(colMeetingTimes).EndTime), -TimeZoneOffset(DateTimeValue(First(colMeetingTimes).EndTime)), Minutes));
That's the two lines you'd want to change in order to be showing up in your timezone when editing teams meeting.
I hope this helps.
Kind regards,
Fabian
Hi @FabianAckeret ,
thanks so much for this awesome tool. I've imported into my teams environment, but there's a small hickup - no calenar invitation is sent to matched partners.
As a power apps novice I hope you can help me out.
When running the app I get the failure message: MicrosoftTeams. CreateTeamsMeeting failed: The method 'CreateTeamsMeeting' has an invalid value for parameter 'calendarid'. I do not know what to change.
Hi @Valerie394
That's probably a language thing. What language is your office/outlook/account configured to?
Let's try the following:
Go to your Outlook and check the name of your calendar. Is it "Calendar" or something similar in your language?
If in another language, open up the app and click on the btnFindMatch button. Scroll to the bottom to find this line:
Set(gblMyCalendar, LookUp(Office365Outlook.CalendarGetTables().value, DisplayName = "Calendar").Name);
replace "Calendar" with whatever you found in your Outlook.
**EDIT**
You could probably also replace the line with the following:
Set(gblMyCalendar, First(Office365Outlook.CalendarGetTables().value).Name);
I hope this works.
Let me know 🙂👍
Kind regards,
Fabian
Hi @FabianAckeret ,
unfortunately both ideas did not work 😞
it's still the same error message.
Best,
Valerie
Hi Fabian,
thanks so much for the feedback I’ll give that a go.
since my company is not quite ready for the dataverse and licensing involved with that, do you have any tips on translating those lists into SharePoint lists?
I managed to get the Registered User side to work, however, given the lookup fields in Matches it doesn’t appear to work when I hit “send invite” and the errors appear in the patch for Matches where it’s trying to get gbluser.Id
I might have missed something but any help you can give would be much appreciated!