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
| Field | Type | Notes |
|---|---|---|
names | [NameInput!] | At least one name is required |
type | PartyType | PERSON 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:
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:
query GetAllRepAreas {
getAllRepAreas {
items {
id
name
}
}
}Other Common Reference Data
| Field | Query to use |
|---|---|
languageIds | getAllLanguages |
genreIds | getAllGenres |
interestIds | getAllInterests |
skillIds | getAllSkills |
rosterIds | getAllRosters |
musicGenreIds | getAllMusicGenres |
mediumIds | getAllMedia |
playableAgeIds | getAllPlayableAges |
Basic Example
A minimal talent record with one vocation:
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.
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.
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:
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
| Field | Type | Notes |
|---|---|---|
id | UUID | Override the auto-generated ID |
draft | Boolean | Create in DRAFT publish status (default: false) |
verified | Boolean | Mark record as verified (default: false) |
financial | Boolean | Flag as a financial record (default: false) |
noMats | Boolean | Suppress materials requests (default: false) |
friendlyName | String | Informal display name |
note | String | Internal 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 |
personalInfo | PersonalInfoInput | DOB, gender, ethnicity, pronouns, etc. |
personalAppearance | PersonalAppearanceInput | Height, 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 |