Support & FAQs
Frequently Asked Questions (FAQs)
General Questions
What is the Zluri SDK, and when should I use it?
The Zluri SDK is a set of APIs that allows you to push data from custom applications to Zluri when no native connector is available. Use it for:
- Internal/proprietary applications
- Legacy systems without modern APIs
- Custom data sources that need aggregation
- Applications not in Zluri's connector catalog
What's the difference between fact and snapshot data?
This is a fundamental concept in the SDK:
| Aspect | Snapshot Data | Fact Data |
|---|---|---|
| Nature | Current state | Historical events |
| Time | Point-in-time | Time-series |
| Updates | Replaces previous state | Adds to history |
| Example | "John is currently active" | "John logged in at 2PM" |
| Use Case | Users, Applications, Licenses, Roles, Groups management | Activity, Transaction, Contract |
| Processing | Latest sync wins | All events preserved |
Snapshot Data (State Data):
- Represents the current state of entities
- Like taking a photograph - shows how things are "right now"
- Examples: Current users list, current license assignments, current groups
- Each sync replaces the previous state
- Used for: Users, Applications, Licenses, Roles, Groups
Fact Data (Event Data):
- Represents events that happened over time
- Like recording a video - shows what happened and when
- Examples: Login events, purchase transactions, contract changes
- Each sync adds to the historical record
- Used for: User Activity, Transactions, Contracts
Think of it this way:
- Snapshot: "John is currently an active employee in Engineering."
- Fact: "John logged into Slack at 2:30 PM on Monday"
How does Zluri process snapshot vs fact data differently?
Here's how Zluri process Snapshot and Fact data:
- Snapshot Data: Zluri compares the new snapshot with the previous state to identify changes (new users, deactivated users, role changes, etc.)
- Fact Data: Zluri appends the new events to the historical timeline for analytics and compliance tracking
Can I mix fact and snapshot data in the same sync?
Yes, you can upload both types in the same sync session, but you must use the appropriate endpoint:
- Use
/syncs/{syncId}/data/snapshotsfor snapshot entities - Use
/syncs/{syncId}/data/factsfor fact entities
What happens if I upload fact data to the snapshot endpoint?
The upload will fail schema validation because fact and snapshot entities have different required fields and structures. Always use the correct endpoint for your data type.
Is the SDK a two-way sync?
No, the current SDK only supports one-directional data push from your systems to Zluri.
What's the difference between SDK and Native integrations?
Here's the difference between SDK and Native integrations:
- Native Integrations: Zluri manages the connection and data sync automatically. Should be used when the native integration is available on Zluri
- SDK: You control when and what data to sync, giving you more flexibility but requiring more setup. Should be used for Apps which don’t have a native integration on Zluri. It is particularly helpful for any of your custom and on-premise applications.
What’s the rate limit?
No rate limits.
I can sync the data at what frequency?
No sync frequency, the customer can seync the data multiple times in a day.
If the previous sync is running, and I deploy another sync, what happens in this case?
If a previous sync is running, and you deploy another sync, there can be any of these cases:
- If the data upload is in progress, Zluri doesn’t let you push/upload another concurrent sync.
- If the data upload is done and data processing is ongoing, Zluri will let you do another sync and the data processing will be queued to the previous sync.
- After finish sync is called in the initial sync, you can trigger another sync
Setup & Configuration
Can I create multiple instances for the same application?
Yes, but each instance must have a unique name within your organization. You cannot create multiple instances with the same name for the same application.
How do I update notification emails after creating an instance?
Use the Update Instance API endpoint:
PUT https://api-ext.zluri.com/v2/integrations-sync/instances/{instance_id}With the new email list in the request body.
Do I need to create a global app before creating an SDK instance?
If you're syncing data for an application that doesn't exist in Zluri, you'll need to use an existing orgAppId or work with Zluri support to set up the corresponding application first.
Can I delete or disconnect an SDK instance?
Yes, you can:
- Disconnect: Stops future syncs but retains historical data
- Delete: Removes the instance and all associated data permanently
- How:
- Custom Integrations>Identify the instance> More Options> Disconnect.
- Once disconnected then you can delete the instance.
Data Upload & Sync Process
Can I restart a sync that's already finished?
No, once a sync is marked as "finished," it cannot be restarted or modified. You must create a new sync to upload additional data. This is by design to maintain data integrity.
What happens if I need to correct data after finishing a sync?
You'll need to:
- Initialize a new sync
- Upload the corrected data
- Finish the new sync The system will process the latest data based on your new sync.
Can I upload data for multiple entities in a single sync?
Yes, within a single sync you can upload data for multiple entities. For example:
- Initialize sync once
- Upload users (pages 1-5)
- Upload applications (pages 1-3)
- Upload user activities (pages 1-10)
- Finish sync once
What's the maximum page size for data uploads?
The maximum is 1000 records per page. If you have more data, split it into multiple pages.
Can I re-upload a specific page if I made an error?
Yes, you can re-upload a page with the same page number during an active sync. The system will overwrite the previous data for that page.
If you’re uploading data with same page number then the data will be overwritten.
Can I re-upload a specific page if I made an error?
Yes, you can re-upload a page with the same page number during an active sync. The system will overwrite the previous data for that page. If you’re uploading data with same page number then the data will be overwritten.
How long can a sync remain active?
Sync can remain active as long as you want. Although, there are some consequences to long remaining active syncs:
- Zluri expects you to finish the syncs within a reasonable timeframe. We don’t cancel the syncs automatically.
- As there’s no automatic timeout or cancellation for the syncs, unfinished syncs block new syncs for the same instance. You’ll not be able to trigger another sync if the previous sync is unfinished.
- You'll receive a notification if a sync is active for more than 12 hours without any uploads. Reminder repetitions: 12 hours, 24 hours and 48 hours.
Can I run multiple syncs simultaneously for the same instance?
No, only one sync can be active at a time per instance. You must finish or cancel the current sync before starting a new one.
Error Handling & Validation
What happens when schema validation fails during upload?
When schema validation fails:
- The upload for that page is rejected
- You receive detailed error messages showing:
- Exact field paths (e.g.,
$.users[0].email) - The issue (e.g., "must be string", "must NOT have more than 200 characters")
- Exact field paths (e.g.,
- No data from the failed page is stored
- You can fix the issues and re-upload the same page
Example error response:
{
"status": 422,
"message": "Schema validation failed",
"errors": [
{ "path": "$.users[0].email", "rawValue": null, "message": "must be string" },
{ "path": "$.users[0].isActive", "message": "must be boolean" }
]
}
What's the difference between hard errors and soft errors?
Here's the difference between hard errors and soft errors.
- Hard Errors: Critical issues that prevent sync completion (e.g., missing user references, invalid cross-entity relationships). These must be fixed.
- Soft Errors: Warnings about suspicious but non-blocking issues (e.g., sudden drop in record count). You can force finish the sync despite these.
How do I handle cross-entity validation errors?
Cross-entity errors occur when:
- A user references a non-existent department
- An activity references a non-existent user
- Manager email doesn't exist in uploaded users
Solution: Ensure all referenced entities are included in your sync or exist from previous syncs.
Can I force finish a sync with soft errors?
Yes, when you receive soft errors (like data volume drops), you can use the forceFinish parameter in the finish sync API to proceed despite warnings.
Where can I see validation errors after a sync?
Use the Get Sync Details API, which provides:
raw_file_link: Your original uploaded data (for failed pages)schema_validation_error_link: Schema validation errorsdata_validation_error_link: Cross-entity validation errors
Rate Limits & Performance
What are the rate limits for the SDK?
Rate limits are defined in these ways:
- Sync Frequency: Next sync is allowed once the previous sync is completed, aka, when finish sync API is called for the previous sync.
- API Calls: Standard rate limits apply for upload-data endpoints
- Page Size: Maximum 1000 records per upload
What happens if I exceed rate limits?
You'll receive a 429 error with a Retry-At header indicating when you can retry:
{
"errors": [
{
"msg": "You have exceeded the allowed number of requests. Please retry after the time specified in the 'retry-at' header"
}
],
"code": "RATE_LIMIT_EXCEEDED"
}How can I optimise large data uploads?
You can optimise large data uploads by following the below best practices:
- Use concurrent page uploads (different page numbers)
- Batch records efficiently (close to 1000 per page)
- Implement retry logic with exponential backoff
- Upload during off-peak hours if possible
Data Management
How is my data stored in Zluri?
Your data is stored in S3 with the following structure:
orgid/integrationid/year/month/date/instanceid/syncId/
What happens to old sync data?
Historical sync data is retained according to Zluri's data retention policies. Each new sync creates new data files rather than overwriting old ones.
Can I sync only specific entities without others?
Yes, you can choose which entities to sync. However, note:
- Some entities have dependencies (e.g., user activities need users)
- Groups, roles, and activities require users to be synced
- Users, applications, contracts, and transactions can be synced independently
How does the SDK handle incremental vs full syncs?
The SDK always performs full syncs for each entity. Each sync represents the complete current state of your data. Zluri's processing engine handles the comparison with previous data.
What date formats are accepted?
Only ISO 8601 format is accepted for all date/time fields:
- Example:
2023-06-10T08:45:00Z - Always include timezone (Z for UTC)
Troubleshooting
Why am I getting sync already running errors?
This means you have an active sync that hasn't been finished or cancelled. Solutions:
- Check sync status using Get Sync Details API
- Finish the current sync if data upload is complete
- Cancel the sync using the DELETE endpoint if needed
How do I know if my sync data was processed successfully?
Check sync status through:
- Get Sync Details API - shows processing status
- Email notifications (if configured)
- Zluri dashboard sync logs
- Final status will show "processing completed" when done
What should I do if a sync is stuck?
If a sync is stuck:
- Check if you've called the finish sync API
- Verify no validation errors are blocking processing
- Contact support if sync shows "started" for over 6 hours
- You can cancel and restart if needed
How do I debug data that's not appearing in Zluri?
Follow this checklist:
- Verify sync finished successfully
- Check for validation errors in sync details
- Ensure data processing completed (not just upload)
- Verify you're looking at the correct time period in Zluri
- Check if data meets Zluri's processing criteria
How do I debug data that's not appearing in Zluri?
Follow this checklist:
- Verify sync finished successfully
- Check for validation errors in sync details
- Ensure data processing completed (not just upload)
- Verify you're looking at the correct time period in Zluri
- Check if data meets Zluri's processing criteria
Can I test the SDK in a sandbox environment?
Contact Zluri support for sandbox access. Testing in production with small data sets is also acceptable.
What's the SLA for data processing?
The SLAs are mentioned below:
- Average sync processing: Within 2 hours after finish sync
- Large syncs: May take up to 4 hours
- You'll receive alerts if processing exceeds these times
How do I monitor my SDK integrations?
You can monitor SDKs by:
- Configure notification emails during instance creation
- Use List Syncs API to check sync history
- Monitor sync logs in Zluri dashboard (when available)
- Set up automated monitoring using the Get Sync Details API
What should I include when contacting support?
Always provide:
- Instance ID
- Sync ID (if applicable)
- Error messages and timestamps
- Sample data that's causing issues
- API responses with full error details
Advanced Scenarios
Can I upload custom fields?
Yes, use the customFields object in applicable entities. Limitations:
- Maximum 100 custom properties
- Property names max 255 characters
- Values max 255 characters
- Supported types: string, number, boolean, null
How do I handle employee type classifications?
Use the employeeType field with allowed values:
employeeexternalservicegroupcontractor
What happens during application merges?
If applications are merged in Zluri after you've created SDK instances, the data will be consolidated according to Zluri's merge rules. Your instance continues to work with the original appId.
Can I sync data for multiple departments or subsidiaries?
Yes, you can:
- Include department information in your user data
- Create separate instances for different subsidiaries if needed
- Use custom fields to add additional organizational metadata
Is there a way to validate my data before uploading?
Yes, you can validate the data:
- Use the Get Entity Schemas API to retrieve current schemas
- Implement client-side validation using the schema
- Test with small data sets first
- Use JSON schema validators in your programming language
Support
If you encounter issues not covered in this documentation, you can:
- Check the detailed error messages in API responses
- Review sync logs in the Zluri dashboard
- Contact Zluri support at [email protected]
Things to include in your support request:
- Request ID: The x-request-id header from the problematic API response
- Instance Details: Sync ID
- Error Information: Complete error response and HTTP status code
- Timeline: When the error occurred and frequency
- Sample Data: Sanitized example of the data causing issues
Updated 2 months ago
