Skip to content

createClient

createClient creates a new Client party in the authoritative data graph. A Client is a party — person or organization — that UTA actively represents.

Required Fields

FieldTypeNotes
names[NameInput!]At least one name is required
typePartyTypePERSON or ORGANIZATION
representations[RepresentationInput!]At least one representation is required; rep area IDs must be unique

Getting Reference IDs

Several fields on createClient require IDs of existing nodes. Use getAll queries to discover them.

Rep Area IDs

Every representation requires a repAreaId. Fetch the available rep areas before creating a client:

graphql
query GetAllRepAreas {
  getAllRepAreas {
    items {
      id
      name
    }
  }
}

Use the returned id values as repAreaId.id in your representation inputs.

Other Common Reference Data

FieldQuery to use
languageIdsgetAllLanguages
genreIdsgetAllGenres
interestIdsgetAllInterests
skillIdsgetAllSkills
rosterIdsgetAllRosters
musicGenreIdsgetAllMusicGenres
mediumIdsgetAllMedia
playableAgeIdsgetAllPlayableAges
vocationIdsgetAllVocations

All of these queries return objects with id and name fields. Pass the id values in { id: "..." } connectable inputs.


Basic Example

A minimal PERSON client with a single representation:

graphql
mutation CreateClient {
  createClient(clientCreateInput: {
    names: [
      {
        givenName: "Jane"
        familyName: "Smith"
        name: "Jane Smith"
        type: FORMAL
      }
    ]
    type: PERSON
    representations: [
      {
        repAreaId: { id: "<rep-area-id>" }
        geoArea: {}
      }
    ]
  }) {
    id
    names {
      name
    }
  }
}

Geo Areas

geoArea: {} represents a worldwide geographic scope. To restrict to specific countries, pass countries: [{ id: "<country-id>" }] inside the geoArea object.


Creating a Client as a Draft

Set draft: true to create the client in DRAFT publish status. Draft clients are visible within the system but are not considered fully published records. They can be promoted to published status after review.

graphql
mutation CreateClientDraft {
  createClient(clientCreateInput: {
    names: [
      {
        givenName: "Jane"
        familyName: "Smith"
        name: "Jane Smith"
        type: FORMAL
      }
    ]
    type: PERSON
    draft: true
    representations: [
      {
        repAreaId: { id: "<rep-area-id>" }
        geoArea: {}
      }
    ]
  }) {
    id
    names {
      name
    }
  }
}

Representation Status in createClient

Representations created via createClient are automatically assigned SIGNED status. If you need to start a representation in PURSUING or HOLD status, create the talent record first using createTalent, then advance the status using updateRepresentationStatus.


Organization Client Example

When type is ORGANIZATION, you can include employsAppointments (instead of appointments) and connect members and associated companies:

graphql
mutation CreateClientOrg {
  createClient(clientCreateInput: {
    names: [
      {
        name: "Acme Productions"
        type: FORMAL
      }
    ]
    type: ORGANIZATION
    representations: [
      {
        repAreaId: { id: "<rep-area-id>" }
        geoArea: {}
        assignments: [
          {
            employeeId: { id: "<agent-employee-id>" }
            teamRole: AGENT_TEAM
            geoAreas: [{}]
          }
        ]
      }
    ]
    emails: [
      {
        email: "info@acme.example.com"
        primary: true
      }
    ]
    phones: [
      {
        countryCode: "1"
        number: "3105550100"
        primary: true
      }
    ]
  }) {
    id
    names {
      name
    }
  }
}

Optional Fields Reference

The table below covers the most commonly used optional fields. For the full input type definition, see the GraphQL Reference.

FieldTypeNotes
idUUIDOverride the auto-generated ID
draftBooleanCreate in DRAFT publish status (default: false)
verifiedBooleanMark record as verified (default: false)
financialBooleanFlag as a financial record (default: false)
noMatsBooleanSuppress materials requests (default: false)
roleSubTypeRoleSubTypeROSTERED, PRIVATE, PROTECTED, etc.
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.
personalAppearancePersonalAppearanceInputHeight, hair color, eye color, etc.
biographies[BiographyInput!]Bio text blocks
legalNotices[LegalNoticeInput!]Legal notices
externalRecords[ExternalRecordInput!]Third-party system IDs
languageIds[ConnectableInput!]Spoken languages
genreIds[ConnectableInput!]Genres
skillIds[ConnectableInput!]Skills
rosterIds[ConnectableInput!]Internal rosters
vocationIds[ConnectableInput!]Vocations
clientCompanyIds[ConnectableInputForClientCompany!]Loan-out / production companies (with subType: LOANOUT or PRODUCTION_COMPANY)
memberIds[ConnectableInputForMember!]ORGANIZATION only — member parties
groupIds[ConnectableInputForMember!]ORGANIZATION only — group memberships
cameFromAgencyIds[ConnectableInput!]Prior agencies
departedToAgencyIds[ConnectableInput!]Destination agencies

Confidential. For internal use only.