Assume you would like to send the email address of the incident.caller to the other side. incident.caller is a reference and looks like
[display_value:Taylor Vreeland, link:https://dev78307.service-now.com/api/now/v2/table/sys_user/46bac3d6a9fe1981005f299d979b8869]
To extract the user you can use the getTableByLink function
if(!(incident.caller_id instanceof String)){ replica.callerMail = nodeHelper.getTableByLink(incident.caller_id?.link)?.email }
As a side note that the user table has much more fields
[ default_perspective: first_name:Fred city: name:Fred Luddy mobile_phone: sys_mod_count:10 introduction: source: internal_integration_user:false avatar: location:[...] latitude: photo: zip: email:fred.luddy@example.com sys_updated_on:2020-04-03 20:40:35 sys_id:5137153cc611227c000bbd1bd8cd2005 time_sheet_policy: state: vip:false calendar_integration:1 cost_center:[...] agent_status: notification:2 user_password:... home_phone: preferred_language:en country: sys_created_by:GUEST building: sys_created_on:2004-05-02 00:00:00 longitude: sys_domain:[...] geolocation_tracked:false on_schedule: company:[...] department:[...] last_position_update: last_name:Luddy locked_out:false roles:admin, itil middle_name: manager: schedule: ldap_server: last_login: street: title:Programmer date_format: employee_number: web_service_access_only:false sys_domain_path:/ time_format: sys_class_name:sys_user sys_updated_by:developer.program@snc password_needs_reset:false user_name:fred.luddy failed_attempts: time_zone:US/Pacific enable_multifactor_authn:false phone: last_login_time: gender:Male sys_tags: active:true].