Adobe Analytics · Arazzo Workflow

Adobe Analytics Full Component Inventory and Report

Version 1.0.0

Inventory report suites, dimensions, and metrics, then run a report in a single chained pass.

1 workflow 1 source API 1 provider
View Spec View on GitHub AdobeAnalyticsBusiness IntelligenceCustomer IntelligenceDigital MarketingMarketingWeb AnalyticsArazzoWorkflows

Provider

adobe-analytics

Workflows

full-component-inventory-and-report
Inventory suites, dimensions, and metrics, then run a report.
Lists report suites, inventories the dimensions and metrics for the chosen suite, and runs a date-ranged report using the supplied dimension and metric.
4 steps inputs: accessToken, apiKey, dateRange, dimension, locale, metricId, rsid outputs: dimensionSample, metricSample, reportSuiteCount, rows
1
listReportSuites
listReportSuites
List the report suites accessible to the authenticated user.
2
listDimensions
listDimensions
Inventory the dimensions available in the chosen report suite.
3
listMetrics
listMetrics
Inventory the metrics available in the chosen report suite.
4
runReport
runReport
Run a date-ranged report using the supplied dimension and metric.

Source API Descriptions

Arazzo Workflow Specification

adobe-analytics-full-component-inventory-and-report-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Adobe Analytics Full Component Inventory and Report
  summary: Inventory report suites, dimensions, and metrics, then run a report in a single chained pass.
  description: >-
    An end-to-end onboarding flow for a new integration. The workflow lists the
    report suites accessible to the user, then for the chosen report suite
    inventories its dimensions and its metrics, and finally runs a date-ranged
    report using a caller-supplied dimension and metric. This gives a caller
    everything needed to confirm a suite and its reportable components before
    pulling data. Every step spells out its request inline, including the Adobe
    IMS bearer token and Developer Console API key headers.
  version: 1.0.0
sourceDescriptions:
- name: analyticsApi
  url: ../openapi/adobe-analytics-api-openapi.yml
  type: openapi
workflows:
- workflowId: full-component-inventory-and-report
  summary: Inventory suites, dimensions, and metrics, then run a report.
  description: >-
    Lists report suites, inventories the dimensions and metrics for the chosen
    suite, and runs a date-ranged report using the supplied dimension and metric.
  inputs:
    type: object
    required:
    - accessToken
    - apiKey
    - rsid
    - dimension
    - metricId
    - dateRange
    properties:
      accessToken:
        type: string
        description: Adobe IMS OAuth 2.0 access token (sent as a Bearer token).
      apiKey:
        type: string
        description: Adobe Developer Console API key (x-api-key header).
      rsid:
        type: string
        description: The report suite ID to inventory and report against.
      locale:
        type: string
        description: Locale for response labels (e.g. en_US).
        default: en_US
      dimension:
        type: string
        description: The primary dimension ID for the report (e.g. variables/page).
      metricId:
        type: string
        description: The metric ID to report on (e.g. metrics/visits).
      dateRange:
        type: string
        description: ISO 8601 date range for the global date filter.
  steps:
  - stepId: listReportSuites
    description: List the report suites accessible to the authenticated user.
    operationId: listReportSuites
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: x-api-key
      in: header
      value: $inputs.apiKey
    - name: limit
      in: query
      value: 1000
    - name: page
      in: query
      value: 0
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      totalElements: $response.body#/totalElements
  - stepId: listDimensions
    description: Inventory the dimensions available in the chosen report suite.
    operationId: listDimensions
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: x-api-key
      in: header
      value: $inputs.apiKey
    - name: rsid
      in: query
      value: $inputs.rsid
    - name: locale
      in: query
      value: $inputs.locale
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      firstDimensionId: $response.body#/0/id
  - stepId: listMetrics
    description: Inventory the metrics available in the chosen report suite.
    operationId: listMetrics
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: x-api-key
      in: header
      value: $inputs.apiKey
    - name: rsid
      in: query
      value: $inputs.rsid
    - name: locale
      in: query
      value: $inputs.locale
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      firstMetricId: $response.body#/0/id
  - stepId: runReport
    description: Run a date-ranged report using the supplied dimension and metric.
    operationId: runReport
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: x-api-key
      in: header
      value: $inputs.apiKey
    requestBody:
      contentType: application/json
      payload:
        rsid: $inputs.rsid
        locale: $inputs.locale
        globalFilters:
        - type: dateRange
          dateRange: $inputs.dateRange
        metricContainer:
          metrics:
          - id: $inputs.metricId
            columnId: "0"
        dimension: $inputs.dimension
        settings:
          limit: 50
          page: 0
          nonesBehavior: exclude-nones
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      rows: $response.body#/rows
      totalPages: $response.body#/totalPages
  outputs:
    reportSuiteCount: $steps.listReportSuites.outputs.totalElements
    dimensionSample: $steps.listDimensions.outputs.firstDimensionId
    metricSample: $steps.listMetrics.outputs.firstMetricId
    rows: $steps.runReport.outputs.rows