Sitoo integration
Partner integration
The Sitoo POS integration connects your point-of-sale data with Bloomreach to build a unified customer view across online and offline channels. Customer profiles are stored and managed in Bloomreach and accessed on demand by Sitoo POS. Order events are sent asynchronously to Bloomreach to power campaigns, segmentation, analytics, and customer journey automation.
How the integration works
This integration uses the Sitoo CRM SPI v2 specification, where Bloomreach acts as the customer data platform.
Customer data is retrieved and updated via Sitoo POS using CRM SPI calls. The integration doesn't continuously synchronize customer data between systems—customer operations occur only when initiated from Sitoo POS.
Order data is sent via webhook and processed asynchronously. Order Create and Order Refund events are queued, then associated with customer profiles in Bloomreach using the configured hard ID.
Data flows
Customer operations such as lookups and updates happen in real time. Sitoo POS calls the integration middleware, which calls the Bloomreach API to read or write customer data.
Order events are processed in the background. When a purchase or refund occurs, Sitoo sends a webhook that queues the event before it's written to Bloomreach.
Data usage in Bloomreach
- Customer profiles for segmentation and personalization
- Order events for campaign triggers and analytics
- Consent data for GDPR-compliant marketing
Use cases
- Unified customer profiles: Use POS data to enrich customer profiles in Bloomreach for better segmentation and personalization.
- Order-based campaigns: Trigger campaigns based on purchases, refunds, or order value.
- Post-purchase automation: Send order confirmations, follow-ups, and product recommendations automatically after a purchase.
- Consent management: Manage GDPR-compliant marketing consents directly from POS.
- Customer lifetime value tracking: Use order events to calculate and act on customer value over time.
Prerequisites
Before you start, make sure you have the following:
| Requirement | Description |
|---|---|
| Bloomreach account | With API access |
| Bloomreach API credentials | API key ID and secret |
| Project token | From your Bloomreach project settings |
| Sitoo API token | For order access in your environment |
| Sitoo webhook token | For authenticating requests to the integration middleware—provided during onboarding |
Set up the integration
Add the integration
- Go to Data & Assets > Integrations.
- Click + Add new integration.
- Search for Sitoo and click + Add integration.
- Fill in your company and market details and click Save integration.
Configure authentication
- In the integration settings, enter your Bloomreach API URL.
- Enter your Project token—find this in Settings > Project settings > Access management > API.
- Enter your API username (Key ID) and API password (Secret Key).
- Click Save.
NoteTo create your Bloomreach API credentials, go to Settings > Project settings > Access management > API keys. Create a private API group and save the Secret Key—you won't be able to see it again.
Configure customer matching
Define the hard ID used to identify customers across both systems. Email is the most common choice.
- In the integration settings, go to Customer matching.
- Select or enter your hard ID field—typically
email.
ImportantOnly one
hard_idis supported. This is the primary identifier used to associate order events with customer profiles in Bloomreach, so choose carefully.
Configure property mapping
Map Sitoo customer fields to Bloomreach customer properties and IDs.
| Sitoo field | Bloomreach mapping |
|---|---|
ids.registered | |
| First name | properties.first_name |
| Phone | properties.phone |
The integration supports standard customer properties using the properties.* namespace, soft IDs using the ids.* namespace, and one hard ID for primary customer identification.
Common soft ID examples: email → ids.email_id, phone → ids.phone_id
Configure consents
Define the customer consent types you want to manage through Sitoo POS—for example, newsletter or SMS marketing—and set default values for each.
Set up webhooks in Sitoo
Webhook setup is handled by the implementation team during onboarding. The integration URL is provided as part of that process. Once set up, webhooks send Order Create and Order Refund events from Sitoo to Bloomreach asynchronously.
For full setup instructions, see the Sitoo Events SPI documentation.
NoteFor background on how Sitoo's CRM SPI works, see the Sitoo CRM SPI v2 overview.
Validate the setup
The integration automatically validates API key access. For everything else, verify manually that the following are working correctly in Bloomreach:
- Customer creation
- Customer lookup
- Order event tracking
Automatic field handling
The integration applies the following behaviors automatically—no configuration required.
- Gender normalization: Gender values are normalized between Sitoo and Bloomreach formats.
- Country code conversion: Country codes are converted to ISO 3166-1 alpha-2 format.
- Phone number formatting: Phone numbers are normalized to international format.
- Phone number behavior: If a customer has multiple phone numbers in Bloomreach, Sitoo POS displays the first number returned. Phone numbers updated from POS are appended to existing numbers in Bloomreach rather than replacing them.
NoteIf phone numbers are managed primarily in Sitoo POS, the append behavior may result in outdated numbers accumulating in Bloomreach. Review phone number management as part of your setup.
Limitations
- No historical data migration: Only data created after setup is processed.
- No continuous sync: Customer data isn't synchronized automatically. Operations only happen when initiated from Sitoo POS.
- One project per tenant: Only one Bloomreach project is supported per Sitoo tenant.
- One hard ID: Only one hard ID is supported across the integration.
- Phone number handling: Sitoo displays one phone number. If a customer has multiple numbers in Bloomreach, Sitoo uses the first one returned. Updates from POS append to existing numbers rather than replacing them.
Updated 4 days ago

