SMRT GraphQL API Reference
See more information here about how to get access to our API here https://support.smrtsystems.com/hc/en-us/sections/1260801401810-API-Documentation
API Endpoints
https://apitesting.smrtapp.com/graphql/
Queries
business
Description
Information about the business that this graphql endpoint is referencing. The subdomain of *.smrtapp.com, will always match the subdomain of the business returned.
Response
Returns a
Business
Example
Query
query Business {
business {
id
localId
shortId
subdomain
settings {
id
localId
mainDeliveryStore {
...StoreFragment
}
mainStore {
...StoreFragment
}
quickDetailingItemTypes {
...ItemTypeFragment
}
defaultPaymentMethod {
...PaymentMethodFragment
}
acceptedPaymentMethods {
...PaymentMethodFragment
}
logo
receiptLogo
POSNewOrderTabs
deliveryNewOrderTabs
statementGenerationDays
invoiceGenerationDays
acceptedCards
businessName
contactAddressLine
contactAddressState
contactAddressCity
contactAddressZip
contactPhone
logoUrl
noProductionDays
noDeliveryDays
specialHolidays
openDetailingWithCategory
customerFacingDomain
customSignupUrl
contactEmail
twilioAccountSid
twilioAuthToken
twilioPhone
twilioPhoneLookup
userNameOnEmailSubject
payableEntity
emailFooter
lockerBuildingCode
communicationTemplatesId
vcardTemplate
newPickupScheduledInstructions
sendAutomatedMessages
sendStatementEmails
signupEmailRequired
signupGroupRequired
signupAddressRequired
signupPhoneRequired
signupCardRequired
allowOrderSplitting
groupOnDetailingSplit
offerStoreDelivery
offerDeliverySchedulingInText
useStoreZipCodeForTax
summarizeByBillingCode
showSalesTaxBreakdownForStatementOrders
simplifiedPaymentReceipt
cashTotalRounding
hasLogo
isHotel
isHotelProcessor
isRoomGroupHotel
isLockers
isValet
isWholesaler
pickupUnpaidOrders
pressOnlyDiscount
washOnlyDiscount
scheduleWillCallAtAssembly
scheduleWillCallOnDueDate
dontIncludeOrdersInDeliveryListBeforeDueDate
allowSubDeliveryAccountScheduling
allowSubAccountToTriggerMasterDelivery
sendAutopayReceipts
sendDeliveryAppointmentConfirmation
showDeliveryNotPaid
deliveryAppLoadListSortDescending
requireSignatureOnDelivery
showSubRouteForDeliveryStop
genericLaundryBagMode
rushNotificationsHour
websiteDisplayText
shouldShowWebsiteOnReceipts
showAgentOnBagTag
assemblyEvenOnly
voiceAssemblyEnabled
inspectPriceAtAssembly
assemblyPrintFinancialReceiptForDeliveryCustomer
assemblyAlwaysPrintFinancialReceipt
printFinancialTicketOutsideAssembly
complexLotControl
overrideDueDateWithNextDelivery
autoSelectDeliveryReturnLocation
defaultDetailingTab
autoOpenAnnotationType
requireInvoiceInDetailing
displayTooManyDetailedItemsWarning
assemblyIcon
alignAssemblyIcon
newCustomerTicketIcon
newCustomerBottomTicketIcon
customerNameOnTicketBottom
pieceCountOnTicketBottom
customerPhoneOnTicket
showRoomInfoBelowAddress
laundryLicense
summarizedItemTable
showLogoOnReceipts
logoOnReceiptHeight
receiptLogoName
showPriceOnAssembly
paymentReceiptShowSignatureLine
receiptsNameShort
newLocationOnTicket
showRouteOfSameDayDelivery
itemDetailsOnTicket
itemDetailsOnOrderReceipt
newOrderPrintCount
printRetailReceipts
printDropTicketOnOrderSplit
printTicketOnOrderCloseCount
noStoreContactInfoOnReceipts
noPricingOnOrderReceipts
receiptsFooter
thermalReceiptFooter
ticketReceiptFooter
showEmailOnReceipts
showWebsiteOnReceipts
invoicePayableLine
invoiceTerms
isRestorationAccount
offerDemandDelivery
autoAddNewCustomerToWillCallRoute
groupItemDetailsByRoomNumber
merchantBatchCloseTime
saveCardsOnFile
amexSeparately
maxAutopayAmount
autopayTerms
autopayStatements
autopayBatchStrategy
invoiceDueDays
consolidateInvoiceItemDetails
invoiceShowOrderDetails
invoiceHideOrderInfo
showDateOnStatement
callStatementInvoice
activitySummaryEnabled
attachPDFInStatementEmails
rewardsProgramEnabled
rewardsPointModifier
rewardsCurrencyModifier
rewardsConversionRequirement
rewardsRedeemAutomatically
welcomeNotificationDisabled
autoTicketOnCustomerRegistration
autoTicketOnScheduledDelivery
sendCustomerUpdatedCCNotification
allowScheduleBothPickupAndDelivery
limitScheduleDeliveryToClosestRoute
allowRouteRegularCustomersToScheduleOnDemand
allowSameDaySchedulingEvenIfRouteStarted
experimentalPhotoUserExperienceOnWebsiteScheduler
priceListUpdateOrdersCondition
routeAgentPriority
commonOrdersAgent
isMailOrderPickups
lockerDropBinPickupMode
showYesRepliesInComm
autoReplyToYesRepliesInComm
customerWebsiteClothesTrackerTabEnabled
customerWebsiteWardrobeTabEnabled
customerWebsitePaymentTabEnabled
metalprogettiAssemblyLabelTemplate
metalprogettiSendRackSpaceToStorage
sendNewOrderNotificationOnEveryVisit
includeReceiptInNewOrderNotification
printTempTagsForBarcodedItems
zebraPrinterTemplate
epsonPrinterTemplate
forceOnlyBagFieldInput
detailingWithoutBarcodes
printLabelsWhenDuplicating
metalprogettiStripCharacters
autoDetailingEnabled
minItemBarcodeLength
maxItemBarcodeLength
quotesDeletionTimeFrame
minWashNFoldPrice
minWashNFoldWeight
washAndFoldWeightStations
departmentSpecificOrdersEnabled
manualPickupRestricted
displayDueDateInProductionModules
offersRetailDelivery
regRouteQuestionChecked
filterDetailingByItemTypes
payrollPeriod
payrollLastCloseDate
payrollFirstHalfCloseDate
payrollLastHalfCloseDate
payrollCloseDate
workweekStart
hoursUntilWeeklyOvertime
hoursUntilDailyOvertime
hoursUntilDailyDoubleTime
hoursUntilWeeklyNotification
hoursUntilDailyNotification
preventClockInBeforeTime
californiaOvertimeRules
promptForClockInOnLogin
overrideTimeClockWithUserDepartment
allowMobileAppClockIn
disableOverTimeNotifications
overnightClockOut
inventorySystemEnabled
inventorySystemEnabledProduction
permissionManageSystemSettings
permissionManageStationSettings
permissionAccessCustomerCredits
permissionAddCustomerDiscount
permissionAccessCustomerModule
permissionAccessDeliveryModule
permissionAccessAssemblyModule
permissionAccessSpottingModule
permissionAccessAlterAndRepairModule
permissionAccessAccountsReceivableModule
permissionAccessPressingModule
permissionAccessPriceListModule
permissionAccessCashBoxModule
permissionAccessTimeclockModule
permissionAccessPerformanceModule
permissionAccessWashAndFoldModule
permissionAccessInspectionModule
permissionAccessItemBaggingModule
permissionAccessFoldingAndBaggingModule
permissionAccessMessagesModule
permissionAccessRackingModule
permissionAccessRouteManagerModule
permissionAccessReportsModule
permissionAccessAdminReportsModule
permissionAccessIssueTrackerModule
permissionAccessSupportModule
permissionAccessEmployeeSettingsModule
permissionAccessBulkMarkinModule
permissionManualPriceEdits
permissionSpecialCareAfterOrderClose
showStrikeThroughWhenReturned
usePieceCountTotalsOnTicket
taxHeaderString
includeTaxInPrice
dropDateOnAssemblyTicket
displayDepartmentOnTicket
displayCategoryOnTicket
displayPriceOnPickupSlip
useStoreSpecificOrderSequenceNumbers
saleItemLedgerTrackingEnabled
}
employeeSettings {
id
localId
mainDeliveryStore {
...StoreFragment
}
mainStore {
...StoreFragment
}
quickDetailingItemTypes {
...ItemTypeFragment
}
defaultPaymentMethod {
...PaymentMethodFragment
}
acceptedPaymentMethods {
...PaymentMethodFragment
}
logo
receiptLogo
POSNewOrderTabs
deliveryNewOrderTabs
statementGenerationDays
invoiceGenerationDays
acceptedCards
businessName
contactAddressLine
contactAddressState
contactAddressCity
contactAddressZip
contactPhone
logoUrl
noProductionDays
noDeliveryDays
specialHolidays
openDetailingWithCategory
customerFacingDomain
customSignupUrl
contactEmail
twilioAccountSid
twilioAuthToken
twilioPhone
twilioPhoneLookup
userNameOnEmailSubject
payableEntity
emailFooter
lockerBuildingCode
communicationTemplatesId
vcardTemplate
newPickupScheduledInstructions
sendAutomatedMessages
sendStatementEmails
signupEmailRequired
signupGroupRequired
signupAddressRequired
signupPhoneRequired
signupCardRequired
allowOrderSplitting
groupOnDetailingSplit
offerStoreDelivery
offerDeliverySchedulingInText
useStoreZipCodeForTax
summarizeByBillingCode
showSalesTaxBreakdownForStatementOrders
simplifiedPaymentReceipt
cashTotalRounding
hasLogo
isHotel
isHotelProcessor
isRoomGroupHotel
isLockers
isValet
isWholesaler
pickupUnpaidOrders
pressOnlyDiscount
washOnlyDiscount
scheduleWillCallAtAssembly
scheduleWillCallOnDueDate
dontIncludeOrdersInDeliveryListBeforeDueDate
allowSubDeliveryAccountScheduling
allowSubAccountToTriggerMasterDelivery
sendAutopayReceipts
sendDeliveryAppointmentConfirmation
showDeliveryNotPaid
deliveryAppLoadListSortDescending
requireSignatureOnDelivery
showSubRouteForDeliveryStop
genericLaundryBagMode
rushNotificationsHour
websiteDisplayText
shouldShowWebsiteOnReceipts
showAgentOnBagTag
assemblyEvenOnly
voiceAssemblyEnabled
inspectPriceAtAssembly
assemblyPrintFinancialReceiptForDeliveryCustomer
assemblyAlwaysPrintFinancialReceipt
printFinancialTicketOutsideAssembly
complexLotControl
overrideDueDateWithNextDelivery
autoSelectDeliveryReturnLocation
defaultDetailingTab
autoOpenAnnotationType
requireInvoiceInDetailing
displayTooManyDetailedItemsWarning
assemblyIcon
alignAssemblyIcon
newCustomerTicketIcon
newCustomerBottomTicketIcon
customerNameOnTicketBottom
pieceCountOnTicketBottom
customerPhoneOnTicket
showRoomInfoBelowAddress
laundryLicense
summarizedItemTable
showLogoOnReceipts
logoOnReceiptHeight
receiptLogoName
showPriceOnAssembly
paymentReceiptShowSignatureLine
receiptsNameShort
newLocationOnTicket
showRouteOfSameDayDelivery
itemDetailsOnTicket
itemDetailsOnOrderReceipt
newOrderPrintCount
printRetailReceipts
printDropTicketOnOrderSplit
printTicketOnOrderCloseCount
noStoreContactInfoOnReceipts
noPricingOnOrderReceipts
receiptsFooter
thermalReceiptFooter
ticketReceiptFooter
showEmailOnReceipts
showWebsiteOnReceipts
invoicePayableLine
invoiceTerms
isRestorationAccount
offerDemandDelivery
autoAddNewCustomerToWillCallRoute
groupItemDetailsByRoomNumber
merchantBatchCloseTime
saveCardsOnFile
amexSeparately
maxAutopayAmount
autopayTerms
autopayStatements
autopayBatchStrategy
invoiceDueDays
consolidateInvoiceItemDetails
invoiceShowOrderDetails
invoiceHideOrderInfo
showDateOnStatement
callStatementInvoice
activitySummaryEnabled
attachPDFInStatementEmails
rewardsProgramEnabled
rewardsPointModifier
rewardsCurrencyModifier
rewardsConversionRequirement
rewardsRedeemAutomatically
welcomeNotificationDisabled
autoTicketOnCustomerRegistration
autoTicketOnScheduledDelivery
sendCustomerUpdatedCCNotification
allowScheduleBothPickupAndDelivery
limitScheduleDeliveryToClosestRoute
allowRouteRegularCustomersToScheduleOnDemand
allowSameDaySchedulingEvenIfRouteStarted
experimentalPhotoUserExperienceOnWebsiteScheduler
priceListUpdateOrdersCondition
routeAgentPriority
commonOrdersAgent
isMailOrderPickups
lockerDropBinPickupMode
showYesRepliesInComm
autoReplyToYesRepliesInComm
customerWebsiteClothesTrackerTabEnabled
customerWebsiteWardrobeTabEnabled
customerWebsitePaymentTabEnabled
metalprogettiAssemblyLabelTemplate
metalprogettiSendRackSpaceToStorage
sendNewOrderNotificationOnEveryVisit
includeReceiptInNewOrderNotification
printTempTagsForBarcodedItems
zebraPrinterTemplate
epsonPrinterTemplate
forceOnlyBagFieldInput
detailingWithoutBarcodes
printLabelsWhenDuplicating
metalprogettiStripCharacters
autoDetailingEnabled
minItemBarcodeLength
maxItemBarcodeLength
quotesDeletionTimeFrame
minWashNFoldPrice
minWashNFoldWeight
washAndFoldWeightStations
departmentSpecificOrdersEnabled
manualPickupRestricted
displayDueDateInProductionModules
offersRetailDelivery
regRouteQuestionChecked
filterDetailingByItemTypes
payrollPeriod
payrollLastCloseDate
payrollFirstHalfCloseDate
payrollLastHalfCloseDate
payrollCloseDate
workweekStart
hoursUntilWeeklyOvertime
hoursUntilDailyOvertime
hoursUntilDailyDoubleTime
hoursUntilWeeklyNotification
hoursUntilDailyNotification
preventClockInBeforeTime
californiaOvertimeRules
promptForClockInOnLogin
overrideTimeClockWithUserDepartment
allowMobileAppClockIn
disableOverTimeNotifications
overnightClockOut
inventorySystemEnabled
inventorySystemEnabledProduction
permissionManageSystemSettings
permissionManageStationSettings
permissionAccessCustomerCredits
permissionAddCustomerDiscount
permissionAccessCustomerModule
permissionAccessDeliveryModule
permissionAccessAssemblyModule
permissionAccessSpottingModule
permissionAccessAlterAndRepairModule
permissionAccessAccountsReceivableModule
permissionAccessPressingModule
permissionAccessPriceListModule
permissionAccessCashBoxModule
permissionAccessTimeclockModule
permissionAccessPerformanceModule
permissionAccessWashAndFoldModule
permissionAccessInspectionModule
permissionAccessItemBaggingModule
permissionAccessFoldingAndBaggingModule
permissionAccessMessagesModule
permissionAccessRackingModule
permissionAccessRouteManagerModule
permissionAccessReportsModule
permissionAccessAdminReportsModule
permissionAccessIssueTrackerModule
permissionAccessSupportModule
permissionAccessEmployeeSettingsModule
permissionAccessBulkMarkinModule
permissionManualPriceEdits
permissionSpecialCareAfterOrderClose
showStrikeThroughWhenReturned
usePieceCountTotalsOnTicket
taxHeaderString
includeTaxInPrice
dropDateOnAssemblyTicket
displayDepartmentOnTicket
displayCategoryOnTicket
displayPriceOnPickupSlip
useStoreSpecificOrderSequenceNumbers
saleItemLedgerTrackingEnabled
}
stores {
id
localId
agentId
agentType
name
phone
address
city
state
zip
externalStoreIdentifier
stations {
...StationFragment
}
}
communicationTemplatesList {
id
localId
name
}
employees {
id
localId
name
firstName
}
routes {
id
localId
agentId
agentType
name
type
isSubRoute
masterRouteId
pickupCutoffHours
deliveryCutoffHours
autoOptimize
}
groups {
id
localId
agentId
agentType
name
hasOwnAgent
isGroupStop
isMasterBilling
customers {
...CustomerFragment
}
}
notes {
id
localId
date
customer {
...CustomerFragment
}
message
mainCategory
subCategory
status
saleId
itemId
lastUpdated
dueDate
assignee {
...UserFragment
}
photos {
...PhotoFragment
}
}
brands {
id
localId
name
brandId
settings {
...SettingsFragment
}
agents {
...AgentFragment
}
}
agents {
id
localId
name
agentId
agentType
}
holidays {
id
localId
date
noProduction
noDelivery
dayOfWeek
}
itemCategories {
id
localId
name
sort
description
disabled
isRetail
}
itemTypes {
id
localId
name
category {
...ItemCategoryFragment
}
active
price
description
}
subscriptions {
id
localId
name
category {
...ItemCategoryFragment
}
active
price
description
}
paymentMethods {
id
localId
name
disabled
}
taxConfigurationRules {
id
localId
sort
parentRule
isDisabled
isDefault
name
rate
useAutoTaxJar
addressSpecific
zipCondition
departmentCondition
agentCondition
}
itemValidationRules {
id
localId
name
requiredFields
requiredSpecialCares
itemTypeCondition
departmentCondition
sort
isDisabled
}
itemFields {
id
localId
name
}
financialDepartments {
id
localId
name
showInCustomerScheduler
}
specialCares {
id
localId
name
}
alertTypes {
id
localId
name
active
}
alertSubTypes {
id
localId
masterTypeId
name
prefTicket
prefCustomer
prefDelivery
prefPressing
prefInspection
prefSpotting
prefAlteration
prefWashing
active
}
chatRooms {
id
localId
name
specialRoomType
isPrivate
userIds
agents
usersAllowedToPost
isNotificationsRoom
isRequired
chatMessages {
...ChatMessageFragment
}
}
customerFields {
id
localId
fieldType
label
possibleValues
shownProfile
shownPosSignUp
shownCustomerWebsite
shownCustomerWebsiteSignUp
elasticKey
disabled
}
usesPaymentSystem
getCustomer {
id
localId
name
futureAppointments {
...AppointmentFragment
}
settings {
...SettingsFragment
}
group {
...GroupFragment
}
agent {
...AgentFragment
}
routeHolds {
...CustomerRouteHoldFragment
}
driverInstructions
preferences
goodOnlineAccountStanding
addresses {
...CustomerAddressFragment
}
defaultAddress {
...CustomerAddressFragment
}
creditCardIFrameURL
authenticatedCustomerSiteLink
creditCard {
...CreditCardFragment
}
datesForSchedulingAppointment {
...ScheduleDateFragment
}
customerBookings {
...CustomerBookingFragment
}
readyBags {
...CustomerBagFragment
}
customerRelationship
deliveryStop
demographic
apiTokenForCustomer
activePromotions {
...PromotionFragment
}
subscription {
...CustomerSubscriptionFragment
}
kioskAccessCode
email
cellPhone
homePhone
firstName
lastName
companyName
customFields {
...CustomerFieldValueFragment
}
}
getCustomers {
id
localId
name
futureAppointments {
...AppointmentFragment
}
settings {
...SettingsFragment
}
group {
...GroupFragment
}
agent {
...AgentFragment
}
routeHolds {
...CustomerRouteHoldFragment
}
driverInstructions
preferences
goodOnlineAccountStanding
addresses {
...CustomerAddressFragment
}
defaultAddress {
...CustomerAddressFragment
}
creditCardIFrameURL
authenticatedCustomerSiteLink
creditCard {
...CreditCardFragment
}
datesForSchedulingAppointment {
...ScheduleDateFragment
}
customerBookings {
...CustomerBookingFragment
}
readyBags {
...CustomerBagFragment
}
customerRelationship
deliveryStop
demographic
apiTokenForCustomer
activePromotions {
...PromotionFragment
}
subscription {
...CustomerSubscriptionFragment
}
kioskAccessCode
email
cellPhone
homePhone
firstName
lastName
companyName
customFields {
...CustomerFieldValueFragment
}
}
queryReports {
id
localId
columns {
...QueryReportsResultColumnFragment
}
values
totalCount
kpi {
...QueryReportsResultKPIValueFragment
}
}
productionStationStatistics {
id
localId
hours
pieces
ppoh
value
}
}
}
Response
{
"data": {
"business": {
"id": 4,
"localId": 4,
"shortId": 987,
"subdomain": "xyz789",
"settings": Settings,
"employeeSettings": Settings,
"stores": [Store],
"communicationTemplatesList": [
CommunicationTemplates
],
"employees": [User],
"routes": [Route],
"groups": [Group],
"notes": [Note],
"brands": [Brand],
"agents": [Agent],
"holidays": [Holiday],
"itemCategories": [ItemCategory],
"itemTypes": [ItemType],
"subscriptions": [ItemType],
"paymentMethods": [PaymentMethod],
"taxConfigurationRules": [TaxConfigurationRule],
"itemValidationRules": [ItemValidationRule],
"itemFields": [ItemField],
"financialDepartments": [FinancialDepartment],
"specialCares": [SpecialCare],
"alertTypes": [AlertType],
"alertSubTypes": [AlertSubType],
"chatRooms": [ChatRoom],
"customerFields": [CustomerField],
"usesPaymentSystem": false,
"getCustomer": Customer,
"getCustomers": [Customer],
"queryReports": QueryReportsResult,
"productionStationStatistics": ProductionStationStatistics
}
}
}
currentCustomer
Description
The currently authenticated customer. If one of the customer authentication mutations was previously used, this query will return that customer, as present in the session cookie.
Response
Returns a
Customer
Example
Query
query CurrentCustomer {
currentCustomer {
id
localId
name
futureAppointments {
id
localId
startTime
endTime
timeSlot {
...TimeSlotFragment
}
scheduledBy {
...ActorFragment
}
scheduledAt
route {
...RouteFragment
}
driverInstructions
cleaningInstructions
departments {
...FinancialDepartmentFragment
}
customer {
...CustomerFragment
}
address {
...CustomerAddressFragment
}
driver {
...UserFragment
}
regular
anytime
status
appointmentLinkId
photos {
...PhotoFragment
}
lockerCode
}
settings {
id
localId
mainDeliveryStore {
...StoreFragment
}
mainStore {
...StoreFragment
}
quickDetailingItemTypes {
...ItemTypeFragment
}
defaultPaymentMethod {
...PaymentMethodFragment
}
acceptedPaymentMethods {
...PaymentMethodFragment
}
logo
receiptLogo
POSNewOrderTabs
deliveryNewOrderTabs
statementGenerationDays
invoiceGenerationDays
acceptedCards
businessName
contactAddressLine
contactAddressState
contactAddressCity
contactAddressZip
contactPhone
logoUrl
noProductionDays
noDeliveryDays
specialHolidays
openDetailingWithCategory
customerFacingDomain
customSignupUrl
contactEmail
twilioAccountSid
twilioAuthToken
twilioPhone
twilioPhoneLookup
userNameOnEmailSubject
payableEntity
emailFooter
lockerBuildingCode
communicationTemplatesId
vcardTemplate
newPickupScheduledInstructions
sendAutomatedMessages
sendStatementEmails
signupEmailRequired
signupGroupRequired
signupAddressRequired
signupPhoneRequired
signupCardRequired
allowOrderSplitting
groupOnDetailingSplit
offerStoreDelivery
offerDeliverySchedulingInText
useStoreZipCodeForTax
summarizeByBillingCode
showSalesTaxBreakdownForStatementOrders
simplifiedPaymentReceipt
cashTotalRounding
hasLogo
isHotel
isHotelProcessor
isRoomGroupHotel
isLockers
isValet
isWholesaler
pickupUnpaidOrders
pressOnlyDiscount
washOnlyDiscount
scheduleWillCallAtAssembly
scheduleWillCallOnDueDate
dontIncludeOrdersInDeliveryListBeforeDueDate
allowSubDeliveryAccountScheduling
allowSubAccountToTriggerMasterDelivery
sendAutopayReceipts
sendDeliveryAppointmentConfirmation
showDeliveryNotPaid
deliveryAppLoadListSortDescending
requireSignatureOnDelivery
showSubRouteForDeliveryStop
genericLaundryBagMode
rushNotificationsHour
websiteDisplayText
shouldShowWebsiteOnReceipts
showAgentOnBagTag
assemblyEvenOnly
voiceAssemblyEnabled
inspectPriceAtAssembly
assemblyPrintFinancialReceiptForDeliveryCustomer
assemblyAlwaysPrintFinancialReceipt
printFinancialTicketOutsideAssembly
complexLotControl
overrideDueDateWithNextDelivery
autoSelectDeliveryReturnLocation
defaultDetailingTab
autoOpenAnnotationType
requireInvoiceInDetailing
displayTooManyDetailedItemsWarning
assemblyIcon
alignAssemblyIcon
newCustomerTicketIcon
newCustomerBottomTicketIcon
customerNameOnTicketBottom
pieceCountOnTicketBottom
customerPhoneOnTicket
showRoomInfoBelowAddress
laundryLicense
summarizedItemTable
showLogoOnReceipts
logoOnReceiptHeight
receiptLogoName
showPriceOnAssembly
paymentReceiptShowSignatureLine
receiptsNameShort
newLocationOnTicket
showRouteOfSameDayDelivery
itemDetailsOnTicket
itemDetailsOnOrderReceipt
newOrderPrintCount
printRetailReceipts
printDropTicketOnOrderSplit
printTicketOnOrderCloseCount
noStoreContactInfoOnReceipts
noPricingOnOrderReceipts
receiptsFooter
thermalReceiptFooter
ticketReceiptFooter
showEmailOnReceipts
showWebsiteOnReceipts
invoicePayableLine
invoiceTerms
isRestorationAccount
offerDemandDelivery
autoAddNewCustomerToWillCallRoute
groupItemDetailsByRoomNumber
merchantBatchCloseTime
saveCardsOnFile
amexSeparately
maxAutopayAmount
autopayTerms
autopayStatements
autopayBatchStrategy
invoiceDueDays
consolidateInvoiceItemDetails
invoiceShowOrderDetails
invoiceHideOrderInfo
showDateOnStatement
callStatementInvoice
activitySummaryEnabled
attachPDFInStatementEmails
rewardsProgramEnabled
rewardsPointModifier
rewardsCurrencyModifier
rewardsConversionRequirement
rewardsRedeemAutomatically
welcomeNotificationDisabled
autoTicketOnCustomerRegistration
autoTicketOnScheduledDelivery
sendCustomerUpdatedCCNotification
allowScheduleBothPickupAndDelivery
limitScheduleDeliveryToClosestRoute
allowRouteRegularCustomersToScheduleOnDemand
allowSameDaySchedulingEvenIfRouteStarted
experimentalPhotoUserExperienceOnWebsiteScheduler
priceListUpdateOrdersCondition
routeAgentPriority
commonOrdersAgent
isMailOrderPickups
lockerDropBinPickupMode
showYesRepliesInComm
autoReplyToYesRepliesInComm
customerWebsiteClothesTrackerTabEnabled
customerWebsiteWardrobeTabEnabled
customerWebsitePaymentTabEnabled
metalprogettiAssemblyLabelTemplate
metalprogettiSendRackSpaceToStorage
sendNewOrderNotificationOnEveryVisit
includeReceiptInNewOrderNotification
printTempTagsForBarcodedItems
zebraPrinterTemplate
epsonPrinterTemplate
forceOnlyBagFieldInput
detailingWithoutBarcodes
printLabelsWhenDuplicating
metalprogettiStripCharacters
autoDetailingEnabled
minItemBarcodeLength
maxItemBarcodeLength
quotesDeletionTimeFrame
minWashNFoldPrice
minWashNFoldWeight
washAndFoldWeightStations
departmentSpecificOrdersEnabled
manualPickupRestricted
displayDueDateInProductionModules
offersRetailDelivery
regRouteQuestionChecked
filterDetailingByItemTypes
payrollPeriod
payrollLastCloseDate
payrollFirstHalfCloseDate
payrollLastHalfCloseDate
payrollCloseDate
workweekStart
hoursUntilWeeklyOvertime
hoursUntilDailyOvertime
hoursUntilDailyDoubleTime
hoursUntilWeeklyNotification
hoursUntilDailyNotification
preventClockInBeforeTime
californiaOvertimeRules
promptForClockInOnLogin
overrideTimeClockWithUserDepartment
allowMobileAppClockIn
disableOverTimeNotifications
overnightClockOut
inventorySystemEnabled
inventorySystemEnabledProduction
permissionManageSystemSettings
permissionManageStationSettings
permissionAccessCustomerCredits
permissionAddCustomerDiscount
permissionAccessCustomerModule
permissionAccessDeliveryModule
permissionAccessAssemblyModule
permissionAccessSpottingModule
permissionAccessAlterAndRepairModule
permissionAccessAccountsReceivableModule
permissionAccessPressingModule
permissionAccessPriceListModule
permissionAccessCashBoxModule
permissionAccessTimeclockModule
permissionAccessPerformanceModule
permissionAccessWashAndFoldModule
permissionAccessInspectionModule
permissionAccessItemBaggingModule
permissionAccessFoldingAndBaggingModule
permissionAccessMessagesModule
permissionAccessRackingModule
permissionAccessRouteManagerModule
permissionAccessReportsModule
permissionAccessAdminReportsModule
permissionAccessIssueTrackerModule
permissionAccessSupportModule
permissionAccessEmployeeSettingsModule
permissionAccessBulkMarkinModule
permissionManualPriceEdits
permissionSpecialCareAfterOrderClose
showStrikeThroughWhenReturned
usePieceCountTotalsOnTicket
taxHeaderString
includeTaxInPrice
dropDateOnAssemblyTicket
displayDepartmentOnTicket
displayCategoryOnTicket
displayPriceOnPickupSlip
useStoreSpecificOrderSequenceNumbers
saleItemLedgerTrackingEnabled
}
group {
id
localId
agentId
agentType
name
hasOwnAgent
isGroupStop
isMasterBilling
customers {
...CustomerFragment
}
}
agent {
id
localId
name
agentId
agentType
}
routeHolds {
id
localId
startDate
endDate
}
driverInstructions
preferences
goodOnlineAccountStanding
addresses {
id
localId
name
streetAddress
streetAddress2
city
state
zip
latitude
longitude
skipVerification
manualLocation
}
defaultAddress {
id
localId
name
streetAddress
streetAddress2
city
state
zip
latitude
longitude
skipVerification
manualLocation
}
creditCardIFrameURL
authenticatedCustomerSiteLink
creditCard {
id
localId
type
last4
expm
expy
}
datesForSchedulingAppointment {
id
localId
date
timeSlots {
...TimeSlotFragment
}
}
customerBookings {
id
localId
pickupAppointment {
...AppointmentFragment
}
deliveryAppointment {
...AppointmentFragment
}
orders {
...OrderFragment
}
pickupDateDisplay
deliveryDateDisplay
statusText
status
progress
bookingDate
}
readyBags {
id
localId
barcode
display
order {
...OrderFragment
}
location {
...RackLogFragment
}
}
customerRelationship
deliveryStop
demographic
apiTokenForCustomer
activePromotions {
id
localId
name
couponCode
customerCouponCode
}
subscription {
id
localId
pending {
...CustomerSubscriptionEntryFragment
}
active {
...CustomerSubscriptionEntryFragment
}
log {
...CustomerSubscriptionLogFragment
}
}
kioskAccessCode
email
cellPhone
homePhone
firstName
lastName
companyName
customFields {
id
localId
value
}
}
}
Response
{
"data": {
"currentCustomer": {
"id": 4,
"localId": "4",
"name": "abc123",
"futureAppointments": [Appointment],
"settings": Settings,
"group": Group,
"agent": Agent,
"routeHolds": [CustomerRouteHold],
"driverInstructions": "abc123",
"preferences": [4],
"goodOnlineAccountStanding": true,
"addresses": [CustomerAddress],
"defaultAddress": CustomerAddress,
"creditCardIFrameURL": "abc123",
"authenticatedCustomerSiteLink": "xyz789",
"creditCard": CreditCard,
"datesForSchedulingAppointment": [ScheduleDate],
"customerBookings": [CustomerBooking],
"readyBags": [CustomerBag],
"customerRelationship": "STORE_ONLY",
"deliveryStop": 123,
"demographic": 987,
"apiTokenForCustomer": "abc123",
"activePromotions": [Promotion],
"subscription": CustomerSubscription,
"kioskAccessCode": "abc123",
"email": "xyz789",
"cellPhone": "xyz789",
"homePhone": "xyz789",
"firstName": "xyz789",
"lastName": "abc123",
"companyName": "abc123",
"customFields": [CustomerFieldValue]
}
}
}
currentStation
Description
The station the user is signed into
Response
Returns a
Store
Example
Query
query CurrentStation {
currentStation {
id
localId
agentId
agentType
name
phone
address
city
state
zip
externalStoreIdentifier
stations {
id
localId
name
store {
...StoreFragment
}
type {
...StationTypeFragment
}
lastUsed
}
}
}
Response
{
"data": {
"currentStation": {
"id": "4",
"localId": "4",
"agentId": 4,
"agentType": "xyz789",
"name": "xyz789",
"phone": "xyz789",
"address": "xyz789",
"city": "xyz789",
"state": "xyz789",
"zip": "xyz789",
"externalStoreIdentifier": "abc123",
"stations": [Station]
}
}
}
currentStore
Description
The store the user is signed into, or the default store if not set.
Response
Returns a
Store
Example
Query
query CurrentStore {
currentStore {
id
localId
agentId
agentType
name
phone
address
city
state
zip
externalStoreIdentifier
stations {
id
localId
name
store {
...StoreFragment
}
type {
...StationTypeFragment
}
lastUsed
}
}
}
Response
{
"data": {
"currentStore": {
"id": 4,
"localId": "4",
"agentId": 4,
"agentType": "xyz789",
"name": "abc123",
"phone": "abc123",
"address": "xyz789",
"city": "abc123",
"state": "xyz789",
"zip": "abc123",
"externalStoreIdentifier": "abc123",
"stations": [Station]
}
}
}
currentUser
Description
The currently authenticated user. This is normally an employee of the business, but if an API key is used, this will return the API user instead. Lastly, if a customer is authenticated rather than a user, this endpoint will return null.
Response
Returns a
User
Example
Query
query CurrentUser {
currentUser {
id
localId
name
firstName
}
}
Response
{
"data": {
"currentUser": {
"id": "4",
"localId": "4",
"name": "abc123",
"firstName": "xyz789"
}
}
}
customerPreferences
Description
A list of customer preference sections
Response
Returns
[CustomerPreferenceSection]!
Example
Query
query CustomerPreferences {
customerPreferences {
id
localId
type
name
options {
id
localId
name
}
}
}
Response
{
"data": {
"customerPreferences": [
{
"id": 4,
"localId": 4,
"type": "abc123",
"name": "xyz789",
"options": [CustomerPreference]
}
]
}
}
node
Description
Retrieve any object given an id in the graph. Required by React Relay.
nodes
Description
Retrieve multiple objects given ids in the graph. Required by React Relay.
rackByLockerCode
Description
Returns an address given a locker code. Also updates customer default address if locker address is found.
Response
Returns a
RackByLockerCodeResponse!
Example
Query
query RackByLockerCode(
$customerId: ID!,
$lockerCode: String!
) {
rackByLockerCode(
customerId: $customerId,
lockerCode: $lockerCode
) {
id
localId
rack {
id
localId
address {
...CustomerAddressFragment
}
lockerOnRoute
}
address {
id
localId
name
streetAddress
streetAddress2
city
state
zip
latitude
longitude
skipVerification
manualLocation
}
}
}
Variables
{"customerId": 4, "lockerCode": "abc123"}
Response
{
"data": {
"rackByLockerCode": {
"id": "4",
"localId": 4,
"rack": RackCfg,
"address": CustomerAddress
}
}
}
stationTypes
Description
Get a list of possible station types
Response
Returns
[StationType]!
Example
Query
query StationTypes {
stationTypes {
id
localId
name
category
}
}
Response
{
"data": {
"stationTypes": [
{
"id": "4",
"localId": "4",
"name": "abc123",
"category": "xyz789"
}
]
}
}
Mutations
addCustomerToRoute
Description
Adds a customer to a route
Response
Returns a
Customer
Arguments
Name | Description |
---|---|
customerId -
ID!
|
|
routeId -
ID!
|
|
preference -
CustomerDeliveryPreferenceEnum!
|
Example
Query
mutation AddCustomerToRoute(
$customerId: ID!,
$routeId: ID!,
$preference: CustomerDeliveryPreferenceEnum!
) {
addCustomerToRoute(
customerId: $customerId,
routeId: $routeId,
preference: $preference
) {
id
localId
name
futureAppointments {
id
localId
startTime
endTime
timeSlot {
...TimeSlotFragment
}
scheduledBy {
...ActorFragment
}
scheduledAt
route {
...RouteFragment
}
driverInstructions
cleaningInstructions
departments {
...FinancialDepartmentFragment
}
customer {
...CustomerFragment
}
address {
...CustomerAddressFragment
}
driver {
...UserFragment
}
regular
anytime
status
appointmentLinkId
photos {
...PhotoFragment
}
lockerCode
}
settings {
id
localId
mainDeliveryStore {
...StoreFragment
}
mainStore {
...StoreFragment
}
quickDetailingItemTypes {
...ItemTypeFragment
}
defaultPaymentMethod {
...PaymentMethodFragment
}
acceptedPaymentMethods {
...PaymentMethodFragment
}
logo
receiptLogo
POSNewOrderTabs
deliveryNewOrderTabs
statementGenerationDays
invoiceGenerationDays
acceptedCards
businessName
contactAddressLine
contactAddressState
contactAddressCity
contactAddressZip
contactPhone
logoUrl
noProductionDays
noDeliveryDays
specialHolidays
openDetailingWithCategory
customerFacingDomain
customSignupUrl
contactEmail
twilioAccountSid
twilioAuthToken
twilioPhone
twilioPhoneLookup
userNameOnEmailSubject
payableEntity
emailFooter
lockerBuildingCode
communicationTemplatesId
vcardTemplate
newPickupScheduledInstructions
sendAutomatedMessages
sendStatementEmails
signupEmailRequired
signupGroupRequired
signupAddressRequired
signupPhoneRequired
signupCardRequired
allowOrderSplitting
groupOnDetailingSplit
offerStoreDelivery
offerDeliverySchedulingInText
useStoreZipCodeForTax
summarizeByBillingCode
showSalesTaxBreakdownForStatementOrders
simplifiedPaymentReceipt
cashTotalRounding
hasLogo
isHotel
isHotelProcessor
isRoomGroupHotel
isLockers
isValet
isWholesaler
pickupUnpaidOrders
pressOnlyDiscount
washOnlyDiscount
scheduleWillCallAtAssembly
scheduleWillCallOnDueDate
dontIncludeOrdersInDeliveryListBeforeDueDate
allowSubDeliveryAccountScheduling
allowSubAccountToTriggerMasterDelivery
sendAutopayReceipts
sendDeliveryAppointmentConfirmation
showDeliveryNotPaid
deliveryAppLoadListSortDescending
requireSignatureOnDelivery
showSubRouteForDeliveryStop
genericLaundryBagMode
rushNotificationsHour
websiteDisplayText
shouldShowWebsiteOnReceipts
showAgentOnBagTag
assemblyEvenOnly
voiceAssemblyEnabled
inspectPriceAtAssembly
assemblyPrintFinancialReceiptForDeliveryCustomer
assemblyAlwaysPrintFinancialReceipt
printFinancialTicketOutsideAssembly
complexLotControl
overrideDueDateWithNextDelivery
autoSelectDeliveryReturnLocation
defaultDetailingTab
autoOpenAnnotationType
requireInvoiceInDetailing
displayTooManyDetailedItemsWarning
assemblyIcon
alignAssemblyIcon
newCustomerTicketIcon
newCustomerBottomTicketIcon
customerNameOnTicketBottom
pieceCountOnTicketBottom
customerPhoneOnTicket
showRoomInfoBelowAddress
laundryLicense
summarizedItemTable
showLogoOnReceipts
logoOnReceiptHeight
receiptLogoName
showPriceOnAssembly
paymentReceiptShowSignatureLine
receiptsNameShort
newLocationOnTicket
showRouteOfSameDayDelivery
itemDetailsOnTicket
itemDetailsOnOrderReceipt
newOrderPrintCount
printRetailReceipts
printDropTicketOnOrderSplit
printTicketOnOrderCloseCount
noStoreContactInfoOnReceipts
noPricingOnOrderReceipts
receiptsFooter
thermalReceiptFooter
ticketReceiptFooter
showEmailOnReceipts
showWebsiteOnReceipts
invoicePayableLine
invoiceTerms
isRestorationAccount
offerDemandDelivery
autoAddNewCustomerToWillCallRoute
groupItemDetailsByRoomNumber
merchantBatchCloseTime
saveCardsOnFile
amexSeparately
maxAutopayAmount
autopayTerms
autopayStatements
autopayBatchStrategy
invoiceDueDays
consolidateInvoiceItemDetails
invoiceShowOrderDetails
invoiceHideOrderInfo
showDateOnStatement
callStatementInvoice
activitySummaryEnabled
attachPDFInStatementEmails
rewardsProgramEnabled
rewardsPointModifier
rewardsCurrencyModifier
rewardsConversionRequirement
rewardsRedeemAutomatically
welcomeNotificationDisabled
autoTicketOnCustomerRegistration
autoTicketOnScheduledDelivery
sendCustomerUpdatedCCNotification
allowScheduleBothPickupAndDelivery
limitScheduleDeliveryToClosestRoute
allowRouteRegularCustomersToScheduleOnDemand
allowSameDaySchedulingEvenIfRouteStarted
experimentalPhotoUserExperienceOnWebsiteScheduler
priceListUpdateOrdersCondition
routeAgentPriority
commonOrdersAgent
isMailOrderPickups
lockerDropBinPickupMode
showYesRepliesInComm
autoReplyToYesRepliesInComm
customerWebsiteClothesTrackerTabEnabled
customerWebsiteWardrobeTabEnabled
customerWebsitePaymentTabEnabled
metalprogettiAssemblyLabelTemplate
metalprogettiSendRackSpaceToStorage
sendNewOrderNotificationOnEveryVisit
includeReceiptInNewOrderNotification
printTempTagsForBarcodedItems
zebraPrinterTemplate
epsonPrinterTemplate
forceOnlyBagFieldInput
detailingWithoutBarcodes
printLabelsWhenDuplicating
metalprogettiStripCharacters
autoDetailingEnabled
minItemBarcodeLength
maxItemBarcodeLength
quotesDeletionTimeFrame
minWashNFoldPrice
minWashNFoldWeight
washAndFoldWeightStations
departmentSpecificOrdersEnabled
manualPickupRestricted
displayDueDateInProductionModules
offersRetailDelivery
regRouteQuestionChecked
filterDetailingByItemTypes
payrollPeriod
payrollLastCloseDate
payrollFirstHalfCloseDate
payrollLastHalfCloseDate
payrollCloseDate
workweekStart
hoursUntilWeeklyOvertime
hoursUntilDailyOvertime
hoursUntilDailyDoubleTime
hoursUntilWeeklyNotification
hoursUntilDailyNotification
preventClockInBeforeTime
californiaOvertimeRules
promptForClockInOnLogin
overrideTimeClockWithUserDepartment
allowMobileAppClockIn
disableOverTimeNotifications
overnightClockOut
inventorySystemEnabled
inventorySystemEnabledProduction
permissionManageSystemSettings
permissionManageStationSettings
permissionAccessCustomerCredits
permissionAddCustomerDiscount
permissionAccessCustomerModule
permissionAccessDeliveryModule
permissionAccessAssemblyModule
permissionAccessSpottingModule
permissionAccessAlterAndRepairModule
permissionAccessAccountsReceivableModule
permissionAccessPressingModule
permissionAccessPriceListModule
permissionAccessCashBoxModule
permissionAccessTimeclockModule
permissionAccessPerformanceModule
permissionAccessWashAndFoldModule
permissionAccessInspectionModule
permissionAccessItemBaggingModule
permissionAccessFoldingAndBaggingModule
permissionAccessMessagesModule
permissionAccessRackingModule
permissionAccessRouteManagerModule
permissionAccessReportsModule
permissionAccessAdminReportsModule
permissionAccessIssueTrackerModule
permissionAccessSupportModule
permissionAccessEmployeeSettingsModule
permissionAccessBulkMarkinModule
permissionManualPriceEdits
permissionSpecialCareAfterOrderClose
showStrikeThroughWhenReturned
usePieceCountTotalsOnTicket
taxHeaderString
includeTaxInPrice
dropDateOnAssemblyTicket
displayDepartmentOnTicket
displayCategoryOnTicket
displayPriceOnPickupSlip
useStoreSpecificOrderSequenceNumbers
saleItemLedgerTrackingEnabled
}
group {
id
localId
agentId
agentType
name
hasOwnAgent
isGroupStop
isMasterBilling
customers {
...CustomerFragment
}
}
agent {
id
localId
name
agentId
agentType
}
routeHolds {
id
localId
startDate
endDate
}
driverInstructions
preferences
goodOnlineAccountStanding
addresses {
id
localId
name
streetAddress
streetAddress2
city
state
zip
latitude
longitude
skipVerification
manualLocation
}
defaultAddress {
id
localId
name
streetAddress
streetAddress2
city
state
zip
latitude
longitude
skipVerification
manualLocation
}
creditCardIFrameURL
authenticatedCustomerSiteLink
creditCard {
id
localId
type
last4
expm
expy
}
datesForSchedulingAppointment {
id
localId
date
timeSlots {
...TimeSlotFragment
}
}
customerBookings {
id
localId
pickupAppointment {
...AppointmentFragment
}
deliveryAppointment {
...AppointmentFragment
}
orders {
...OrderFragment
}
pickupDateDisplay
deliveryDateDisplay
statusText
status
progress
bookingDate
}
readyBags {
id
localId
barcode
display
order {
...OrderFragment
}
location {
...RackLogFragment
}
}
customerRelationship
deliveryStop
demographic
apiTokenForCustomer
activePromotions {
id
localId
name
couponCode
customerCouponCode
}
subscription {
id
localId
pending {
...CustomerSubscriptionEntryFragment
}
active {
...CustomerSubscriptionEntryFragment
}
log {
...CustomerSubscriptionLogFragment
}
}
kioskAccessCode
email
cellPhone
homePhone
firstName
lastName
companyName
customFields {
id
localId
value
}
}
}
Variables
{
"customerId": "4",
"routeId": "4",
"preference": "NO_PREFERENCE"
}
Response
{
"data": {
"addCustomerToRoute": {
"id": "4",
"localId": "4",
"name": "abc123",
"futureAppointments": [Appointment],
"settings": Settings,
"group": Group,
"agent": Agent,
"routeHolds": [CustomerRouteHold],
"driverInstructions": "xyz789",
"preferences": [4],
"goodOnlineAccountStanding": true,
"addresses": [CustomerAddress],
"defaultAddress": CustomerAddress,
"creditCardIFrameURL": "xyz789",
"authenticatedCustomerSiteLink": "abc123",
"creditCard": CreditCard,
"datesForSchedulingAppointment": [ScheduleDate],
"customerBookings": [CustomerBooking],
"readyBags": [CustomerBag],
"customerRelationship": "STORE_ONLY",
"deliveryStop": 987,
"demographic": 987,
"apiTokenForCustomer": "xyz789",
"activePromotions": [Promotion],
"subscription": CustomerSubscription,
"kioskAccessCode": "abc123",
"email": "abc123",
"cellPhone": "xyz789",
"homePhone": "abc123",
"firstName": "xyz789",
"lastName": "abc123",
"companyName": "xyz789",
"customFields": [CustomerFieldValue]
}
}
}
addUserToChatRoom
Description
Add a chat user to a room
Response
Returns a
Boolean!
Example
Query
mutation AddUserToChatRoom(
$roomId: ID!,
$userId: ID!
) {
addUserToChatRoom(
roomId: $roomId,
userId: $userId
)
}
Variables
{"roomId": 4, "userId": "4"}
Response
{"data": {"addUserToChatRoom": true}}
appendSpecialChatMessageContent
Description
If a chat message contains any special info like item or customer barcodes this endpoint will transform the message replacing the barcodes with links
Response
Returns a
String!
Arguments
Name | Description |
---|---|
message -
String!
|
The original message to process |
Example
Query
mutation AppendSpecialChatMessageContent($message: String!) {
appendSpecialChatMessageContent(message: $message)
}
Variables
{"message": "abc123"}
Response
{
"data": {
"appendSpecialChatMessageContent": "xyz789"
}
}
cancelAppointment
Description
Cancel an appointment. Requires access level: Customer or Admin
Response
Returns a
Boolean
Arguments
Name | Description |
---|---|
appointmentId -
ID!
|
The ID of the appointment to cancel |
Example
Query
mutation CancelAppointment($appointmentId: ID!) {
cancelAppointment(appointmentId: $appointmentId)
}
Variables
{"appointmentId": 4}
Response
{"data": {"cancelAppointment": true}}
cancelCustomerSubscription
Description
Cancels a subscription by setting the status to 'cancelled', but also sets the end date to the end of the month during which time it will remain active. Requires access level: Customer or Admin
Response
Returns a
CustomerSubscription
Arguments
Name | Description |
---|---|
customerId -
ID!
|
A customer id |
status -
SubscriptionStatusEnum!
|
The status of the subscription to cancel |
Example
Query
mutation CancelCustomerSubscription(
$customerId: ID!,
$status: SubscriptionStatusEnum!
) {
cancelCustomerSubscription(
customerId: $customerId,
status: $status
) {
id
localId
pending {
id
localId
saleId
price
start
end
}
active {
id
localId
saleId
price
start
end
}
log {
id
localId
date
event
description
user {
...UserFragment
}
}
}
}
Variables
{"customerId": "4", "status": "pending"}
Response
{
"data": {
"cancelCustomerSubscription": {
"id": "4",
"localId": 4,
"pending": CustomerSubscriptionEntry,
"active": CustomerSubscriptionEntry,
"log": [CustomerSubscriptionLog]
}
}
}
clearCurrentCustomer
Response
Returns a
Boolean
Example
Query
mutation ClearCurrentCustomer {
clearCurrentCustomer
}
Response
{"data": {"clearCurrentCustomer": false}}
createAndSetStation
Description
Create a new station given a store and station type. On success, the secret key is returned that the client should store in the cookie 'smrt_stkey' for authentication. If your IP is not whitelisted, you must provide a user entered auth code as argument. Simply try the endpoint and on error, ask the user to input an auth code. The endpoint will also give an error if the auth key is invalid.
Response
Returns a
String!
Arguments
Name | Description |
---|---|
stationTypeId -
String!
|
The station type (StationType_x_y) of the station that you want to create |
storeId -
String!
|
The store id (Store_x_y) of the store that you want to assign this station to |
authCode -
String
|
For a non whitelisted IP, you must provide an auth code to create a station. This can be fetched manually in the admin panel. |
Example
Query
mutation CreateAndSetStation(
$stationTypeId: String!,
$storeId: String!,
$authCode: String
) {
createAndSetStation(
stationTypeId: $stationTypeId,
storeId: $storeId,
authCode: $authCode
)
}
Variables
{
"stationTypeId": "abc123",
"storeId": "abc123",
"authCode": "xyz789"
}
Response
{"data": {"createAndSetStation": "abc123"}}
createAuthCodesForSettingStation
Description
Generate 5 one-time authentication codes for setting up stations. Requires access level: Sr Manager
Response
Returns
[String]!
Example
Query
mutation CreateAuthCodesForSettingStation {
createAuthCodesForSettingStation
}
Response
{
"data": {
"createAuthCodesForSettingStation": [
"abc123"
]
}
}
createCustomer
Description
Creates a customer. Requires access level: Admin
Response
Returns a
Customer
Arguments
Name | Description |
---|---|
input -
CustomerInput!
|
Customer to create |
agentId -
String
|
The associated agent ID |
Example
Query
mutation CreateCustomer(
$input: CustomerInput!,
$agentId: String
) {
createCustomer(
input: $input,
agentId: $agentId
) {
id
localId
name
futureAppointments {
id
localId
startTime
endTime
timeSlot {
...TimeSlotFragment
}
scheduledBy {
...ActorFragment
}
scheduledAt
route {
...RouteFragment
}
driverInstructions
cleaningInstructions
departments {
...FinancialDepartmentFragment
}
customer {
...CustomerFragment
}
address {
...CustomerAddressFragment
}
driver {
...UserFragment
}
regular
anytime
status
appointmentLinkId
photos {
...PhotoFragment
}
lockerCode
}
settings {
id
localId
mainDeliveryStore {
...StoreFragment
}
mainStore {
...StoreFragment
}
quickDetailingItemTypes {
...ItemTypeFragment
}
defaultPaymentMethod {
...PaymentMethodFragment
}
acceptedPaymentMethods {
...PaymentMethodFragment
}
logo
receiptLogo
POSNewOrderTabs
deliveryNewOrderTabs
statementGenerationDays
invoiceGenerationDays
acceptedCards
businessName
contactAddressLine
contactAddressState
contactAddressCity
contactAddressZip
contactPhone
logoUrl
noProductionDays
noDeliveryDays
specialHolidays
openDetailingWithCategory
customerFacingDomain
customSignupUrl
contactEmail
twilioAccountSid
twilioAuthToken
twilioPhone
twilioPhoneLookup
userNameOnEmailSubject
payableEntity
emailFooter
lockerBuildingCode
communicationTemplatesId
vcardTemplate
newPickupScheduledInstructions
sendAutomatedMessages
sendStatementEmails
signupEmailRequired
signupGroupRequired
signupAddressRequired
signupPhoneRequired
signupCardRequired
allowOrderSplitting
groupOnDetailingSplit
offerStoreDelivery
offerDeliverySchedulingInText
useStoreZipCodeForTax
summarizeByBillingCode
showSalesTaxBreakdownForStatementOrders
simplifiedPaymentReceipt
cashTotalRounding
hasLogo
isHotel
isHotelProcessor
isRoomGroupHotel
isLockers
isValet
isWholesaler
pickupUnpaidOrders
pressOnlyDiscount
washOnlyDiscount
scheduleWillCallAtAssembly
scheduleWillCallOnDueDate
dontIncludeOrdersInDeliveryListBeforeDueDate
allowSubDeliveryAccountScheduling
allowSubAccountToTriggerMasterDelivery
sendAutopayReceipts
sendDeliveryAppointmentConfirmation
showDeliveryNotPaid
deliveryAppLoadListSortDescending
requireSignatureOnDelivery
showSubRouteForDeliveryStop
genericLaundryBagMode
rushNotificationsHour
websiteDisplayText
shouldShowWebsiteOnReceipts
showAgentOnBagTag
assemblyEvenOnly
voiceAssemblyEnabled
inspectPriceAtAssembly
assemblyPrintFinancialReceiptForDeliveryCustomer
assemblyAlwaysPrintFinancialReceipt
printFinancialTicketOutsideAssembly
complexLotControl
overrideDueDateWithNextDelivery
autoSelectDeliveryReturnLocation
defaultDetailingTab
autoOpenAnnotationType
requireInvoiceInDetailing
displayTooManyDetailedItemsWarning
assemblyIcon
alignAssemblyIcon
newCustomerTicketIcon
newCustomerBottomTicketIcon
customerNameOnTicketBottom
pieceCountOnTicketBottom
customerPhoneOnTicket
showRoomInfoBelowAddress
laundryLicense
summarizedItemTable
showLogoOnReceipts
logoOnReceiptHeight
receiptLogoName
showPriceOnAssembly
paymentReceiptShowSignatureLine
receiptsNameShort
newLocationOnTicket
showRouteOfSameDayDelivery
itemDetailsOnTicket
itemDetailsOnOrderReceipt
newOrderPrintCount
printRetailReceipts
printDropTicketOnOrderSplit
printTicketOnOrderCloseCount
noStoreContactInfoOnReceipts
noPricingOnOrderReceipts
receiptsFooter
thermalReceiptFooter
ticketReceiptFooter
showEmailOnReceipts
showWebsiteOnReceipts
invoicePayableLine
invoiceTerms
isRestorationAccount
offerDemandDelivery
autoAddNewCustomerToWillCallRoute
groupItemDetailsByRoomNumber
merchantBatchCloseTime
saveCardsOnFile
amexSeparately
maxAutopayAmount
autopayTerms
autopayStatements
autopayBatchStrategy
invoiceDueDays
consolidateInvoiceItemDetails
invoiceShowOrderDetails
invoiceHideOrderInfo
showDateOnStatement
callStatementInvoice
activitySummaryEnabled
attachPDFInStatementEmails
rewardsProgramEnabled
rewardsPointModifier
rewardsCurrencyModifier
rewardsConversionRequirement
rewardsRedeemAutomatically
welcomeNotificationDisabled
autoTicketOnCustomerRegistration
autoTicketOnScheduledDelivery
sendCustomerUpdatedCCNotification
allowScheduleBothPickupAndDelivery
limitScheduleDeliveryToClosestRoute
allowRouteRegularCustomersToScheduleOnDemand
allowSameDaySchedulingEvenIfRouteStarted
experimentalPhotoUserExperienceOnWebsiteScheduler
priceListUpdateOrdersCondition
routeAgentPriority
commonOrdersAgent
isMailOrderPickups
lockerDropBinPickupMode
showYesRepliesInComm
autoReplyToYesRepliesInComm
customerWebsiteClothesTrackerTabEnabled
customerWebsiteWardrobeTabEnabled
customerWebsitePaymentTabEnabled
metalprogettiAssemblyLabelTemplate
metalprogettiSendRackSpaceToStorage
sendNewOrderNotificationOnEveryVisit
includeReceiptInNewOrderNotification
printTempTagsForBarcodedItems
zebraPrinterTemplate
epsonPrinterTemplate
forceOnlyBagFieldInput
detailingWithoutBarcodes
printLabelsWhenDuplicating
metalprogettiStripCharacters
autoDetailingEnabled
minItemBarcodeLength
maxItemBarcodeLength
quotesDeletionTimeFrame
minWashNFoldPrice
minWashNFoldWeight
washAndFoldWeightStations
departmentSpecificOrdersEnabled
manualPickupRestricted
displayDueDateInProductionModules
offersRetailDelivery
regRouteQuestionChecked
filterDetailingByItemTypes
payrollPeriod
payrollLastCloseDate
payrollFirstHalfCloseDate
payrollLastHalfCloseDate
payrollCloseDate
workweekStart
hoursUntilWeeklyOvertime
hoursUntilDailyOvertime
hoursUntilDailyDoubleTime
hoursUntilWeeklyNotification
hoursUntilDailyNotification
preventClockInBeforeTime
californiaOvertimeRules
promptForClockInOnLogin
overrideTimeClockWithUserDepartment
allowMobileAppClockIn
disableOverTimeNotifications
overnightClockOut
inventorySystemEnabled
inventorySystemEnabledProduction
permissionManageSystemSettings
permissionManageStationSettings
permissionAccessCustomerCredits
permissionAddCustomerDiscount
permissionAccessCustomerModule
permissionAccessDeliveryModule
permissionAccessAssemblyModule
permissionAccessSpottingModule
permissionAccessAlterAndRepairModule
permissionAccessAccountsReceivableModule
permissionAccessPressingModule
permissionAccessPriceListModule
permissionAccessCashBoxModule
permissionAccessTimeclockModule
permissionAccessPerformanceModule
permissionAccessWashAndFoldModule
permissionAccessInspectionModule
permissionAccessItemBaggingModule
permissionAccessFoldingAndBaggingModule
permissionAccessMessagesModule
permissionAccessRackingModule
permissionAccessRouteManagerModule
permissionAccessReportsModule
permissionAccessAdminReportsModule
permissionAccessIssueTrackerModule
permissionAccessSupportModule
permissionAccessEmployeeSettingsModule
permissionAccessBulkMarkinModule
permissionManualPriceEdits
permissionSpecialCareAfterOrderClose
showStrikeThroughWhenReturned
usePieceCountTotalsOnTicket
taxHeaderString
includeTaxInPrice
dropDateOnAssemblyTicket
displayDepartmentOnTicket
displayCategoryOnTicket
displayPriceOnPickupSlip
useStoreSpecificOrderSequenceNumbers
saleItemLedgerTrackingEnabled
}
group {
id
localId
agentId
agentType
name
hasOwnAgent
isGroupStop
isMasterBilling
customers {
...CustomerFragment
}
}
agent {
id
localId
name
agentId
agentType
}
routeHolds {
id
localId
startDate
endDate
}
driverInstructions
preferences
goodOnlineAccountStanding
addresses {
id
localId
name
streetAddress
streetAddress2
city
state
zip
latitude
longitude
skipVerification
manualLocation
}
defaultAddress {
id
localId
name
streetAddress
streetAddress2
city
state
zip
latitude
longitude
skipVerification
manualLocation
}
creditCardIFrameURL
authenticatedCustomerSiteLink
creditCard {
id
localId
type
last4
expm
expy
}
datesForSchedulingAppointment {
id
localId
date
timeSlots {
...TimeSlotFragment
}
}
customerBookings {
id
localId
pickupAppointment {
...AppointmentFragment
}
deliveryAppointment {
...AppointmentFragment
}
orders {
...OrderFragment
}
pickupDateDisplay
deliveryDateDisplay
statusText
status
progress
bookingDate
}
readyBags {
id
localId
barcode
display
order {
...OrderFragment
}
location {
...RackLogFragment
}
}
customerRelationship
deliveryStop
demographic
apiTokenForCustomer
activePromotions {
id
localId
name
couponCode
customerCouponCode
}
subscription {
id
localId
pending {
...CustomerSubscriptionEntryFragment
}
active {
...CustomerSubscriptionEntryFragment
}
log {
...CustomerSubscriptionLogFragment
}
}
kioskAccessCode
email
cellPhone
homePhone
firstName
lastName
companyName
customFields {
id
localId
value
}
}
}
Variables
{
"input": CustomerInput,
"agentId": "xyz789"
}
Response
{
"data": {
"createCustomer": {
"id": 4,
"localId": 4,
"name": "abc123",
"futureAppointments": [Appointment],
"settings": Settings,
"group": Group,
"agent": Agent,
"routeHolds": [CustomerRouteHold],
"driverInstructions": "xyz789",
"preferences": ["4"],
"goodOnlineAccountStanding": true,
"addresses": [CustomerAddress],
"defaultAddress": CustomerAddress,
"creditCardIFrameURL": "xyz789",
"authenticatedCustomerSiteLink": "abc123",
"creditCard": CreditCard,
"datesForSchedulingAppointment": [ScheduleDate],
"customerBookings": [CustomerBooking],
"readyBags": [CustomerBag],
"customerRelationship": "STORE_ONLY",
"deliveryStop": 987,
"demographic": 123,
"apiTokenForCustomer": "xyz789",
"activePromotions": [Promotion],
"subscription": CustomerSubscription,
"kioskAccessCode": "xyz789",
"email": "xyz789",
"cellPhone": "abc123",
"homePhone": "abc123",
"firstName": "abc123",
"lastName": "xyz789",
"companyName": "abc123",
"customFields": [CustomerFieldValue]
}
}
}
createNotificationForEmployees
Description
Send a notification to specified employees. Requires access level: Production
Response
Returns a
Boolean!
Example
Query
mutation CreateNotificationForEmployees(
$text: String!,
$employees: [ID]!
) {
createNotificationForEmployees(
text: $text,
employees: $employees
)
}
Variables
{
"text": "abc123",
"employees": ["4"]
}
Response
{"data": {"createNotificationForEmployees": false}}
deactivateAccount
Description
Deactivates customer account. Requires access level: Sales Clerk
Response
Returns an
ID!
Example
Query
mutation DeactivateAccount(
$customerId: ID!,
$subCategoryId: ID!,
$description: String
) {
deactivateAccount(
customerId: $customerId,
subCategoryId: $subCategoryId,
description: $description
)
}
Variables
{
"customerId": "4",
"subCategoryId": "4",
"description": "xyz789"
}
Response
{"data": {"deactivateAccount": 4}}
deleteRouteHold
Description
Delete a customer route hold. Requires access level: Sr Manager
Response
Returns an
ID
Example
Query
mutation DeleteRouteHold(
$customerId: ID!,
$input: ID!
) {
deleteRouteHold(
customerId: $customerId,
input: $input
)
}
Variables
{"customerId": 4, "input": "4"}
Response
{"data": {"deleteRouteHold": "4"}}
deleteTaxConfigurationRule
Description
Delete a tax configuration rule. Requires access level: Sr Manager
getAdminApiToken
Description
Create or get an existing JWT admin API Token. This token does not expire unless revoked. Requires access level: Admin
Response
Returns a
String!
Example
Query
mutation GetAdminApiToken {
getAdminApiToken
}
Response
{"data": {"getAdminApiToken": "abc123"}}
mpKioskSendPaymentLink
Description
Sends payment link to customer for ready & unpaid orders
prepareChatUser
Description
To be called before connecting to chat socket to ensure appropriate data exists
Response
Returns a
Boolean!
Example
Query
mutation PrepareChatUser {
prepareChatUser
}
Response
{"data": {"prepareChatUser": true}}
prepareKioskTicketsForPayment
putAlertSubType
Description
Creates or updates an Alert Sub Type
Response
Returns an
AlertSubType
Arguments
Name | Description |
---|---|
input -
AlertSubTypeInput!
|
Example
Query
mutation PutAlertSubType($input: AlertSubTypeInput!) {
putAlertSubType(input: $input) {
id
localId
masterTypeId
name
prefTicket
prefCustomer
prefDelivery
prefPressing
prefInspection
prefSpotting
prefAlteration
prefWashing
active
}
}
Variables
{"input": AlertSubTypeInput}
Response
{
"data": {
"putAlertSubType": {
"id": 4,
"localId": 4,
"masterTypeId": "4",
"name": "xyz789",
"prefTicket": true,
"prefCustomer": true,
"prefDelivery": false,
"prefPressing": false,
"prefInspection": true,
"prefSpotting": true,
"prefAlteration": false,
"prefWashing": true,
"active": true
}
}
}
putAppointment
Description
Create or update an Appointment. Requires access level: Customer or Admin
Response
Returns an
Appointment!
Arguments
Name | Description |
---|---|
input -
AppointmentInput!
|
An Appointment to create or update |
isPickup -
Boolean
|
Must be set if scheduling both pickup and delivery |
Example
Query
mutation PutAppointment(
$input: AppointmentInput!,
$isPickup: Boolean
) {
putAppointment(
input: $input,
isPickup: $isPickup
) {
id
localId
startTime
endTime
timeSlot {
id
localId
start
end
routeId
}
scheduledBy {
id
localId
name
}
scheduledAt
route {
id
localId
agentId
agentType
name
type
isSubRoute
masterRouteId
pickupCutoffHours
deliveryCutoffHours
autoOptimize
}
driverInstructions
cleaningInstructions
departments {
id
localId
name
showInCustomerScheduler
}
customer {
id
localId
name
futureAppointments {
...AppointmentFragment
}
settings {
...SettingsFragment
}
group {
...GroupFragment
}
agent {
...AgentFragment
}
routeHolds {
...CustomerRouteHoldFragment
}
driverInstructions
preferences
goodOnlineAccountStanding
addresses {
...CustomerAddressFragment
}
defaultAddress {
...CustomerAddressFragment
}
creditCardIFrameURL
authenticatedCustomerSiteLink
creditCard {
...CreditCardFragment
}
datesForSchedulingAppointment {
...ScheduleDateFragment
}
customerBookings {
...CustomerBookingFragment
}
readyBags {
...CustomerBagFragment
}
customerRelationship
deliveryStop
demographic
apiTokenForCustomer
activePromotions {
...PromotionFragment
}
subscription {
...CustomerSubscriptionFragment
}
kioskAccessCode
email
cellPhone
homePhone
firstName
lastName
companyName
customFields {
...CustomerFieldValueFragment
}
}
address {
id
localId
name
streetAddress
streetAddress2
city
state
zip
latitude
longitude
skipVerification
manualLocation
}
driver {
id
localId
name
firstName
}
regular
anytime
status
appointmentLinkId
photos {
id
localId
status
thumbnailUrl
smallUrl
largeUrl
description
}
lockerCode
}
}
Variables
{"input": AppointmentInput, "isPickup": true}
Response
{
"data": {
"putAppointment": {
"id": "4",
"localId": 4,
"startTime": "2007-12-03T10:15:30Z",
"endTime": "2007-12-03T10:15:30Z",
"timeSlot": TimeSlot,
"scheduledBy": Actor,
"scheduledAt": "2007-12-03T10:15:30Z",
"route": Route,
"driverInstructions": "xyz789",
"cleaningInstructions": "xyz789",
"departments": [FinancialDepartment],
"customer": Customer,
"address": CustomerAddress,
"driver": User,
"regular": true,
"anytime": false,
"status": "abc123",
"appointmentLinkId": "4",
"photos": [Photo],
"lockerCode": "4"
}
}
}
putBrand
Description
Update or Create brand. Requires access level: Sr Manager
Response
Returns a
Brand!
Arguments
Name | Description |
---|---|
input -
BrandInput!
|
A brand to create/update |
Example
Query
mutation PutBrand($input: BrandInput!) {
putBrand(input: $input) {
id
localId
name
brandId
settings {
id
localId
mainDeliveryStore {
...StoreFragment
}
mainStore {
...StoreFragment
}
quickDetailingItemTypes {
...ItemTypeFragment
}
defaultPaymentMethod {
...PaymentMethodFragment
}
acceptedPaymentMethods {
...PaymentMethodFragment
}
logo
receiptLogo
POSNewOrderTabs
deliveryNewOrderTabs
statementGenerationDays
invoiceGenerationDays
acceptedCards
businessName
contactAddressLine
contactAddressState
contactAddressCity
contactAddressZip
contactPhone
logoUrl
noProductionDays
noDeliveryDays
specialHolidays
openDetailingWithCategory
customerFacingDomain
customSignupUrl
contactEmail
twilioAccountSid
twilioAuthToken
twilioPhone
twilioPhoneLookup
userNameOnEmailSubject
payableEntity
emailFooter
lockerBuildingCode
communicationTemplatesId
vcardTemplate
newPickupScheduledInstructions
sendAutomatedMessages
sendStatementEmails
signupEmailRequired
signupGroupRequired
signupAddressRequired
signupPhoneRequired
signupCardRequired
allowOrderSplitting
groupOnDetailingSplit
offerStoreDelivery
offerDeliverySchedulingInText
useStoreZipCodeForTax
summarizeByBillingCode
showSalesTaxBreakdownForStatementOrders
simplifiedPaymentReceipt
cashTotalRounding
hasLogo
isHotel
isHotelProcessor
isRoomGroupHotel
isLockers
isValet
isWholesaler
pickupUnpaidOrders
pressOnlyDiscount
washOnlyDiscount
scheduleWillCallAtAssembly
scheduleWillCallOnDueDate
dontIncludeOrdersInDeliveryListBeforeDueDate
allowSubDeliveryAccountScheduling
allowSubAccountToTriggerMasterDelivery
sendAutopayReceipts
sendDeliveryAppointmentConfirmation
showDeliveryNotPaid
deliveryAppLoadListSortDescending
requireSignatureOnDelivery
showSubRouteForDeliveryStop
genericLaundryBagMode
rushNotificationsHour
websiteDisplayText
shouldShowWebsiteOnReceipts
showAgentOnBagTag
assemblyEvenOnly
voiceAssemblyEnabled
inspectPriceAtAssembly
assemblyPrintFinancialReceiptForDeliveryCustomer
assemblyAlwaysPrintFinancialReceipt
printFinancialTicketOutsideAssembly
complexLotControl
overrideDueDateWithNextDelivery
autoSelectDeliveryReturnLocation
defaultDetailingTab
autoOpenAnnotationType
requireInvoiceInDetailing
displayTooManyDetailedItemsWarning
assemblyIcon
alignAssemblyIcon
newCustomerTicketIcon
newCustomerBottomTicketIcon
customerNameOnTicketBottom
pieceCountOnTicketBottom
customerPhoneOnTicket
showRoomInfoBelowAddress
laundryLicense
summarizedItemTable
showLogoOnReceipts
logoOnReceiptHeight
receiptLogoName
showPriceOnAssembly
paymentReceiptShowSignatureLine
receiptsNameShort
newLocationOnTicket
showRouteOfSameDayDelivery
itemDetailsOnTicket
itemDetailsOnOrderReceipt
newOrderPrintCount
printRetailReceipts
printDropTicketOnOrderSplit
printTicketOnOrderCloseCount
noStoreContactInfoOnReceipts
noPricingOnOrderReceipts
receiptsFooter
thermalReceiptFooter
ticketReceiptFooter
showEmailOnReceipts
showWebsiteOnReceipts
invoicePayableLine
invoiceTerms
isRestorationAccount
offerDemandDelivery
autoAddNewCustomerToWillCallRoute
groupItemDetailsByRoomNumber
merchantBatchCloseTime
saveCardsOnFile
amexSeparately
maxAutopayAmount
autopayTerms
autopayStatements
autopayBatchStrategy
invoiceDueDays
consolidateInvoiceItemDetails
invoiceShowOrderDetails
invoiceHideOrderInfo
showDateOnStatement
callStatementInvoice
activitySummaryEnabled
attachPDFInStatementEmails
rewardsProgramEnabled
rewardsPointModifier
rewardsCurrencyModifier
rewardsConversionRequirement
rewardsRedeemAutomatically
welcomeNotificationDisabled
autoTicketOnCustomerRegistration
autoTicketOnScheduledDelivery
sendCustomerUpdatedCCNotification
allowScheduleBothPickupAndDelivery
limitScheduleDeliveryToClosestRoute
allowRouteRegularCustomersToScheduleOnDemand
allowSameDaySchedulingEvenIfRouteStarted
experimentalPhotoUserExperienceOnWebsiteScheduler
priceListUpdateOrdersCondition
routeAgentPriority
commonOrdersAgent
isMailOrderPickups
lockerDropBinPickupMode
showYesRepliesInComm
autoReplyToYesRepliesInComm
customerWebsiteClothesTrackerTabEnabled
customerWebsiteWardrobeTabEnabled
customerWebsitePaymentTabEnabled
metalprogettiAssemblyLabelTemplate
metalprogettiSendRackSpaceToStorage
sendNewOrderNotificationOnEveryVisit
includeReceiptInNewOrderNotification
printTempTagsForBarcodedItems
zebraPrinterTemplate
epsonPrinterTemplate
forceOnlyBagFieldInput
detailingWithoutBarcodes
printLabelsWhenDuplicating
metalprogettiStripCharacters
autoDetailingEnabled
minItemBarcodeLength
maxItemBarcodeLength
quotesDeletionTimeFrame
minWashNFoldPrice
minWashNFoldWeight
washAndFoldWeightStations
departmentSpecificOrdersEnabled
manualPickupRestricted
displayDueDateInProductionModules
offersRetailDelivery
regRouteQuestionChecked
filterDetailingByItemTypes
payrollPeriod
payrollLastCloseDate
payrollFirstHalfCloseDate
payrollLastHalfCloseDate
payrollCloseDate
workweekStart
hoursUntilWeeklyOvertime
hoursUntilDailyOvertime
hoursUntilDailyDoubleTime
hoursUntilWeeklyNotification
hoursUntilDailyNotification
preventClockInBeforeTime
californiaOvertimeRules
promptForClockInOnLogin
overrideTimeClockWithUserDepartment
allowMobileAppClockIn
disableOverTimeNotifications
overnightClockOut
inventorySystemEnabled
inventorySystemEnabledProduction
permissionManageSystemSettings
permissionManageStationSettings
permissionAccessCustomerCredits
permissionAddCustomerDiscount
permissionAccessCustomerModule
permissionAccessDeliveryModule
permissionAccessAssemblyModule
permissionAccessSpottingModule
permissionAccessAlterAndRepairModule
permissionAccessAccountsReceivableModule
permissionAccessPressingModule
permissionAccessPriceListModule
permissionAccessCashBoxModule
permissionAccessTimeclockModule
permissionAccessPerformanceModule
permissionAccessWashAndFoldModule
permissionAccessInspectionModule
permissionAccessItemBaggingModule
permissionAccessFoldingAndBaggingModule
permissionAccessMessagesModule
permissionAccessRackingModule
permissionAccessRouteManagerModule
permissionAccessReportsModule
permissionAccessAdminReportsModule
permissionAccessIssueTrackerModule
permissionAccessSupportModule
permissionAccessEmployeeSettingsModule
permissionAccessBulkMarkinModule
permissionManualPriceEdits
permissionSpecialCareAfterOrderClose
showStrikeThroughWhenReturned
usePieceCountTotalsOnTicket
taxHeaderString
includeTaxInPrice
dropDateOnAssemblyTicket
displayDepartmentOnTicket
displayCategoryOnTicket
displayPriceOnPickupSlip
useStoreSpecificOrderSequenceNumbers
saleItemLedgerTrackingEnabled
}
agents {
id
localId
name
agentId
agentType
}
}
}
Variables
{"input": BrandInput}
Response
{
"data": {
"putBrand": {
"id": 4,
"localId": "4",
"name": "abc123",
"brandId": "xyz789",
"settings": Settings,
"agents": [Agent]
}
}
}
putChatRoom
Description
Create or update a chat room. Requires access level: Sr Manager
Response
Returns a
ChatRoom!
Arguments
Name | Description |
---|---|
input -
ChatRoomInput!
|
A chat room to create/update |
Example
Query
mutation PutChatRoom($input: ChatRoomInput!) {
putChatRoom(input: $input) {
id
localId
name
specialRoomType
isPrivate
userIds
agents
usersAllowedToPost
isNotificationsRoom
isRequired
chatMessages {
id
localId
roomId
userId
text
createDate
}
}
}
Variables
{"input": ChatRoomInput}
Response
{
"data": {
"putChatRoom": {
"id": 4,
"localId": 4,
"name": "xyz789",
"specialRoomType": "xyz789",
"isPrivate": false,
"userIds": ["4"],
"agents": ["4"],
"usersAllowedToPost": ["4"],
"isNotificationsRoom": false,
"isRequired": false,
"chatMessages": [ChatMessage]
}
}
}
putContactLogEmail
Description
Sends a message to the customer using the contact log. Requires access level: Customer or Admin
Response
Returns a
Boolean
Example
Query
mutation PutContactLogEmail(
$customerId: ID!,
$subject: String,
$message: String
) {
putContactLogEmail(
customerId: $customerId,
subject: $subject,
message: $message
)
}
Variables
{
"customerId": "4",
"subject": "abc123",
"message": "abc123"
}
Response
{"data": {"putContactLogEmail": false}}
putCreditCard
Description
Updates a customer's credit card. Responding with 'added' or 'updated'. Requires access level: Customer or Admin
Response
Returns a
String!
Example
Query
mutation PutCreditCard(
$customerId: ID!,
$id: String!,
$type: CreditCardTypeEnum!,
$last4: Int!,
$expiryMonth: Int!,
$expiryYear: Int!
) {
putCreditCard(
customerId: $customerId,
id: $id,
type: $type,
last4: $last4,
expiryMonth: $expiryMonth,
expiryYear: $expiryYear
)
}
Variables
{
"customerId": "4",
"id": "abc123",
"type": "visa",
"last4": 123,
"expiryMonth": 123,
"expiryYear": 987
}
Response
{"data": {"putCreditCard": "abc123"}}
putCustomer
Description
Updates a customer. Requires access level: Customer or Admin
Response
Returns a
Customer
Arguments
Name | Description |
---|---|
customerId -
ID
|
A customer id (optional, defaults to logged in user) |
input -
CustomerInput!
|
Customer fields to update |
promotionToApply -
String
|
A coupon code to apply to the customer |
Example
Query
mutation PutCustomer(
$customerId: ID,
$input: CustomerInput!,
$promotionToApply: String
) {
putCustomer(
customerId: $customerId,
input: $input,
promotionToApply: $promotionToApply
) {
id
localId
name
futureAppointments {
id
localId
startTime
endTime
timeSlot {
...TimeSlotFragment
}
scheduledBy {
...ActorFragment
}
scheduledAt
route {
...RouteFragment
}
driverInstructions
cleaningInstructions
departments {
...FinancialDepartmentFragment
}
customer {
...CustomerFragment
}
address {
...CustomerAddressFragment
}
driver {
...UserFragment
}
regular
anytime
status
appointmentLinkId
photos {
...PhotoFragment
}
lockerCode
}
settings {
id
localId
mainDeliveryStore {
...StoreFragment
}
mainStore {
...StoreFragment
}
quickDetailingItemTypes {
...ItemTypeFragment
}
defaultPaymentMethod {
...PaymentMethodFragment
}
acceptedPaymentMethods {
...PaymentMethodFragment
}
logo
receiptLogo
POSNewOrderTabs
deliveryNewOrderTabs
statementGenerationDays
invoiceGenerationDays
acceptedCards
businessName
contactAddressLine
contactAddressState
contactAddressCity
contactAddressZip
contactPhone
logoUrl
noProductionDays
noDeliveryDays
specialHolidays
openDetailingWithCategory
customerFacingDomain
customSignupUrl
contactEmail
twilioAccountSid
twilioAuthToken
twilioPhone
twilioPhoneLookup
userNameOnEmailSubject
payableEntity
emailFooter
lockerBuildingCode
communicationTemplatesId
vcardTemplate
newPickupScheduledInstructions
sendAutomatedMessages
sendStatementEmails
signupEmailRequired
signupGroupRequired
signupAddressRequired
signupPhoneRequired
signupCardRequired
allowOrderSplitting
groupOnDetailingSplit
offerStoreDelivery
offerDeliverySchedulingInText
useStoreZipCodeForTax
summarizeByBillingCode
showSalesTaxBreakdownForStatementOrders
simplifiedPaymentReceipt
cashTotalRounding
hasLogo
isHotel
isHotelProcessor
isRoomGroupHotel
isLockers
isValet
isWholesaler
pickupUnpaidOrders
pressOnlyDiscount
washOnlyDiscount
scheduleWillCallAtAssembly
scheduleWillCallOnDueDate
dontIncludeOrdersInDeliveryListBeforeDueDate
allowSubDeliveryAccountScheduling
allowSubAccountToTriggerMasterDelivery
sendAutopayReceipts
sendDeliveryAppointmentConfirmation
showDeliveryNotPaid
deliveryAppLoadListSortDescending
requireSignatureOnDelivery
showSubRouteForDeliveryStop
genericLaundryBagMode
rushNotificationsHour
websiteDisplayText
shouldShowWebsiteOnReceipts
showAgentOnBagTag
assemblyEvenOnly
voiceAssemblyEnabled
inspectPriceAtAssembly
assemblyPrintFinancialReceiptForDeliveryCustomer
assemblyAlwaysPrintFinancialReceipt
printFinancialTicketOutsideAssembly
complexLotControl
overrideDueDateWithNextDelivery
autoSelectDeliveryReturnLocation
defaultDetailingTab
autoOpenAnnotationType
requireInvoiceInDetailing
displayTooManyDetailedItemsWarning
assemblyIcon
alignAssemblyIcon
newCustomerTicketIcon
newCustomerBottomTicketIcon
customerNameOnTicketBottom
pieceCountOnTicketBottom
customerPhoneOnTicket
showRoomInfoBelowAddress
laundryLicense
summarizedItemTable
showLogoOnReceipts
logoOnReceiptHeight
receiptLogoName
showPriceOnAssembly
paymentReceiptShowSignatureLine
receiptsNameShort
newLocationOnTicket
showRouteOfSameDayDelivery
itemDetailsOnTicket
itemDetailsOnOrderReceipt
newOrderPrintCount
printRetailReceipts
printDropTicketOnOrderSplit
printTicketOnOrderCloseCount
noStoreContactInfoOnReceipts
noPricingOnOrderReceipts
receiptsFooter
thermalReceiptFooter
ticketReceiptFooter
showEmailOnReceipts
showWebsiteOnReceipts
invoicePayableLine
invoiceTerms
isRestorationAccount
offerDemandDelivery
autoAddNewCustomerToWillCallRoute
groupItemDetailsByRoomNumber
merchantBatchCloseTime
saveCardsOnFile
amexSeparately
maxAutopayAmount
autopayTerms
autopayStatements
autopayBatchStrategy
invoiceDueDays
consolidateInvoiceItemDetails
invoiceShowOrderDetails
invoiceHideOrderInfo
showDateOnStatement
callStatementInvoice
activitySummaryEnabled
attachPDFInStatementEmails
rewardsProgramEnabled
rewardsPointModifier
rewardsCurrencyModifier
rewardsConversionRequirement
rewardsRedeemAutomatically
welcomeNotificationDisabled
autoTicketOnCustomerRegistration
autoTicketOnScheduledDelivery
sendCustomerUpdatedCCNotification
allowScheduleBothPickupAndDelivery
limitScheduleDeliveryToClosestRoute
allowRouteRegularCustomersToScheduleOnDemand
allowSameDaySchedulingEvenIfRouteStarted
experimentalPhotoUserExperienceOnWebsiteScheduler
priceListUpdateOrdersCondition
routeAgentPriority
commonOrdersAgent
isMailOrderPickups
lockerDropBinPickupMode
showYesRepliesInComm
autoReplyToYesRepliesInComm
customerWebsiteClothesTrackerTabEnabled
customerWebsiteWardrobeTabEnabled
customerWebsitePaymentTabEnabled
metalprogettiAssemblyLabelTemplate
metalprogettiSendRackSpaceToStorage
sendNewOrderNotificationOnEveryVisit
includeReceiptInNewOrderNotification
printTempTagsForBarcodedItems
zebraPrinterTemplate
epsonPrinterTemplate
forceOnlyBagFieldInput
detailingWithoutBarcodes
printLabelsWhenDuplicating
metalprogettiStripCharacters
autoDetailingEnabled
minItemBarcodeLength
maxItemBarcodeLength
quotesDeletionTimeFrame
minWashNFoldPrice
minWashNFoldWeight
washAndFoldWeightStations
departmentSpecificOrdersEnabled
manualPickupRestricted
displayDueDateInProductionModules
offersRetailDelivery
regRouteQuestionChecked
filterDetailingByItemTypes
payrollPeriod
payrollLastCloseDate
payrollFirstHalfCloseDate
payrollLastHalfCloseDate
payrollCloseDate
workweekStart
hoursUntilWeeklyOvertime
hoursUntilDailyOvertime
hoursUntilDailyDoubleTime
hoursUntilWeeklyNotification
hoursUntilDailyNotification
preventClockInBeforeTime
californiaOvertimeRules
promptForClockInOnLogin
overrideTimeClockWithUserDepartment
allowMobileAppClockIn
disableOverTimeNotifications
overnightClockOut
inventorySystemEnabled
inventorySystemEnabledProduction
permissionManageSystemSettings
permissionManageStationSettings
permissionAccessCustomerCredits
permissionAddCustomerDiscount
permissionAccessCustomerModule
permissionAccessDeliveryModule
permissionAccessAssemblyModule
permissionAccessSpottingModule
permissionAccessAlterAndRepairModule
permissionAccessAccountsReceivableModule
permissionAccessPressingModule
permissionAccessPriceListModule
permissionAccessCashBoxModule
permissionAccessTimeclockModule
permissionAccessPerformanceModule
permissionAccessWashAndFoldModule
permissionAccessInspectionModule
permissionAccessItemBaggingModule
permissionAccessFoldingAndBaggingModule
permissionAccessMessagesModule
permissionAccessRackingModule
permissionAccessRouteManagerModule
permissionAccessReportsModule
permissionAccessAdminReportsModule
permissionAccessIssueTrackerModule
permissionAccessSupportModule
permissionAccessEmployeeSettingsModule
permissionAccessBulkMarkinModule
permissionManualPriceEdits
permissionSpecialCareAfterOrderClose
showStrikeThroughWhenReturned
usePieceCountTotalsOnTicket
taxHeaderString
includeTaxInPrice
dropDateOnAssemblyTicket
displayDepartmentOnTicket
displayCategoryOnTicket
displayPriceOnPickupSlip
useStoreSpecificOrderSequenceNumbers
saleItemLedgerTrackingEnabled
}
group {
id
localId
agentId
agentType
name
hasOwnAgent
isGroupStop
isMasterBilling
customers {
...CustomerFragment
}
}
agent {
id
localId
name
agentId
agentType
}
routeHolds {
id
localId
startDate
endDate
}
driverInstructions
preferences
goodOnlineAccountStanding
addresses {
id
localId
name
streetAddress
streetAddress2
city
state
zip
latitude
longitude
skipVerification
manualLocation
}
defaultAddress {
id
localId
name
streetAddress
streetAddress2
city
state
zip
latitude
longitude
skipVerification
manualLocation
}
creditCardIFrameURL
authenticatedCustomerSiteLink
creditCard {
id
localId
type
last4
expm
expy
}
datesForSchedulingAppointment {
id
localId
date
timeSlots {
...TimeSlotFragment
}
}
customerBookings {
id
localId
pickupAppointment {
...AppointmentFragment
}
deliveryAppointment {
...AppointmentFragment
}
orders {
...OrderFragment
}
pickupDateDisplay
deliveryDateDisplay
statusText
status
progress
bookingDate
}
readyBags {
id
localId
barcode
display
order {
...OrderFragment
}
location {
...RackLogFragment
}
}
customerRelationship
deliveryStop
demographic
apiTokenForCustomer
activePromotions {
id
localId
name
couponCode
customerCouponCode
}
subscription {
id
localId
pending {
...CustomerSubscriptionEntryFragment
}
active {
...CustomerSubscriptionEntryFragment
}
log {
...CustomerSubscriptionLogFragment
}
}
kioskAccessCode
email
cellPhone
homePhone
firstName
lastName
companyName
customFields {
id
localId
value
}
}
}
Variables
{
"customerId": "4",
"input": CustomerInput,
"promotionToApply": "abc123"
}
Response
{
"data": {
"putCustomer": {
"id": 4,
"localId": 4,
"name": "xyz789",
"futureAppointments": [Appointment],
"settings": Settings,
"group": Group,
"agent": Agent,
"routeHolds": [CustomerRouteHold],
"driverInstructions": "abc123",
"preferences": [4],
"goodOnlineAccountStanding": false,
"addresses": [CustomerAddress],
"defaultAddress": CustomerAddress,
"creditCardIFrameURL": "xyz789",
"authenticatedCustomerSiteLink": "xyz789",
"creditCard": CreditCard,
"datesForSchedulingAppointment": [ScheduleDate],
"customerBookings": [CustomerBooking],
"readyBags": [CustomerBag],
"customerRelationship": "STORE_ONLY",
"deliveryStop": 987,
"demographic": 123,
"apiTokenForCustomer": "xyz789",
"activePromotions": [Promotion],
"subscription": CustomerSubscription,
"kioskAccessCode": "abc123",
"email": "xyz789",
"cellPhone": "abc123",
"homePhone": "xyz789",
"firstName": "xyz789",
"lastName": "abc123",
"companyName": "abc123",
"customFields": [CustomerFieldValue]
}
}
}
putCustomerAddresses
Description
Updates a customer's addresses. Requires access level: Customer or Admin
Response
Returns a
PutCustomerAddressesResponse
Arguments
Name | Description |
---|---|
customerId -
ID
|
A customer id (optional, defaults to logged in user) |
defaultName -
String!
|
The default address name (Home, Business or Other) |
addresses -
[CustomerAddressInput]!
|
A list of addresses |
updateDeliveries -
Boolean
|
If true, also update addresses for currently scheduled deliveries |
Example
Query
mutation PutCustomerAddresses(
$customerId: ID,
$defaultName: String!,
$addresses: [CustomerAddressInput]!,
$updateDeliveries: Boolean
) {
putCustomerAddresses(
customerId: $customerId,
defaultName: $defaultName,
addresses: $addresses,
updateDeliveries: $updateDeliveries
) {
id
localId
info
addresses {
id
localId
name
streetAddress
streetAddress2
city
state
zip
latitude
longitude
skipVerification
manualLocation
}
}
}
Variables
{
"customerId": "4",
"defaultName": "xyz789",
"addresses": [CustomerAddressInput],
"updateDeliveries": true
}
Response
{
"data": {
"putCustomerAddresses": {
"id": "4",
"localId": "4",
"info": "xyz789",
"addresses": [CustomerAddress]
}
}
}
putCustomerField
Description
Creates or updates a customer field
Response
Returns a
CustomerField
Arguments
Name | Description |
---|---|
input -
CustomerFieldInput!
|
Example
Query
mutation PutCustomerField($input: CustomerFieldInput!) {
putCustomerField(input: $input) {
id
localId
fieldType
label
possibleValues
shownProfile
shownPosSignUp
shownCustomerWebsite
shownCustomerWebsiteSignUp
elasticKey
disabled
}
}
Variables
{"input": CustomerFieldInput}
Response
{
"data": {
"putCustomerField": {
"id": "4",
"localId": "4",
"fieldType": "text",
"label": "abc123",
"possibleValues": ["xyz789"],
"shownProfile": true,
"shownPosSignUp": false,
"shownCustomerWebsite": true,
"shownCustomerWebsiteSignUp": false,
"elasticKey": "abc123",
"disabled": false
}
}
}
putCustomerPreferences
Description
Updates a customer's preferences. Requires access level: Customer or Admin
Response
Returns
[ID]!
Example
Query
mutation PutCustomerPreferences(
$customerId: ID!,
$preferenceIds: [ID]!
) {
putCustomerPreferences(
customerId: $customerId,
preferenceIds: $preferenceIds
)
}
Variables
{"customerId": 4, "preferenceIds": ["4"]}
Response
{"data": {"putCustomerPreferences": [4]}}
putImportOrder
Description
Creates an import order. Requires access level: Customer or Admin
Response
Returns a
Boolean
Example
Query
mutation PutImportOrder(
$customerId: ID!,
$agentId: String,
$amount: String,
$status: String,
$comment: String
) {
putImportOrder(
customerId: $customerId,
agentId: $agentId,
amount: $amount,
status: $status,
comment: $comment
)
}
Variables
{
"customerId": 4,
"agentId": "abc123",
"amount": "abc123",
"status": "abc123",
"comment": "abc123"
}
Response
{"data": {"putImportOrder": false}}
putItemCategories
Description
Update or Create item categories. Requires access level: Sr Manager
Response
Returns
[ItemCategory]!
Arguments
Name | Description |
---|---|
input -
[ItemCategoryInput]!
|
A list of item categories to create/update |
Example
Query
mutation PutItemCategories($input: [ItemCategoryInput]!) {
putItemCategories(input: $input) {
id
localId
name
sort
description
disabled
isRetail
}
}
Variables
{"input": [ItemCategoryInput]}
Response
{
"data": {
"putItemCategories": [
{
"id": "4",
"localId": "4",
"name": "xyz789",
"sort": 123,
"description": "xyz789",
"disabled": true,
"isRetail": true
}
]
}
}
putItemValidationRule
Description
Create or update an item validation rule. Requires access level: Sr Manager
Response
Returns an
ItemValidationRule!
Arguments
Name | Description |
---|---|
input -
ItemValidationRuleInput!
|
A rule to create/update |
Example
Query
mutation PutItemValidationRule($input: ItemValidationRuleInput!) {
putItemValidationRule(input: $input) {
id
localId
name
requiredFields
requiredSpecialCares
itemTypeCondition
departmentCondition
sort
isDisabled
}
}
Variables
{"input": ItemValidationRuleInput}
Response
{
"data": {
"putItemValidationRule": {
"id": 4,
"localId": 4,
"name": "abc123",
"requiredFields": ["abc123"],
"requiredSpecialCares": ["abc123"],
"itemTypeCondition": ["xyz789"],
"departmentCondition": ["abc123"],
"sort": 987,
"isDisabled": false
}
}
}
putPhoto
Description
Stores a photo
Response
Returns a
Photo
Arguments
Name | Description |
---|---|
input -
PhotoInput!
|
A Photo to create/update |
Example
Query
mutation PutPhoto($input: PhotoInput!) {
putPhoto(input: $input) {
id
localId
status
thumbnailUrl
smallUrl
largeUrl
description
}
}
Variables
{"input": PhotoInput}
Response
{
"data": {
"putPhoto": {
"id": 4,
"localId": "4",
"status": "abc123",
"thumbnailUrl": "xyz789",
"smallUrl": "abc123",
"largeUrl": "abc123",
"description": "abc123"
}
}
}
putRouteHold
Description
Update or Create a customer route hold. Requires access level: Sales Clerk
Response
Returns a
CustomerRouteHold!
Arguments
Name | Description |
---|---|
customerId -
ID!
|
Id of the customer to create/update a route hold for |
input -
CustomerRouteHoldInput!
|
A route hold to create/update |
Example
Query
mutation PutRouteHold(
$customerId: ID!,
$input: CustomerRouteHoldInput!
) {
putRouteHold(
customerId: $customerId,
input: $input
) {
id
localId
startDate
endDate
}
}
Variables
{
"customerId": "4",
"input": CustomerRouteHoldInput
}
Response
{
"data": {
"putRouteHold": {
"id": "4",
"localId": "4",
"startDate": "xyz789",
"endDate": "abc123"
}
}
}
putTaxConfigurationRule
Description
Update or Create a tax configuration rule. Requires access level: Sr Manager
Response
Returns a
TaxConfigurationRule!
Arguments
Name | Description |
---|---|
input -
TaxConfigurationRuleInput!
|
A rule to create/update |
Example
Query
mutation PutTaxConfigurationRule($input: TaxConfigurationRuleInput!) {
putTaxConfigurationRule(input: $input) {
id
localId
sort
parentRule
isDisabled
isDefault
name
rate
useAutoTaxJar
addressSpecific
zipCondition
departmentCondition
agentCondition
}
}
Variables
{"input": TaxConfigurationRuleInput}
Response
{
"data": {
"putTaxConfigurationRule": {
"id": 4,
"localId": 4,
"sort": 123,
"parentRule": "4",
"isDisabled": false,
"isDefault": true,
"name": "xyz789",
"rate": 987.65,
"useAutoTaxJar": false,
"addressSpecific": false,
"zipCondition": "xyz789",
"departmentCondition": ["abc123"],
"agentCondition": ["abc123"]
}
}
}
removeCustomerFromRoute
Description
Removes a customer from their current route
Response
Returns a
Boolean
Arguments
Name | Description |
---|---|
customerId -
ID!
|
|
preference -
CustomerDeliveryPreferenceEnum
|
New delivery preference (optional, defaults to NO_PREFERENCE) |
Example
Query
mutation RemoveCustomerFromRoute(
$customerId: ID!,
$preference: CustomerDeliveryPreferenceEnum
) {
removeCustomerFromRoute(
customerId: $customerId,
preference: $preference
)
}
Variables
{"customerId": 4, "preference": "NO_PREFERENCE"}
Response
{"data": {"removeCustomerFromRoute": false}}
removeUserFromChatRoom
Description
Remove a chat user from a room
Response
Returns a
Boolean!
Example
Query
mutation RemoveUserFromChatRoom(
$roomId: ID!,
$userId: ID!
) {
removeUserFromChatRoom(
roomId: $roomId,
userId: $userId
)
}
Variables
{"roomId": 4, "userId": "4"}
Response
{"data": {"removeUserFromChatRoom": false}}
requestRouteRegular
Description
A customer requests to be assigned to a regular route. Requires access level: Customer
Response
Returns a
Boolean
Example
Query
mutation RequestRouteRegular {
requestRouteRegular
}
Response
{"data": {"requestRouteRegular": false}}
selectCustomerSubscription
Description
Creates a subscription invoice & sets the subscription status to 'pending'. Requires access level: Customer or Admin
Response
Returns a
CustomerSubscription
Example
Query
mutation SelectCustomerSubscription(
$customerId: ID!,
$subscriptionId: ID!
) {
selectCustomerSubscription(
customerId: $customerId,
subscriptionId: $subscriptionId
) {
id
localId
pending {
id
localId
saleId
price
start
end
}
active {
id
localId
saleId
price
start
end
}
log {
id
localId
date
event
description
user {
...UserFragment
}
}
}
}
Variables
{"customerId": 4, "subscriptionId": 4}
Response
{
"data": {
"selectCustomerSubscription": {
"id": "4",
"localId": "4",
"pending": CustomerSubscriptionEntry,
"active": CustomerSubscriptionEntry,
"log": [CustomerSubscriptionLog]
}
}
}
sendCustomerPasswordResetLink
Description
Sends a password reset email to the provided customer
Example
Query
mutation SendCustomerPasswordResetLink($customerId: ID!) {
sendCustomerPasswordResetLink(customerId: $customerId)
}
Variables
{"customerId": 4}
Response
{"data": {"sendCustomerPasswordResetLink": true}}
sendCustomerSignupText
Description
Sends a text with a signup link to a provided customer phone number.
Response
Returns a
Boolean
Example
Query
mutation SendCustomerSignupText(
$phone: String!,
$fromKiosk: Boolean
) {
sendCustomerSignupText(
phone: $phone,
fromKiosk: $fromKiosk
)
}
Variables
{"phone": "xyz789", "fromKiosk": false}
Response
{"data": {"sendCustomerSignupText": false}}
sendKioskAlreadyInUseText
Description
Sends a text that the kiosk is already in use to a provided customer phone number.
setCurrentCustomer
Response
Returns a
Customer
Arguments
Name | Description |
---|---|
customerId -
ID!
|
A customer ID to be logged in |
Example
Query
mutation SetCurrentCustomer($customerId: ID!) {
setCurrentCustomer(customerId: $customerId) {
id
localId
name
futureAppointments {
id
localId
startTime
endTime
timeSlot {
...TimeSlotFragment
}
scheduledBy {
...ActorFragment
}
scheduledAt
route {
...RouteFragment
}
driverInstructions
cleaningInstructions
departments {
...FinancialDepartmentFragment
}
customer {
...CustomerFragment
}
address {
...CustomerAddressFragment
}
driver {
...UserFragment
}
regular
anytime
status
appointmentLinkId
photos {
...PhotoFragment
}
lockerCode
}
settings {
id
localId
mainDeliveryStore {
...StoreFragment
}
mainStore {
...StoreFragment
}
quickDetailingItemTypes {
...ItemTypeFragment
}
defaultPaymentMethod {
...PaymentMethodFragment
}
acceptedPaymentMethods {
...PaymentMethodFragment
}
logo
receiptLogo
POSNewOrderTabs
deliveryNewOrderTabs
statementGenerationDays
invoiceGenerationDays
acceptedCards
businessName
contactAddressLine
contactAddressState
contactAddressCity
contactAddressZip
contactPhone
logoUrl
noProductionDays
noDeliveryDays
specialHolidays
openDetailingWithCategory
customerFacingDomain
customSignupUrl
contactEmail
twilioAccountSid
twilioAuthToken
twilioPhone
twilioPhoneLookup
userNameOnEmailSubject
payableEntity
emailFooter
lockerBuildingCode
communicationTemplatesId
vcardTemplate
newPickupScheduledInstructions
sendAutomatedMessages
sendStatementEmails
signupEmailRequired
signupGroupRequired
signupAddressRequired
signupPhoneRequired
signupCardRequired
allowOrderSplitting
groupOnDetailingSplit
offerStoreDelivery
offerDeliverySchedulingInText
useStoreZipCodeForTax
summarizeByBillingCode
showSalesTaxBreakdownForStatementOrders
simplifiedPaymentReceipt
cashTotalRounding
hasLogo
isHotel
isHotelProcessor
isRoomGroupHotel
isLockers
isValet
isWholesaler
pickupUnpaidOrders
pressOnlyDiscount
washOnlyDiscount
scheduleWillCallAtAssembly
scheduleWillCallOnDueDate
dontIncludeOrdersInDeliveryListBeforeDueDate
allowSubDeliveryAccountScheduling
allowSubAccountToTriggerMasterDelivery
sendAutopayReceipts
sendDeliveryAppointmentConfirmation
showDeliveryNotPaid
deliveryAppLoadListSortDescending
requireSignatureOnDelivery
showSubRouteForDeliveryStop
genericLaundryBagMode
rushNotificationsHour
websiteDisplayText
shouldShowWebsiteOnReceipts
showAgentOnBagTag
assemblyEvenOnly
voiceAssemblyEnabled
inspectPriceAtAssembly
assemblyPrintFinancialReceiptForDeliveryCustomer
assemblyAlwaysPrintFinancialReceipt
printFinancialTicketOutsideAssembly
complexLotControl
overrideDueDateWithNextDelivery
autoSelectDeliveryReturnLocation
defaultDetailingTab
autoOpenAnnotationType
requireInvoiceInDetailing
displayTooManyDetailedItemsWarning
assemblyIcon
alignAssemblyIcon
newCustomerTicketIcon
newCustomerBottomTicketIcon
customerNameOnTicketBottom
pieceCountOnTicketBottom
customerPhoneOnTicket
showRoomInfoBelowAddress
laundryLicense
summarizedItemTable
showLogoOnReceipts
logoOnReceiptHeight
receiptLogoName
showPriceOnAssembly
paymentReceiptShowSignatureLine
receiptsNameShort
newLocationOnTicket
showRouteOfSameDayDelivery
itemDetailsOnTicket
itemDetailsOnOrderReceipt
newOrderPrintCount
printRetailReceipts
printDropTicketOnOrderSplit
printTicketOnOrderCloseCount
noStoreContactInfoOnReceipts
noPricingOnOrderReceipts
receiptsFooter
thermalReceiptFooter
ticketReceiptFooter
showEmailOnReceipts
showWebsiteOnReceipts
invoicePayableLine
invoiceTerms
isRestorationAccount
offerDemandDelivery
autoAddNewCustomerToWillCallRoute
groupItemDetailsByRoomNumber
merchantBatchCloseTime
saveCardsOnFile
amexSeparately
maxAutopayAmount
autopayTerms
autopayStatements
autopayBatchStrategy
invoiceDueDays
consolidateInvoiceItemDetails
invoiceShowOrderDetails
invoiceHideOrderInfo
showDateOnStatement
callStatementInvoice
activitySummaryEnabled
attachPDFInStatementEmails
rewardsProgramEnabled
rewardsPointModifier
rewardsCurrencyModifier
rewardsConversionRequirement
rewardsRedeemAutomatically
welcomeNotificationDisabled
autoTicketOnCustomerRegistration
autoTicketOnScheduledDelivery
sendCustomerUpdatedCCNotification
allowScheduleBothPickupAndDelivery
limitScheduleDeliveryToClosestRoute
allowRouteRegularCustomersToScheduleOnDemand
allowSameDaySchedulingEvenIfRouteStarted
experimentalPhotoUserExperienceOnWebsiteScheduler
priceListUpdateOrdersCondition
routeAgentPriority
commonOrdersAgent
isMailOrderPickups
lockerDropBinPickupMode
showYesRepliesInComm
autoReplyToYesRepliesInComm
customerWebsiteClothesTrackerTabEnabled
customerWebsiteWardrobeTabEnabled
customerWebsitePaymentTabEnabled
metalprogettiAssemblyLabelTemplate
metalprogettiSendRackSpaceToStorage
sendNewOrderNotificationOnEveryVisit
includeReceiptInNewOrderNotification
printTempTagsForBarcodedItems
zebraPrinterTemplate
epsonPrinterTemplate
forceOnlyBagFieldInput
detailingWithoutBarcodes
printLabelsWhenDuplicating
metalprogettiStripCharacters
autoDetailingEnabled
minItemBarcodeLength
maxItemBarcodeLength
quotesDeletionTimeFrame
minWashNFoldPrice
minWashNFoldWeight
washAndFoldWeightStations
departmentSpecificOrdersEnabled
manualPickupRestricted
displayDueDateInProductionModules
offersRetailDelivery
regRouteQuestionChecked
filterDetailingByItemTypes
payrollPeriod
payrollLastCloseDate
payrollFirstHalfCloseDate
payrollLastHalfCloseDate
payrollCloseDate
workweekStart
hoursUntilWeeklyOvertime
hoursUntilDailyOvertime
hoursUntilDailyDoubleTime
hoursUntilWeeklyNotification
hoursUntilDailyNotification
preventClockInBeforeTime
californiaOvertimeRules
promptForClockInOnLogin
overrideTimeClockWithUserDepartment
allowMobileAppClockIn
disableOverTimeNotifications
overnightClockOut
inventorySystemEnabled
inventorySystemEnabledProduction
permissionManageSystemSettings
permissionManageStationSettings
permissionAccessCustomerCredits
permissionAddCustomerDiscount
permissionAccessCustomerModule
permissionAccessDeliveryModule
permissionAccessAssemblyModule
permissionAccessSpottingModule
permissionAccessAlterAndRepairModule
permissionAccessAccountsReceivableModule
permissionAccessPressingModule
permissionAccessPriceListModule
permissionAccessCashBoxModule
permissionAccessTimeclockModule
permissionAccessPerformanceModule
permissionAccessWashAndFoldModule
permissionAccessInspectionModule
permissionAccessItemBaggingModule
permissionAccessFoldingAndBaggingModule
permissionAccessMessagesModule
permissionAccessRackingModule
permissionAccessRouteManagerModule
permissionAccessReportsModule
permissionAccessAdminReportsModule
permissionAccessIssueTrackerModule
permissionAccessSupportModule
permissionAccessEmployeeSettingsModule
permissionAccessBulkMarkinModule
permissionManualPriceEdits
permissionSpecialCareAfterOrderClose
showStrikeThroughWhenReturned
usePieceCountTotalsOnTicket
taxHeaderString
includeTaxInPrice
dropDateOnAssemblyTicket
displayDepartmentOnTicket
displayCategoryOnTicket
displayPriceOnPickupSlip
useStoreSpecificOrderSequenceNumbers
saleItemLedgerTrackingEnabled
}
group {
id
localId
agentId
agentType
name
hasOwnAgent
isGroupStop
isMasterBilling
customers {
...CustomerFragment
}
}
agent {
id
localId
name
agentId
agentType
}
routeHolds {
id
localId
startDate
endDate
}
driverInstructions
preferences
goodOnlineAccountStanding
addresses {
id
localId
name
streetAddress
streetAddress2
city
state
zip
latitude
longitude
skipVerification
manualLocation
}
defaultAddress {
id
localId
name
streetAddress
streetAddress2
city
state
zip
latitude
longitude
skipVerification
manualLocation
}
creditCardIFrameURL
authenticatedCustomerSiteLink
creditCard {
id
localId
type
last4
expm
expy
}
datesForSchedulingAppointment {
id
localId
date
timeSlots {
...TimeSlotFragment
}
}
customerBookings {
id
localId
pickupAppointment {
...AppointmentFragment
}
deliveryAppointment {
...AppointmentFragment
}
orders {
...OrderFragment
}
pickupDateDisplay
deliveryDateDisplay
statusText
status
progress
bookingDate
}
readyBags {
id
localId
barcode
display
order {
...OrderFragment
}
location {
...RackLogFragment
}
}
customerRelationship
deliveryStop
demographic
apiTokenForCustomer
activePromotions {
id
localId
name
couponCode
customerCouponCode
}
subscription {
id
localId
pending {
...CustomerSubscriptionEntryFragment
}
active {
...CustomerSubscriptionEntryFragment
}
log {
...CustomerSubscriptionLogFragment
}
}
kioskAccessCode
email
cellPhone
homePhone
firstName
lastName
companyName
customFields {
id
localId
value
}
}
}
Variables
{"customerId": 4}
Response
{
"data": {
"setCurrentCustomer": {
"id": 4,
"localId": "4",
"name": "xyz789",
"futureAppointments": [Appointment],
"settings": Settings,
"group": Group,
"agent": Agent,
"routeHolds": [CustomerRouteHold],
"driverInstructions": "xyz789",
"preferences": [4],
"goodOnlineAccountStanding": false,
"addresses": [CustomerAddress],
"defaultAddress": CustomerAddress,
"creditCardIFrameURL": "abc123",
"authenticatedCustomerSiteLink": "abc123",
"creditCard": CreditCard,
"datesForSchedulingAppointment": [ScheduleDate],
"customerBookings": [CustomerBooking],
"readyBags": [CustomerBag],
"customerRelationship": "STORE_ONLY",
"deliveryStop": 987,
"demographic": 987,
"apiTokenForCustomer": "abc123",
"activePromotions": [Promotion],
"subscription": CustomerSubscription,
"kioskAccessCode": "xyz789",
"email": "abc123",
"cellPhone": "xyz789",
"homePhone": "xyz789",
"firstName": "xyz789",
"lastName": "abc123",
"companyName": "abc123",
"customFields": [CustomerFieldValue]
}
}
}
setStation
Description
Try to assign this computer to a station. On success, the secret key is returned that the client should store in the cookie 'smrt_stkey' for authentication. If your IP is not whitelisted, you must provide a user entered auth code as argument. Simply try the endpoint and on error, ask the user to input an auth code. The endpoint will also give an error if the auth key is invalid.
Response
Returns a
String!
Example
Query
mutation SetStation(
$stationId: String!,
$authCode: String
) {
setStation(
stationId: $stationId,
authCode: $authCode
)
}
Variables
{
"stationId": "abc123",
"authCode": "abc123"
}
Response
{"data": {"setStation": "xyz789"}}
signinCustomerWebsite
Description
Combined signup and signin endpoint for the customer facing web app. Returns a customer ID which should be used with the verifyCustomerSigninSMSCode mutation
sortDeliveryStops
Description
Sort delivery stops
Response
Returns
[Customer]!
Example
Query
mutation SortDeliveryStops(
$routeId: ID!,
$sortedStopIds: [ID]!
) {
sortDeliveryStops(
routeId: $routeId,
sortedStopIds: $sortedStopIds
) {
id
localId
name
futureAppointments {
id
localId
startTime
endTime
timeSlot {
...TimeSlotFragment
}
scheduledBy {
...ActorFragment
}
scheduledAt
route {
...RouteFragment
}
driverInstructions
cleaningInstructions
departments {
...FinancialDepartmentFragment
}
customer {
...CustomerFragment
}
address {
...CustomerAddressFragment
}
driver {
...UserFragment
}
regular
anytime
status
appointmentLinkId
photos {
...PhotoFragment
}
lockerCode
}
settings {
id
localId
mainDeliveryStore {
...StoreFragment
}
mainStore {
...StoreFragment
}
quickDetailingItemTypes {
...ItemTypeFragment
}
defaultPaymentMethod {
...PaymentMethodFragment
}
acceptedPaymentMethods {
...PaymentMethodFragment
}
logo
receiptLogo
POSNewOrderTabs
deliveryNewOrderTabs
statementGenerationDays
invoiceGenerationDays
acceptedCards
businessName
contactAddressLine
contactAddressState
contactAddressCity
contactAddressZip
contactPhone
logoUrl
noProductionDays
noDeliveryDays
specialHolidays
openDetailingWithCategory
customerFacingDomain
customSignupUrl
contactEmail
twilioAccountSid
twilioAuthToken
twilioPhone
twilioPhoneLookup
userNameOnEmailSubject
payableEntity
emailFooter
lockerBuildingCode
communicationTemplatesId
vcardTemplate
newPickupScheduledInstructions
sendAutomatedMessages
sendStatementEmails
signupEmailRequired
signupGroupRequired
signupAddressRequired
signupPhoneRequired
signupCardRequired
allowOrderSplitting
groupOnDetailingSplit
offerStoreDelivery
offerDeliverySchedulingInText
useStoreZipCodeForTax
summarizeByBillingCode
showSalesTaxBreakdownForStatementOrders
simplifiedPaymentReceipt
cashTotalRounding
hasLogo
isHotel
isHotelProcessor
isRoomGroupHotel
isLockers
isValet
isWholesaler
pickupUnpaidOrders
pressOnlyDiscount
washOnlyDiscount
scheduleWillCallAtAssembly
scheduleWillCallOnDueDate
dontIncludeOrdersInDeliveryListBeforeDueDate
allowSubDeliveryAccountScheduling
allowSubAccountToTriggerMasterDelivery
sendAutopayReceipts
sendDeliveryAppointmentConfirmation
showDeliveryNotPaid
deliveryAppLoadListSortDescending
requireSignatureOnDelivery
showSubRouteForDeliveryStop
genericLaundryBagMode
rushNotificationsHour
websiteDisplayText
shouldShowWebsiteOnReceipts
showAgentOnBagTag
assemblyEvenOnly
voiceAssemblyEnabled
inspectPriceAtAssembly
assemblyPrintFinancialReceiptForDeliveryCustomer
assemblyAlwaysPrintFinancialReceipt
printFinancialTicketOutsideAssembly
complexLotControl
overrideDueDateWithNextDelivery
autoSelectDeliveryReturnLocation
defaultDetailingTab
autoOpenAnnotationType
requireInvoiceInDetailing
displayTooManyDetailedItemsWarning
assemblyIcon
alignAssemblyIcon
newCustomerTicketIcon
newCustomerBottomTicketIcon
customerNameOnTicketBottom
pieceCountOnTicketBottom
customerPhoneOnTicket
showRoomInfoBelowAddress
laundryLicense
summarizedItemTable
showLogoOnReceipts
logoOnReceiptHeight
receiptLogoName
showPriceOnAssembly
paymentReceiptShowSignatureLine
receiptsNameShort
newLocationOnTicket
showRouteOfSameDayDelivery
itemDetailsOnTicket
itemDetailsOnOrderReceipt
newOrderPrintCount
printRetailReceipts
printDropTicketOnOrderSplit
printTicketOnOrderCloseCount
noStoreContactInfoOnReceipts
noPricingOnOrderReceipts
receiptsFooter
thermalReceiptFooter
ticketReceiptFooter
showEmailOnReceipts
showWebsiteOnReceipts
invoicePayableLine
invoiceTerms
isRestorationAccount
offerDemandDelivery
autoAddNewCustomerToWillCallRoute
groupItemDetailsByRoomNumber
merchantBatchCloseTime
saveCardsOnFile
amexSeparately
maxAutopayAmount
autopayTerms
autopayStatements
autopayBatchStrategy
invoiceDueDays
consolidateInvoiceItemDetails
invoiceShowOrderDetails
invoiceHideOrderInfo
showDateOnStatement
callStatementInvoice
activitySummaryEnabled
attachPDFInStatementEmails
rewardsProgramEnabled
rewardsPointModifier
rewardsCurrencyModifier
rewardsConversionRequirement
rewardsRedeemAutomatically
welcomeNotificationDisabled
autoTicketOnCustomerRegistration
autoTicketOnScheduledDelivery
sendCustomerUpdatedCCNotification
allowScheduleBothPickupAndDelivery
limitScheduleDeliveryToClosestRoute
allowRouteRegularCustomersToScheduleOnDemand
allowSameDaySchedulingEvenIfRouteStarted
experimentalPhotoUserExperienceOnWebsiteScheduler
priceListUpdateOrdersCondition
routeAgentPriority
commonOrdersAgent
isMailOrderPickups
lockerDropBinPickupMode
showYesRepliesInComm
autoReplyToYesRepliesInComm
customerWebsiteClothesTrackerTabEnabled
customerWebsiteWardrobeTabEnabled
customerWebsitePaymentTabEnabled
metalprogettiAssemblyLabelTemplate
metalprogettiSendRackSpaceToStorage
sendNewOrderNotificationOnEveryVisit
includeReceiptInNewOrderNotification
printTempTagsForBarcodedItems
zebraPrinterTemplate
epsonPrinterTemplate
forceOnlyBagFieldInput
detailingWithoutBarcodes
printLabelsWhenDuplicating
metalprogettiStripCharacters
autoDetailingEnabled
minItemBarcodeLength
maxItemBarcodeLength
quotesDeletionTimeFrame
minWashNFoldPrice
minWashNFoldWeight
washAndFoldWeightStations
departmentSpecificOrdersEnabled
manualPickupRestricted
displayDueDateInProductionModules
offersRetailDelivery
regRouteQuestionChecked
filterDetailingByItemTypes
payrollPeriod
payrollLastCloseDate
payrollFirstHalfCloseDate
payrollLastHalfCloseDate
payrollCloseDate
workweekStart
hoursUntilWeeklyOvertime
hoursUntilDailyOvertime
hoursUntilDailyDoubleTime
hoursUntilWeeklyNotification
hoursUntilDailyNotification
preventClockInBeforeTime
californiaOvertimeRules
promptForClockInOnLogin
overrideTimeClockWithUserDepartment
allowMobileAppClockIn
disableOverTimeNotifications
overnightClockOut
inventorySystemEnabled
inventorySystemEnabledProduction
permissionManageSystemSettings
permissionManageStationSettings
permissionAccessCustomerCredits
permissionAddCustomerDiscount
permissionAccessCustomerModule
permissionAccessDeliveryModule
permissionAccessAssemblyModule
permissionAccessSpottingModule
permissionAccessAlterAndRepairModule
permissionAccessAccountsReceivableModule
permissionAccessPressingModule
permissionAccessPriceListModule
permissionAccessCashBoxModule
permissionAccessTimeclockModule
permissionAccessPerformanceModule
permissionAccessWashAndFoldModule
permissionAccessInspectionModule
permissionAccessItemBaggingModule
permissionAccessFoldingAndBaggingModule
permissionAccessMessagesModule
permissionAccessRackingModule
permissionAccessRouteManagerModule
permissionAccessReportsModule
permissionAccessAdminReportsModule
permissionAccessIssueTrackerModule
permissionAccessSupportModule
permissionAccessEmployeeSettingsModule
permissionAccessBulkMarkinModule
permissionManualPriceEdits
permissionSpecialCareAfterOrderClose
showStrikeThroughWhenReturned
usePieceCountTotalsOnTicket
taxHeaderString
includeTaxInPrice
dropDateOnAssemblyTicket
displayDepartmentOnTicket
displayCategoryOnTicket
displayPriceOnPickupSlip
useStoreSpecificOrderSequenceNumbers
saleItemLedgerTrackingEnabled
}
group {
id
localId
agentId
agentType
name
hasOwnAgent
isGroupStop
isMasterBilling
customers {
...CustomerFragment
}
}
agent {
id
localId
name
agentId
agentType
}
routeHolds {
id
localId
startDate
endDate
}
driverInstructions
preferences
goodOnlineAccountStanding
addresses {
id
localId
name
streetAddress
streetAddress2
city
state
zip
latitude
longitude
skipVerification
manualLocation
}
defaultAddress {
id
localId
name
streetAddress
streetAddress2
city
state
zip
latitude
longitude
skipVerification
manualLocation
}
creditCardIFrameURL
authenticatedCustomerSiteLink
creditCard {
id
localId
type
last4
expm
expy
}
datesForSchedulingAppointment {
id
localId
date
timeSlots {
...TimeSlotFragment
}
}
customerBookings {
id
localId
pickupAppointment {
...AppointmentFragment
}
deliveryAppointment {
...AppointmentFragment
}
orders {
...OrderFragment
}
pickupDateDisplay
deliveryDateDisplay
statusText
status
progress
bookingDate
}
readyBags {
id
localId
barcode
display
order {
...OrderFragment
}
location {
...RackLogFragment
}
}
customerRelationship
deliveryStop
demographic
apiTokenForCustomer
activePromotions {
id
localId
name
couponCode
customerCouponCode
}
subscription {
id
localId
pending {
...CustomerSubscriptionEntryFragment
}
active {
...CustomerSubscriptionEntryFragment
}
log {
...CustomerSubscriptionLogFragment
}
}
kioskAccessCode
email
cellPhone
homePhone
firstName
lastName
companyName
customFields {
id
localId
value
}
}
}
Variables
{"routeId": 4, "sortedStopIds": ["4"]}
Response
{
"data": {
"sortDeliveryStops": [
{
"id": "4",
"localId": 4,
"name": "abc123",
"futureAppointments": [Appointment],
"settings": Settings,
"group": Group,
"agent": Agent,
"routeHolds": [CustomerRouteHold],
"driverInstructions": "xyz789",
"preferences": ["4"],
"goodOnlineAccountStanding": true,
"addresses": [CustomerAddress],
"defaultAddress": CustomerAddress,
"creditCardIFrameURL": "xyz789",
"authenticatedCustomerSiteLink": "xyz789",
"creditCard": CreditCard,
"datesForSchedulingAppointment": [ScheduleDate],
"customerBookings": [CustomerBooking],
"readyBags": [CustomerBag],
"customerRelationship": "STORE_ONLY",
"deliveryStop": 123,
"demographic": 123,
"apiTokenForCustomer": "xyz789",
"activePromotions": [Promotion],
"subscription": CustomerSubscription,
"kioskAccessCode": "abc123",
"email": "abc123",
"cellPhone": "abc123",
"homePhone": "xyz789",
"firstName": "abc123",
"lastName": "abc123",
"companyName": "xyz789",
"customFields": [CustomerFieldValue]
}
]
}
}
sortItemValidationRules
Description
Sort item validation rules. Requires access level: Sr Manager
Response
Returns a
Boolean
Arguments
Name | Description |
---|---|
sortedRuleIds -
[ID]!
|
A list of sorted rule ids |
Example
Query
mutation SortItemValidationRules($sortedRuleIds: [ID]!) {
sortItemValidationRules(sortedRuleIds: $sortedRuleIds)
}
Variables
{"sortedRuleIds": ["4"]}
Response
{"data": {"sortItemValidationRules": true}}
sortTaxConfigurationRules
Description
Sort tax configuration rules. Requires access level: Sr Manager
Response
Returns a
Boolean
Arguments
Name | Description |
---|---|
sortedRuleIds -
[ID]!
|
A list of sorted rule ids |
Example
Query
mutation SortTaxConfigurationRules($sortedRuleIds: [ID]!) {
sortTaxConfigurationRules(sortedRuleIds: $sortedRuleIds)
}
Variables
{"sortedRuleIds": ["4"]}
Response
{"data": {"sortTaxConfigurationRules": false}}
startRouteOptimization
Description
Schedules a background job for automatic optimizing of a route.
Response
Returns a
Boolean
Example
Query
mutation StartRouteOptimization(
$routeId: ID!,
$date: Int
) {
startRouteOptimization(
routeId: $routeId,
date: $date
)
}
Variables
{"routeId": "4", "date": 123}
Response
{"data": {"startRouteOptimization": false}}
unloadTicketsOnMPArm
Description
Unload tickets for a specific arm
Response
Returns a
Boolean
Example
Query
mutation UnloadTicketsOnMPArm(
$tickets: [String]!,
$unloadArm: String!
) {
unloadTicketsOnMPArm(
tickets: $tickets,
unloadArm: $unloadArm
)
}
Variables
{
"tickets": ["xyz789"],
"unloadArm": "abc123"
}
Response
{"data": {"unloadTicketsOnMPArm": false}}
updateHoliday
Description
Update or Create a holiday (set it open, closed or no delivery) Requires access level: Sr Manager
Response
Returns a
Holiday!
Arguments
Name | Description |
---|---|
id -
ID!
|
Id of the holiday to update |
input -
HolidayInput!
|
The holiday data to update |
Example
Query
mutation UpdateHoliday(
$id: ID!,
$input: HolidayInput!
) {
updateHoliday(
id: $id,
input: $input
) {
id
localId
date
noProduction
noDelivery
dayOfWeek
}
}
Variables
{
"id": "4",
"input": HolidayInput
}
Response
{
"data": {
"updateHoliday": {
"id": "4",
"localId": 4,
"date": "xyz789",
"noProduction": true,
"noDelivery": false,
"dayOfWeek": "abc123"
}
}
}
updateSettings
Description
Update settings, global to the business or a scope such as brand, group or customer. Returns a list of messages for user display.
Response
Returns
[String]
Arguments
Name | Description |
---|---|
nodeId -
ID!
|
Id of the node to update a setting for (a customer, business etc) |
input -
SettingsInput!
|
the settings to update |
Example
Query
mutation UpdateSettings(
$nodeId: ID!,
$input: SettingsInput!
) {
updateSettings(
nodeId: $nodeId,
input: $input
)
}
Variables
{"nodeId": 4, "input": SettingsInput}
Response
{"data": {"updateSettings": ["xyz789"]}}
validateAddress
Description
Validates an address.
Response
Returns a
CustomerAddress
Arguments
Name | Description |
---|---|
input -
AddressValidationInput!
|
An address to validate |
Example
Query
mutation ValidateAddress($input: AddressValidationInput!) {
validateAddress(input: $input) {
id
localId
name
streetAddress
streetAddress2
city
state
zip
latitude
longitude
skipVerification
manualLocation
}
}
Variables
{"input": AddressValidationInput}
Response
{
"data": {
"validateAddress": {
"id": 4,
"localId": 4,
"name": "xyz789",
"streetAddress": "xyz789",
"streetAddress2": "xyz789",
"city": "abc123",
"state": "abc123",
"zip": "xyz789",
"latitude": "abc123",
"longitude": "xyz789",
"skipVerification": false,
"manualLocation": false
}
}
}
validateCustomerCredentials
Description
validate customer email and password.
Response
Returns a
Customer
Arguments
Name | Description |
---|---|
input -
ValidateCustomerCredentialsInput!
|
Customer Credentials (email & password) to validate |
Example
Query
mutation ValidateCustomerCredentials($input: ValidateCustomerCredentialsInput!) {
validateCustomerCredentials(input: $input) {
id
localId
name
futureAppointments {
id
localId
startTime
endTime
timeSlot {
...TimeSlotFragment
}
scheduledBy {
...ActorFragment
}
scheduledAt
route {
...RouteFragment
}
driverInstructions
cleaningInstructions
departments {
...FinancialDepartmentFragment
}
customer {
...CustomerFragment
}
address {
...CustomerAddressFragment
}
driver {
...UserFragment
}
regular
anytime
status
appointmentLinkId
photos {
...PhotoFragment
}
lockerCode
}
settings {
id
localId
mainDeliveryStore {
...StoreFragment
}
mainStore {
...StoreFragment
}
quickDetailingItemTypes {
...ItemTypeFragment
}
defaultPaymentMethod {
...PaymentMethodFragment
}
acceptedPaymentMethods {
...PaymentMethodFragment
}
logo
receiptLogo
POSNewOrderTabs
deliveryNewOrderTabs
statementGenerationDays
invoiceGenerationDays
acceptedCards
businessName
contactAddressLine
contactAddressState
contactAddressCity
contactAddressZip
contactPhone
logoUrl
noProductionDays
noDeliveryDays
specialHolidays
openDetailingWithCategory
customerFacingDomain
customSignupUrl
contactEmail
twilioAccountSid
twilioAuthToken
twilioPhone
twilioPhoneLookup
userNameOnEmailSubject
payableEntity
emailFooter
lockerBuildingCode
communicationTemplatesId
vcardTemplate
newPickupScheduledInstructions
sendAutomatedMessages
sendStatementEmails
signupEmailRequired
signupGroupRequired
signupAddressRequired
signupPhoneRequired
signupCardRequired
allowOrderSplitting
groupOnDetailingSplit
offerStoreDelivery
offerDeliverySchedulingInText
useStoreZipCodeForTax
summarizeByBillingCode
showSalesTaxBreakdownForStatementOrders
simplifiedPaymentReceipt
cashTotalRounding
hasLogo
isHotel
isHotelProcessor
isRoomGroupHotel
isLockers
isValet
isWholesaler
pickupUnpaidOrders
pressOnlyDiscount
washOnlyDiscount
scheduleWillCallAtAssembly
scheduleWillCallOnDueDate
dontIncludeOrdersInDeliveryListBeforeDueDate
allowSubDeliveryAccountScheduling
allowSubAccountToTriggerMasterDelivery
sendAutopayReceipts
sendDeliveryAppointmentConfirmation
showDeliveryNotPaid
deliveryAppLoadListSortDescending
requireSignatureOnDelivery
showSubRouteForDeliveryStop
genericLaundryBagMode
rushNotificationsHour
websiteDisplayText
shouldShowWebsiteOnReceipts
showAgentOnBagTag
assemblyEvenOnly
voiceAssemblyEnabled
inspectPriceAtAssembly
assemblyPrintFinancialReceiptForDeliveryCustomer
assemblyAlwaysPrintFinancialReceipt
printFinancialTicketOutsideAssembly
complexLotControl
overrideDueDateWithNextDelivery
autoSelectDeliveryReturnLocation
defaultDetailingTab
autoOpenAnnotationType
requireInvoiceInDetailing
displayTooManyDetailedItemsWarning
assemblyIcon
alignAssemblyIcon
newCustomerTicketIcon
newCustomerBottomTicketIcon
customerNameOnTicketBottom
pieceCountOnTicketBottom
customerPhoneOnTicket
showRoomInfoBelowAddress
laundryLicense
summarizedItemTable
showLogoOnReceipts
logoOnReceiptHeight
receiptLogoName
showPriceOnAssembly
paymentReceiptShowSignatureLine
receiptsNameShort
newLocationOnTicket
showRouteOfSameDayDelivery
itemDetailsOnTicket
itemDetailsOnOrderReceipt
newOrderPrintCount
printRetailReceipts
printDropTicketOnOrderSplit
printTicketOnOrderCloseCount
noStoreContactInfoOnReceipts
noPricingOnOrderReceipts
receiptsFooter
thermalReceiptFooter
ticketReceiptFooter
showEmailOnReceipts
showWebsiteOnReceipts
invoicePayableLine
invoiceTerms
isRestorationAccount
offerDemandDelivery
autoAddNewCustomerToWillCallRoute
groupItemDetailsByRoomNumber
merchantBatchCloseTime
saveCardsOnFile
amexSeparately
maxAutopayAmount
autopayTerms
autopayStatements
autopayBatchStrategy
invoiceDueDays
consolidateInvoiceItemDetails
invoiceShowOrderDetails
invoiceHideOrderInfo
showDateOnStatement
callStatementInvoice
activitySummaryEnabled
attachPDFInStatementEmails
rewardsProgramEnabled
rewardsPointModifier
rewardsCurrencyModifier
rewardsConversionRequirement
rewardsRedeemAutomatically
welcomeNotificationDisabled
autoTicketOnCustomerRegistration
autoTicketOnScheduledDelivery
sendCustomerUpdatedCCNotification
allowScheduleBothPickupAndDelivery
limitScheduleDeliveryToClosestRoute
allowRouteRegularCustomersToScheduleOnDemand
allowSameDaySchedulingEvenIfRouteStarted
experimentalPhotoUserExperienceOnWebsiteScheduler
priceListUpdateOrdersCondition
routeAgentPriority
commonOrdersAgent
isMailOrderPickups
lockerDropBinPickupMode
showYesRepliesInComm
autoReplyToYesRepliesInComm
customerWebsiteClothesTrackerTabEnabled
customerWebsiteWardrobeTabEnabled
customerWebsitePaymentTabEnabled
metalprogettiAssemblyLabelTemplate
metalprogettiSendRackSpaceToStorage
sendNewOrderNotificationOnEveryVisit
includeReceiptInNewOrderNotification
printTempTagsForBarcodedItems
zebraPrinterTemplate
epsonPrinterTemplate
forceOnlyBagFieldInput
detailingWithoutBarcodes
printLabelsWhenDuplicating
metalprogettiStripCharacters
autoDetailingEnabled
minItemBarcodeLength
maxItemBarcodeLength
quotesDeletionTimeFrame
minWashNFoldPrice
minWashNFoldWeight
washAndFoldWeightStations
departmentSpecificOrdersEnabled
manualPickupRestricted
displayDueDateInProductionModules
offersRetailDelivery
regRouteQuestionChecked
filterDetailingByItemTypes
payrollPeriod
payrollLastCloseDate
payrollFirstHalfCloseDate
payrollLastHalfCloseDate
payrollCloseDate
workweekStart
hoursUntilWeeklyOvertime
hoursUntilDailyOvertime
hoursUntilDailyDoubleTime
hoursUntilWeeklyNotification
hoursUntilDailyNotification
preventClockInBeforeTime
californiaOvertimeRules
promptForClockInOnLogin
overrideTimeClockWithUserDepartment
allowMobileAppClockIn
disableOverTimeNotifications
overnightClockOut
inventorySystemEnabled
inventorySystemEnabledProduction
permissionManageSystemSettings
permissionManageStationSettings
permissionAccessCustomerCredits
permissionAddCustomerDiscount
permissionAccessCustomerModule
permissionAccessDeliveryModule
permissionAccessAssemblyModule
permissionAccessSpottingModule
permissionAccessAlterAndRepairModule
permissionAccessAccountsReceivableModule
permissionAccessPressingModule
permissionAccessPriceListModule
permissionAccessCashBoxModule
permissionAccessTimeclockModule
permissionAccessPerformanceModule
permissionAccessWashAndFoldModule
permissionAccessInspectionModule
permissionAccessItemBaggingModule
permissionAccessFoldingAndBaggingModule
permissionAccessMessagesModule
permissionAccessRackingModule
permissionAccessRouteManagerModule
permissionAccessReportsModule
permissionAccessAdminReportsModule
permissionAccessIssueTrackerModule
permissionAccessSupportModule
permissionAccessEmployeeSettingsModule
permissionAccessBulkMarkinModule
permissionManualPriceEdits
permissionSpecialCareAfterOrderClose
showStrikeThroughWhenReturned
usePieceCountTotalsOnTicket
taxHeaderString
includeTaxInPrice
dropDateOnAssemblyTicket
displayDepartmentOnTicket
displayCategoryOnTicket
displayPriceOnPickupSlip
useStoreSpecificOrderSequenceNumbers
saleItemLedgerTrackingEnabled
}
group {
id
localId
agentId
agentType
name
hasOwnAgent
isGroupStop
isMasterBilling
customers {
...CustomerFragment
}
}
agent {
id
localId
name
agentId
agentType
}
routeHolds {
id
localId
startDate
endDate
}
driverInstructions
preferences
goodOnlineAccountStanding
addresses {
id
localId
name
streetAddress
streetAddress2
city
state
zip
latitude
longitude
skipVerification
manualLocation
}
defaultAddress {
id
localId
name
streetAddress
streetAddress2
city
state
zip
latitude
longitude
skipVerification
manualLocation
}
creditCardIFrameURL
authenticatedCustomerSiteLink
creditCard {
id
localId
type
last4
expm
expy
}
datesForSchedulingAppointment {
id
localId
date
timeSlots {
...TimeSlotFragment
}
}
customerBookings {
id
localId
pickupAppointment {
...AppointmentFragment
}
deliveryAppointment {
...AppointmentFragment
}
orders {
...OrderFragment
}
pickupDateDisplay
deliveryDateDisplay
statusText
status
progress
bookingDate
}
readyBags {
id
localId
barcode
display
order {
...OrderFragment
}
location {
...RackLogFragment
}
}
customerRelationship
deliveryStop
demographic
apiTokenForCustomer
activePromotions {
id
localId
name
couponCode
customerCouponCode
}
subscription {
id
localId
pending {
...CustomerSubscriptionEntryFragment
}
active {
...CustomerSubscriptionEntryFragment
}
log {
...CustomerSubscriptionLogFragment
}
}
kioskAccessCode
email
cellPhone
homePhone
firstName
lastName
companyName
customFields {
id
localId
value
}
}
}
Variables
{"input": ValidateCustomerCredentialsInput}
Response
{
"data": {
"validateCustomerCredentials": {
"id": 4,
"localId": 4,
"name": "xyz789",
"futureAppointments": [Appointment],
"settings": Settings,
"group": Group,
"agent": Agent,
"routeHolds": [CustomerRouteHold],
"driverInstructions": "abc123",
"preferences": ["4"],
"goodOnlineAccountStanding": true,
"addresses": [CustomerAddress],
"defaultAddress": CustomerAddress,
"creditCardIFrameURL": "xyz789",
"authenticatedCustomerSiteLink": "xyz789",
"creditCard": CreditCard,
"datesForSchedulingAppointment": [ScheduleDate],
"customerBookings": [CustomerBooking],
"readyBags": [CustomerBag],
"customerRelationship": "STORE_ONLY",
"deliveryStop": 123,
"demographic": 123,
"apiTokenForCustomer": "xyz789",
"activePromotions": [Promotion],
"subscription": CustomerSubscription,
"kioskAccessCode": "xyz789",
"email": "xyz789",
"cellPhone": "abc123",
"homePhone": "abc123",
"firstName": "xyz789",
"lastName": "xyz789",
"companyName": "abc123",
"customFields": [CustomerFieldValue]
}
}
}
validateCustomerKioskCredentials
Description
Validate customer phone and kiosk access code.
Response
Returns a
Customer
Example
Query
mutation ValidateCustomerKioskCredentials(
$phone: String!,
$accessCode: String!
) {
validateCustomerKioskCredentials(
phone: $phone,
accessCode: $accessCode
) {
id
localId
name
futureAppointments {
id
localId
startTime
endTime
timeSlot {
...TimeSlotFragment
}
scheduledBy {
...ActorFragment
}
scheduledAt
route {
...RouteFragment
}
driverInstructions
cleaningInstructions
departments {
...FinancialDepartmentFragment
}
customer {
...CustomerFragment
}
address {
...CustomerAddressFragment
}
driver {
...UserFragment
}
regular
anytime
status
appointmentLinkId
photos {
...PhotoFragment
}
lockerCode
}
settings {
id
localId
mainDeliveryStore {
...StoreFragment
}
mainStore {
...StoreFragment
}
quickDetailingItemTypes {
...ItemTypeFragment
}
defaultPaymentMethod {
...PaymentMethodFragment
}
acceptedPaymentMethods {
...PaymentMethodFragment
}
logo
receiptLogo
POSNewOrderTabs
deliveryNewOrderTabs
statementGenerationDays
invoiceGenerationDays
acceptedCards
businessName
contactAddressLine
contactAddressState
contactAddressCity
contactAddressZip
contactPhone
logoUrl
noProductionDays
noDeliveryDays
specialHolidays
openDetailingWithCategory
customerFacingDomain
customSignupUrl
contactEmail
twilioAccountSid
twilioAuthToken
twilioPhone
twilioPhoneLookup
userNameOnEmailSubject
payableEntity
emailFooter
lockerBuildingCode
communicationTemplatesId
vcardTemplate
newPickupScheduledInstructions
sendAutomatedMessages
sendStatementEmails
signupEmailRequired
signupGroupRequired
signupAddressRequired
signupPhoneRequired
signupCardRequired
allowOrderSplitting
groupOnDetailingSplit
offerStoreDelivery
offerDeliverySchedulingInText
useStoreZipCodeForTax
summarizeByBillingCode
showSalesTaxBreakdownForStatementOrders
simplifiedPaymentReceipt
cashTotalRounding
hasLogo
isHotel
isHotelProcessor
isRoomGroupHotel
isLockers
isValet
isWholesaler
pickupUnpaidOrders
pressOnlyDiscount
washOnlyDiscount
scheduleWillCallAtAssembly
scheduleWillCallOnDueDate
dontIncludeOrdersInDeliveryListBeforeDueDate
allowSubDeliveryAccountScheduling
allowSubAccountToTriggerMasterDelivery
sendAutopayReceipts
sendDeliveryAppointmentConfirmation
showDeliveryNotPaid
deliveryAppLoadListSortDescending
requireSignatureOnDelivery
showSubRouteForDeliveryStop
genericLaundryBagMode
rushNotificationsHour
websiteDisplayText
shouldShowWebsiteOnReceipts
showAgentOnBagTag
assemblyEvenOnly
voiceAssemblyEnabled
inspectPriceAtAssembly
assemblyPrintFinancialReceiptForDeliveryCustomer
assemblyAlwaysPrintFinancialReceipt
printFinancialTicketOutsideAssembly
complexLotControl
overrideDueDateWithNextDelivery
autoSelectDeliveryReturnLocation
defaultDetailingTab
autoOpenAnnotationType
requireInvoiceInDetailing
displayTooManyDetailedItemsWarning
assemblyIcon
alignAssemblyIcon
newCustomerTicketIcon
newCustomerBottomTicketIcon
customerNameOnTicketBottom
pieceCountOnTicketBottom
customerPhoneOnTicket
showRoomInfoBelowAddress
laundryLicense
summarizedItemTable
showLogoOnReceipts
logoOnReceiptHeight
receiptLogoName
showPriceOnAssembly
paymentReceiptShowSignatureLine
receiptsNameShort
newLocationOnTicket
showRouteOfSameDayDelivery
itemDetailsOnTicket
itemDetailsOnOrderReceipt
newOrderPrintCount
printRetailReceipts
printDropTicketOnOrderSplit
printTicketOnOrderCloseCount
noStoreContactInfoOnReceipts
noPricingOnOrderReceipts
receiptsFooter
thermalReceiptFooter
ticketReceiptFooter
showEmailOnReceipts
showWebsiteOnReceipts
invoicePayableLine
invoiceTerms
isRestorationAccount
offerDemandDelivery
autoAddNewCustomerToWillCallRoute
groupItemDetailsByRoomNumber
merchantBatchCloseTime
saveCardsOnFile
amexSeparately
maxAutopayAmount
autopayTerms
autopayStatements
autopayBatchStrategy
invoiceDueDays
consolidateInvoiceItemDetails
invoiceShowOrderDetails
invoiceHideOrderInfo
showDateOnStatement
callStatementInvoice
activitySummaryEnabled
attachPDFInStatementEmails
rewardsProgramEnabled
rewardsPointModifier
rewardsCurrencyModifier
rewardsConversionRequirement
rewardsRedeemAutomatically
welcomeNotificationDisabled
autoTicketOnCustomerRegistration
autoTicketOnScheduledDelivery
sendCustomerUpdatedCCNotification
allowScheduleBothPickupAndDelivery
limitScheduleDeliveryToClosestRoute
allowRouteRegularCustomersToScheduleOnDemand
allowSameDaySchedulingEvenIfRouteStarted
experimentalPhotoUserExperienceOnWebsiteScheduler
priceListUpdateOrdersCondition
routeAgentPriority
commonOrdersAgent
isMailOrderPickups
lockerDropBinPickupMode
showYesRepliesInComm
autoReplyToYesRepliesInComm
customerWebsiteClothesTrackerTabEnabled
customerWebsiteWardrobeTabEnabled
customerWebsitePaymentTabEnabled
metalprogettiAssemblyLabelTemplate
metalprogettiSendRackSpaceToStorage
sendNewOrderNotificationOnEveryVisit
includeReceiptInNewOrderNotification
printTempTagsForBarcodedItems
zebraPrinterTemplate
epsonPrinterTemplate
forceOnlyBagFieldInput
detailingWithoutBarcodes
printLabelsWhenDuplicating
metalprogettiStripCharacters
autoDetailingEnabled
minItemBarcodeLength
maxItemBarcodeLength
quotesDeletionTimeFrame
minWashNFoldPrice
minWashNFoldWeight
washAndFoldWeightStations
departmentSpecificOrdersEnabled
manualPickupRestricted
displayDueDateInProductionModules
offersRetailDelivery
regRouteQuestionChecked
filterDetailingByItemTypes
payrollPeriod
payrollLastCloseDate
payrollFirstHalfCloseDate
payrollLastHalfCloseDate
payrollCloseDate
workweekStart
hoursUntilWeeklyOvertime
hoursUntilDailyOvertime
hoursUntilDailyDoubleTime
hoursUntilWeeklyNotification
hoursUntilDailyNotification
preventClockInBeforeTime
californiaOvertimeRules
promptForClockInOnLogin
overrideTimeClockWithUserDepartment
allowMobileAppClockIn
disableOverTimeNotifications
overnightClockOut
inventorySystemEnabled
inventorySystemEnabledProduction
permissionManageSystemSettings
permissionManageStationSettings
permissionAccessCustomerCredits
permissionAddCustomerDiscount
permissionAccessCustomerModule
permissionAccessDeliveryModule
permissionAccessAssemblyModule
permissionAccessSpottingModule
permissionAccessAlterAndRepairModule
permissionAccessAccountsReceivableModule
permissionAccessPressingModule
permissionAccessPriceListModule
permissionAccessCashBoxModule
permissionAccessTimeclockModule
permissionAccessPerformanceModule
permissionAccessWashAndFoldModule
permissionAccessInspectionModule
permissionAccessItemBaggingModule
permissionAccessFoldingAndBaggingModule
permissionAccessMessagesModule
permissionAccessRackingModule
permissionAccessRouteManagerModule
permissionAccessReportsModule
permissionAccessAdminReportsModule
permissionAccessIssueTrackerModule
permissionAccessSupportModule
permissionAccessEmployeeSettingsModule
permissionAccessBulkMarkinModule
permissionManualPriceEdits
permissionSpecialCareAfterOrderClose
showStrikeThroughWhenReturned
usePieceCountTotalsOnTicket
taxHeaderString
includeTaxInPrice
dropDateOnAssemblyTicket
displayDepartmentOnTicket
displayCategoryOnTicket
displayPriceOnPickupSlip
useStoreSpecificOrderSequenceNumbers
saleItemLedgerTrackingEnabled
}
group {
id
localId
agentId
agentType
name
hasOwnAgent
isGroupStop
isMasterBilling
customers {
...CustomerFragment
}
}
agent {
id
localId
name
agentId
agentType
}
routeHolds {
id
localId
startDate
endDate
}
driverInstructions
preferences
goodOnlineAccountStanding
addresses {
id
localId
name
streetAddress
streetAddress2
city
state
zip
latitude
longitude
skipVerification
manualLocation
}
defaultAddress {
id
localId
name
streetAddress
streetAddress2
city
state
zip
latitude
longitude
skipVerification
manualLocation
}
creditCardIFrameURL
authenticatedCustomerSiteLink
creditCard {
id
localId
type
last4
expm
expy
}
datesForSchedulingAppointment {
id
localId
date
timeSlots {
...TimeSlotFragment
}
}
customerBookings {
id
localId
pickupAppointment {
...AppointmentFragment
}
deliveryAppointment {
...AppointmentFragment
}
orders {
...OrderFragment
}
pickupDateDisplay
deliveryDateDisplay
statusText
status
progress
bookingDate
}
readyBags {
id
localId
barcode
display
order {
...OrderFragment
}
location {
...RackLogFragment
}
}
customerRelationship
deliveryStop
demographic
apiTokenForCustomer
activePromotions {
id
localId
name
couponCode
customerCouponCode
}
subscription {
id
localId
pending {
...CustomerSubscriptionEntryFragment
}
active {
...CustomerSubscriptionEntryFragment
}
log {
...CustomerSubscriptionLogFragment
}
}
kioskAccessCode
email
cellPhone
homePhone
firstName
lastName
companyName
customFields {
id
localId
value
}
}
}
Variables
{
"phone": "abc123",
"accessCode": "abc123"
}
Response
{
"data": {
"validateCustomerKioskCredentials": {
"id": "4",
"localId": 4,
"name": "abc123",
"futureAppointments": [Appointment],
"settings": Settings,
"group": Group,
"agent": Agent,
"routeHolds": [CustomerRouteHold],
"driverInstructions": "abc123",
"preferences": [4],
"goodOnlineAccountStanding": true,
"addresses": [CustomerAddress],
"defaultAddress": CustomerAddress,
"creditCardIFrameURL": "abc123",
"authenticatedCustomerSiteLink": "xyz789",
"creditCard": CreditCard,
"datesForSchedulingAppointment": [ScheduleDate],
"customerBookings": [CustomerBooking],
"readyBags": [CustomerBag],
"customerRelationship": "STORE_ONLY",
"deliveryStop": 987,
"demographic": 987,
"apiTokenForCustomer": "xyz789",
"activePromotions": [Promotion],
"subscription": CustomerSubscription,
"kioskAccessCode": "abc123",
"email": "abc123",
"cellPhone": "abc123",
"homePhone": "abc123",
"firstName": "abc123",
"lastName": "xyz789",
"companyName": "abc123",
"customFields": [CustomerFieldValue]
}
}
}
validatePhoneAndSendKioskSMSCode
Description
Checks if customer exists and sends SMS with login code.
Example
Query
mutation ValidatePhoneAndSendKioskSMSCode($phone: String!) {
validatePhoneAndSendKioskSMSCode(phone: $phone)
}
Variables
{"phone": "abc123"}
Response
{"data": {"validatePhoneAndSendKioskSMSCode": false}}
verifyCustomerSigninSMSCode
Description
Called after the signinCustomerWebsite mutation to signup or signin to the customer facing web app
Response
Returns a
Customer
Example
Query
mutation VerifyCustomerSigninSMSCode(
$customerId: String!,
$code: String!
) {
verifyCustomerSigninSMSCode(
customerId: $customerId,
code: $code
) {
id
localId
name
futureAppointments {
id
localId
startTime
endTime
timeSlot {
...TimeSlotFragment
}
scheduledBy {
...ActorFragment
}
scheduledAt
route {
...RouteFragment
}
driverInstructions
cleaningInstructions
departments {
...FinancialDepartmentFragment
}
customer {
...CustomerFragment
}
address {
...CustomerAddressFragment
}
driver {
...UserFragment
}
regular
anytime
status
appointmentLinkId
photos {
...PhotoFragment
}
lockerCode
}
settings {
id
localId
mainDeliveryStore {
...StoreFragment
}
mainStore {
...StoreFragment
}
quickDetailingItemTypes {
...ItemTypeFragment
}
defaultPaymentMethod {
...PaymentMethodFragment
}
acceptedPaymentMethods {
...PaymentMethodFragment
}
logo
receiptLogo
POSNewOrderTabs
deliveryNewOrderTabs
statementGenerationDays
invoiceGenerationDays
acceptedCards
businessName
contactAddressLine
contactAddressState
contactAddressCity
contactAddressZip
contactPhone
logoUrl
noProductionDays
noDeliveryDays
specialHolidays
openDetailingWithCategory
customerFacingDomain
customSignupUrl
contactEmail
twilioAccountSid
twilioAuthToken
twilioPhone
twilioPhoneLookup
userNameOnEmailSubject
payableEntity
emailFooter
lockerBuildingCode
communicationTemplatesId
vcardTemplate
newPickupScheduledInstructions
sendAutomatedMessages
sendStatementEmails
signupEmailRequired
signupGroupRequired
signupAddressRequired
signupPhoneRequired
signupCardRequired
allowOrderSplitting
groupOnDetailingSplit
offerStoreDelivery
offerDeliverySchedulingInText
useStoreZipCodeForTax
summarizeByBillingCode
showSalesTaxBreakdownForStatementOrders
simplifiedPaymentReceipt
cashTotalRounding
hasLogo
isHotel
isHotelProcessor
isRoomGroupHotel
isLockers
isValet
isWholesaler
pickupUnpaidOrders
pressOnlyDiscount
washOnlyDiscount
scheduleWillCallAtAssembly
scheduleWillCallOnDueDate
dontIncludeOrdersInDeliveryListBeforeDueDate
allowSubDeliveryAccountScheduling
allowSubAccountToTriggerMasterDelivery
sendAutopayReceipts
sendDeliveryAppointmentConfirmation
showDeliveryNotPaid
deliveryAppLoadListSortDescending
requireSignatureOnDelivery
showSubRouteForDeliveryStop
genericLaundryBagMode
rushNotificationsHour
websiteDisplayText
shouldShowWebsiteOnReceipts
showAgentOnBagTag
assemblyEvenOnly
voiceAssemblyEnabled
inspectPriceAtAssembly
assemblyPrintFinancialReceiptForDeliveryCustomer
assemblyAlwaysPrintFinancialReceipt
printFinancialTicketOutsideAssembly
complexLotControl
overrideDueDateWithNextDelivery
autoSelectDeliveryReturnLocation
defaultDetailingTab
autoOpenAnnotationType
requireInvoiceInDetailing
displayTooManyDetailedItemsWarning
assemblyIcon
alignAssemblyIcon
newCustomerTicketIcon
newCustomerBottomTicketIcon
customerNameOnTicketBottom
pieceCountOnTicketBottom
customerPhoneOnTicket
showRoomInfoBelowAddress
laundryLicense
summarizedItemTable
showLogoOnReceipts
logoOnReceiptHeight
receiptLogoName
showPriceOnAssembly
paymentReceiptShowSignatureLine
receiptsNameShort
newLocationOnTicket
showRouteOfSameDayDelivery
itemDetailsOnTicket
itemDetailsOnOrderReceipt
newOrderPrintCount
printRetailReceipts
printDropTicketOnOrderSplit
printTicketOnOrderCloseCount
noStoreContactInfoOnReceipts
noPricingOnOrderReceipts
receiptsFooter
thermalReceiptFooter
ticketReceiptFooter
showEmailOnReceipts
showWebsiteOnReceipts
invoicePayableLine
invoiceTerms
isRestorationAccount
offerDemandDelivery
autoAddNewCustomerToWillCallRoute
groupItemDetailsByRoomNumber
merchantBatchCloseTime
saveCardsOnFile
amexSeparately
maxAutopayAmount
autopayTerms
autopayStatements
autopayBatchStrategy
invoiceDueDays
consolidateInvoiceItemDetails
invoiceShowOrderDetails
invoiceHideOrderInfo
showDateOnStatement
callStatementInvoice
activitySummaryEnabled
attachPDFInStatementEmails
rewardsProgramEnabled
rewardsPointModifier
rewardsCurrencyModifier
rewardsConversionRequirement
rewardsRedeemAutomatically
welcomeNotificationDisabled
autoTicketOnCustomerRegistration
autoTicketOnScheduledDelivery
sendCustomerUpdatedCCNotification
allowScheduleBothPickupAndDelivery
limitScheduleDeliveryToClosestRoute
allowRouteRegularCustomersToScheduleOnDemand
allowSameDaySchedulingEvenIfRouteStarted
experimentalPhotoUserExperienceOnWebsiteScheduler
priceListUpdateOrdersCondition
routeAgentPriority
commonOrdersAgent
isMailOrderPickups
lockerDropBinPickupMode
showYesRepliesInComm
autoReplyToYesRepliesInComm
customerWebsiteClothesTrackerTabEnabled
customerWebsiteWardrobeTabEnabled
customerWebsitePaymentTabEnabled
metalprogettiAssemblyLabelTemplate
metalprogettiSendRackSpaceToStorage
sendNewOrderNotificationOnEveryVisit
includeReceiptInNewOrderNotification
printTempTagsForBarcodedItems
zebraPrinterTemplate
epsonPrinterTemplate
forceOnlyBagFieldInput
detailingWithoutBarcodes
printLabelsWhenDuplicating
metalprogettiStripCharacters
autoDetailingEnabled
minItemBarcodeLength
maxItemBarcodeLength
quotesDeletionTimeFrame
minWashNFoldPrice
minWashNFoldWeight
washAndFoldWeightStations
departmentSpecificOrdersEnabled
manualPickupRestricted
displayDueDateInProductionModules
offersRetailDelivery
regRouteQuestionChecked
filterDetailingByItemTypes
payrollPeriod
payrollLastCloseDate
payrollFirstHalfCloseDate
payrollLastHalfCloseDate
payrollCloseDate
workweekStart
hoursUntilWeeklyOvertime
hoursUntilDailyOvertime
hoursUntilDailyDoubleTime
hoursUntilWeeklyNotification
hoursUntilDailyNotification
preventClockInBeforeTime
californiaOvertimeRules
promptForClockInOnLogin
overrideTimeClockWithUserDepartment
allowMobileAppClockIn
disableOverTimeNotifications
overnightClockOut
inventorySystemEnabled
inventorySystemEnabledProduction
permissionManageSystemSettings
permissionManageStationSettings
permissionAccessCustomerCredits
permissionAddCustomerDiscount
permissionAccessCustomerModule
permissionAccessDeliveryModule
permissionAccessAssemblyModule
permissionAccessSpottingModule
permissionAccessAlterAndRepairModule
permissionAccessAccountsReceivableModule
permissionAccessPressingModule
permissionAccessPriceListModule
permissionAccessCashBoxModule
permissionAccessTimeclockModule
permissionAccessPerformanceModule
permissionAccessWashAndFoldModule
permissionAccessInspectionModule
permissionAccessItemBaggingModule
permissionAccessFoldingAndBaggingModule
permissionAccessMessagesModule
permissionAccessRackingModule
permissionAccessRouteManagerModule
permissionAccessReportsModule
permissionAccessAdminReportsModule
permissionAccessIssueTrackerModule
permissionAccessSupportModule
permissionAccessEmployeeSettingsModule
permissionAccessBulkMarkinModule
permissionManualPriceEdits
permissionSpecialCareAfterOrderClose
showStrikeThroughWhenReturned
usePieceCountTotalsOnTicket
taxHeaderString
includeTaxInPrice
dropDateOnAssemblyTicket
displayDepartmentOnTicket
displayCategoryOnTicket
displayPriceOnPickupSlip
useStoreSpecificOrderSequenceNumbers
saleItemLedgerTrackingEnabled
}
group {
id
localId
agentId
agentType
name
hasOwnAgent
isGroupStop
isMasterBilling
customers {
...CustomerFragment
}
}
agent {
id
localId
name
agentId
agentType
}
routeHolds {
id
localId
startDate
endDate
}
driverInstructions
preferences
goodOnlineAccountStanding
addresses {
id
localId
name
streetAddress
streetAddress2
city
state
zip
latitude
longitude
skipVerification
manualLocation
}
defaultAddress {
id
localId
name
streetAddress
streetAddress2
city
state
zip
latitude
longitude
skipVerification
manualLocation
}
creditCardIFrameURL
authenticatedCustomerSiteLink
creditCard {
id
localId
type
last4
expm
expy
}
datesForSchedulingAppointment {
id
localId
date
timeSlots {
...TimeSlotFragment
}
}
customerBookings {
id
localId
pickupAppointment {
...AppointmentFragment
}
deliveryAppointment {
...AppointmentFragment
}
orders {
...OrderFragment
}
pickupDateDisplay
deliveryDateDisplay
statusText
status
progress
bookingDate
}
readyBags {
id
localId
barcode
display
order {
...OrderFragment
}
location {
...RackLogFragment
}
}
customerRelationship
deliveryStop
demographic
apiTokenForCustomer
activePromotions {
id
localId
name
couponCode
customerCouponCode
}
subscription {
id
localId
pending {
...CustomerSubscriptionEntryFragment
}
active {
...CustomerSubscriptionEntryFragment
}
log {
...CustomerSubscriptionLogFragment
}
}
kioskAccessCode
email
cellPhone
homePhone
firstName
lastName
companyName
customFields {
id
localId
value
}
}
}
Variables
{
"customerId": "abc123",
"code": "abc123"
}
Response
{
"data": {
"verifyCustomerSigninSMSCode": {
"id": "4",
"localId": "4",
"name": "abc123",
"futureAppointments": [Appointment],
"settings": Settings,
"group": Group,
"agent": Agent,
"routeHolds": [CustomerRouteHold],
"driverInstructions": "abc123",
"preferences": [4],
"goodOnlineAccountStanding": true,
"addresses": [CustomerAddress],
"defaultAddress": CustomerAddress,
"creditCardIFrameURL": "xyz789",
"authenticatedCustomerSiteLink": "abc123",
"creditCard": CreditCard,
"datesForSchedulingAppointment": [ScheduleDate],
"customerBookings": [CustomerBooking],
"readyBags": [CustomerBag],
"customerRelationship": "STORE_ONLY",
"deliveryStop": 123,
"demographic": 123,
"apiTokenForCustomer": "xyz789",
"activePromotions": [Promotion],
"subscription": CustomerSubscription,
"kioskAccessCode": "abc123",
"email": "abc123",
"cellPhone": "abc123",
"homePhone": "xyz789",
"firstName": "abc123",
"lastName": "xyz789",
"companyName": "xyz789",
"customFields": [CustomerFieldValue]
}
}
}
Types
Actor
AddressValidationInput
Description
An address to validate
Example
{
"streetAddress": "xyz789",
"streetAddress2": "abc123",
"city": "xyz789",
"state": "abc123",
"zip": "xyz789"
}
Agent
Fields
Field Name | Description |
---|---|
id -
ID!
|
Globally Unique Identifier. In the format of ObjectType_BusinessIdShort_ObjectId |
localId -
ID!
|
Local identifier without ObjectType_BusinessIdShort prefix. |
name -
String!
|
Name of the Agent |
agentId -
ID
|
Unique identifier for the Agent. Can be null for a Group, if the group is not an agent. |
agentType -
String
|
The type of Agent. One of "Store", "Route" or "Group". Can be null for a Group, if the group is not an agent. |
Example
{
"id": "4",
"localId": "4",
"name": "xyz789",
"agentId": "4",
"agentType": "abc123"
}
AlertSubType
Fields
Field Name | Description |
---|---|
id -
ID!
|
Globally Unique Identifier. In the format of ObjectType_BusinessIdShort_ObjectId |
localId -
ID!
|
Local identifier without ObjectType_BusinessIdShort prefix. |
masterTypeId -
ID!
|
ID of the master Alert Type |
name -
String!
|
Name of the Sub Type |
prefTicket -
Boolean!
|
|
prefCustomer -
Boolean!
|
|
prefDelivery -
Boolean!
|
|
prefPressing -
Boolean!
|
|
prefInspection -
Boolean!
|
|
prefSpotting -
Boolean!
|
|
prefAlteration -
Boolean!
|
|
prefWashing -
Boolean!
|
|
active -
Boolean!
|
Example
{
"id": "4",
"localId": "4",
"masterTypeId": 4,
"name": "abc123",
"prefTicket": false,
"prefCustomer": false,
"prefDelivery": true,
"prefPressing": false,
"prefInspection": false,
"prefSpotting": false,
"prefAlteration": true,
"prefWashing": false,
"active": true
}
AlertSubTypeInput
Description
Defines an Alert Sub Type
Fields
Input Field | Description |
---|---|
id -
ID
|
Only required for existing entries |
masterTypeId -
ID!
|
ID of the master Alert Type |
name -
String!
|
Name of the Sub Type. |
prefTicket -
Boolean
|
|
prefCustomer -
Boolean
|
|
prefDelivery -
Boolean
|
|
prefPressing -
Boolean
|
|
prefInspection -
Boolean
|
|
prefSpotting -
Boolean
|
|
prefAlteration -
Boolean
|
|
prefWashing -
Boolean
|
|
active -
Boolean!
|
Example
{
"id": "4",
"masterTypeId": 4,
"name": "abc123",
"prefTicket": true,
"prefCustomer": true,
"prefDelivery": false,
"prefPressing": true,
"prefInspection": true,
"prefSpotting": true,
"prefAlteration": true,
"prefWashing": false,
"active": false
}
AlertType
Example
{
"id": "4",
"localId": 4,
"name": "xyz789",
"active": false
}
Appointment
Fields
Field Name | Description |
---|---|
id -
ID!
|
Globally Unique Identifier. In the format of ObjectType_BusinessIdShort_ObjectId |
localId -
ID!
|
Local identifier without ObjectType_BusinessIdShort prefix. |
startTime -
DateTime!
|
Start time of the appointment. For a business with only static routes, only the date is relevant. |
endTime -
DateTime!
|
End time of the appointment. |
timeSlot -
TimeSlot!
|
Time slot of the appointment. |
scheduledBy -
Actor!
|
Who the appointment was scheduled by; the Customer, a Bot or a User (employee). |
scheduledAt -
DateTime!
|
When the appointment was scheduled. For appointments scheduled by a bot, this may be in the middle of the night. This date is updated on edits of the appointment. |
route -
Route!
|
The Delivery Route the appointment will/has run on. |
driverInstructions -
String
|
Instructions for the driver |
cleaningInstructions -
String
|
Instructions for cleaning |
departments -
[FinancialDepartment]!
|
Financial departments if specified |
customer -
Customer!
|
The customer the appointment belongs to. |
address -
CustomerAddress!
|
The address for the appointment. |
driver -
User!
|
The driver the appointment is assigned to (or who eventually completed the appointment. |
regular -
Boolean!
|
Whether this appointment is a recurring event that was scheduled automatically. |
anytime -
Boolean!
|
If an appointment is marked anytime, it can happen at any time during the day, and the startTime/endTime is not relevant. |
status -
String!
|
The status of the appointment |
appointmentLinkId -
ID
|
A random string linking multiple appointments together |
photos -
[Photo]
|
Photos attached to this appointment |
lockerCode -
ID
|
A locker code if available |
Example
{
"id": 4,
"localId": 4,
"startTime": "2007-12-03T10:15:30Z",
"endTime": "2007-12-03T10:15:30Z",
"timeSlot": TimeSlot,
"scheduledBy": Actor,
"scheduledAt": "2007-12-03T10:15:30Z",
"route": Route,
"driverInstructions": "xyz789",
"cleaningInstructions": "xyz789",
"departments": [FinancialDepartment],
"customer": Customer,
"address": CustomerAddress,
"driver": User,
"regular": true,
"anytime": true,
"status": "xyz789",
"appointmentLinkId": "4",
"photos": [Photo],
"lockerCode": 4
}
AppointmentInput
Description
Create or update an appointment
Fields
Input Field | Description |
---|---|
id -
ID
|
Only required for existing entries |
addressId -
String!
|
ID of the address to pickup from or deliver to |
customerId -
String!
|
ID of the customer |
selectedDate -
Int!
|
Selected date (day in month) |
selectedMonth -
Int!
|
Selected month (1-12) |
selectedYear -
Int!
|
Selected year |
timeSlotId -
String!
|
ID of the selected time slot. Set -1 if no time slot is selected (anytime will be set to true) |
routeId -
String!
|
ID of the route associated with the selected time slot. |
driverInstructions -
String
|
Instructions for the driver |
cleaningInstructions -
String
|
Instructions for cleaning |
departmentIds -
[String]
|
A list of financial department IDs |
appointmentLinkId -
ID
|
A random string linking multiple appointments together |
photoIds -
[ID]
|
A list of photo IDs to attach to the appointment |
putPhotos -
[PhotoInput]
|
A list of photos to upload |
regular -
Boolean
|
If the appointment is regular |
lockerCode -
ID
|
A locker code if available |
Example
{
"id": 4,
"addressId": "xyz789",
"customerId": "abc123",
"selectedDate": 987,
"selectedMonth": 123,
"selectedYear": 123,
"timeSlotId": "abc123",
"routeId": "abc123",
"driverInstructions": "abc123",
"cleaningInstructions": "xyz789",
"departmentIds": ["xyz789"],
"appointmentLinkId": 4,
"photoIds": [4],
"putPhotos": [PhotoInput],
"regular": true,
"lockerCode": "4"
}
Boolean
Description
The Boolean
scalar type represents true
or false
.
Example
true
Bot
Brand
Fields
Field Name | Description |
---|---|
id -
ID!
|
Globally Unique Identifier. In the format of ObjectType_BusinessIdShort_ObjectId |
localId -
ID!
|
Local identifier without ObjectType_BusinessIdShort prefix. |
name -
String!
|
Identifying name of the brand, not necessarily for display to Customers. Use settings.name to get what branding name should be displayed to the user instead. |
brandId -
String!
|
Locally identifying id of the brand |
settings -
Settings!
|
Settings for this brand. |
agents -
[Agent]!
|
Agents for this brand. |
Example
{
"id": "4",
"localId": 4,
"name": "xyz789",
"brandId": "abc123",
"settings": Settings,
"agents": [Agent]
}
BrandInput
Description
Create / Update a brand
Example
{
"id": 4,
"name": "xyz789",
"agents": ["xyz789"]
}
Business
Fields
Field Name | Description |
---|---|
id -
ID!
|
Globally Unique Identifier. In the format of Business_subdomain |
localId -
ID!
|
Local identifier without ObjectType_BusinessIdShort prefix. |
shortId -
Int!
|
Short integer identifier, for example, SF Green Clean has '1'. This identifier is a part of all other Node identifiers pertaining to this business. For example, a Customer may have id 'Customer_1_1234' at SF Green Clean. |
subdomain -
String!
|
Business subdomain of smrtapp.com, e.g sfgc. Also part of the primary business. |
settings -
Settings!
|
Global Business Settings |
employeeSettings -
Settings!
|
Global Employee Settings |
stores -
[Store]!
|
Physical Stores |
communicationTemplatesList -
[CommunicationTemplates]!
|
All CommunicationTemplates |
employees -
[User]!
|
All Employees |
routes -
[Route]!
|
Delivery Routes |
groups -
[Group]!
|
Customer Groups |
notes -
[Note]!
|
Query for notes |
Arguments
|
|
brands -
[Brand]!
|
If a business has multiple brands (usually operating stores with different brand names), those are included here. |
agents -
[Agent]!
|
All agents associated with the business |
holidays -
[Holiday]!
|
Chronological list of all current holidays |
itemCategories -
[ItemCategory]!
|
All Item categories |
itemTypes -
[ItemType]!
|
All Item types |
subscriptions -
[ItemType]!
|
All Subscription types |
paymentMethods -
[PaymentMethod]!
|
All POS Payment Methods |
taxConfigurationRules -
[TaxConfigurationRule]!
|
Tax configuration rules |
itemValidationRules -
[ItemValidationRule]!
|
A list of item validation rules |
itemFields -
[ItemField]!
|
A list of item fields |
financialDepartments -
[FinancialDepartment]!
|
A list of financial departments |
specialCares -
[SpecialCare]!
|
A list of special cares (a.k.a. descriptors or upcharges) |
alertTypes -
[AlertType]!
|
All Alert Types |
alertSubTypes -
[AlertSubType]!
|
All Alert Sub Types |
chatRooms -
[ChatRoom]!
|
A list of all public chat rooms |
customerFields -
[CustomerField]!
|
A list of configured customer fields |
usesPaymentSystem -
Boolean
|
|
getCustomer -
Customer
|
|
Arguments
|
|
getCustomers -
[Customer]!
|
|
Arguments
|
|
queryReports -
QueryReportsResult!
|
|
productionStationStatistics -
ProductionStationStatistics!
|
|
Arguments
|
Example
{
"id": "4",
"localId": 4,
"shortId": 123,
"subdomain": "xyz789",
"settings": Settings,
"employeeSettings": Settings,
"stores": [Store],
"communicationTemplatesList": [CommunicationTemplates],
"employees": [User],
"routes": [Route],
"groups": [Group],
"notes": [Note],
"brands": [Brand],
"agents": [Agent],
"holidays": [Holiday],
"itemCategories": [ItemCategory],
"itemTypes": [ItemType],
"subscriptions": [ItemType],
"paymentMethods": [PaymentMethod],
"taxConfigurationRules": [TaxConfigurationRule],
"itemValidationRules": [ItemValidationRule],
"itemFields": [ItemField],
"financialDepartments": [FinancialDepartment],
"specialCares": [SpecialCare],
"alertTypes": [AlertType],
"alertSubTypes": [AlertSubType],
"chatRooms": [ChatRoom],
"customerFields": [CustomerField],
"usesPaymentSystem": false,
"getCustomer": Customer,
"getCustomers": [Customer],
"queryReports": QueryReportsResult,
"productionStationStatistics": ProductionStationStatistics
}
ChatMessage
Fields
Field Name | Description |
---|---|
id -
ID!
|
Globally Unique Identifier. In the format of ObjectType_BusinessIdShort_ObjectId |
localId -
ID!
|
Local identifier without ObjectType_BusinessIdShort prefix. |
roomId -
String!
|
|
userId -
String!
|
|
text -
String!
|
The message content |
createDate -
String!
|
Message timestamp in iso8106 with milliseconds |
Example
{
"id": 4,
"localId": 4,
"roomId": "xyz789",
"userId": "xyz789",
"text": "abc123",
"createDate": "xyz789"
}
ChatRoom
Fields
Field Name | Description |
---|---|
id -
ID!
|
Globally Unique Identifier. In the format of ObjectType_BusinessIdShort_ObjectId |
localId -
ID!
|
Local identifier without ObjectType_BusinessIdShort prefix. |
name -
String
|
|
specialRoomType -
String
|
|
isPrivate -
Boolean!
|
|
userIds -
[ID]!
|
|
agents -
[ID]!
|
|
usersAllowedToPost -
[ID]
|
|
isNotificationsRoom -
Boolean!
|
|
isRequired -
Boolean!
|
|
chatMessages -
[ChatMessage]!
|
|
Example
{
"id": 4,
"localId": "4",
"name": "abc123",
"specialRoomType": "xyz789",
"isPrivate": false,
"userIds": [4],
"agents": ["4"],
"usersAllowedToPost": ["4"],
"isNotificationsRoom": false,
"isRequired": false,
"chatMessages": [ChatMessage]
}
ChatRoomInput
Description
Create or update a chat channel
Fields
Input Field | Description |
---|---|
id -
ID
|
Only required for existing entries |
name -
String
|
Name of the room. Optional for private rooms |
agents -
[ID]
|
A list of agent ids to use when routing messages |
userIds -
[ID]!
|
A list of global user ids that have access to the room. |
isPrivate -
Boolean
|
True if the room is private. Only admins can manage public rooms. |
isNotificationsRoom -
Boolean
|
True if the room is a hardcoded room for notifications. |
isRequired -
Boolean
|
If true the room cannot be deleted or modified by an admin |
usersAllowedToPost -
[String]
|
A list of global user ids that may post to this room. Everyone can post if null |
isArchived -
Boolean
|
Set to true to soft delete the room |
Example
{
"id": 4,
"name": "xyz789",
"agents": [4],
"userIds": [4],
"isPrivate": true,
"isNotificationsRoom": true,
"isRequired": true,
"usersAllowedToPost": ["abc123"],
"isArchived": false
}
CommunicationTemplates
Example
{
"id": "4",
"localId": 4,
"name": "xyz789"
}
CreditCard
Fields
Field Name | Description |
---|---|
id -
ID!
|
Globally Unique Identifier. In the format of ObjectType_BusinessIdShort_ObjectId |
localId -
ID!
|
Local identifier without ObjectType_BusinessIdShort prefix. |
type -
CreditCardTypeEnum!
|
The brand/type of the credit card. |
last4 -
String!
|
The last 4 digits. |
expm -
String!
|
Month of expiration |
expy -
String!
|
Year of expiration |
Example
{
"id": "4",
"localId": "4",
"type": "visa",
"last4": "xyz789",
"expm": "abc123",
"expy": "abc123"
}
CreditCardTypeEnum
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
Example
"visa"
Customer
Fields
Field Name | Description |
---|---|
id -
ID!
|
Globally Unique Identifier. In the format of ObjectType_BusinessIdShort_ObjectId |
localId -
ID!
|
Local identifier without ObjectType_BusinessIdShort prefix. |
name -
String!
|
Name of the actor |
futureAppointments -
[Appointment]!
|
Chronological list of all future appointments with the customer. This includes both pickup and delivery requests. |
settings -
Settings!
|
Settings specific to the customer. Also includes all global business settings. Please see Settings documentation for more information. |
group -
Group
|
A customer may be part of a customer group. See Group for more infromation |
agent -
Agent!
|
The Sales agent the customer belongs to |
routeHolds -
[CustomerRouteHold]!
|
Customer route holds |
driverInstructions -
String
|
Standing driver instructions |
preferences -
[ID]!
|
Customer preferences |
goodOnlineAccountStanding -
Boolean!
|
Good online account standing |
addresses -
[CustomerAddress]!
|
Customer addresses |
defaultAddress -
CustomerAddress
|
Customer default address |
creditCardIFrameURL -
String!
|
Customer credit card iframe URL. Parameter 'style' can be either 'payments' or 'profile'. Defaults to 'profile |
Arguments
|
|
authenticatedCustomerSiteLink -
String!
|
Returns a link that takes the user straight into their customer portal, optionally define a specific target tab, which the user will land on. |
Arguments
|
|
creditCard -
CreditCard
|
Customer credit card. |
datesForSchedulingAppointment -
[ScheduleDate]!
|
Available dates for scheduling an appointment |
customerBookings -
[CustomerBooking]!
|
Customer bookings (appointments and orders) |
readyBags -
[CustomerBag]!
|
List of ready bags for the customer, yet to be picked up |
customerRelationship -
CustomerRelationshipEnum!
|
Describes the company-customer relationship |
deliveryStop -
Int
|
Customer delivery stop |
demographic -
Int
|
Customer demographic |
apiTokenForCustomer -
String!
|
|
activePromotions -
[Promotion]
|
Active Promotions |
subscription -
CustomerSubscription
|
Subscription |
kioskAccessCode -
String
|
A personal kiosk access code (auto-generated) |
email -
String
|
Customer's primary email |
cellPhone -
String
|
Customer's primary phone number |
homePhone -
String
|
Customer's secondary phone number |
firstName -
String
|
Customer's first name |
lastName -
String
|
Customer's last name |
companyName -
String
|
Company name |
customFields -
[CustomerFieldValue]
|
Custom field values |
Example
{
"id": "4",
"localId": "4",
"name": "abc123",
"futureAppointments": [Appointment],
"settings": Settings,
"group": Group,
"agent": Agent,
"routeHolds": [CustomerRouteHold],
"driverInstructions": "abc123",
"preferences": [4],
"goodOnlineAccountStanding": true,
"addresses": [CustomerAddress],
"defaultAddress": CustomerAddress,
"creditCardIFrameURL": "xyz789",
"authenticatedCustomerSiteLink": "abc123",
"creditCard": CreditCard,
"datesForSchedulingAppointment": [ScheduleDate],
"customerBookings": [CustomerBooking],
"readyBags": [CustomerBag],
"customerRelationship": "STORE_ONLY",
"deliveryStop": 123,
"demographic": 987,
"apiTokenForCustomer": "xyz789",
"activePromotions": [Promotion],
"subscription": CustomerSubscription,
"kioskAccessCode": "abc123",
"email": "abc123",
"cellPhone": "abc123",
"homePhone": "abc123",
"firstName": "abc123",
"lastName": "xyz789",
"companyName": "xyz789",
"customFields": [CustomerFieldValue]
}
CustomerAddress
Fields
Field Name | Description |
---|---|
id -
ID!
|
Globally Unique Identifier. In the format of ObjectType_BusinessIdShort_ObjectId |
localId -
ID!
|
Local identifier without ObjectType_BusinessIdShort prefix. |
name -
String!
|
Address name |
streetAddress -
String!
|
Street address |
streetAddress2 -
String
|
Street address line 2 |
city -
String!
|
City |
state -
String!
|
State |
zip -
String!
|
Zip |
latitude -
String
|
Latitude |
longitude -
String
|
Longitude |
skipVerification -
Boolean
|
True if address verification was bypassed on last save. |
manualLocation -
Boolean
|
True if latitude and longitude were edited manually. |
Example
{
"id": "4",
"localId": 4,
"name": "xyz789",
"streetAddress": "xyz789",
"streetAddress2": "abc123",
"city": "abc123",
"state": "xyz789",
"zip": "abc123",
"latitude": "xyz789",
"longitude": "abc123",
"skipVerification": false,
"manualLocation": true
}
CustomerAddressInput
Fields
Input Field | Description |
---|---|
name -
String!
|
Address name |
streetAddress -
String!
|
Street address |
streetAddress2 -
String
|
Street address line 2 |
city -
String!
|
City |
state -
String!
|
State |
zip -
String!
|
Zip |
latitude -
String
|
Latitude |
longitude -
String
|
Longitude |
skipVerification -
Boolean
|
Set to true if you want to skip address verification. Defaults to false. |
manualLocation -
Boolean
|
Set to true if manually editing coordinates. |
Example
{
"name": "abc123",
"streetAddress": "abc123",
"streetAddress2": "abc123",
"city": "xyz789",
"state": "xyz789",
"zip": "xyz789",
"latitude": "abc123",
"longitude": "abc123",
"skipVerification": false,
"manualLocation": true
}
CustomerBag
Fields
Field Name | Description |
---|---|
id -
ID!
|
Globally Unique Identifier. In the format of ObjectType_BusinessIdShort_ObjectId |
localId -
ID!
|
Local identifier without ObjectType_BusinessIdShort prefix. |
barcode -
String!
|
Barcode (id) of the bag |
display -
String!
|
ID of the bag, as it should be displayed to a user |
order -
Order!
|
The order associated with this bag |
location -
RackLog
|
Current location and scan event info of the ready bag (could be null) |
Example
{
"id": "4",
"localId": "4",
"barcode": "abc123",
"display": "xyz789",
"order": Order,
"location": RackLog
}
CustomerBooking
Fields
Field Name | Description |
---|---|
id -
ID!
|
Globally Unique Identifier. In the format of ObjectType_BusinessIdShort_ObjectId |
localId -
ID!
|
Local identifier without ObjectType_BusinessIdShort prefix. |
pickupAppointment -
Appointment
|
A pickup appointment if scheduled |
deliveryAppointment -
Appointment
|
A delivery appointment if scheduled |
orders -
[Order]
|
A list of orders if any |
pickupDateDisplay -
String
|
A displayable pickup date/time if scheduled |
deliveryDateDisplay -
String
|
A displayable delivery date/time if scheduled |
statusText -
String!
|
A displayable info text |
status -
CustomerBookingStatusEnum!
|
The status of the booking |
progress -
Float!
|
The progress of the booking (0.0-1.0) |
bookingDate -
DateTime!
|
Is either pickup start date or order creation date |
Example
{
"id": 4,
"localId": 4,
"pickupAppointment": Appointment,
"deliveryAppointment": Appointment,
"orders": [Order],
"pickupDateDisplay": "abc123",
"deliveryDateDisplay": "xyz789",
"statusText": "abc123",
"status": "ORDER_CONFIRMED",
"progress": 123.45,
"bookingDate": "2007-12-03T10:15:30Z"
}
CustomerBookingStatusEnum
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"ORDER_CONFIRMED"
CustomerDeliveryPreferenceEnum
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"NO_PREFERENCE"
CustomerField
Fields
Field Name | Description |
---|---|
id -
ID!
|
Globally Unique Identifier. In the format of ObjectType_BusinessIdShort_ObjectId |
localId -
ID!
|
Local identifier without ObjectType_BusinessIdShort prefix. |
fieldType -
CustomerFieldTypeEnum!
|
The type of the field |
label -
String!
|
|
possibleValues -
[String]
|
|
shownProfile -
Boolean!
|
|
shownPosSignUp -
Boolean!
|
|
shownCustomerWebsite -
Boolean!
|
|
shownCustomerWebsiteSignUp -
Boolean!
|
|
elasticKey -
String
|
|
disabled -
Boolean
|
Example
{
"id": "4",
"localId": 4,
"fieldType": "text",
"label": "abc123",
"possibleValues": ["abc123"],
"shownProfile": false,
"shownPosSignUp": true,
"shownCustomerWebsite": true,
"shownCustomerWebsiteSignUp": true,
"elasticKey": "abc123",
"disabled": true
}
CustomerFieldInput
Description
Defines a Customer Field Input Type
Fields
Input Field | Description |
---|---|
id -
String!
|
A unique ID for this custom field |
fieldType -
CustomerFieldTypeEnum!
|
The type of the field |
label -
String!
|
The name of the field |
possibleValues -
[String]
|
Values for select type field |
shownProfile -
Boolean!
|
Display on customer profile in POS |
shownPosSignUp -
Boolean!
|
Display at customer signup in POS |
shownCustomerWebsite -
Boolean!
|
Display on customer website |
shownCustomerWebsiteSignUp -
Boolean!
|
Display on customer website at signup |
disabled -
Boolean
|
Set to true to disable the field |
Example
{
"id": "abc123",
"fieldType": "text",
"label": "xyz789",
"possibleValues": ["xyz789"],
"shownProfile": false,
"shownPosSignUp": false,
"shownCustomerWebsite": false,
"shownCustomerWebsiteSignUp": true,
"disabled": true
}
CustomerFieldTypeEnum
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
Example
"text"
CustomerFieldValue
CustomerFieldValueInput
CustomerInput
Description
A customer to update
Example
{
"email": "abc123",
"phone": "xyz789",
"firstName": "abc123",
"lastName": "abc123",
"password": "xyz789",
"customFields": [CustomerFieldValueInput]
}
CustomerPreference
CustomerPreferenceSection
Fields
Field Name | Description |
---|---|
id -
ID!
|
Globally Unique Identifier. In the format of ObjectType_BusinessIdShort_ObjectId |
localId -
ID!
|
Local identifier without ObjectType_BusinessIdShort prefix. |
type -
String!
|
Type of the preference section |
name -
String!
|
Name of the preference section |
options -
[CustomerPreference]!
|
Available preferences in a section |
Example
{
"id": 4,
"localId": "4",
"type": "abc123",
"name": "abc123",
"options": [CustomerPreference]
}
CustomerRelationshipEnum
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"STORE_ONLY"
CustomerRouteHold
Example
{
"id": 4,
"localId": "4",
"startDate": "xyz789",
"endDate": "xyz789"
}
CustomerRouteHoldInput
CustomerSubscription
Fields
Field Name | Description |
---|---|
id -
ID!
|
Globally Unique Identifier. In the format of ObjectType_BusinessIdShort_ObjectId |
localId -
ID!
|
Local identifier without ObjectType_BusinessIdShort prefix. |
pending -
CustomerSubscriptionEntry
|
Pending subscription object |
active -
CustomerSubscriptionEntry
|
Active subscription object |
log -
[CustomerSubscriptionLog]
|
Start & end-times of subscriptions |
Example
{
"id": 4,
"localId": "4",
"pending": CustomerSubscriptionEntry,
"active": CustomerSubscriptionEntry,
"log": [CustomerSubscriptionLog]
}
CustomerSubscriptionEntry
Fields
Field Name | Description |
---|---|
id -
ID!
|
Globally Unique Identifier. In the format of ObjectType_BusinessIdShort_ObjectId |
localId -
ID!
|
Local identifier without ObjectType_BusinessIdShort prefix. |
saleId -
ID
|
The connected order Id |
price -
Float!
|
The price per month for this subscription |
start -
DateTime
|
The start date |
end -
DateTime
|
The end date |
Example
{
"id": "4",
"localId": 4,
"saleId": 4,
"price": 987.65,
"start": "2007-12-03T10:15:30Z",
"end": "2007-12-03T10:15:30Z"
}
CustomerSubscriptionLog
Fields
Field Name | Description |
---|---|
id -
ID!
|
Globally Unique Identifier. In the format of ObjectType_BusinessIdShort_ObjectId |
localId -
ID!
|
Local identifier without ObjectType_BusinessIdShort prefix. |
date -
String!
|
The date |
event -
String!
|
The event name |
description -
String!
|
The event description |
user -
User
|
The user who triggered the event |
Example
{
"id": "4",
"localId": 4,
"date": "abc123",
"event": "xyz789",
"description": "abc123",
"user": User
}
DateRange
DateTime
Description
An ISO-8601 encoded UTC date string.
Example
"2007-12-03T10:15:30Z"
FinancialDepartment
Fields
Field Name | Description |
---|---|
id -
ID!
|
Globally Unique Identifier. In the format of ObjectType_BusinessIdShort_ObjectId |
localId -
ID!
|
Local identifier without ObjectType_BusinessIdShort prefix. |
name -
String!
|
Name of the department. |
showInCustomerScheduler -
Boolean!
|
True if supposed to be displayed in the customer delivery scheduler. |
Example
{
"id": 4,
"localId": "4",
"name": "xyz789",
"showInCustomerScheduler": true
}
Float
Description
The Float
scalar type represents signed double-precision fractional values as specified by
IEEE 754.
Example
123.45
GetCustomerFieldEnum
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
"id"
GetCustomersFieldEnum
Values
Enum Value | Description |
---|---|
|
|
|
Example
"masterRouteId"
Group
Fields
Field Name | Description |
---|---|
id -
ID!
|
Globally Unique Identifier. In the format of ObjectType_BusinessIdShort_ObjectId |
localId -
ID!
|
Local identifier without ObjectType_BusinessIdShort prefix. |
agentId -
ID
|
Unique identifier for the Agent. Can be null for a Group, if the group is not an agent. |
agentType -
String
|
The type of Agent. One of "Store", "Route" or "Group". Can be null for a Group, if the group is not an agent. |
name -
String!
|
Name of the Agent |
hasOwnAgent -
Boolean!
|
Whether this group has its own Sales agent or not. Must groups do not have their own sales agent, but sometimes this is used for granular sales reporting for the group. |
isGroupStop -
Boolean!
|
Whether this group is a group delivery stop. For example a building with many customers in it. |
isMasterBilling -
Boolean!
|
Whether this group is billed as one. The Customers in the group do not pay for the services billed for in SMRT, only the group does. |
customers -
[Customer]!
|
Members of this group |
Example
{
"id": "4",
"localId": "4",
"agentId": 4,
"agentType": "abc123",
"name": "xyz789",
"hasOwnAgent": false,
"isGroupStop": true,
"isMasterBilling": true,
"customers": [Customer]
}
Holiday
Fields
Field Name | Description |
---|---|
id -
ID!
|
Globally Unique Identifier. In the format of ObjectType_BusinessIdShort_ObjectId |
localId -
ID!
|
Local identifier without ObjectType_BusinessIdShort prefix. |
date -
String!
|
The date of the holiday, YYYY-MM-DD |
noProduction -
Boolean!
|
True if no production on day |
noDelivery -
Boolean!
|
True if no delivery on day |
dayOfWeek -
String!
|
The day of the week for the date (Mon, Tue etc) |
Example
{
"id": 4,
"localId": 4,
"date": "abc123",
"noProduction": false,
"noDelivery": false,
"dayOfWeek": "abc123"
}
HolidayInput
ID
Description
The ID
scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4"
) or integer (such as 4
) input value will be accepted as an ID.
Example
4
Int
Description
The Int
scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
Example
123
ItemCategory
Fields
Field Name | Description |
---|---|
id -
ID!
|
Globally Unique Identifier. In the format of ObjectType_BusinessIdShort_ObjectId |
localId -
ID!
|
Local identifier without ObjectType_BusinessIdShort prefix. |
name -
String!
|
Name of the category, e.g Shirts/Tops |
sort -
Int!
|
Sort of the category in item detailing, lowest number first |
description -
String!
|
Longer description of what items are in the category |
disabled -
Boolean!
|
Whether the category is disabled (meaning deleted) or not |
isRetail -
Boolean!
|
If the category is the retail sales category. This category includes non cleaning items such as gift cards and lint rollers. |
Example
{
"id": "4",
"localId": "4",
"name": "xyz789",
"sort": 123,
"description": "abc123",
"disabled": true,
"isRetail": false
}
ItemCategoryInput
Description
Create / Update an item category
Fields
Input Field | Description |
---|---|
id -
ID
|
only required for existing entries |
name -
String!
|
Name of the category, e.g Shirts/Tops |
sort -
Int!
|
Sort of the category in item detailing, lowest number first |
description -
String!
|
Longer description of what items are in the category |
disabled -
Boolean!
|
Whether the category is disabled (meaning deleted) or not |
isRetail -
Boolean!
|
If the category is the retail sales category. This category includes non cleaning items such as gift cards and lint rollers. |
Example
{
"id": 4,
"name": "xyz789",
"sort": 987,
"description": "abc123",
"disabled": true,
"isRetail": true
}
ItemField
ItemType
Fields
Field Name | Description |
---|---|
id -
ID!
|
Globally Unique Identifier. In the format of ObjectType_BusinessIdShort_ObjectId |
localId -
ID!
|
Local identifier without ObjectType_BusinessIdShort prefix. |
name -
String!
|
Name of the item type |
category -
ItemCategory!
|
Item Category. |
active -
Boolean
|
Whether the item type has been deleted or not. |
price -
String
|
The current price of the item type |
description -
String
|
The description of the item type |
Example
{
"id": 4,
"localId": "4",
"name": "xyz789",
"category": ItemCategory,
"active": true,
"price": "xyz789",
"description": "abc123"
}
ItemValidationRule
Fields
Field Name | Description |
---|---|
id -
ID!
|
Globally Unique Identifier. In the format of ObjectType_BusinessIdShort_ObjectId |
localId -
ID!
|
Local identifier without ObjectType_BusinessIdShort prefix. |
name -
String!
|
Name of the rule. |
requiredFields -
[String]
|
A list of required item fields. |
requiredSpecialCares -
[String]
|
A list of required special cares (one-of condition). |
itemTypeCondition -
[String]
|
A list of item types. |
departmentCondition -
[String]
|
A list of financial departments. |
sort -
Int
|
Sort order. |
isDisabled -
Boolean
|
True if rule is disabled. |
Example
{
"id": "4",
"localId": 4,
"name": "abc123",
"requiredFields": ["xyz789"],
"requiredSpecialCares": ["xyz789"],
"itemTypeCondition": ["xyz789"],
"departmentCondition": ["xyz789"],
"sort": 987,
"isDisabled": true
}