The Segment HTTP Tracking API lets you record analytics data from any website or application, according to Twilio.
Customer data sync: the account review workflow
To sync customer activity data for an account review, choose the account grouping, select the source export, size activity requests and handle the documented delivery errors. This workflow organizes data preparation into four distinct steps. First, determine which identifier represents the account under review. Second, select the specific ticket export and its starting timestamp. Third, send sized activity requests within documented limits. Fourth, handle delivery errors based on the specific error type.
Key takeaways for how do i sync customer activity data for an account review?
Select the account identifier first. Mixpanel Group Analysis allows you to select alternative unique identifiers in reports, supporting business-level analysis Mixpanel.
Set the export starting point next. For Zendesk incremental exports, the time must be more than one minute in the past to avoid missing data Zendesk.
Size the outgoing requests third. The Twilio Segment HTTP API batch endpoint accepts a maximum of 500 KB for each request, with a limit of 32 KB for each event in the batch Twilio.
Pace the outgoing requests last. For each workspace, Segment recommends you to not exceed 1,000 requests each second with the HTTP API Twilio.
Document these four choices before the review. Record the identifier, timestamp, batch size, and request rate in your account file.
Choose the company identifier for account analysis
Selecting the correct unique identifier is the first step in preparing account-level activity data. For behavioral analysis from a business or group level, as opposed to an individual level, you must define which identifier represents the account under review 1. This choice determines how the system aggregates data for the specific entity you are evaluating. When using Group Analytics - Mixpanel, the platform supports alternative unique identifiers that facilitate this business-level perspective rather than tracking individual user actions 1.
In PostHog, the approach to defining these entities involves creating specific group types. Group types are categories you define - like "company" or "project" 2. This definition allows you to structure your data around the business unit rather than the person. The distinction between the group type and the events themselves is critical for accurate account grouping. According to PostHog, groups aggregate events and don't have to be connected to users 3. This separation means that activity data can be organized by the business entity even if the specific events are not tied to a named individual user profile.
When deciding which identifier to use, consider the nature of the account you are reviewing. If the account is a single organization, a company-level identifier is appropriate. If the account involves multiple distinct projects under one umbrella, a project-level identifier may be more precise. The key is to ensure that the identifier you select aligns with how the data is structured in your source systems. For example, if your billing system tracks revenue by company, your analytics identifier should match that company ID. If your support system tracks tickets by project, you might need to map those to a broader company identifier for the account review.
The process of choosing the identifier involves a few concrete steps. First, identify the primary business entity that represents the account. Second, determine if that entity is best represented as a "company" or a "project" based on your data structure. Third, verify that the identifier is unique and consistent across the systems you are integrating. Fourth, document the choice so that future reviews use the same identifier. This consistency is essential for comparing activity over time. If you change the identifier mid-review, the data will not align, making it difficult to assess trends.
Select the ticket export and its starting timestamp
Determine whether you need a broad query or a specific change log. The Search API is a unified search API that returns tickets, users, and organizations, according to Zendesk. Use this endpoint when the account review requires pulling multiple entity types simultaneously. If the review focuses solely on recent modifications, consider using one of the Incremental Export endpoints, according to Zendesk. This alternative is suitable when you only want incremental changes based on the most recent change.
When configuring the initial data pull, set the export starting point correctly. All endpoints require a start_time parameter for the initial export, according to Zendesk. This parameter defines the temporal boundary for the first batch of data retrieved. Without a valid start_time, the incremental process cannot establish its baseline.
How do I choose between search and incremental export?
Select the Search API if you need a unified view of tickets, users, and organizations. Select an Incremental Export endpoint if you only want incremental changes based on the most recent change. The choice depends on whether the account review requires search results across tickets, users, and organizations or a log of recent updates.
What is the required parameter for the initial export?
The start_time parameter is mandatory for the initial export. All endpoints require this parameter to establish the starting point for the data retrieval process. Ensure the timestamp is set to the appropriate historical point for the account review.
Send sized activity requests and handle delivery errors
Size each activity request to fit the HTTP API Source limits before you send it. The requests hit Segment servers then Segment routes your data to your destination, according to Twilio. Keep the payload within the documented batch and event boundaries so the server can process the batch without rejection.
Check the JSON structure of every event before transmission. If you send an event with invalid JSON, Segment returns a 400 Bad Request error, according to Twilio. Segment returns a 400 Bad Request error for invalid JSON, so check the event syntax first. Fix the JSON syntax and resend the corrected event.
Monitor the response status code for capacity signals. Requests that exceed acceptable limits may be rejected with HTTP Status Code 429, according to Twilio. A 429 response indicates the request rate or volume exceeded the acceptable limits for the workspace. Pause further requests and lower how often you send them before trying again.
Distinguish between the two error types to apply the correct fix. A 400 error caused by invalid JSON calls for corrected JSON syntax, while a 429 error calls for a slower sending pace. Do not resend an event that drew a 400 for invalid JSON until the syntax is corrected, and after a 429, wait and slow your sending pace before trying again.
Document the error codes and the adjustments made for each account review. Record the specific status code received and the change applied to the request size or timing. This log helps you identify recurring issues with specific data sources or batch configurations.
For one upcoming account review, document the account identifier and ask the data owner to compare the existing export and request settings with these source-specific requirements.
Publisher reference table for account activity preparation
The following table lists the specific grouping, export, and request constraints documented for each publisher, providing a quick reference for preparing account activity data.
| Publisher | Grouping/Identifier Rule | Export/Request Constraint | Error/Rate Guidance |
|---|---|---|---|
| Mixpanel | Behavioral analysis from a business or group level, as opposed to an individual level, according to Mixpanel. | N/A | N/A |
| PostHog | Groups aggregate events and don't have to be connected to users, according to PostHog. | N/A | N/A |
| Zendesk | N/A | The time must be more than one minute in the past to avoid missing data, according to Zendesk. | In time-based exports, the system may exceed the 1000-item default return limit if items share the same timestamp, according to Zendesk. |
| Twilio | N/A | The batch API endpoint accepts a maximum of 500 KB for each request, with a limit of 32 KB for each event in the batch, according to Twilio. | For each workspace, Segment recommends you to not exceed 1,000 requests each second with the HTTP API, according to Twilio. |
Keep grouping decisions and request results on file
Document the account identifier choice and the export parameters used for each review. Recording these settings creates a reference for future audits and simplifies data reconciliation when account structures change. For Zendesk incremental exports, note the specific batch size parameter applied. If the parameter is not specified, the default number is 1,000, according to Zendesk. Log whether you relied on this default or set a custom value.
Record any instances where the returned item count differed from the expected batch size. In time-based exports, the system may exceed the 1000-item default return limit if items share the same timestamp, according to Zendesk. Note the timestamp range and the actual count returned. This record helps distinguish between standard batch behavior and timestamp clustering.
Capture the retry logic used during data retrieval. When rate limiting occurs, we recommend using the Retry-After header value as described in Catching errors caused by rate limiting, according to Zendesk. Save the header value and the time waited before the next request. This documentation supports consistent pacing in subsequent reviews.
Store the final activity dataset alongside the configuration notes. Include the start_time used for the export and the total number of requests made. This archive allows you to verify that the data collected matches the intended scope. If a future review requires the same account data, you can replicate the exact settings without re-deriving the parameters. Keep the file in a shared location accessible to the CS team. This practice ensures that the data source and method are transparent to anyone reviewing the account.
Related guides
FAQ: syncing activity for a customer account review
How do I sync customer activity data for an account review?
Choose the account grouping, select the source export, size activity requests, and handle documented delivery errors. Groups aggregate events and don't have to be connected to users, according to PostHog.
Can I use PostHog groups when events are not connected to users?
Yes, PostHog groups aggregate events and do not have to be connected to users. This structure supports business-level analysis where individual user connections are absent. The grouping mechanism remains valid for account-level data aggregation.
When should I use a Zendesk incremental export instead of search?
Use incremental exports if you only want incremental changes based on the most recent change. The documentation suggests considering one of the Incremental Export endpoints for this specific need. This approach targets recent modifications rather than a full search.
What request sizes does the Segment batch API accept?
The batch API endpoint accepts a maximum of 500 KB for each request, with a limit of 32 KB for each event in the batch, according to Twilio. These limits define the maximum payload size for each request and individual event.
How does Segment distinguish invalid JSON from rate-limit rejection?
Invalid JSON returns a 400 Bad Request error, while rate-limit rejection uses HTTP Status Code 429, according to Twilio. If you send an event with invalid JSON, Segment returns a 400 Bad Request error. Requests that exceed acceptable limits may be rejected with HTTP Status Code 429.
Sources
Limits of this post
This post is general operational information, not legal advice about notice periods or renewal clauses. It does not promise that any method keeps a customer. A review model checked the facts once, and that check can miss errors, so open the sources before you act.