Hi @moconnor1,
I haven’t tried setting this up as a full “workflow” myself, but based on some testing, and experience in ETM I think something like this might be what you’re looking for:
This allows users to see the Building and Room fields on a logging forms.
The Building field can then have a lookupFilter
expression that limits the available buildings to a list of your choosing (Creating Lookup Filters for System Fields). For example, you could limit it to:
- The building associated with the contact user, or
- Any building under the same site as the one on the contact user.
To allow users to request modifications to their contact user’s location, you could provide a support form—something like:
Self-Service Help: Home Page Help – How do I check the details of my user account?
There is also a system parameter that allows contact users to request changes directly from a different service offering. However, it doesn’t seem to extend to include these location fields. So unless I’m mistaken, something additional needs to be enabled for this to work.
If not, users will need to request changes through the regular service offering, and you’ll have to direct them accordingly.
This allows users to request changes to a contact user from the right sidebar.
However, the additional fields enabled by the previous system parameter don’t seem to be included in this sidebar request—at least based on my testing in 24R2.
That said if i were to approac this issue myself I would end up using a dedicated contact user modification service offering with the building/room fields. This could then be leveraged using ETM to automate the maintenance of keeping users locations up to date.
You should be able to set up an Assyst Destination that listens for new events and, using a suitably formed Message Delivery Expression, limit the destination to only trigger if:
- The event is logged via the self-service portal,
- The service offering matches the intended one,
- Other qualifying criteria are met (e.g. the request comes from the user it affects).
Once a destination message is triggered, a Contact User Update ETM Channel can be configured to listen for it and respond by performing the requested changes—before closing, or sending the event for manual controll.
Hope some of this might be of use 
I’d be happy to answer any questions and would very much like to hear how you end up solving your issue.