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 AuthenticationHosted Package

Customer data

Display customer fields and parameters, edit profiles, and upload profile photos.

Customer data

Display customer fields and parameters, edit profiles, and upload profile photos. First, complete the installation.

Render customer fields

<span data-tiquo-customer="firstName"></span>
<span data-tiquo-customer="lastName"></span>
<span data-tiquo-customer="displayName"></span>
<span data-tiquo-customer="email"></span>
<span data-tiquo-customer="phone"></span>
<span data-tiquo-customer="createdAt"></span>
<span data-tiquo-customer="firstActiveAt"></span>

The field path is read from the signed-in customer record. The Hosted Package can render these customer fields:

FieldDescription
idTiquo customer ID
firstNameCustomer first name
lastNameCustomer last name
displayNameCustomer display name
customerNumberOrganization customer number
emailPrimary email address
phonePrimary phone number
profilePhotoProfile photo URL
statusCustomer status, such as active, inactive, or banned
totalOrdersTotal number of orders
totalSpentTotal amount spent
createdAtRead-only Unix timestamp in milliseconds for when the customer profile was created
firstActiveAtRead-only Unix timestamp in milliseconds for the customer's first qualifying activity; absent until activity exists
emailsFull email array
emails.0.addressFirst email address
emails.0.isPrimaryWhether the first email address is primary
phonesFull phone array
phones.0.numberFirst phone number
phones.0.isPrimaryWhether the first phone number is primary
parametersFull customer parameter array
parameterValuesCustomer parameter values keyed by parameter ID and normalized parameter name

For a Webflow Image element, the package assigns profilePhoto to the image src instead of printing the URL as text:

<img data-tiquo-customer="profilePhoto" alt="Profile photo" />

For a div-based avatar, bind it as a CSS background image:

<div
  data-tiquo-customer="profilePhoto"
  data-tiquo-style="background-image"
  data-tiquo-hide-empty
  aria-label="Profile photo"
></div>

Set the div's dimensions, border radius, background-size: cover, and background-position: center in Webflow. Only HTTP and HTTPS image URLs are accepted. data-tiquo-hide-empty hides the element when the customer does not have a profile photo.

</>Interactive example

Complete customer record

Inspect every supported customer field, including nested contact fields, images, dates, totals, and parameter collections.

Hover, tap, or focus an element to inspect its data attributes.

Alex Morgan

alex@example.com

Active member

Member since

18 June 2025

Log out

Every other customer field and image form

18 fields

Customer ID

cus_01JZ8A2K

First name

Alex

Last name

Morgan

Customer number

AH-2048

Primary phone

+44 7700 900123

Profile image element

Safely assigned to image src

Customer status

active

Total orders

18

Total spent

£1,284.50

First active date

02 July 2025

Email records

2 email records

First email address

alex@example.com

First email is primary

true

Phone records

1 phone record

First phone number

+44 7700 900123

First phone is primary

true

Parameter records

4 parameter records

Parameter value map

Membership Type: VIP

The layout and styling remain yours. Tiquo safely assigns image URLs and clears stale values after logout or customer changes.

Created and First Active dates

createdAt and firstActiveAt have different meanings:

  • Created is when the customer profile was created. Customer activity never changes or backdates this value.
  • First Active is when the customer first became active through qualifying customer activity. It is not the database insertion time. Activities performed by staff, systems, integrations, or imports do not set it.

The values are equal when a customer creates their own account and is immediately active in the same flow. An imported or staff-created profile can have a later firstActiveAt, or no value until the customer becomes active.

Without formatting attributes, the Hosted Package renders the raw Unix millisecond value. Use data-tiquo-date-format to format a date declaratively:

<time
  data-tiquo-customer="createdAt"
  data-tiquo-date-format="datetime"
  data-tiquo-locale="en-GB"
  data-tiquo-time-zone="Europe/London"
></time>

<time
  data-tiquo-customer="firstActiveAt"
  data-tiquo-date-format="date"
></time>

Supported date formats:

ValueOutput
rawUnix timestamp in milliseconds
isoISO 8601 date and time
dateLocale-formatted date
datetimeLocale-formatted date and time

data-tiquo-locale is optional and defaults to the page language or browser locale. data-tiquo-time-zone is optional and accepts an IANA timezone such as Europe/London. When the customer changes, signs out, or does not have the selected value, the Hosted Package clears the element so stale customer dates are not displayed.

The imperative API always returns the raw millisecond values:

const session = await window.Tiquo.getUser();

console.log(session?.customer?.createdAt);
console.log(session?.customer?.firstActiveAt);

Render customer parameters

Customer parameters are custom fields configured in Tiquo. Render them with data-tiquo-customer-parameter.

<span data-tiquo-customer-parameter="Membership Type"></span>
<span data-tiquo-customer-parameter="membership_type"></span>
<span data-tiquo-customer-parameter="system_source"></span>
</>Interactive example

Customer parameters

Inspect parameter data attributes by display name, normalized key, system ID, and schema ID.

Hover, tap, or focus an element to inspect its data attributes.

Membership Type

VIP

membership_type

VIP

system_source

Website

Schema ID

Events, Dining

Parameter names are normalized automatically, so human-readable names and normalized keys resolve consistently.

