segment-automation
Automate Segment tasks via Rube MCP (Composio): track events, identify users, manage groups, page views, aliases, batch operations. Always search tools first for current schemas.
Segment Automation via Rube MCP
Automate Segment customer data platform operations through Composio's Segment toolkit via Rube MCP.
Prerequisites
RUBE_MANAGE_CONNECTIONS with toolkit segmentRUBE_SEARCH_TOOLS first to get current tool schemasSetup
Get Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
RUBE_SEARCH_TOOLS respondsRUBE_MANAGE_CONNECTIONS with toolkit segmentCore Workflows
1. Track Events
When to use: User wants to send event data to Segment for downstream destinations
Tool sequence:
SEGMENT_TRACK - Send a single track event [Required]Key parameters:
userId: User identifier (required if no anonymousId)anonymousId: Anonymous identifier (required if no userId)event: Event name (e.g., 'Order Completed', 'Button Clicked')properties: Object with event-specific propertiestimestamp: ISO 8601 timestamp (optional; defaults to server time)context: Object with contextual metadata (IP, user agent, etc.)Pitfalls:
userId or anonymousId is requiredevent name is required and should follow consistent naming conventions2. Identify Users
When to use: User wants to associate traits with a user profile in Segment
Tool sequence:
SEGMENT_IDENTIFY - Set user traits and identity [Required]Key parameters:
userId: User identifier (required if no anonymousId)anonymousId: Anonymous identifiertraits: Object with user properties (email, name, plan, etc.)timestamp: ISO 8601 timestampcontext: Contextual metadataPitfalls:
userId or anonymousId is requirednull3. Batch Operations
When to use: User wants to send multiple events, identifies, or other calls in a single request
Tool sequence:
SEGMENT_BATCH - Send multiple Segment calls in one request [Required]Key parameters:
batch: Array of message objects, each with:-
type: Message type ('track', 'identify', 'group', 'page', 'alias')-
userId / anonymousId: User identifier- Additional fields based on type (event, properties, traits, etc.)
Pitfalls:
type field4. Group Users
When to use: User wants to associate a user with a company, team, or organization
Tool sequence:
SEGMENT_GROUP - Associate user with a group [Required]Key parameters:
userId: User identifier (required if no anonymousId)anonymousId: Anonymous identifiergroupId: Group/organization identifier (required)traits: Object with group properties (name, industry, size, plan)timestamp: ISO 8601 timestampPitfalls:
groupId is required; it identifies the company or organization5. Track Page Views
When to use: User wants to record page view events in Segment
Tool sequence:
SEGMENT_PAGE - Send a page view event [Required]Key parameters:
userId: User identifier (required if no anonymousId)anonymousId: Anonymous identifiername: Page name (e.g., 'Home', 'Pricing', 'Dashboard')category: Page category (e.g., 'Docs', 'Marketing')properties: Object with page-specific properties (url, title, referrer)Pitfalls:
userId or anonymousId is requiredname and category are optional but recommended for proper analyticsurl, title, referrer, path, search6. Alias Users and Manage Sources
When to use: User wants to merge anonymous and identified users, or manage source configuration
Tool sequence:
SEGMENT_ALIAS - Link two user identities together [Optional]SEGMENT_LIST_SCHEMA_SETTINGS_IN_SOURCE - View source schema settings [Optional]SEGMENT_UPDATE_SOURCE - Update source configuration [Optional]Key parameters:
-
userId: New user identifier (the identified ID)-
previousId: Old user identifier (the anonymous ID)-
sourceId: Source identifierPitfalls:
previousId is the anonymous/old ID, userId is the new/identified IDCommon Patterns
User Lifecycle
Standard Segment user lifecycle:
1. Anonymous user visits -> PAGE call with anonymousId
User interacts -> TRACK call with anonymousId
User signs up -> ALIAS (anonymousId -> userId), then IDENTIFY with traits
User takes action -> TRACK call with userId
User joins org -> GROUP call linking userId to groupId Batch Optimization
For bulk data ingestion:
1. Collect events in memory (array of message objects)
Each message includes type, userId/anonymousId, and type-specific fields
Call SEGMENT_BATCH with the collected messages
Check response for any individual message errors Naming Conventions
Segment recommends consistent event naming:
Known Pitfalls
Identity Resolution:
userId or anonymousId on every callData Quality:
Rate Limits:
Response Parsing:
data keyTimestamps:
Quick Reference
| Task | Tool Slug | Key Params |
|---|---|---|
| Track event | SEGMENT_TRACK | userId, event, properties |
| Identify user | SEGMENT_IDENTIFY | userId, traits |
| Batch calls | SEGMENT_BATCH | batch (array of messages) |
| Group user | SEGMENT_GROUP | userId, groupId, traits |
| Page view | SEGMENT_PAGE | userId, name, properties |
| Alias identity | SEGMENT_ALIAS | userId, previousId |
| Source schema | SEGMENT_LIST_SCHEMA_SETTINGS_IN_SOURCE | sourceId |
| Update source | SEGMENT_UPDATE_SOURCE | sourceId |
| Warehouses | SEGMENT_LIST_CONNECTED_WAREHOUSES_FROM_SOURCE | sourceId |