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.

Response

Returns a Node

Arguments
Name Description
id - ID!

Example

Query
query Node($id: ID!) {
  node(id: $id) {
    id
    localId
  }
}
Variables
{"id": 4}
Response
{"data": {"node": {"id": 4, "localId": 4}}}

nodes

Description

Retrieve multiple objects given ids in the graph. Required by React Relay.

Response

Returns [Node]!

Arguments
Name Description
ids - [ID!]!

Example

Query
query Nodes($ids: [ID!]!) {
  nodes(ids: $ids) {
    id
    localId
  }
}
Variables
{"ids": ["4"]}
Response
{
  "data": {
    "nodes": [{"id": 4, "localId": "4"}]
  }
}

rackByLockerCode

Description

Returns an address given a locker code. Also updates customer default address if locker address is found.

Response

Returns a RackByLockerCodeResponse!

Arguments
Name Description
customerId - ID!
lockerCode - String!

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!

Arguments
Name Description
roomId - ID! A full chat room id, like ChatRoom_0000_1234
userId - ID! A full chat user id, like ChatUser_0000_1234

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!

Arguments
Name Description
text - String! Body of the message.
employees - [ID]! Array of employee ids to send the notification to.

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!

Arguments
Name Description
customerId - ID! Account id for customer
subCategoryId - ID! Sub category id
description - String Alert description

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

Arguments
Name Description
customerId - ID! Id of the customer to delete a route hold for
input - ID! Id of the route hold to delete

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

Response

Returns an ID

Arguments
Name Description
ruleId - ID! Id of the rule to delete

Example

Query
mutation DeleteTaxConfigurationRule($ruleId: ID!) {
  deleteTaxConfigurationRule(ruleId: $ruleId)
}
Variables
{"ruleId": 4}
Response
{
  "data": {
    "deleteTaxConfigurationRule": "4"
  }
}

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"}}

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

Response

Returns an Int

Arguments
Name Description
customerId - ID!

Example

Query
mutation PrepareKioskTicketsForPayment($customerId: ID!) {
  prepareKioskTicketsForPayment(customerId: $customerId)
}
Variables
{"customerId": "4"}
Response
{"data": {"prepareKioskTicketsForPayment": 987}}

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

Arguments
Name Description
customerId - ID! A customer id (optional, defaults to logged in user)
subject - String Message subject
message - String Message

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!

Arguments
Name Description
customerId - ID! A customer id
id - String! A credit card ID
type - CreditCardTypeEnum! A credit card type
last4 - Int! Last 4 digits of the credit card number
expiryMonth - Int! Month of expiry (1-12)
expiryYear - Int! Year of expiry in 4 digits

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]!

Arguments
Name Description
customerId - ID! A customer id
preferenceIds - [ID]! A list of preference ids

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

Arguments
Name Description
customerId - ID! A customer id (optional, defaults to logged in user)
agentId - String The orders agent
amount - String Amount in dollar of the order
status - String The status of the order
comment - String Comment

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!

Arguments
Name Description
roomId - ID! A full chat room id, like ChatRoom_0000_1234
userId - ID! A full chat user id, like ChatUser_0000_1234

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

Arguments
Name Description
customerId - ID! A customer id
subscriptionId - ID! The subscription item type id

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]
    }
  }
}

sendCustomerSignupText

Description

Sends a text with a signup link to a provided customer phone number.

Response

Returns a Boolean

Arguments
Name Description
phone - String! A phone number
fromKiosk - Boolean Optional flag to specify if the text is triggered from a kiosk.

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.

Response

Returns a Boolean

Arguments
Name Description
phone - String! A phone number

Example

Query
mutation SendKioskAlreadyInUseText($phone: String!) {
  sendKioskAlreadyInUseText(phone: $phone)
}
Variables
{"phone": "xyz789"}
Response
{"data": {"sendKioskAlreadyInUseText": true}}

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!

Arguments
Name Description
stationId - String! The id (Station_x_y) of the station you want to set this computer to
authCode - String For a non whitelisted IP, you must provide an auth code to set a station. This can be fetched manually in the admin panel.

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

