the new Mutual Aid Extension

So can you guys see my screen I guess. Sorry yeah I will also turn off camera and I will be listening. OK yeah alright thank you so. I mean, I already did the presentation. I can show you around a little bit, but if you have any questions or anything. Give me a shout. So basically let me show you this. On that, from the technical point of view.

We're basically building this. This is the extension.

And I think the link is somewhere, but if you Google it, you probably find it. And it requires two more extensions, and this is the both the two building blocks they showed in the original slides. There's a module called Extended contact meter, and the purpose of the extensive contact measure is. Basically, you throw any amount of contact data at it and it would figure out whether the contact already exists or whether it has to be newly created, if it exists, whether to maybe there's a new phone number in there that you want to add to the phone number. So it's really handy module and we sort of based the form processing a little bit on that, so these two modules you're going to have to install it as well. Or basically this one is is mandatory and you need a geocoder. And since we're not big fans of Google, we we created this treatment geocoder. It could be any any kind of geocoder, but as you. Obvious that if you want to match people that live close to each other that you need to be able to geocode there the address is. Right, so sorry. The equipment contact matter. What's what's the meaning of of that extension? So the idea is that let me show you that maybe the configuration. Screen, I'm sorry. No, don't worry. And.

So you can have various profiles and sort of the mutual aid extension creates a new profile on. Contact matching and and the idea is really. They said it basically it's an API call. It provides an API call. You can sort of. Post any kind of contact related data into this thing. Right and then it would figure out it does. The contact already exist in your database? If it does, do you want to sort of add information to it? If it doesn't exist, it's going to be created. So it's basically for from a service point of view as the the mutual aid extension. We don't want to bother about how people want to set up this matching stuff. All I know is I've got a form. I've got to post the whole form through this thing. And it comes back to me with a with a contact ID, OK? OK, it's got a lot of setup for configuration options in this case. For example, if it finds multiple ones, always use the oldest one, but you could also do other stuff here and then you can say, well, some of the information coming in. It should be used to overwrite stuff in this particular case it's going to overwrite a lot of the mutual aid information. And then it's going to fill feels. That means if somebody I don't know if they contacted is identified, but I don't know the first name was missing. It's going to fill the first name. Stuff like that OK. And then here you have a set of rules that you can say. How can you identify whether a context already in the system and like the? It's just going to go through these rules 1 by 1 if it if I can find a contact with the same last name, the same first name and the same email address it's going to consider that. Much in the same with phone and address. And that is sort of goes down to less. I would say less reliable setups like these. But the idea was also not to hardcode this, but to allow anyone to sort of adjust this matching process to their needs. That's why the extension is quite handy. Wonderful thank you. Right?

So when will he? So that's that's the one extension that we that we depend on. And as I said, the geocoder obviously as well.

And then if you install it, it sort of comes with its own little fee mutual aid extension. It comes with its own little menu and actually Nic wonderful host. Has also created a need through dashboard. That's very this. Is this one on the right hand side? It sort of reflects the menu, but it's kind of nicely grouped and it's a good sort of starting point for you. So here's some configuration options so you have to do. And the you have to set the at least the geocoding provider right otherwise otherwise it doesn't work. And then we get to the general configuration in a minute. Is that there's an option group for the?

There we go. Help let's.

So there's an option group. They can basically set create any sort of. And. Help types to be used in the extension an. It is a good idea to define yourself. Think about those up front if you want to start using the extension. Because if you start changing the help types later. Type something on the front and a bit a bit messy with the matching right? Because if you already, let's say you already matched people for shopping, but then you decide that you disable shopping and you want to sort of do more detail for shopping for groceries from shopping for clothes or something like that, right? But nevertheless it kept. You can change it at any point. Just might have a bit of a fallout on the metric results.

