Common models

The following is an example of a Phone Bank Event Type. Events of this type have the following rules:

  • Events can have more than one Shift
  • A Location isn’t required, but an Event can have more than one Location
  • Can have the Host and/or Phone Banker Roles
  • Each Role can have fulfillment Goals and minimum requirements but cannot have maximum capacity requirements
  • Signups to Events of this type can only have one of the following Statuses: Invited, Scheduled, Declined, Confirmed, Completed, or Walk In
  • Events are displayed in purple (#C6AFDA) in the VAN UI
  • When creating Events in the VAN UI, Campaign HQ is offered as the default Location
  • When creating Events in the VAN UI, users can create Repeatable Events
{
  "eventTypeId": 143856,
  "name": "Phone Bank",
  "canHaveMultipleShifts": true,
  "canHaveMultipleLocations": true,
  "canHaveGoals": true,
  "canHaveRoleMaximums": false,
  "canHaveRoleMinimums": true,
  "canBeRepeatable": true,
  "roles": [
    {
      "roleId": 111687,
      "name": "Host",
      "isEventLead": true
    },
    {
      "roleId": 111689,
      "name": "Phone Banker",
      "isEventLead": false
    }
  ],
  "statuses": [
    {
      "statusId": 4,
      "name": "Invited"
    },
    {
      "statusId": 1,
      "name": "Scheduled"
    },
    {
      "statusId": 3,
      "name": "Declined"
    },
    {
      "statusId": 11,
      "name": "Confirmed"
    },
    {
      "statusId": 2,
      "name": "Completed"
    },
    {
      "statusId": 15,
      "name": "Walk In"
    }
  ],
  "color": "#C6AFDA",
  "isAtLeastOneLocationRequired": false,
  "defaultLocation": {
    "locationId": 272,
    "name": "Campaign HQ",
    "displayName": "Campaign HQ, 48 Grove St Somerville, MA 02144-2500 ",
    "address": {
      "addressId": null,
      "addressLine1": "48 Grove St",
      "addressLine2": null,
      "addressLine3": null,
      "city": "Somerville",
      "stateOrProvince": "MA",
      "zipOrPostalCode": "02144",
      "geoLocation": {
        "lon": -71.120121,
        "lat": 42.396363
      },
      "countryCode": "US",
      "preview": "48 Grove St \r\nSomerville, MA 02144-2500 ",
      "type": null,
      "isPreferred": null
    },
    "id": 272,
    "notes": null,
    "codes": null
  },
  "isSharedWithMasterCommitteeByDefault": false,
  "isSharedWithChildCommitteesByDefault": true
}

Event Type

Each Event Type has the following properties:

PropertyTypeDescription
eventTypeIdintUnique identifier for an Event Type in this context
namestringA name for the Event Type, no longer than 20 characters
canHaveMultipleShiftsboolIndicates that Events of this Event Type may have multiple Shifts
canHaveMultipleLocationsboolIndicates that Events of this Event Type may have multiple Locations
canHaveGoalsboolIndicates that Events of this Event Type may have goals for Roles (e.g., how many people would you like to recruit for a role?)
canHaveRoleMaximumsboolIndicates that Roles of Events of this Event Type may have a maximum number of attendees (NB: this is a suggested maximum and is not enforced when creating a Signup)
canHaveRoleMinimumsboolIndicates that Roles of Events of this Event Type may have a minimum number of attendees
canBeRepeatableboolIndicates that Events of this Event Type may repeat over multiple days when created in the VAN UI
rolesarrayAn array of one or more Role objects; these are the set of possible roles for Events of this Event Type
statusesarrayAn array of one or more Status objects; these are the set of possible Event Statuses for Events of this Event Type
colorstringOptional; an HTML hexadecimal color code used to distinguish Events of this Event Type in the VAN UI
isAtLeastOneLocationRequiredboolIndicates that Events of this Event Type must have at least one Location
defaultLocationobjectOptional; if specified, the default Location for Events of this Event Type when created in the VAN UI
isSharedWithMasterCommitteeByDefaultboolIndicates that Events of this Event Type, if created in a child committee, are automatically shared with the parent (master) committee
isSharedWithChildCommitteesByDefaultboolIndicates that Events of this Event Type, if created in a parent (master) committee, are automatically shared with all of its child committees