Response

Returns an ID

Arguments
Name Description
phone - String! A customer phone number

Example

Query
mutation SigninCustomerWebsite($phone: String!) {
  signinCustomerWebsite(phone: $phone)
}
Variables
{"phone": "abc123"}
Response
{"data": {"signinCustomerWebsite": 4}}

sortDeliveryStops

Description

Sort delivery stops

Response

Returns [Customer]!

Arguments
Name Description
routeId - ID! The route id
sortedStopIds - [ID]! A list of sorted delivery stop ids (customer ids)

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

Arguments
Name Description
routeId - ID!
date - Int What day to optimize, as a unix timestamp

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

Arguments
Name Description
tickets - [String]! Array with ticket IDs
unloadArm - String! Conveyor arm ID

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

Arguments
Name Description
phone - String! A customer phone number
accessCode - String! A customer kiosk access code

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.

Response

Returns a Boolean

Arguments
Name Description
phone - String! A customer phone number

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

Arguments
Name Description
customerId - String! The ID of the customer to sign in
code - String! The verification code received by SMS

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

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
Possible Types
Actor Types

Customer

User

Bot

Example
{"id": 4, "localId": 4, "name": "abc123"}

AddressValidationInput

Description

An address to validate

Fields
Input Field Description
streetAddress - String!

Street address

streetAddress2 - String

Street address line 2

city - String!

City

state - String!

State

zip - String!

Zip

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.
Possible Types
Agent Types

Store

Route

Group

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

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 special.
active - Boolean!
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

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
Example
{"id": 4, "localId": 4, "name": "xyz789"}

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

Fields
Input Field Description
id - ID

Brand identifier

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.

agents - [String]!

Agents for this 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
customerId - ID

Filter by a specific customer (Customer_x_y)

agentId - String

Filter by a specific agent (Agent_x_y)

alertType - String

ISSUE or NOTE

mainCategory - String

Filter by main category

subCategory - String

Filter by sub category

status - String

Filter by note status

closed - Boolean

Get notes marked closed

userId - String

Filter by created by

assigneeId - String

Filter by assigned employee or UNASSIGNED

saleId - String

Filter by a specific sale

itemId - String

Filter by a specific item

insertDate - DateRange

Filter by date reported

lastUpdated - DateRange

Filter by last updated

dueDate - DateRange

Filter by due date

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
by - GetCustomerFieldEnum!

Customer field to match

term - String!

Search term

includeInactive - Boolean

Defaults to false

getCustomers - [Customer]!
Arguments
by - GetCustomersFieldEnum!

Customer field to match

term - String!

Search term

includeInactive - Boolean

Defaults to false

limit - Int

Defaults to 5000

offset - Int

Results offset

queryReports - QueryReportsResult!
Arguments
query - String!

The query as an escaped JSON string

page - Int

Defaults to 1

limit - Int

Limit number of rows per page. Defaults to 15

productionStationStatistics - ProductionStationStatistics!
Arguments
employeeId - ID!
productionStationType - ProductionStationTypeEnum!
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]!
Arguments
limit - Int
skip - Int
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

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 communication template list
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

visa

mastercard

amex

discover

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
style - String
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
target - String
                        Possible targets include:
                                                                    p: Profile page, 
                                                                    d: Pickup/delivery page, 
                                                                    n: Next pickup delivery event on delivery page, 
                                                                    ct: Clothestracker page, 
                                                                    r: Rewards page, 
                                                                    o: Trigger a 'On my Way' notification
                                                                    
                                            
creditCard - CreditCard Customer credit card.
datesForSchedulingAppointment - [ScheduleDate]! Available dates for scheduling an appointment
Arguments
addressId - ID
forDelivery - Boolean

Set to false if scheduling a pickup (default), true if scheduling a delivery

fromTimestamp - DateTime

An optional from timestamp as an ISO8601 string

routeId - ID

Pass a route ID if scheduling a future delivery 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!
                Create a JWT token for a specific customer (accessible by admins only).
                                                This token is similar to a customer session cookie,
                                                in that it only allows you to fetch information about the
                                                specific customer (using query { currentCustomer }} )
                                                The token expires after 24 hours
                                            
                                
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