OK, what else is on there? On the little dashboard. Obviously it gives you. You can create email templates. This is basically just a link to the SCMS template list. Then the next step would be gather. So in this case you could import Contacts or whatever. If it's sort of starting with the first system. And then these are the links to the two forms. As the. Offer help and the request help from these are by design. Don't require any permissions. And the sort of risk for the system of having this phone without permission is very low, because as we're using the contact method, you have to know quite a lot about the contact in order to sort of if you want to hijack contact, let's say you need quite a lot of information in order to do that. And. You can also. So basically what this form does is collecting data and then putting it through an API. So for example if you want to have a separate, maybe nicer form in with like a proper theme and stuff like that, you can also use another form and just have it submit. The form comes to the API that to the to the. Basically the core of the system. It doesn't make a difference where the data is coming from. It just expects the kind of data to come in at some point and we shipping it with these forms just to make it easy for people. Anne.

Yeah, that's it, so maybe. There's a couple of other we go. Text bit. This is about sort of matching requests and have the have a list of the requests that are that are unconfirmed. As I said in the presentation half an hour ago. Is basically what the system does. It does propose matches. Right, so it's trying to come up with of all the unassigned help requests and all the unassigned help offers is going to try to find the best. Best matchup under the current conditions. At the end, the afternoon quite often not contact. You can also separate the. Just Dance. Maybe so. Patient came up with all the understanding.

It's the same as here. You just say match now and it's going to run the measure that I already put one pair in sort of so I can show it to you, but I haven't confirmed that yet. Seriously, it gets matched to each other, but obviously the more context of the requests you have in here, the more complicated it gets right? And this is where the. Where the that the weighted matching comes in? Let me show you the configuration screen. For the extension. This is a bit bulky because it also contains the. This is a feature. That we didn't end up using in the end because just as well as you can say I want to request a certain type of help or or offer it. You can also say I speak a certain like these two three languages that I speak and that I could potentially help people with. It wasn't that important in this scenario. We deployed it, but I could see in a more or less a multicultural environment. It would probably be good to respect languages spoken as well. However, I'm not quite sure if the match I think respects that, but as you can imagine, it hasn't been tested very well. That hasn't been tested in the field, let's say. Anne. Then most of this is about the forms. Whether you can add Commons your distance unit. I you can have some terms and conditions so that people before they send you like to know what their what they're into. There's a default email confirmation template that gets sent out when you confirm a. A suggested match will have a look at what that means in a minute and there's this. These bits actually control the behavior of the measure because what the matter does is trying to come up with all potential matches and then weigh them. Right, they're going to be rated after according to these weights, and we haven't had a lot of time for testing, so we don't have a good idea of what good weight should be here, so it's all one. But if you see for example, maybe let me just walk you through it. So obviously watching my hub type should be should be right up there. That means if somebody you know, ask for shopping and you offer walking the dog. Then maybe you shouldn't be matched. That's what this means. But on the other side. There might be Gray zones, as in you offer walking the dog and shopping, and then maybe you might Europe at the other guy only order office walking the dogs. Or maybe he's a better fit. So this is where these weights come in. Same with the distance.

That means.

Well, basically based on the distance with the. But we don't want to we ideally for the help us, we want to keep the distance as short as possible. But there's also a counter weight here, saying if somebody lives in the center, we don't want them to get everybody else from the center, because maybe maybe it's it's overloading him or her. And there's another way that's coming in here as well. It's the workload is basically how many. As a helper, how many people do I already help? So the higher that workload basically is, the lower your chances are to be assigned to yet another person.

Are you guys still following?

