Skip to content

createContact

createContact creates a new Contact party — a person or organization that UTA interacts with but does not represent. Contacts are often business contacts like buyers, managers, attorneys, or venue operators.

Required Fields

FieldTypeNotes
names[NameInput!]At least one name is required
typePartyTypePERSON or ORGANIZATION

Contact is the most flexible of the three party create mutations — it has only two required fields, making it straightforward to create a minimal record and enrich it later.


Basic Example

graphql
mutation CreateContact {
  createContact(contactCreateInput: {
    names: [
      {
        givenName: "Maria"
        familyName: "Gonzalez"
        name: "Maria Gonzalez"
        type: FORMAL
      }
    ]
    type: PERSON
  }) {
    id
    names {
      name
    }
  }
}

Creating a Contact with Communication Details

graphql
mutation CreateContactWithDetails {
  createContact(contactCreateInput: {
    names: [
      {
        givenName: "Maria"
        familyName: "Gonzalez"
        name: "Maria Gonzalez"
        type: FORMAL
      }
    ]
    type: PERSON
    emails: [
      {
        email: "maria@example.com"
        primary: true
      }
    ]
    phones: [
      {
        countryCode: "1"
        number: "3105550199"
        primary: true
      }
    ]
    addresses: [
      {
        country: US
        locality: "Los Angeles"
        region: "CA"
        postalCode: "90001"
      }
    ]
  }) {
    id
    names {
      name
    }
    emails {
      email
    }
  }
}

Associating a Contact with Clients

Contacts can be linked to one or more existing clients using clientIds. This draws an inbound relationship from the client to the contact.

You will need the IDs of the existing client parties. These can be retrieved by querying for parties with an active Client role.

graphql
mutation CreateContactLinkedToClient {
  createContact(contactCreateInput: {
    names: [
      {
        givenName: "Maria"
        familyName: "Gonzalez"
        name: "Maria Gonzalez"
        type: FORMAL
      }
    ]
    type: PERSON
    emails: [
      {
        email: "maria@example.com"
        primary: true
      }
    ]
    clientIds: [
      { id: "<client-party-id>" }
    ]
  }) {
    id
    names {
      name
    }
  }
}

Organization Contact Example

When type is ORGANIZATION, use employsAppointments instead of appointments for employee linkages:

graphql
mutation CreateContactOrg {
  createContact(contactCreateInput: {
    names: [
      {
        name: "Acme Talent Management"
        type: FORMAL
      }
    ]
    type: ORGANIZATION
    emails: [
      {
        email: "info@acmetalent.example.com"
        primary: true
      }
    ]
    onlineAddresses: [
      {
        url: "https://acmetalent.example.com"
        type: WEBSITE
      }
    ]
  }) {
    id
    names {
      name
    }
  }
}

Optional Fields Reference

FieldTypeNotes
idUUIDOverride the auto-generated ID
verifiedBooleanMark record as verified (default: false)
financialBooleanFlag as a financial record (default: false)
noMatsBooleanSuppress materials requests (default: false)
friendlyNameStringInformal display name
noteStringInternal note
addresses[AddressInput!]Physical addresses
emails[EmailInput!]Email addresses
phones[PhoneInput!]Phone numbers
onlineAddresses[OnlineAddressInput!]Websites, social handles
appointments[AppointmentInput!]PERSON type only — agent/employee appointments
employsAppointments[EmploysAppointmentInput!]ORGANIZATION type only — employee appointments
personalInfoPersonalInfoInputDOB, gender, ethnicity, pronouns, etc.
biographies[BiographyInput!]Bio text blocks
legalNotices[LegalNoticeInput!]Legal notices
externalRecords[ExternalRecordInput!]Third-party system IDs
assets[AssetInput!]Associated media assets
clientIds[ConnectableInput!]Existing clients this contact is linked to
clientExternalAssignmentIds[ConnectableInput!]External assignment IDs
involvedInAccountFlagIds[ConnectableInput!]Account flags
operatesEventSeriesIds[ConnectableInput!]Event series this contact operates
operatesVenueIds[ConnectableInput!]Venues this contact operates
languageIds[ConnectableInput!]Spoken languages
participantGroupMemberships[ParticipantGroupMembershipCreateInput!]Participant group memberships

No Draft Mode

Unlike createClient and createTalent, createContact does not support a draft flag. Contacts are created as fully active records.

Confidential. For internal use only.