ORDER_CONFIRMED

ORDER_PICKED_UP

CLEANING

READY_FOR_DELIVERY

READY_DELIVERY_SCHEDULED

OUT_FOR_DELIVERY

DELIVERED

NO_STATUS

Example
"ORDER_CONFIRMED"

CustomerDeliveryPreferenceEnum

Values
Enum Value Description

NO_PREFERENCE

PENDING_APPROVAL

SCHEDULED

ADDRESS_UNDELIVERABLE

ANYTIME

APPOINTMENT

MASTER_SUB

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

text

date

select

birthday

license_plate

Example
"text"

CustomerFieldValue

Fields
Field Name Description
id - ID! Globally Unique Identifier. In the format of ObjectType_BusinessIdShort_ObjectId
localId - ID! Local identifier without ObjectType_BusinessIdShort prefix.
value - String The field value
Example
{"id": 4, "localId": 4, "value": "abc123"}

CustomerFieldValueInput

Description

Customer field to update

Fields
Input Field Description
id - String

The ID of the custom field to update

value - String

The value of the field

Example
{
  "id": "xyz789",
  "value": "xyz789"
}

CustomerInput

Description

A customer to update

Fields
Input Field Description
email - String
phone - String
firstName - String
lastName - String!
password - String
customFields - [CustomerFieldValueInput]

A list of custom field values

Example
{
  "email": "abc123",
  "phone": "xyz789",
  "firstName": "abc123",
  "lastName": "abc123",
  "password": "xyz789",
  "customFields": [CustomerFieldValueInput]
}

CustomerPreference

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 preference
Example
{
  "id": 4,
  "localId": "4",
  "name": "xyz789"
}

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

STORE_ONLY

ROUTE_ON_DEMAND

ROUTE_PENDING_APPROVAL

ROUTE_REJECTED

ROUTE_REGULAR

ROUTE_WILLCALL

ROUTE_WILLCALL_LOCKER

ROUTE_SUB_CUSTOMER

Example
"STORE_ONLY"

CustomerRouteHold

Fields
Field Name Description
id - ID! Globally Unique Identifier. In the format of ObjectType_BusinessIdShort_ObjectId
localId - ID! Local identifier without ObjectType_BusinessIdShort prefix.
startDate - String! Start date of the hold, YYYY-MM-DD
endDate - String! End date of the hold, YYYY-MM-DD
Example
{
  "id": 4,
  "localId": "4",
  "startDate": "xyz789",
  "endDate": "xyz789"
}

CustomerRouteHoldInput

Description

Create / Update a route hold

Fields
Input Field Description
id - ID

Route hold id

startDate - String!

Start date of the hold, YYYY-MM-DD

endDate - String!

End date of the hold, YYYY-MM-DD

Example
{
  "id": "4",
  "startDate": "xyz789",
  "endDate": "abc123"
}

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

Fields
Input Field Description
gt - DateTime

Greater than

gte - DateTime

Greater than or equal

lt - DateTime

Less than

lte - DateTime

Less than or equal

Example
{
  "gt": "2007-12-03T10:15:30Z",
  "gte": "2007-12-03T10:15:30Z",
  "lt": "2007-12-03T10:15:30Z",
  "lte": "2007-12-03T10:15:30Z"
}

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

id

email

phone

Example
"id"

GetCustomersFieldEnum

Values
Enum Value Description

masterRouteId

deliveryPreference

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

Description

Update a holiday

Fields
Input Field Description
noProduction - Boolean!

True if no production on day

noDelivery - Boolean!

True if no delivery on day

Example
{"noProduction": true, "noDelivery": false}

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

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 field.
Example
{"id": 4, "localId": 4, "name": "abc123"}

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
}

ItemValidationRuleInput

Description

Create or update an item validation rule

Fields
Input Field Description
id - ID

Only required for existing entries

name - String!

Name of the rule.

requiredFields - [String]

A list of required item fields.

requiredSpecialCares - [String]

A list of required spec