Skip to main content
Usage Data Export allows enterprise organization administrators to export comprehensive data from their Gumloop organization. This feature supports both one-time exports and continuous data drains for analysis, compliance reporting, credit consumption tracking, and backup purposes. Exports can be scoped to the entire organization or to your personal data only. See Export Scopes for details.

What You Can Do

Track Credit Consumption

Monitor credit usage across teams and users over time

Compliance Reporting

Export data for audit trails and regulatory compliance

Usage Analytics

Analyze workflow execution patterns and user activity

Data Backup

Create backups of organizational workflow metadata

Billing Analysis

Understand cost allocation across teams and projects

Continuous Sync

Set up data drains to continuously push data to external destinations
Navigate to your organization’s data export settings at: gumloop.com/settings/organization/data_export
The data export page has two tabs: Exports for one-time data downloads, and Drains for continuous data syncing.

Data Types

Gumloop supports six types of data for both exports and drains:
Data Type Selection

One-Time Exports

One-time exports let you download a snapshot of your organization’s data for a specific date range as a CSV file.

Export Process

Select Data Type

Choose what data you want to export from the six available types.

Select Date Range

Define the time period for your data extraction.
Date Range Selection
Features:
  • Billing Period Presets: Quickly select a billing period from the dropdown
  • Custom Date Range: Pick specific start and end dates with the calendar picker
  • Timezone Support: Choose the timezone for date interpretation

Choose Teams

Select which teams to include in your export.
This step applies to Workflow Runs, Agents, and Agent Interactions exports only. Credit Logs, Audit Logs, and Gumstack exports are scoped to the entire organization.
Team Selection
  • Searchable List: Find teams quickly using search functionality
  • Individual Selection: Choose specific teams with checkboxes
  • Select All Toggle: Bulk select all organization teams
  • Optional Toggle: Include personal spaces of organization members
  • Comprehensive Coverage: When enabled, includes all user personal spaces in the export
Personal Space Selection

Select Data Fields

Choose which data categories and fields to include in your export.
Data Field Selection

Field Presets

Available Data Categories

Managing Exports

Monitor and manage all your previous export requests from the Exports tab.
Export History
What you’ll see:
  • Status Tracking: Real-time status updates with colored badges
  • Date Range Display: Clear indication of exported data timeframes
  • Creation Timestamps: When each export was requested
  • Download Actions: Direct CSV file download capability
When your export completes successfully, you’ll receive an email notification confirming that your export is ready for download.

Downloaded Data Format

Exported data is provided as CSV files with:
  • Header Row: Column names matching selected fields
  • Comma Separation: Standard CSV format for easy import into analysis tools
  • Date Formatting: ISO 8601 timestamp format

Data Drains

Data Drains let you continuously push organization data to an external destination. Unlike one-time exports, drains run automatically in the background and sync new data as it becomes available.
Data Drains Overview

How Drains Work

Once created, a drain continuously monitors your selected data type for new records. When new data appears, it is automatically batched and delivered to your configured destination. The drain keeps track of what has already been synced using an internal cursor, so you never receive duplicate data. Key behaviors:
  • Automatic syncing: New data is pushed to your destination without manual intervention
  • Adaptive polling: Sync frequency adjusts based on data volume, from every 15 seconds during high activity to up to 10 minutes during quiet periods
  • Crash-safe cursor: The sync cursor advances after each successfully delivered batch, so no data is lost if a delivery fails mid-cycle
  • Automatic error handling: If a drain encounters 3 consecutive failures, it is automatically paused with an “Error” status

Creating a Drain

To create a new drain, switch to the Drains tab and click + Add Drain. The drain creation wizard walks you through the following steps:

Select Data Type

Choose the type of data you want to continuously sync. Available types are: Workflow Runs, Agents, Agent Interactions, Credit Logs, Audit Logs, and Gumstack.

Configure Scope

Depending on the data type, configure filtering options for the drain:
  • Workflow Runs, Agents, Agent Interactions: Select which teams to include and optionally include personal workspaces
  • Credit Logs: Optionally filter by credit log category
  • Audit Logs, Gumstack: No additional scope configuration needed (this step is skipped)