Yeah, yeah, we're here. Yes, it's so weird that you can't see the faces of people. Yeah, so basically the concept is you have to group of people. One that has needs an one that doesn't have need that the one that has needs and then one that can provide to fulfill their needs exactly. Yeah and you matching them on a different levels, what they want, what they need. So that's what the yes. Stangen do. Yeah. Exactly, and it's pretty straightforward. We just have 10 people, but if you have 1000 people and you wanna do a good job of matching, like 500 volunteers to 500 people, so in need of help and don't want to send them all over town, then you need to automate this in some way, right? Yeah, but you have to. You have to categorise needs very well and. Yeah, well you could. Some people I know from one organizations that just has one generic help type say any type of help and they just connecting people right? So basically that that means that kind of disabling the help type altogether. But obviously if you yeah, maybe you want to it. It really depends on your setup and what people need in your area. Yeah, like everything in CVC RAM. It depends on you and sorry. I have a question. I have a question so I see I get the concept that it's matching a need and and a service code and code. Is there a way of like if I am working in the back end and I want to see how many people are matched and and people that needs to be matched. Is there a way to visually see for instance like a report or something that I could know that OK out of the 10 request? 5 have been approved, five are still pending or something like that. Yeah, absolutely, let me let me just maybe we'll do a quick excursion of what it actually looks like in the system. Anne. So these are my Contacts and I think.

I think these two have been matched I guess. So what it does is it creates 2 custom fields sets, one where you basically say ioffer help. Of these types, the state only one activated right now and for a maximum amount of five people and within 100 meters of my location.

You could potentially at the same time also be somebody needing help. Could be we didn't want to rule it out right? So we didn't do contact types or anything. You basically just. If this is set for you then you would consider to be in need of help. And then what the measure does is it creates a relationship here. Oh I see. OK got it and. The status assigned aside means that the algorithm has it. You could also call it proposed or something like that right? And it also contains the kind of help type. That test been matched. And then on that there's a lot of. So we have reports for. Unconfirmed matches which then basically goes and says this, these are the matches that are currently unfulfilled, which is just this one because it has only been assigned another proved yet right. And we also have a report for matching issues, so sometimes people just don't get matched and that it could be for example in this case because it hasn't been geocoded right. Sometimes people enter addresses that just don't do your code because there's a typo because. You attach attach sorry, do you attach a date to when the request was put in? So for instance, if they can, I know that the request that was put in today as opposed to something that's been there for a week or a month or anything like that. Sure, I think we've yeah. We've looked into that we did. We ended up not doing it, but there might still be a disabled custom field for that. I think the generic idea was to put it at this help field, so let me see if it's still there. No, but we had at some point we had a custom field with the dates for the timestamp of when this was set, or change the last time, but it didn't make it into the extension right now, none. Ah, OK. Anne.

Yeah, but I mean as soon as so, you're right, so you can't right right now it's a bit tricky to find out how long help hasn't been matched. As soon as the.

As soon as their relationship has been confirmed, then obviously the relationship has the start date. But you're right, it doesn't. It doesn't help you finding out. If somebody hasn't been matched for age, is you're. Right, so I understand no, sorry if sorry if I'm talking too much, just let me guys and try it. Just it's this is very interesting 'cause I see an implementation of this for what I'm thinking of, but I just need to get more information so when you said that this shows up as a relationship correct? And then before that you show the screen that's on the I think it's on the summary page of a contact. Can you have several? Several of those. So for instance, I probably need like multiple needs. Yeah there is. Is there is like the way that this is set up. This is set up as someone. 11 offerin one need. What happens if you have several or that would that create multiple? And right now we only have help type any activated. So let me just go and. Activate more. OK. So just adds onto it. Be there. The idea is that you tell people that you need.


And let's just enable the specific ones. OK got it, got it so it would show. Yeah exactly, so disable this one. And rather go for. This one and this one. And then when we go back to my contact. You can, you can pick any number of those, right? And. I don't know why inline edit doesn't work, but. Oh did I just delete myself? Got remember doing that?

Yeah. Not, not you. No.