The value can be:

  • The parameter name, such as Membership Type
  • A normalized parameter key, such as membership_type
  • A system parameter ID, such as system_source
  • A custom parameter schema ID

Parameter names are normalized automatically, so Membership Type, membership type, and membership_type resolve to the same value.

Edit profile fields and customer parameters

Use data-tiquo-form="profile" to let a signed-in customer update their own profile.

<form data-tiquo-form="profile">
  <label>
    First name
    <input data-tiquo-profile="firstName" />
  </label>

  <label>
    Last name
    <input data-tiquo-profile="lastName" />
  </label>

  <label>
    Phone
    <input data-tiquo-profile="phone" />
  </label>

  <label>
    Membership type
    <select data-tiquo-profile-parameter="Membership Type">
      <option value="">Select one</option>
      <option value="Standard">Standard</option>
      <option value="VIP">VIP</option>
    </select>
  </label>

  <label>
    Interests
    <select data-tiquo-profile-parameter="Interests" multiple>
      <option value="Events">Events</option>
      <option value="Dining">Dining</option>
      <option value="Retail">Retail</option>
    </select>
  </label>

  <label>
    Marketing opt-in
    <input data-tiquo-profile-parameter="system_marketing_opt_in" type="checkbox" />
  </label>

  <label>
    SMS opt-in
    <input data-tiquo-profile-parameter="system_sms_opt_in" type="checkbox" />
  </label>

  <p data-tiquo-message></p>
  <button type="submit">Save profile</button>
</form>
</>Interactive example

Editable customer profile

Inspect every editable built-in field plus select, multiselect, checkbox-group, boolean, message, and submit elements.

Hover, tap, or focus an element to inspect its data attributes.

Account

Edit your profile

First name

Alex

Last name

Morgan

Email

alex@example.com

Phone

+44 7700 900123

Profile photo URL

https://images.example/alex.jpg

Membership type · Select

VIP

Interests · Multiselect

Events, Dining

Interests · Checkbox group

☑ Events   ☑ Retail

Marketing opt-in · Boolean

☑ Enabled

Profile changes are ready to save.

Save profile

Tiquo validates configured parameter options before saving and reports rejected values through the message element.

Editable built-in profile fields:

FieldDescription
firstNameCustomer first name
lastNameCustomer last name
emailPrimary email address
phonePrimary phone number
profilePhotoProfile photo URL

displayName is render-only. It cannot be edited through the Hosted Package or DOM Package. Tiquo derives it from first and last name. createdAt and firstActiveAt are also read-only system fields and are never included in profile update payloads.

Editable customer parameters use data-tiquo-profile-parameter. The value can be a parameter name, normalized key, system parameter ID, or custom parameter schema ID.

Dropdown and multiselect values are validated by Tiquo before saving:

  • select parameters can only save one configured, non-archived option.
  • multiselect parameters can only save configured, non-archived options.
  • Checkbox groups with the same data-tiquo-profile-parameter save as a multiselect array.
  • Single checkboxes save true or false, including Marketing and SMS Opt-In.
  • Disabled controls are omitted. For a multiselect with one option, use a multiple select.

If a form tries to save a value that is not available for that parameter, the save is rejected and the message element shows the error.

Marketing and SMS Preferences

Both consent checkboxes load the saved choice and can be checked or unchecked. Saving sends explicit booleans and reloading shows the stored preference. The hosted script decodes compound consent values such as {"Opt-In":"true"} and legacy boolean values, including bindings by system ID, name, normalized name, or an organisation override's schema ID.

The customer must be signed in and the parameter must be customer-editable. Staff-only parameters are rejected by the backend. Customer portals additionally limit updates to parameters enabled in that portal. The opt-in timestamp is managed by the server, not by a form field.

A profile form uses the same profileParameters payload as:

await window.Tiquo.updateProfile({
  profileParameters: {
    system_marketing_opt_in: true,
    system_sms_opt_in: false,
  },
});

This updates the authenticated customer's own profile. It is separate from Tiquo.setConsent(), which controls website analytics and does not change Marketing or SMS Opt-In. Profile forms emit tiquo:profile-saved or tiquo:profile-error with the result/error in event.detail.

Upload a profile photo

Add a photo trigger and preview within the same profile editor as the profile form. The package creates the file input, validates the selected image, previews it locally, and uploads it when the customer saves the form.

<div data-tiquo-profile-editor>
  <img
    data-tiquo-customer="profilePhoto"
    data-tiquo-profile-photo-preview
    alt="Profile photo"
  />

  <button
    type="button"
    data-tiquo-profile-photo-trigger
  >
    Choose photo
  </button>

  <form data-tiquo-form="profile">
    <input data-tiquo-profile="firstName" />
    <p data-tiquo-message></p>
    <button type="submit">Save profile</button>
  </form>
</div>

The default accepted formats are JPEG, PNG, GIF, and WebP. The maximum upload size is 5 MB. Set data-tiquo-max-size on the trigger to enforce a smaller client-side limit in bytes, or data-tiquo-accept to customise the browser file picker while keeping the same supported formats.

data-tiquo-profile-photo-preview works on an img element or a background-image element. The preview changes immediately after selection, before the form is submitted.

If the form sits elsewhere in the page, set data-tiquo-profile-editor="#profile-editor" on the form and give the containing editor that ID.

Sur cette page