Unlike one-time exports, drains do not require a date range. They start syncing from the time the drain is created and continue forward.

Select Fields

Choose which fields to include in the synced data. The same field presets are available as for one-time exports: Minimal, Default, Full, or Custom.
Drain Field Selection

Configure Destination

Set up where data should be delivered. You’ll need to provide a drain name and select a destination type.
Drain Destination Configuration
Gumloop supports three destination types:
Push data to any HTTP endpoint you control.Configuration:
  • Endpoint Authentication: Connect your HTTP credentials (URL, authorization header, and optional signing secret)
  • Format: Choose between JSON (default) or OTLP (OpenTelemetry Log Protocol)
Payload format (JSON):
See the Drain Payload Reference for the full record semantics.Headers included:
  • Content-Type: application/json
  • X-Gumloop-Drain-Id: The drain’s unique identifier
  • X-Gumloop-Data-Type: The data type being synced
  • Authorization: Your configured authorization header (if set)
  • X-Gumloop-Signature: HMAC-SHA256 signature of the request body (if a signing secret is configured)
Use the signing secret to verify that incoming requests are genuinely from Gumloop. Compute an HMAC-SHA256 of the raw request body using your signing secret and compare it with the X-Gumloop-Signature header.

Review

Review all your settings before creating the drain. When you click Create Drain, Gumloop runs a preflight check to verify the destination is reachable and properly configured. If the check passes, the drain is created and begins syncing immediately.

Managing Drains

The Drains tab shows all your configured drains with the following information:

Drain Statuses

Deleting a drain is permanent. If you delete a drain and create a new one, the new drain will start syncing from the current time, not from where the previous drain left off.

Drain Payload Reference

Use this section if you are building a system on top of drain output — a usage warehouse, a cost monitor, or an anomaly detector.

Payload envelope

Every delivery (one S3 object, or one HTTP POST body) is a single JSON document:
For Datadog destinations there is no envelope: each record is sent as its own log, with the record JSON in the log message and the drain identity in the tags.
There is no fixed record schema. The keys of each record are exactly the fields you selected when creating the drain, plus that data type’s timestamp field, which is always included. Two drains on the same data type with different field selections produce different record shapes.

Timestamps

Credit log timestamps are ISO 8601 with a T separator (2026-08-19T17:18:04.512+00:00). Timestamps on workflow, agent, and agent interaction records are rendered with a space separator (2026-08-19 17:18:04.512000+00:00). All values are UTC. Parse both forms.

Delivery model

Each drain tracks a cursor on exactly one timestamp column: Every sync selects records newer than the cursor in ascending order, delivers them, then advances the cursor. Each record is delivered once and is never re-sent or updated.
Workflow Runs and Agent Interactions are cursored on creation time, but their credit cost accumulates while the run or session is still going. If a sync fires while a run is in flight, that record is delivered with the cost it had at that moment, and the corrected total is never re-sent.For cost reporting, use the Credit Logs drain: those rows are written at the moment each charge happens and are never modified afterwards.

Cost fields by data type

One record per individual charge — this is the ledger that the credit numbers in the Gumloop UI are computed from.
Some rows are accounting entries rather than usage: credit resets and credit cap adjustments carry no amount. Exclude them from consumption totals.
Agents and Audit Logs records contain no cost fields.

Reconciling drain data with the UI

1

Sum credits from Credit Logs, not from run records

Add up amount on Credit Logs records for the period. Deductions are negative, so consumption is the absolute value of the negative rows. Records without an amount are not usage.
2

Keep only usage categories

Consumption is the sum of Workflow Runs, Agent Chats, AI Utilities, Company Brain, Custom Node Development, and External MCP Call. Credit Reset, Manual Adjustment, Credit Cap Adjustment, and Gifted Credits are balance bookkeeping, not spend.
3

Group by correlation_id to match the UI's rows

A drain delivers one record per charge, while the credit usage view in the UI shows one row per event with the charges summed. Grouping records by correlation_id reproduces those rows.
Custom Trigger Check rows are the exception: their correlation_id is the owning agent rather than a single event, and the UI groups them per calendar day.
4

Watch the boundaries