OK, here we go. So yeah, you could say OK, these are the concept that I need right? What is true is that you can't do something like I need shopping at 7:00 in the morning on Wednesday or something. It's just this is because this is supposed to be not a one off, but like a permanent relationship. If you know what I mean, right? It's like ideas that you get somebody assigned to do the shopping for you for the for the duration of the lockdown or whatever it is. Ah. Alright, it's not. It's not a. Voice that I mean, it could probably be bent into something else, but the original idea was just to connect people based on their needs and not like schedule individual shopping runs. Yeah, but I I love the concept though. But it's yeah I I see what it's meant to do and it's it would be hard to kind of treat that to something else.

I have an alarm going off somewhere. Thank you.

Alright, sorry bout that.

Yeah, there's another thing I think this should not also come up with the matching issues, because now you have somebody with this with help types that are just sort of this disabled.

So the idea of this this matching issue report is to just sort of catch the most common reasons why people can't get matched. Besides, hopefully there not being enough help us arrive. Is this mainly meant for individuals or was it used as an organization individual mix?

I think the matching only works in individuals because an organization can't go out right. It would be then some member of the organization in America an employee. If you want to use it for for that kind of thing. So for example, you could say I would have we would only we could already. Import all employees as individuals with the respective offers and where they live and if they live at where your company is, then that's it. And then only sort of published the. The request help form and then use that to assign people to to help them, but again it's more about a would need some some adjustments. I think if you want to do it for like one time jobs rather than like a long standing relationship of helping these people. Sorry, do you hear me? Yeah yeah, no stop saying sorry, yeah. I was like I I was thinking about what about the people that are not that tech savvy because. Basically you have you have. I was just thinking aloud. Sorry it's not like I was like OK so basically you have a group of people that need help and they are old and their currency and they they're not tech savvy. So basically the organ is organizing that. Input or import would be like that we we from we from our organization give the input in the system and the people that are like wants to help. Also, can do input on their own and then we can do the matching and I'm just thinking aloud it's not like something that is because that that's that's kind of obstacle during the the discovered log down in Serbia you had a lot of people that are like there that are old and they people 65 plus couldn't go out from the homes. And I'm just talking right? Now I know we had the same issue. Yeah, probably, and they couldn't go out for out of their home for groceries or something, and they had some silly stuff like they could go out in three in the morning and then we have stores that were working in 3:00 AM to 5:00 AM, but really. That so we don't have to. Yeah, I'm sorry for the aggression and and we had that kind of people, but we had a lot of volunteer groups that were like going and helping people so I was just putting in this in the scene scenario where how can this it just which is very nice extension. Could help to match people. You know, I mean to start with you need some way of communication in terms of older people is probably like a landline phone or something, right? Yeah, but nothing really stops you from entering somebody else in this form with their landline phone. If you if you if you want. Yeah, so that that's I think that you said in the in the in the introduction main hold that it's. Basically automatic but little bit of help. It's like some. Man, I would be. I would be very careful with automatic right because you need these funds to be public and basically anyone can sign anyone up. So what the organization that I know about they use it mostly for the for the for the matching. So to make sure that they don't send people all over town for no reason good. So what they did is they they run the matching that they got a number except say 200 matches and then they sit down and call them up on the phone. And if they have the impression unless you know they're already in the system and they they know that they or their trustworthy or something, they have some kind of filter system there. But the ones that I really knew they were going to call them and see what's up and then if they're happy with that, in the same for people who request help. And then and then and then once they're matched up. Then they either do a phone call like a joint phone call.

