The PDI integration syncs data from the Mobilize API to the PDI API for an organization. This document describes how the Mobilize resources and fields are mapped to the PDI resources fields.
For each shift created in Mobilize, a new Location and Event will be created in PDI. Shifts are also known as Timeslots in the Mobilize API.
A Location is created. If the location already exists based on matching Mobilize latitude and longitude, the location is updated in PDI.
Location Name is set to the Mobilize
venue
name. If there is no Venue in Mobilize, it is set to the complete address. If the Event location is private, it is set to "Private Venue". It is set to "Virtual" if the event is a Mobilize virtual event.Location Address is set to a string of the complete Mobilize address including the
address_lines
,locality
,region
, andpostal_code
. It is blank if the address is private.
An Event is created in PDI for each Timeslot (Shift)
The event is created in a PDI Calendar. The Calendar to Event Type mapping is defined in Mobilize as described in this article. Please submit a request to Mobilize support if you need to update these mappings.
The following PDI Event fields and their associated Mobilize API field.
Name:
title
Description:
description
Website:
browser_url
Start Date:
timeslot_start_date
End Date Time UTC:
timeslot_end_date
Phone:
contact["phone_number"]
Contact Email:
contact["email_address"]
The Event Category Id is set to 0 as a placeholder because creating new categories has been deprecated in the PDI UI, but this field is required.
For each signup to a shift (an Attendance in the Mobilize API), the following is created or updated in PDI:
A Contact is created or updated. We update contacts if the Mobilize email address matches an existing contact email in PDI.
First Name
person[given_name]
Last Name:
person[family_name]
Additional contact information is also created or updated:
Zip Code:
person["postal_addresses"][0]["postal_code"]
from the Mobilize Attendance
Email Address:
person["email_addresses"][0]["address"]
from the Mobilize Attendance if it is available. If it is masked (such as in a cross-firewall promotion), we set it tomasked-email+<internal id number>@mobilize2020.org
Is Primary: Set to
true
Phone Number:
person["phone_numbers"][0]["number"]
Phone Type: Set to
Direct
Is Primary: Set to
true
An Invitation is created or updated
Contact ID: The PDI Contact ID associated with the invitation.
RSVP Status: 'Yes' unless the Mobilize Attendance
status
equalsCANCELLED
. If it is, this is set to 'Cancelled'.Is Confirmed:
true
if the Mobilize Attendancestatus
equalsCONFIRMED
, otherwise this isfalse
.attended
: This field's value corresponds with Mobilize attendance statues of "Completed" and "No-Show". Completed istrue
and No-Show isfalse
. If the Mobilize API returns a null value, this defaults tofalse
in PDI.