Skip to content

createTalent

createTalent creates a new Talent party — a person or organization that UTA is actively pursuing for representation, or tracking in a pre-signing stage. Unlike a Client, a Talent record represents a party that has not yet signed with UTA.

Required Fields

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

Getting Reference IDs

Vocation IDs

Every talent record requires at least one vocationId. Fetch the available vocations before creating:

graphql
query GetAllVocations {
  getAllVocations {
    items {
      id
      name
    }
  }
}

Pass the id values as { id: "..." } in the vocationIds array.

Rep Area IDs (for representations)

If you're adding pursuit-stage representations at creation time, you'll also need rep area IDs:

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

Other Common Reference Data

FieldQuery to use
languageIdsgetAllLanguages
genreIdsgetAllGenres
interestIdsgetAllInterests
skillIdsgetAllSkills
rosterIdsgetAllRosters
musicGenreIdsgetAllMusicGenres
mediumIdsgetAllMedia
playableAgeIdsgetAllPlayableAges

Basic Example

A minimal talent record with one vocation:

graphql
mutation CreateTalent {
  createTalent(talentCreateInput: {
    names: [
      {
        givenName: "Alex"
        familyName: "Johnson"
        name: "Alex Johnson"
        type: FORMAL
      }
    ]
    type: PERSON
    vocationIds: [
      { id: "<vocation-id>" }
    ]
  }) {
    id
    names {
      name
    }
  }
}

Creating Talent as a Draft

Set draft: true to create the talent record in DRAFT publish status. Draft records are visible within the system but are not considered fully published.

graphql
mutation CreateTalentDraft {
  createTalent(talentCreateInput: {
    names: [
      {
        givenName: "Alex"
        familyName: "Johnson"
        name: "Alex Johnson"
        type: FORMAL
      }
    ]
    type: PERSON
    draft: true
    vocationIds: [
      { id: "<vocation-id>" }
    ]
  }) {
    id
    names {
      name
    }
  }
}

Creating Talent with Pursuit-Stage Representations

You can attach representations to a talent record at creation time. These representations must be in PURSUING or HOLD status — SIGNED and DEPARTED are not allowed during initial creation.

Representation Limits

A single createTalent call accepts a maximum of 50 representations. To advance a representation to SIGNED status after the talent converts to a client, use updateRepresentationStatus.

graphql
mutation CreateTalentWithRep {
  createTalent(talentCreateInput: {
    names: [
      {
        givenName: "Alex"
        familyName: "Johnson"
        name: "Alex Johnson"
        type: FORMAL
      }
    ]
    type: PERSON
    vocationIds: [
      { id: "<vocation-id>" }
    ]
    representations: [
      {
        repAreaId: { id: "<rep-area-id>" }
        geoArea: {}
        status: PURSUING
      }
    ]
  }) {
    id
    names {
      name
    }
  }
}

Geo Areas

geoArea: {} represents worldwide scope. To restrict to specific countries, provide countries: [{ id: "<country-id>" }] inside the geoArea object. Country IDs can be retrieved with getAllCountries.


Connecting to an Agency

If the talent is being pursued through a specific agency, you can link them at creation:

graphql
mutation CreateTalentWithAgency {
  createTalent(talentCreateInput: {
    names: [
      {
        givenName: "Alex"
        familyName: "Johnson"
        name: "Alex Johnson"
        type: FORMAL
      }
    ]
    type: PERSON
    vocationIds: [
      { id: "<vocation-id>" }
    ]
    agencyIds: [
      { id: "<agency-party-id>" }
    ]
  }) {
    id
    names {
      name
    }
  }
}

Optional Fields 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)
friendlyNameStringInformal display name
noteStringInternal note
representations[TalentPursuitRepresentationInput!]Pursuit-stage reps only (PURSUING or HOLD); max 50
agencyIds[ConnectableInput!]Agencies currently representing this talent
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
musicGenreIds[ConnectableInput!]Music genres
mediumIds[ConnectableInput!]Media types
playableAgeIds[ConnectableInput!]Playable age ranges
involvedInAccountFlagIds[ConnectableInput!]Account flags
participantGroupMemberships[ParticipantGroupMembershipCreateInput!]Participant group memberships

Confidential. For internal use only.