.png)
Tulip Integration Guide
Connect Tulip frontline applications, Tables, operators, stations, and machines with enterprise systems through REST APIs, selected webhook events, and scheduled workflows.
Tulip integration options at a glance
Tulip provides REST APIs for accessing platform and operational resources such as Apps, Tables, Table Records, Machines, Users, and Stations. Tulip also supports webhook-style notifications for selected events and use cases, although coverage must be verified for each resource and event. Collection endpoints should be handled with pagination, checkpoints, throttling, and retries because a general-purpose bulk API was not confirmed. Martini can consume Tulip APIs, receive supported webhook callbacks through exposed APIs, transform operational data, apply business rules, and synchronize results with enterprise applications. Tulip API credentials use an API key and API secret, commonly through HTTP Basic Authentication.
Common Tulip integration patterns
Common Tulip data objects used in integrations
Authentication and security considerations
API credentials and permissions
Tulip API authentication uses an API key and API secret, commonly supplied through HTTP Basic Authentication. Credentials are instance-specific and permissions depend on the associated Tulip user or role, workspace, and resource access.
Secure Martini configuration
- Store Tulip credentials in Martini secrets or secure environment configuration.
- Do not embed API keys or secrets in workflow definitions, mappings, or logs.
- Use least-privilege access for Apps, Tables, Table Records, Machines, Users, and Stations.
- Validate and authenticate inbound webhook requests according to the Tulip event implementation.
Authentication scope
OAuth 2.0 was not confirmed as the general authentication method for Tulip REST APIs. Confirm credentials and permissions separately for each Tulip instance and deployment environment.
Operational considerations for Tulip integrations
Pagination and rate limits
Treat Tulip collection endpoints as paginated unless the specific API documentation states otherwise. Use checkpoints, bounded windows, controlled concurrency, and backoff for throttling responses.
Idempotency and event delivery
Use Tulip object IDs, source-system IDs, and durable integration keys to prevent duplicate Table Records, issues, work orders, or maintenance events. Verify webhook delivery and retry semantics for each event.
Schema and permissions
Tulip Tables and App-driven schemas can evolve. Validate required fields, handle optional values, prefer stable identifiers over display labels, and test production credentials because permissions may differ from development.
Monitoring and recovery
Log correlation identifiers, Tulip object IDs, source-system IDs, response status, and checkpoint state while excluding credentials and sensitive operational data. Separate authentication, authorization, validation, rate-limit, network, and service failures so retries are applied safely.
Why use Martini instead of scripts or point-to-point integrations?
Orchestration beyond a script
Martini coordinates Tulip API calls, webhook reception, schedules, transformations, business rules, and downstream writes in explicit workflows rather than embedding all logic in a single script.
Maintainable integration assets
Reusable workflows, API definitions, mappings, secure configuration, and controlled error paths make it easier to support multiple Tulip instances and enterprise targets without duplicating point-to-point logic.
Reliable synchronization
Martini provides a structured place to implement pagination, checkpoints, idempotency, throttling, retries, validation, and monitoring for operational data that must move reliably between Tulip and other systems.
Controlled APIs
Martini can expose APIs for enterprise systems that need to submit data to or retrieve normalized information from Tulip, allowing inbound access to be governed separately from Tulip’s native API credentials.