Hi @Beth, that would be a change to CHT Core, which could be time consuming and complicated, but your suggestion gives me another idea!
How would you put the UUID for each person in RapidPro? I imagine that would be by adding a custom field to each contact. If you can do that for each user, then presumably you could add their phone number instead, and use it from the RapidPro Flow so that the numbers would match in the CHT.
Create the custom field
-
Add a custom field by going to the Contacts page, then Manage Fields button.
-
You can then select Create Field, and create a phone
text field. Using “phone” because “tel” is a reserved word.
Add number to each contact
You’ll need to add each contact’s phone number to their custom field. I am not sure how you’ll know to match the phone number to the contacts, but that would be the same with UUID, so guessing you have a way.
For each contact:
-
On contact’s page, open the menu and select Custom Fields.
-
Select phone
and add the number and save.
Set up flow
You’ll also need to update the RapidPro Flow. If you are using the RapidProFlow as suggested in the CHT docs, instead of the suggested flow code:
@(json(object(
"id", run.uuid,
"from", replace(urns.tel,"tel:+", "+"),
"content", input.text
)))
…you’d replace the flow’s phone number urns.tel
with the contact’s new custom phone
field that you added, giving you:
@(json(object(
"id", run.uuid,
"from", contact.fields.phone,
"content", input.text
)))
Note that you don’t need the replace
bit if you format the phone number the same way as it is in the CHT, which is +
followed by the country code and complete phone number.
This approach should work if you know how to associate the phone numbers to the contacts in RapidPro, but I’d suggest testing with a couple numbers first to avoid the effort of updating the numbers unnecessarily.
Hope this helps, and let us know how you fare with it!