Skip to content

Mutations

Mutations are write operations that create, update, or delete data. This page documents all available mutations.

Stations

addStation

Create a new station.

mutation AddStation($input: AddStationInput!) {
addStation(input: $input) {
id
tenantId
name
description
remotePortalId
}
}

Input:

FieldTypeRequiredDescription
nameStringYesStation name
descriptionStringNoStation description
remotePortalIdIDNoLink to external system

Access: Free, Owner, Admin


updateStationName

Update a station’s name.

mutation UpdateStationName($id: ID!, $name: String!) {
updateStationName(id: $id, name: $name) {
id
name
}
}

Access: Free, Owner, Admin


updateStationDescription

Update a station’s description.

mutation UpdateStationDescription($id: ID!, $description: String!) {
updateStationDescription(id: $id, description: $description) {
id
description
}
}

Access: Free, Owner, Admin


linkStationToRemotePortal

Connect a station to an external system.

mutation LinkStationToRemotePortal($id: ID!, $remotePortalId: ID!) {
linkStationToRemotePortal(id: $id, remotePortalId: $remotePortalId) {
id
remotePortalId
}
}

Access: Free, Owner, Admin


unlinkStationFromRemotePortal

Remove a station’s external system connection.

mutation UnlinkStationFromRemotePortal($id: ID!) {
unlinkStationFromRemotePortal(id: $id) {
id
remotePortalId
}
}

Access: Free, Owner, Admin


deleteStation

Delete a station.

mutation DeleteStation($id: ID!) {
deleteStation(id: $id) {
id
name
}
}

Access: Free, Owner, Admin


Routes

addRoute

Create a new route.

mutation AddRoute($input: RouteInstructionsListInput!) {
addRoute(input: $input) {
id
tenantId
name
status
stops {
id
name
status
type
}
track
}
}

Input:

input RouteInstructionsListInput {
name: String!
id: ID
instructions: [RouteInstructionInput]!
}
input RouteInstructionInput {
trackType: TrackType # stop, routeTemplate, route
actionStationOrRouteTemplateId: ID
action: Action # startWith, addAfter, addBefore, etc.
actionTargetStopId: String
enableAsynchronousChildren: Boolean
}

Access: Free, Owner, Admin


updateRoute

Update an existing route’s structure.

mutation UpdateRoute($id: ID!, $input: RouteInstructionsListInput!) {
updateRoute(id: $id, input: $input) {
id
name
stops {
id
name
status
}
track
}
}

Access: Free, Owner, Admin


updateRouteName

Update a route’s name.

mutation UpdateRouteName($id: ID!, $name: String!) {
updateRouteName(id: $id, name: $name) {
id
name
}
}

Access: Free, Owner, Admin


pauseRoute

Pause an active route.

mutation PauseRoute($id: ID!) {
pauseRoute(id: $id) {
id
status
}
}

Access: Free, Owner, Admin


resumeRoute

Resume a paused route.

mutation ResumeRoute($id: ID!) {
resumeRoute(id: $id) {
id
status
}
}

Access: Free, Owner, Admin


cancelRoute

Cancel a route (irreversible).

mutation CancelRoute($id: ID!) {
cancelRoute(id: $id) {
id
status
}
}

Access: Free, Owner, Admin


markStopCompleted

Mark a stop as completed.

mutation MarkStopCompleted($routeId: ID!, $stopId: ID!) {
markStopCompleted(routeId: $routeId, stopId: $stopId) {
id
stops {
id
status
}
}
}

Access: Free, Owner, Admin, User


unMarkStopCompleted

Revert a stop’s completed status.

mutation UnMarkStopCompleted($routeId: ID!, $stopId: ID!) {
unMarkStopCompleted(routeId: $routeId, stopId: $stopId) {
id
stops {
id
status
}
}
}

Access: Free, Owner, Admin, User


deleteRoute

Delete a route.

mutation DeleteRoute($id: ID!) {
deleteRoute(id: $id) {
id
}
}

Access: Free, Owner, Admin


Route Templates

addRouteTemplate

Create a new route template.

mutation AddRouteTemplate($input: RouteInstructionsListInput!) {
addRouteTemplate(input: $input) {
id
tenantId
name
stops {
id
name
}
track
}
}

Access: Free, Owner, Admin


updateRouteTemplate

Update a template’s structure.

mutation UpdateRouteTemplate($id: ID!, $input: RouteInstructionsListInput!) {
updateRouteTemplate(id: $id, input: $input) {
id
name
stops {
id
name
}
track
}
}

Access: Free, Owner, Admin


updateRouteTemplateName

Update a template’s name.

mutation UpdateRouteTemplateName($id: ID!, $name: String!) {
updateRouteTemplateName(id: $id, name: $name) {
id
name
}
}

Access: Free, Owner, Admin


deleteRouteTemplate

Delete a route template.

mutation DeleteRouteTemplate($id: ID!) {
deleteRouteTemplate(id: $id) {
id
}
}

