Tiquo
Integrations OverviewAirtableAsanaSlackGoogle AnalyticsMetabaseMixpanelPendoSegmentTableau (PAT)ActiveCampaignBrevoEmarsys Core API (WSSE)EventbriteFacebookGoogle AdsHighLevelInstagramKlaviyoMailchimpMailgunMicrosoft AdsSendGridTwitter (v2)HubSpotNotionAcuity SchedulingAirtable (Personal Access Token)BasecampCal.com (v2)CalendlyClickUpCodaConfluence Data CenterExpensifyGoogle CalendarGoogle SheetHarvestLinearMicrosoft Power BIMicrosoft TeamsMindbodyMondayOpenAIPerplexityPingboardPivotal TrackerProductboardQuickbaseServiceM8ServiceNowTeamworkTickTickTimelyTodoistTrafftTrelloWrikefal.aixAIZendeskIntercomAircall (OAuth)DixaFreshDeskFreshserviceFrontPlainRingCentralZoho DeskBrazeDialpadGoogleMicrosoftOutlookPodiumSednaSharePoint OnlineTwilioWhatsApp BusinessZoho MailBambooHRADPDeelEmployment HeroGustoHibob Service UserNamelyOracle Fusion Cloud (HCM)PaychexPayfitPaylocityPersonioRipplingSAP SuccessFactorsSage HRTSheetsUKG ProUKG ReadyWorkdayZoho PeopleQuickBooksBuildiumExact OnlineFreshBooksIntuitNetSuitePennylaneSageSage IntacctTwinfieldUnanetWave AccountingXeroZoho BooksSalesforceAffinityAttioCopperFreshsalesGainsight CCInsightlyKustomerMedalliaPipedriveTwenty CRMZoomInfoApaleoMewsMicrosoft Business CentralOdooSAP ConcurZuoraAcceloCoupa CompassZoho InvoiceAnrokAvalaraDocuSignDropbox SignPandadocSignNowLinkedInSplitwiseTikTok AdsJotformQualtricsRefinerTypeformShopifyCin7 CoreGoogle MapsRingoverListrakRydooTalentLMSApple Business ManagerCrunchbaseRocketReachOcean.ioFreepikEnergy Performance Certificates (Gov.UK)JustworksGristSAP S/4HANA Cloud3CX8x8Adobe CommerceBirdCloudbedsConstant ContactBufferCustomer.ioCrispFreeAgentGreenhouseMeta Marketing APIMollienocrm.ioOomnitzaDigitsPylonSage 200ShopwareAnvilShippoEasyPostAltrataMicrosoft PeopleMicrosoft IntuneCloudTalkGoogle FormsMaximizerMicrosoft PlannerSalesmsgSellercloudTallyTimifyUpsalesCleverReachHeymarketMailjetPleoProvenExpertTelegramToggl TrackTenzoASSA ABLOY Vingcard VisionlineASSA ABLOY Vingcard VostioASSA ABLOY TESA HotelASSA ABLOY SMARTairSalto KSSalto Space OnlineDormakabaOmnitecHotekTT LockWebLockISEOKleverKeyAperioISONASHIDSouthcoThird MillenniumSTidAxis CommunicationsBooking.comExpediaHotels.comAirbnbGoogle HotelsTripadvisorAgodaHotelbedsTravelgateXHyperguestRoibosReconlineTraviaOpenGDS.comMG BedbankDidatravelHotelREZHRSHotelnetworkGetaroomWinkBookeasyVRBOInntopiaHookusbookusHipcampSpot2niteCamping VisionMinistry of VillasTrip.comTravelokaTiketMakeMyTripHoteripKlookeDreamsSzallasEmerging Travel GroupCheck24Bed-and-Breakfast.itWorld2Meet (W2M)Ctoutvert / SecureholidayDespegarPriceTravelRoombeastMitchell CorpHRS AustraliaResonlineHostelworldHostelhopTablet MichelinMr & Mrs SmithHopperHotel TonightPitchupMoveriiLocalOTAAlaricBooknpayCultbookingGuestTractionLevartWeSpeakMake.comZapierPricelabsPricepointRategenieElastic HotelRoom Price GenieTurbosuiteUber EatsDeliverooDoorDashBolt FoodGlovo
API and AuthenticationAdmin APICustomers

Update Customer

Update customer fields, parameters, and consent with the Admin API

Update Customer

Update an existing customer in the API key's organisation. Requires an Admin API key with customers.write. Keep this secret key on your server; browser profile forms should use the authenticated Customer API instead.

PATCH /customers/{customerId}

customerId can be a document ID, customer number, email address, or phone number. Use the same identifier formats as Get Customer.

Request Body

Only supplied fields are updated.

FieldTypeDescription
firstName, lastName, displayNamestringCustomer names
customerNumberstringCustom customer number
statusstringactive, inactive, or banned
sourcestringAcquisition source
emailsarrayFull email list with address and isPrimary
phonesarrayFull phone list with number and isPrimary
profilePhotostringRemote URL, data URI, or empty string to remove
profilePhotoBase64, profilePhotoMimeTypestringAlternative photo upload fields
parametersobjectCustomer parameter values keyed by schema ID, name, or normalized name

Customer Parameter Values

The same parameters format is supported by Create Customer. Keys can be a system ID (system_marketing_opt_in), custom customer parameter schema ID, parameter name, or normalized name. Each schema must belong to this organisation and allow staff editing. The API key must have customers.write.

curl -X PATCH "https://api.tiquo.app/api/v1/customers/CUSTOMER_ID" \
  -H "Authorization: Bearer your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "parameters": {
      "system_marketing_opt_in": true,
      "system_sms_opt_in": false,
      "CUSTOMER_PARAMETER_SCHEMA_ID": "Example Ltd"
    }
  }'

Replace CUSTOMER_PARAMETER_SCHEMA_ID with an actual schema ID. Submitted values replace existing values; omitted keys and null values leave existing data unchanged. Use "" or [] to clear optional fields where their type permits it. Required fields cannot be cleared.

Parameter typeValue
TextString
NumberFinite number or numeric string, within configured limits
BooleanBoolean or supported boolean string
Date / datetimeValid date/datetime string
SelectOne configured, non-archived option
MultiselectArray of configured, non-archived option strings
CompoundJSON string containing the configured subfields
Marketing / SMS Opt-InPrefer explicit true or false

Invalid parameter IDs, values, options, or permissions reject the entire customer write with 400; other fields in that mutation are not partially updated.

Marketing and SMS Opt-In are independent. true records consent; false removes it. The server creates the opt-in timestamp when consent changes from false to true, preserves it while consent remains true, and clears it on opt-out. Do not supply your own timestamp. Omitted consent defaults to false on a new customer. The top-level marketingOptIn and smsOptIn fields are response-only summaries; write consent through parameters.

Find Parameter IDs and Verify Values

GET /metadata/customer-parameters requires customers.read and returns schema metadata under data.parameters, including id, label, type, and options. It is read-only and describes customer parameters, not enquiry parameters.

After a write, use Get Customer to inspect saved parameters, marketingOptIn, and smsOptIn. The parameters[].parameterId field identifies the schema; parameters[].id identifies the saved value row and is not a schema ID. Saved parameter values are strings. Consent uses compound JSON, for example {"Opt-In":"true","Opt-In Date":"..."}.

Response and Errors

A successful update returns 200 OK with the customer summary in data. The update response does not include the full parameter collection; read the customer afterwards to verify saved parameters.

StatusMeaning
400Invalid fields or parameter input
401 / 403Invalid key or insufficient access
404Customer not found
409Conflicting or duplicate customer data