Organization-scoped drains deliver only organization-scope rows, so per-member credit cap entries never double count your totals. Also note that no credit log data exists before February 11, 2026 — a window that starts earlier will report less than the UI shows for the same range.
A practical monitoring setup: use a Credit Logs drain as your cost table, and Workflow Runs, Agent Interactions, and Agents drains as the dimension tables you join to it on run_id / interaction_id = correlation_id. Treat the credit_cost fields on those records as a cross-check, never as the source of truth.

Category and type labels

Drain records contain the human-readable labels, not the internal values. The category_filter option on the API, however, expects the internal value (for example agent_run).

Export Scopes

Every export (one-time or drain) runs in one of two scopes:

Organization Scope

This is the default behavior. Organization-scoped exports let admins select specific teams, include personal spaces, and filter by entity IDs. All existing exports use this scope.

Personal Scope

Personal exports return only your own data: workflow runs you triggered, agents you created, and interactions from your sessions. This is useful for individual compliance requests or personal usage auditing. How it works:
  • The export filters rows by your user ID automatically. You do not need to select teams or workspaces.
  • start_date, end_date, and export_fields are required.
  • Team/workspace selection parameters (workspace_ids, include_all_workspaces) are ignored.
  • Supported for Workflow Runs, Agents, Agent Interactions, and Credit Logs. Not supported for Audit Logs or Gumstack exports.
Via the API, set export_scope to "personal" in your request body:
Personal exports require the Enterprise plan. The export_scope parameter defaults to "organization" when omitted, preserving backward compatibility.

API Integration

For programmatic access to data export functionality, use the following endpoints:
Endpoint: POST /export_dataRequest Body:
Optional Parameters:
  • export_scope: "organization" (default) or "personal". Personal scope returns only your own data and requires the Enterprise plan.
  • data_type: The type of data to export ("workflows", "agents", "agent_interactions", "credit_logs", "audit_logs", or "gumstack"). Defaults to "workflows".
  • entity_ids: Filter the export to specific entities. For workflow exports, provide workbook IDs. For agent exports, provide agent IDs. Not applicable for credit log exports.
Credit log exports work differently from workflow and agent exports:
  • Team/workspace selection parameters (workspace_ids, include_personal_workspaces) are not applicable
  • Credit log exports are always scoped to the entire organization
  • Use category_filter to filter by a specific credit log category (e.g., "PIPELINE_RUN", "AGENT_RUN")
  • Use permission_group_filter to filter credit logs by a specific custom role (legacy parameter name retained for API compatibility)
Endpoint: GET /export_statusQuery Parameters:
  • user_id (required): User requesting the status
  • data_export_id (required): Export job identifier
  • download (optional): Set to true to download the file if completed
Endpoint: GET /data-drainsQuery Parameters:
  • organization_id (required): Your organization ID
Response: Returns an array of drain objects with their current status, configuration, and sync timestamps.
Endpoint: POST /data-drainsRequest Body:
Required Parameters:
  • organization_id: Your organization ID
  • name: A display name for the drain
  • drain_type: "custom_endpoint", "s3", or "datadog"
  • data_type: "workflows", "agents", "agent_interactions", "credit_logs", "audit_logs", or "gumstack"
  • destination_config: Configuration object specific to the destination type
  • export_fields: Array of field IDs to include in the synced data
Optional Parameters:
  • secret_id: The credential secret ID for authenticating with the destination
  • project_ids: Filter to specific team/workspace IDs
  • include_personal_workspaces: Include personal workspaces in scope
  • entity_ids: Filter to specific entity IDs
  • category_filter: Filter credit logs by category
  • event_type_filter: Filter audit logs by event type
  • start_ts: ISO 8601 timestamp to start syncing from (defaults to current time)
When creating a drain, Gumloop performs a preflight check to verify the destination is reachable. If the check fails, the drain will not be created and an error will be returned.
Endpoint: DELETE /data-drains/{drain_id}Query Parameters:
  • organization_id (required): Your organization ID

Complete API Documentation

View the full API reference for detailed endpoint specifications and examples

Audit Logging

Learn about security and compliance audit logging

Custom Roles

Learn about managing user permissions and roles

Organizations and Teams

Understand how to structure your Gumloop organization

Insights

View organization-wide usage analytics and dashboards