Access: Free, Owner, Admin


Users

addAdminUser

Add a new admin user.

mutation AddAdminUser($username: AWSEmail!) {
addAdminUser(username: $username) {
id
email
group
status
}
}

Access: Owner, Admin


addStandardUser

Add a new standard user.

mutation AddStandardUser($username: AWSEmail!) {
addStandardUser(username: $username) {
id
email
group
status
}
}

Access: Owner, Admin


changeStandardUserToAdmin

Upgrade a user to admin.

mutation ChangeStandardUserToAdmin($id: String!) {
changeStandardUserToAdmin(id: $id) {
id
group
groupModfified
}
}

Access: Owner, Admin


changeAdminToStandardUser

Downgrade an admin to standard user.

mutation ChangeAdminToStandardUser($id: String!) {
changeAdminToStandardUser(id: $id) {
id
group
groupModfified
}
}

Access: Owner, Admin


activateUser

Activate a deactivated user.

mutation ActivateUser($id: String!) {
activateUser(id: $id) {
id
enabled
status
}
}

Access: Owner, Admin


deactivateUser

Deactivate an active user.

mutation DeactivateUser($id: String!) {
deactivateUser(id: $id) {
id
enabled
status
}
}

Access: Owner, Admin


deleteAdminUser

Delete an admin user.

mutation DeleteAdminUser($id: String!) {
deleteAdminUser(id: $id) {
id
}
}

Access: Owner, Admin


deleteStandardUser

Delete a standard user.

mutation DeleteStandardUser($id: String!) {
deleteStandardUser(id: $id) {
id
}
}

Access: Owner, Admin


Billing & Plans

createPlanIntent

Create a SetupIntent for adding a plan.

mutation CreatePlanIntent($planId: String!) {
createPlanIntent(planId: $planId) {
planId
clientSecret
}
}

Access: Free, Owner


confirmAddPlan

Confirm and add a paid plan.

mutation ConfirmAddPlan(
$paymentMethodId: String!
$planId: String!
$setupIntentClientSecret: String!
) {
confirmAddPlan(
paymentMethodId: $paymentMethodId
planId: $planId
setupIntentClientSecret: $setupIntentClientSecret
) {
id
planId
plan {
title
}
}
}

Access: Free, Owner


changePlan

Change to a different paid plan.

mutation ChangePlan($planId: String!) {
changePlan(planId: $planId) {
id
planId
plan {
title
}
}
}

Access: Owner


cancelPaidPlanAtPeriodEnd

Schedule plan cancellation at billing period end.

mutation CancelPaidPlanAtPeriodEnd {
cancelPaidPlanAtPeriodEnd {
id
cancelPlanAt
}
}

Access: Owner


reactivateCancelingPaidPlan

Cancel a pending plan cancellation.

mutation ReactivateCancelingPaidPlan {
reactivateCancelingPaidPlan {
id
cancelPlanAt
}
}

Access: Owner


createPaymentMethodIntent

Create a SetupIntent for adding a payment method.

mutation CreatePaymentMethodIntent {
createPaymentMethodIntent {
clientSecret
}
}

Access: Free, Owner


confirmAddPaymentMethod

Add a new payment method.

mutation ConfirmAddPaymentMethod(
$paymentMethodId: String!
$setupIntentClientSecret: String!
) {
confirmAddPaymentMethod(
paymentMethodId: $paymentMethodId
setupIntentClientSecret: $setupIntentClientSecret
) {
id
paymentType
last4
cardType
}
}

Access: Free, Owner


deletePaymentMethod

Remove a payment method.

mutation DeletePaymentMethod($paymentMethodId: String!) {
deletePaymentMethod(paymentMethodId: $paymentMethodId) {
id
}
}

Access: Free, Owner


setDefaultPaymentMethod

Set a payment method as default.

mutation SetDefaultPaymentMethod($paymentMethodId: String!) {
setDefaultPaymentMethod(paymentMethodId: $paymentMethodId) {
id
default
}
}

Access: Free, Owner


Account Management

enableDeleteAccount

Enable the delete account action.

mutation EnableDeleteAccount {
enableDeleteAccount {
id
deleteAccountFlag
}
}

Access: Free, Owner


disableDeleteAccount

Disable the delete account action.

mutation DisableDeleteAccount {
disableDeleteAccount {
id
deleteAccountFlag
}
}

Access: Free, Owner


deleteAccount

Delete the entire account.

mutation DeleteAccount {
deleteAccount {
id
}
}

Access: Free, Owner


Contact

contactUs

Send a contact form message.

mutation ContactUs($input: ContactUsInput!) {
contactUs(input: $input) {
messageType
message
}
}

Input:

FieldTypeRequiredDescription
subjectStringYesMessage subject
messageStringYesMessage content
captchaTokenStringYesreCAPTCHA token
emailAWSEmailYesSender email

Access: Public (IAM) + Free, Owner, Admin, User