---
schema_version: "1"
id: 87662621676dc5d2aa6dac343c4c761065045fbdc148caf8cb7818d30ea4f9f5
title: AI Agent Generative AI Usage Data Model
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/ai/264-0-0/generative_ai_usage_data_model.md
canonical_url: https://help.salesforce.com/s/articleView?id=ai.generative_ai_usage_data_model.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: e0279cb854630fca97bbc292e25a8145fc9fca1f6b1dc2ee9c17d5821fbc3efa
description: Use the AI Agent Generative AI Usage data model object (DMO) to analyze Agentforce and generative AI consumption patterns in Data 360.
products:
  - Agentforce
  - Cross Cloud
release: "264"
---
# AI Agent Generative AI Usage Data Model

Use the AI Agent Generative AI Usage data model object (DMO) to analyze Agentforce and generative AI consumption patterns in Data 360.

## About AiAgentGenerativeAiUsage

Each record represents a single generative AI interaction event processed through the AI Metering Service. An event can be a call to the large languate model, or an agent action, or a single interaction. The object captures the billing and metering decisions from AI services (for example, LLM Gateway), including whether the interaction was billable, usage quantity, token counts, and identifiers for traceability and audit.

## AI Agent Generative AI Usage Fields

The following table lists fields for the AI Agent Generative AI Usage DMO (`AiAgentGenerativeAiUsage`, with the developer name `AiAgentGenerativeAiUsageDmo`).

   
| Field Label | Field developer Name | Data Type | Description |
| --- | --- | --- | --- |
| `Agent` | `AgentIdentifier__c` | Text | BotDefinition or agent record identifier (for example, a 0Xx ID) when the event is associated with an agent. |
| `Agent Developer Name` | `AgentDeveloperName__c` | Text | Developer name of the agent when present. |
| `Agent Generative AI Usage ID` | `Id__c` | Text | Unique identifier for the usage event record. |
| `Agent Type Code` | `AgentTypeCode__c` | Text | High-level agent or experience type (for example, EinsteinServiceAgent, AgentforceEmployeeAgent, or NOT\_SET for non-agent prompt flows). |
| `AI Agent Interaction` | `AiAgentInteractionId__c` | Text | Identifier for a single interaction within a session. |
| `AI Agent Session` | `AiAgentSessionId__c` | Text | Session identifier that groups multiple interactions in one conversation. |
| `AI Agent Tool Identifier` | `AiAgentToolIdentifier__c` | Text | Identifier of the tool invoked by the agent, when applicable. |
| `AI Agent Tool Invocation Target Code` | `AiAgentToolInvTargetCode__c` | Text | Fully qualified name or target code for the base tool (for example, EmployeeCopilot\_\_IdentifyRecordByName). |
| `AI Agent Tool Name` | `AiAgentToolName__c` | Text | Human-readable or template-style name of the tool invoked. |
| `Feature Descriptor Name` | `FeatureDescriptorName__c` | Text | Salesforce feature used for the request (for example, PromptTemplateGenerationsInvocable or CopilotForDigitalChannels). |
| `Generative AI Gateway Model Name` | `GenAiGatewayModelName__c` | Text | Model identifier in LLM Gateway (for example, sfdc\_ai\_\_DefaultOpenAIGPT4Omni). |
| `Generative Gateway Feature Name` | `GenAiGatewayFeatureName__c` | Text | Feature name as represented in Generative AI Gateway. |
| `Infrastructure Tenant Identifier` | `InfraTenantIdentifier__c` | Text | Infrastructure tenant for the org (for example, core/prod/ plus the 18-character org ID). |
| `Is Billable` | `IsBillableIndicator__c` | Boolean | Whether the event was intended to be billable for the product feature. |
| `Is Metered` | `IsMeteredIndicator__c` | Boolean | Whether the event was metered and charged (final metering decision). |
| `Metering Skip Reason Code` | `MeteringSkipReasonCode__c` | Text | When applicable, the reason usage was not metered (for example, NOT\_SKIPPED or other product-specific codes). |
| `Model Class Type` | `ModelClassType__c` | Text | Model usage class (for example, STANDARD or BASIC). |
| `Model Provider Model Name` | `ModelProviderModelName__c` | Text | Provider-specific model name string. |
| `Model Provider Name` | `ModelProviderName__c` | Text | Provider of the model (for example, openai, azureopenai, or Open AI). |
| `Prompt Completion Token Count` | `PromptCompletionTokenCount__c` | Number | Count of completion tokens returned. |
| `Prompt Input Token Count` | `PromptInputTokenCount__c` | Number | Count of input tokens for the prompt. |
| `Prompt Template` | `PromptTemplateIdentifier__c` | Text | ID of the prompt design used for template-driven generations. |
| `Prompt Template Developer Name` | `PromptTemplateDeveloperName__c` | Text | Developer name of the prompt template. |
| `Prompt Total Token Count` | `PromptTotalTokenCount__c` | Number | Total prompt tokens (input plus completion) when reported in aggregate. |
| `Request Identifier` | `RequestIdentifier__c` | Text | Unique identifier for the specific gateway or runtime request. |
| `Telemetry Trace` | `TelemetryTraceIdentifier__c` | Text | Trace identifier for end-to-end log correlation (for example, a B3 trace or hex trace value). |
| `Telemetry Trace Span` | `TelemetryTraceSpanId__c` | Text | Unique identifier for the specific gateway or runtime request. |
| `Tier Qualifier Type` | `TierQualifierType__c` | Text | Tier qualifier for the event (for example, STANDARD, BASIC, scale, priority, CUSTOM, or NOT\_SET). |
| Timestamp | Timestamp\_\_c | DateTime | Time when the metering event occurred. |
| `Usage Type Code` | `UsageTypeCode__c` | Text | Digital Wallet usage type (for example, EmbeddedAI\_StandardPrompts, Agentforce\_StandardAction, or Agentforce\_VoiceCustomAction). |
| `Usage Quantity` | `UsageQuantity__c` | Number | Quantity of business usage units recorded for the event. |
| `Unit Type Code` | `UnitTypeCode__c` | Text | Incoming unit type for metering (for example, ACTION or generations). |
| `User Context` | `UserContext__c` | Text | Context supplied for metering evaluation (for example, UT:STANDARD and feature flags). |
| `User ID` | `UserId__c` | Text | Salesforce user identifier (005 prefix) for the user associated with the event, when available. |

