Breaking changes
This page lists past and planned changes to the EventsAir GraphQL API that may impact integrated applications. While we endeavour to maintain backward compatibility as the API evolves, scenarios may arise that require a breaking change.
This page is intended to provide advanced notice of breaking changes so that developers can plan ahead to test their integrated applications and make any necessary changes.
Planned breaking changes
Future
The following changes are planned for release at some point in the future, but have not been scheduled yet. Typically, these are fields that have been deprecated in the GraphQL API. We will update this page with details of when these changes will be completed.
- The addressinput field on input typesUpdateContactDetailsInput,UpdateContactStoreContactDetailsInput,UpdateCeContactStoreContactDetailsInputandUpdateMembershipContactStoreContactDetailsInputhas been deprecated and will be removed in a future release. Please use the newprimaryAddressfield instead.
- The field userAccessRightson object typesEvent,ContactStore,CeContactStoreandMembershipContactStorehas been deprecated and will be removed in a future release. Please use the newaccessRightsfield instead.
- The attachedDocumentIdsinput field on input typeCreatePresentationInputhas been deprecated and will be removed in a future release. Please use the newattachedDocumentsfield instead.
- The attachedDocumentIdsinput field on input typeUpdatePresentationInputhas been deprecated and will be removed in a future release. Please use the newattachedDocumentsfield instead.
- The inputargument on object typeFunctionRegistrationhas been deprecated and will be removed in a future release. Please use the newfilterInputargument instead.
- The inputargument on object typeRegistrationhas been deprecated and will be removed in a future release. Please use the newfilterInputargument instead.
- The field referenceon object typeEventsAirPaymentsPaymentDetailshas been deprecated and will be removed in a future release. Please use the newpaymentIdfield instead.
- The field locationson object typePresentationSetuphas been deprecated and will be removed in a future release. Please use the newsetup.locationsfield instead.
- The field isCompletedon object typeSponsorshipPackageItemhas been deprecated and will be removed in a future release.
- The field nameon object typeSponsorshipPackageItemhas been deprecated and will be removed in a future release. Please use the newinclusion.namefield instead.
- The field valueon object typeSponsorshipPackageItemhas been deprecated and will be removed in a future release. Please use the newinclusion.valuefield instead.
- The field contactIdon object typeCreatePresentationAuthorInputhas been deprecated and will be removed in a future release. Please use the newcontactAuthorfield instead.
- The field contactIdon object typeUpdatePresentationAuthorInputhas been deprecated and will be removed in a future release. Please use the newcontactAuthorfield instead.
Past breaking changes
The following sections list past releases of changes that may have impacted integrated applications.
2025-04-30
- The type for field SessionBlock.datewill be changedLocalDate!toLocalDate
- The type for field SessionBlock.startwill be changedLocalTime!toLocalTime
- The type for field SessionBlock.endwill be changedLocalTime!toLocalTime
2025-02-25
- 
Fix an issue with createContact that allows a Contact to be created when the ID of a Contact Store is passed instead of an Event. Please use the correct mutations for Contact Stores. If you are working with a Contact Store you will need to replace the existing code of: 
mutation CreateContact {
  createContact(
    input: {
      firstName: "John"
      lastName: "Smith"
      organizationName: "ACME Corporation"
      primaryEmail: "jsmith@acme.com"
      eventId: "d714ba51-34df-426f-a2d5-6d6ab41e0138"
    }
  ) {
    contact {
      internalNumber
      id
    }
  }
}
With:
mutation CreateContactStoreContact {
  createContactStoreContact(
    input: {
      firstName: "John"
      lastName: "Smith"
      organizationName: "ACME Corporation"
      primaryEmail: "jsmith@acme.com"
      contactStoreId: "d714ba51-34df-426f-a2d5-6d6ab41e0138"
    }
  ) {
    contact {
      internalNumber
      id
    }
  }
}
- 
Fix an issue with updateContactDetails that allows a Contact to be updated when the ID of a Contact Store is passed instead of an Event. Please use the correct mutations for Contact Stores If you are working with a Contact Store you will need to replace the existing code of: 
mutation UpdateContactDetails {
  updateContactDetails(
    input: {
      contactId: "2D18FF0E-8D8A-4B31-A333-56EAAD456FAA"
      eventId: "d714ba51-34df-426f-a2d5-6d6ab41e0138"
      jobTitle: "VP Marketing"
    }
  ) {
    contact {
      internalNumber
      id
      firstName
      lastName
      jobTitle
      organizationName
    }
  }
}
With:
mutation UpdateContactStoreContactDetails {
  updateContactStoreContactDetails(
    input: {
      contactId: "2D18FF0E-8D8A-4B31-A333-56EAAD456FAA"
      contactStoreId: "d714ba51-34df-426f-a2d5-6d6ab41e0138"
      jobTitle: "VP Marketing"
    }
  ) {
    contact {
      internalNumber
      id
      firstName
      lastName
      jobTitle
      organizationName
    }
  }
}
- 
Fix an issue with updateContactBilling that allows a Contact to be updated when the ID of a Contact Store is passed instead of an Event. Please use the correct mutations for Contact Stores. If you are working with a Contact Store you will need to replace the existing code of: 
mutation UpdateContactBilling {
  updateContactBilling(
    input: {
      contactId: "2D18FF0E-8D8A-4B31-A333-56EAAD456FAA"
      eventId: "d714ba51-34df-426f-a2d5-6d6ab41e0138"
      firstName: "Jane"
      lastName: "White"
      organizationName: "ACME Corporation"
      email: "jwhite@acme.com"
    }
  ) {
    contact {
      internalNumber
      id
      firstName
      lastName
      jobTitle
      organizationName
      billing {
        id
        firstName
        lastName
        organizationName
        email
      }
    }
  }
}
With:
mutation UpdateContactStoreContactBilling {
  updateContactStoreContactBilling(
    input: {
      contactId: "2D18FF0E-8D8A-4B31-A333-56EAAD456FAA"
      contactStoreId: "d714ba51-34df-426f-a2d5-6d6ab41e0138"
      firstName: "Jane"
      lastName: "White"
      organizationName: "ACME Corporation"
      email: "jwhite@acme.com"
    }
  ) {
    contact {
      internalNumber
      id
      firstName
      lastName
      jobTitle
      organizationName
      billing {
        id
        firstName
        lastName
        organizationName
        email
      }
    }
  }
}
- Field CeContactStore.functionRegistrationswill change type from[FunctionRegistration!]!to[CeContactStoreFunctionRegistration!]!.-
- Field MembershipContactStore.functionRegistrationswill change type from[FunctionRegistration!]!to[MembershipContactStoreFunctionRegistration!]!.
- Field MembershipContactStoreContact.functionRegistrationswill change type from[FunctionRegistration!]!to[MembershipContactStoreFunctionRegistration!]!.
2024-06-07
The following changes are planned for release on 2024-06-05. If your integrated applications use features in this list, we recommend making changes now to avoid any future incompatibility.
- The type for field InvoiceLineItem.payableItemwill be changedPayableItem!toPayableItem
- The type for field PaymentLineItem.payableItemwill be changedPayableItem!toPayableItem
2024-02-15
- The limitargument used in various queries to limit the number of items returned will be changed fromPositiveInttoPaginationLimit. This will set a maximum value of2,000forlimit.
- Various objects will be renamed:
- FindEventContactsInputwill be renamed to- FindContactsInput.
- EventOfficewill be renamed to- Office.
- EventTextMessagingServicewill be renamed to- TextMessagingService.
- EventEmailMessagingServicewill be renamed to- EmailMessagingService.
- EventOnlinePaymentServiceswill be renamed to- OnlinePaymentServices.
- EventUserAccessRightswill be renamed to- UserAccessRights.
- EventUserwill be renamed to- EventsAirUser.
- EventInvoiceConfigurationwill be renamed to- InvoiceConfiguration.
 
- The input type FindEventContactsInputused in the queryEvent.contactswill be replaced withContactSearchFilterInputoffering richer ways to filter contacts. This will also remove related typesEventContactsWhere,EventContactsOrderByandEventContactOrderByField.
- The offsetargument used inEvent.contactswill need to be a multiple of thelimitargument, or an error will occur.
- The type used for Contact.websitewill be changed fromURLtoStringto cater for instances where the field in EventsAir is not a well-formed URL. This will also be changed for input types used in contact mutations:CreateContactInput.websiteandUpdateContactDetailsInput.websitewill be changed fromURLtoString.