Or some kind of communication there, but it still is manual work because you unless you have you do have a database where at least you can trust all the volunteers because they're already in your database and you knew them. You're gonna have to do some sort of checking in order to prevent yeah, abusing. One or the other way you have to do the checking. You have to do, but it's, but it's easier to to let the machine do the matching an then algorithm to do matching an, then you to check up. It's much easier than two. OK, exactly so. The idea was that and I said I think I mentioned that in the in the introduction and in the main Hall. An it's not even. I mean you're not done when you've connected those people right? Because you need to be able to. Be available to them if they want to complain, or if it doesn't work or also just to tell them you know we're done. Because if somebody says I can take five people and help them if they don't tell you that they're done helping somebody. They're not going to be reassigned anymore, right? Yeah, that's right, so it's still. It's still. It's still going to be some manual work, and I'm not sure there's any way of getting rid of that. But the problem with the matching grows exponentially right? If you have 10 people with like say 10 requests and 10 people providing it's, it's pretty easy. But even like when you go up to 3040, it becomes really tedious to figure out what's the best. Yeah, this is the best match up here and that's so the idea of the extension was to provide this algorithm to be sure that you can do a good job at like matching these people. And to provide the infrastructure as in like the fields in the reports and everything you need to sort of do the manual tasks that best are still going to have to be there. Yeah, thank you this is. This is very refreshing thing. And he deals with the sensitive stuff. Really sensitive stuff so. Yeah no, and you have to be always aware that these are people that use in your name. Sending to somebody else is home, of course, right? So you have to be late. You have to be sure that it's that it's and I know right around my neighborhood. I'm sure 99% of people are very, very cold hearted and. Just want to help. But there's always like the odd idiot that the rules for the rest of us. Yeah, always you have one.

So that's the reason why we have to be aware more and and to be very careful. Yeah, thank you.

I don't know, do you want me to? I think we were going through the. Settings, maybe we could just body did you wanna if anyone wants to see something else let me know. And. So as I said, I think the settings like these weights are to sort of control what the Metra does. So if you get the feeling that is not really balanced well, you could just sort of play with the weights. And as I said, what the metric does is it just takes all the possible all the possible options because. The options are limited. Buy a maximum distance. So not all matches will work all the time. So.

So it's just looking at sort of a limited set of possible connections, and all of those are then going to be rated based on the stuff you see here.

And the rest of the form, even though it looks complicated. Basically just saying just a way of of customizing the request form, right? Do you want to ask for the prefix or not? If if you don't, there be default value and it's pretty much the same for all of the fields. That's why it looks kind of messy, but it's basically just saying these. These are all the fields that there are in the in the forms and what values should they happen? Should they be there or not? And there's some default values, for example. If you don't want to bother help us to tell you how many help, how many people they want to be helping, then you just turn it off and set it to one and then everybody is just matched to one other person for example. Is the same way distance? Can you? Is it integrated in the webform Drupal, Webform or you have to use it like CVC RAM? And So what we did, I think the one of the people that were using it, with their using webforms. And there is an extension to submit web forms to a CCM API. An basically just says like when you submit the webform, all it does is like takes all the values from the web form and pushes it into a CVC API. And if you set up the web form in the right way and install that extension to submit it to severe, then it's just going to end up in the system in the same way as as these built-in forms do OK. It also has the advantage that. And you don't have to be in the same machine, right? For example, your CV. Somewhere else and then you have a public website. With a bunch of nice forms on it and it could just transfer the. The submission all the way over to the other machine with service reminded. Nice.

And. Yeah. Anymore. Questions, I'm wondering if there's anything else to look at. Maybe? Let me have a look at Nick's dashboard. Again, it's always handy to get an overview.

It's pretty much is pretty much it I guess. But one question.

I wonder how easy to match on other criteria than the local localization.

Can we match without geographic aspect just on? So yes, so. Right now it would always. So if somebody isn't geocoded it would flag it as an issue. So that wouldn't work. But we could probably take this out. It shouldn't be. It shouldn't be too much of an issue to take it out and then basically what you can do is just set the weight of matching by location to 0 and then it's not going to be considered anymore. What you could also do is basically just. Set every like geocode everyone in your database with the same coordinates or something to go around it, but it might be a good idea to add like an option or something saying we don't want to do coding. We don't want that. Does that make sense to you? Yes, Sir.

I guess also that the criteria would be comes from option of a relation. Is it the key for matching?

Is it there? What key? Option. Yeah. Relation is this the key for matching?

So yes.

