Mutation
mutation CallReassignCloser($id: String!, $newCloserId: String!) {
callReassignCloser(id: $id, newCloserId: $newCloserId) {
attributionOnly
call {
actionItems
aiSummary
analysis {
analysisType
analyzedAt
buyerCertaintyIndex
call {
__typename
}
callJourney
closingScore
}
attribution
bookingLink {
assignedTo {
__typename
}
averageDealSize {
__typename
}
conversionRate
createdAt
description
duration
}
calendarAttemptId
}
oldEventOrphaned
userErrors {
code
field
message
}
}
}Variables
{
"id": "string",
"newCloserId": "string"
}Response
{
"data": {
"callReassignCloser": {
"attributionOnly": true,
"call": {
"actionItems": [
"string"
],
"aiSummary": "string",
"analysis": {
"analysisType": "string",
"analyzedAt": "string",
"buyerCertaintyIndex": "value",
"call": {
"__typename": "Call"
},
"callJourney": "value",
"closingScore": "value"
},
"attribution": "value",
"bookingLink": {
"assignedTo": {
"__typename": "User"
},
"averageDealSize": {
"__typename": "Money"
},
"conversionRate": "value",
"createdAt": "string",
"description": "string",
"duration": "value"
},
"calendarAttemptId": "string"
},
"oldEventOrphaned": true,
"userErrors": [
{
"code": "string",
"field": [
"string"
],
"message": "string"
}
]
}
}
}Mutations
callReassignCloser
Reassign a booked call to a different closer (AUR-1053).
For an upcoming call: cancels the existing calendar event on the old
closer's grant and creates a fresh one on the new closer's grant. For a
call that already happened, the swap is attribution-only (AUR-2029): the
closer columns move, the calendar stays put, the target needs no calendar
grant, and the payload's `attributionOnly` is true. Fires the
`call.closer_reassigned` webhook (flagged `attribution_only` for past
calls). Does NOT send a prospect email or emit internal events — those
are the caller's responsibility on this surface.
@example ```graphql
mutation {
callReassignCloser(id: "call_id", newCloserId: "user_new") {
call { id closer { id name } }
oldEventOrphaned
userErrors { message field code }
}
}
```
MUTATION
callReassignCloser(id: String!, newCloserId: String!, overrideConflict: Boolean): CallReassignCloserPayload!Arguments
id
String!
required
newCloserId
String!
required
overrideConflict
Boolean
Compatibility input. Calendar busy blocks cannot be overridden.
Returns
attributionOnly
Boolean!
call
oldEventOrphaned
Boolean!
userErrors
[UserError!]!
Mutation
mutation CallReassignCloser($id: String!, $newCloserId: String!) {
callReassignCloser(id: $id, newCloserId: $newCloserId) {
attributionOnly
call {
actionItems
aiSummary
analysis {
analysisType
analyzedAt
buyerCertaintyIndex
call {
__typename
}
callJourney
closingScore
}
attribution
bookingLink {
assignedTo {
__typename
}
averageDealSize {
__typename
}
conversionRate
createdAt
description
duration
}
calendarAttemptId
}
oldEventOrphaned
userErrors {
code
field
message
}
}
}Variables
{
"id": "string",
"newCloserId": "string"
}Response
{
"data": {
"callReassignCloser": {
"attributionOnly": true,
"call": {
"actionItems": [
"string"
],
"aiSummary": "string",
"analysis": {
"analysisType": "string",
"analyzedAt": "string",
"buyerCertaintyIndex": "value",
"call": {
"__typename": "Call"
},
"callJourney": "value",
"closingScore": "value"
},
"attribution": "value",
"bookingLink": {
"assignedTo": {
"__typename": "User"
},
"averageDealSize": {
"__typename": "Money"
},
"conversionRate": "value",
"createdAt": "string",
"description": "string",
"duration": "value"
},
"calendarAttemptId": "string"
},
"oldEventOrphaned": true,
"userErrors": [
{
"code": "string",
"field": [
"string"
],
"message": "string"
}
]
}
}
}