## Query the Data Model

You can run ad hoc queries that pull relevant information from the DMO. Data 360 offers multiple ways to query your data. See [Query Data in Data 360](https://help.salesforce.com/s/articleView?id=data.c360_a_query_data_in_dc.htm&type=5&language=en_US) to learn more.

Here are some example queries you can use.

**Billable Usage by Agent**

Use this query to identify the most expensive agents. It aggregates total usage and event counts, grouped by agent developer name and type.

```
SELECT
    AgentDeveloperName__c,
    AgentTypeCode__c,
    SUM(UsageQuantity__c) AS TotalUsage,
    COUNT(*) AS EventCount
FROM AiAgentGenerativeAiUsage_std__dlm
WHERE IsBillableIndicator__c = true
    AND Timestamp__c >= CURRENT_DATE - 30
GROUP BY AgentDeveloperName__c, AgentTypeCode__c
ORDER BY TotalUsage DESC
```

**Token Consumption by Model**

Use this query to identify which models consume the most tokens. It aggregates input, completion, total tokens, and event counts by model ID, provider, and class.

```
SELECT
    GenAiGatewayModelName__c,
    ModelProviderName__c,
    ModelClassType__c,
    SUM(PromptInputTokenCount__c) AS TotalInputTokens,
    SUM(PromptCompletionTokenCount__c) AS TotalCompletionTokens,
    SUM(PromptTotalTokenCount__c) AS TotalTokens,
    COUNT(*) AS EventCount
FROM AiAgentGenerativeAiUsage_std__dlm
WHERE Timestamp__c >= CURRENT_DATE - 30
GROUP BY GenAiGatewayModelName__c, ModelProviderName__c, ModelClassType__c
ORDER BY TotalTokens DESC
    
```

**Usage by Channel**

Use this query to compare usage across Voice and Messaging channels. It joins the generative AI usage and session tables to aggregate total usage and tokens by channel type.

```
SELECT
    s.ssot__AiAgentChannelType__c         AS ChannelType,
    s.ssot__RelatedMessagingSessionId__c  AS MessagingSessionId,
    s.ssot__RelatedVoiceCallId__c         AS VoiceCallId,
    u.AgentDeveloperName__c,
    SUM(u.UsageQuantity__c)              AS TotalUsage,
    SUM(u.PromptTotalTokenCount__c)      AS TotalTokens
FROM AiAgentGenerativeAiUsage_std__dlm u
    JOIN ssot__AiAgentSession__dlm s
        ON u.AiAgentSessionId__c = s.ssot__Id__c
WHERE u.Timestamp__c >= CURRENT_DATE - 30
GROUP BY s.ssot__AiAgentChannelType__c,
    s.ssot__RelatedMessagingSessionId__c,
    s.ssot__RelatedVoiceCallId__c,
    u.AgentDeveloperName__c
ORDER BY TotalUsage DESC
LIMIT 20
```

## Build Data 360 Reports

To analyze Knowledge/RAG Quality Data and Metrics, build reports in Data 360 that pull relevant information from the `AiAgentGenerativeAiUsage` DMO. You can use calculated insights to create metrics that can trigger alerts. To learn more, see [Data 360 Reports and Dashboards.](https://help.salesforce.com/s/articleView?id=data.datacloud_reports_dashboards_overview.htm&language=en_US&type=5)