Mixpanel · Arazzo Workflow

Mixpanel Refresh Lookup Table and Track Enriched Event

Version 1.0.0

Refresh a lookup table's CSV contents then track an event that references the join key.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub AnalyticsData AnalysisEvent TrackingProduct AnalyticsUser BehaviorArazzoWorkflows

Provider

mixpanel

Workflows

lookup-table-enrichment
List lookup tables, replace one with new CSV, then track an event using the join key.
Calls /lookup-tables to confirm the table exists, replaces it via PUT /lookup-tables/{lookupTableId} with CSV data, then sends an event referencing the join key via /track.
3 steps inputs: csvData, distinctId, eventName, joinKeyProperty, joinKeyValue, lookupTableId, projectToken outputs: rowCount, tableId, trackStatus
1
listLookupTables
Retrieve all lookup tables for the project to confirm the target table exists before replacing it. Uses service account basic auth.
2
replaceLookupTable
Replace the contents of the lookup table with fresh CSV data. The first column is the join key.
3
trackEnrichedEvent
Send an event carrying the join-key property so enriched dimensions resolve against the refreshed lookup table. Auth uses the project token in the query parameter.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Mixpanel Refresh Lookup Table and Track Enriched Event
  summary: Refresh a lookup table's CSV contents then track an event that references the join key.
  description: >-
    A data-enrichment workflow. The flow lists the project's lookup tables to
    confirm the target exists, replaces that lookup table's contents with fresh
    CSV data, and then tracks an event carrying the join-key property so newly
    enriched dimensions resolve against the refreshed table. Each step spells out
    its request inline so the flow can be read and executed without opening the
    underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: eventsApi
  url: ../openapi/mixpanel-events-api-openapi.yml
  type: openapi
- name: lookupTablesApi
  url: ../openapi/mixpanel-lookup-tables-api-openapi.yml
  type: openapi
workflows:
- workflowId: lookup-table-enrichment
  summary: List lookup tables, replace one with new CSV, then track an event using the join key.
  description: >-
    Calls /lookup-tables to confirm the table exists, replaces it via PUT
    /lookup-tables/{lookupTableId} with CSV data, then sends an event referencing
    the join key via /track.
  inputs:
    type: object
    required:
    - projectToken
    - lookupTableId
    - csvData
    - eventName
    - distinctId
    - joinKeyProperty
    - joinKeyValue
    properties:
      projectToken:
        type: string
        description: Mixpanel project token used for ingestion auth.
      lookupTableId:
        type: string
        description: The ID of the lookup table to replace.
      csvData:
        type: string
        description: CSV data with headers in the first row; first column is the join key.
      eventName:
        type: string
        description: Event name to track after the table is refreshed.
      distinctId:
        type: string
        description: Unique identifier for the user performing the event.
      joinKeyProperty:
        type: string
        description: Event property name that holds the lookup join key.
      joinKeyValue:
        type: string
        description: The join-key value to set on the event property.
  steps:
  - stepId: listLookupTables
    description: >-
      Retrieve all lookup tables for the project to confirm the target table
      exists before replacing it. Uses service account basic auth.
    operationId: listLookupTables
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      tables: $response.body#/results
  - stepId: replaceLookupTable
    description: >-
      Replace the contents of the lookup table with fresh CSV data. The first
      column is the join key.
    operationId: replaceLookupTable
    parameters:
    - name: lookupTableId
      in: path
      value: $inputs.lookupTableId
    requestBody:
      contentType: text/csv
      payload: $inputs.csvData
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      tableId: $response.body#/id
      rowCount: $response.body#/rowCount
  - stepId: trackEnrichedEvent
    description: >-
      Send an event carrying the join-key property so enriched dimensions
      resolve against the refreshed lookup table. Auth uses the project token in
      the query parameter.
    operationId: trackEvent
    parameters:
    - name: token
      in: query
      value: $inputs.projectToken
    - name: verbose
      in: query
      value: 1
    requestBody:
      contentType: application/json
      payload:
        data:
          event: $inputs.eventName
          properties:
            distinct_id: $inputs.distinctId
            token: $inputs.projectToken
            $join_key: $inputs.joinKeyValue
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      trackStatus: $response.body#/status
  outputs:
    tableId: $steps.replaceLookupTable.outputs.tableId
    rowCount: $steps.replaceLookupTable.outputs.rowCount
    trackStatus: $steps.trackEnrichedEvent.outputs.trackStatus

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/mixpanel-lookup-table-enrichment-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.