Anne. So you're talking about these right these options. Yes, so obviously you have to have. In order to match, you have to have at least one of the same kind, right? Let's say you offer shopping, the other one shopping. Then this is a possible match. The question is, what happens if there's an overlap, right? Let's say somebody's hand once all three. Like something like the dog can pick up the parcels and one that somebody offers only shopping and another person offers shopping, walking the dog so that one would be preferred over the one. But that only offers one of them. You know, I mean, so it's a it's it's a measure of how good the match is is that the overlap of matching basically.

Not matching types. So to add other option other criteria. Cannot be done easily on the fly. Yeah yeah, you just click at another option, say. That's it.

This isn't this is a Civi option value. You can create as many as you want. However, I think it might be getting getting this messy if you you know create a million options there, But yeah, sure you can create any any amount you want. As I said before, it's a good idea to have these options down before you start using it because it gets messy. If you already assign people to. To do stuff that later, you're going to take out. You know what I mean? Yeah, it's a good idea to maybe you can add stuff, but like taking stuff away that's already in use, it's obviously not not a very good idea. Mission on the same direction is can we use tags for quietly for matching? And tags for matching.

Give an example of this. I'm not quite sure I know what you mean.

To to have more.

More details you know.

Let's say shipping in to be shipping to extend shopping to local shop would be A tag to larger shop supermarkets.

Quick stand with him. I don't think you could do that with tags, because what what's going to be created is the relationship, and you can't really attack the relationship that well. So what I would do is I would just create different ways of shopping. I mean, there's no reason you can't have. Shopping.

Large and shopping.

Or something?

OK. So that should work. I it's not exactly the same right? Because now it's going to be difficult for somebody to say I want. Maybe both of them. Although they can just you. Just take both of them I guess.

Understand. OK. They take him.

Yep, cool. Yes, thank you. Maybe there's something that needs some explanation as well, because the. The relationship created has three built-in status is right. A sign says that the matter has sort of proposed proposing that we could also rename that were proposed or something that may be better.

And then we have confirmed communicate it so that it makes sense to have a step in between. Sometimes people confirm it. But then there's another step of actually sort of connecting them, and that's what I meant by communicated and cancelled. It could also be like ended. It's another one. But so these three, at least for you, should basically leave alone because they are important for the month for the measure. At least proposed is. This one is is basically means that the matter can sort of reassign them whenever they want, right? Let's say you have a match, but you run the Metro Day later, and there's a lot better combination, so it's going to basically re via positive redo the matching in a more efficient way. So as long as it's in this status and it has to be this one, then the matching knows OK this. This is something that students will change. And then for the Cancelled 1 means OK if the help request is still there and there is a relationship, but it's been cancelled then this person is still in need. Right and needs to be reassigned. So that means that. If there's a relationship, obviously if there's no relationship, then this is just going to go ahead and try and match it. But if there's a relationship and it's in status one or four, it means it can sort of redo it. Right? But you can create any other amount of status in between for yourself to be able to keep track of what's going on here. Maybe you have an extra status called ask for feedback like a week later or something like that, and then you can have like a sort of kind of report saying give me all of the relationships that have started in the last week and our instinct is. Feedback and then you know you have a list of people you have to call and ask for their feedback or something like that.

It's a great use of the relationship.

I think so, yeah, and it. I mean, that's that's the whole idea. It's supposed to be a relationship, right? And I? I mean, I haven't personally called sort of talk to the people that were actually sort of sort of in those systems, because there was another organization. But I've heard that there's like it's. It's a really. Human experience right to help somebody else and and that my third story software there. You know it's still hanging out, even though now the lockdown is lifted and it's kind of nice.

Playback speed: 1
  • Presenter
    Björn Enders – Systopia –
  • Filmed in
    Cologne, Germany
  • Filmed on
    25 June 2020
  • Length
    42:38 (mm:ss)
  • License
    CC-BY (Attribution)

This is a test project – the transcript was auto-generated with some human clean-up, so please ignore any typos.