Ir para o conteúdo

Jitterbit QBR Deck Agent

Overview

Jitterbit provides the QBR Deck Agent to customers through Jitterbit Marketplace. This agent automates the creation of quarterly business review (QBR) presentation decks in Google Slides by gathering customer data from Salesforce, NetSuite, and product usage APIs, and processing that data with AI to produce structured summaries and insights. This agent uses the Retrieval-Augmented Generation (RAG) technique, which combines LLM reasoning with access to external tools and data sources.

The agent receives requests through Slack slash commands, queries Salesforce for account details, contacts, and support cases, retrieves project data from NetSuite, and pulls product usage metrics from regional APIs. An LLM processes the combined data and generates narrative summaries and insights. The agent then duplicates a Google Slides template in Google Drive, populates the slides with the generated content, and sends the completed deck link (or an error notification) back to the user in Slack.

The agent performs the following tasks:

  • Receives QBR generation requests from users via Slack slash commands.
  • Queries Salesforce for account information, region details, contacts, and support cases.
  • Retrieves project data from NetSuite.
  • Pulls product usage metrics from regional product usage APIs.
  • Normalizes all gathered data into a canonical format for processing.
  • Sends the combined data to an LLM to generate summaries and insights.
  • Duplicates a QBR slide template in Google Drive for the target customer.
  • Populates the slides with AI-generated content.
  • Sends the completed deck link or an error notification back to the user in Slack.

This document explains how to set up and operate this AI agent. It covers architecture, prerequisites, guidance on prompting the agent, and steps to install, configure, and operate the AI agent.

AI agent architecture

This AI agent generates QBR decks by orchestrating data retrieval across Salesforce, NetSuite, and product usage APIs, then using an LLM to synthesize the data into a populated Google Slides presentation. A typical interaction follows these steps:

  1. A user sends a /completeqbr slash command to the Slack bot, specifying a customer name or Salesforce account ID.
  2. Slack calls the Jitterbit API endpoint, triggering the main request handler.
  3. The agent queries Salesforce for account information, region details, contacts, and support cases.
  4. The agent retrieves project data from NetSuite.
  5. The agent retrieves product usage metrics from the appropriate regional product usage API.
  6. The agent normalizes all gathered data into a canonical format.
  7. The agent sends the normalized data to the LLM, which generates summaries and insights for each slide section.
  8. The agent duplicates the Google Slides QBR template in Google Drive and populates each slide with the generated content.
  9. The agent sends the completed deck link to the user in Slack. If an error occurs (for example, the customer is not found or multiple matches are returned), the agent sends an error notification instead.

Workflow diagram

The following diagram shows the main request-handling workflow for the Jitterbit QBR Deck Agent.

--- config: flowchart: padding: 20 nodeSpacing: 30 --- flowchart LR classDef default fill:white, stroke:black, stroke-width:3px, rx:15px, ry:15px JSP@{ shape: hex, label: "
Jitterbit
QBR Deck Agent" } SLK[fab:fa-slack
Slack] SF[fab:fa-salesforce
Salesforce] NS[NetSuite] PU[Product Usage API] LLM[fas:fa-brain
LLM] GD[fab:fa-google
Google Drive] GS[fab:fa-google
Google Slides] SLK -->|1. Slash command| JSP JSP <-->|2. Account data| SF JSP <-->|3. Project data| NS JSP <-->|4. Usage metrics| PU JSP <-->|5. Generate insights| LLM JSP <-->|6. Duplicate template| GD JSP <-->|7. Populate slides| GS JSP -->|8. Results notification| SLK

Prerequisites

You need the following components to use this AI agent.

Harmony components

You must have a Jitterbit Harmony license with access to the following components:

Supported endpoints

The AI agent connects to the following endpoints. You can accommodate other systems by modifying the project's endpoint configurations and workflows.

Large language model (LLM)

The AI agent uses Azure OpenAI as the LLM provider. To use Azure OpenAI, you must have a Microsoft Azure subscription with permissions to create an Azure OpenAI resource with a deployed model.

Salesforce

The agent queries Salesforce for account data, region details, contacts, and support cases. You must have a Salesforce account with API access and credentials with permissions to read account, contact, and case records.

NetSuite

The agent queries NetSuite using SOAP-based integration to retrieve project data. You must have a NetSuite account with token-based authentication credentials that have permissions to read project records.

Product usage APIs

The agent retrieves product usage metrics from regional API endpoints covering North America (NOAM), Europe/Middle East/Africa (EMEA), and Asia-Pacific (APAC). You must have valid API keys for the applicable regions.

Slack

The agent uses Slack as the conversational interface and notification channel. You must have a Slack workspace where you can install a custom app and the ability to create and configure an app manifest.

Google Cloud

The agent uses the Google Drive API and Google Slides API to duplicate a template and populate the generated presentation. You must have a Google Cloud project with both APIs enabled and a service account with Editor access to the Shared Drive that contains the QBR template and output folders.

Agent prompts

The QBR Deck Agent receives all requests as slash commands sent to the Slack bot. This section describes the supported commands and provides example inputs.

Prompt guidelines

Follow these guidelines when sending commands to the agent:

  • Specify a customer using the customer= parameter followed by the customer's name or Salesforce account ID.
  • If the name matches more than one Salesforce account, the agent returns an error. Use the Salesforce account ID to target a specific record.
  • Use /completeqbr to generate a full QBR presentation deck.
  • Use /singleslideqbr to generate a single slide. Use the customer= and slide= parameters to specify the customer and which slide to generate.

Example prompts

The following examples show the commands the agent supports. Replace <customer name> with the customer's name or Salesforce account ID.

Complete QBR deck

Send the following command to generate a full QBR presentation deck for a customer.

Prompts

  • /completeqbr customer=<customer name>
  • /completeqbr customer=<Salesforce account ID>

Single slide QBR

Send the following command to generate a single slide for a customer. The slide= parameter accepts the following values: title_1, Summary_1, Usage_1, Cases_1, Entitlements_1, Projects_1, or team_1.

Prompts

  • /singleslideqbr customer=<customer name> slide=Summary_1
  • /singleslideqbr customer=<customer name> slide=Usage_1
  • /singleslideqbr customer=<Salesforce account ID> slide=Cases_1

Installation, configuration, and operation

Follow these steps to install, configure, and operate this AI agent:

  1. Download and install the project
  2. Set up Azure OpenAI
  3. Set up Google Cloud
  4. Prepare Google Drive
  5. Configure project variables
  6. Test connections
  7. Deploy the project
  8. Create a custom API
  9. Create and configure the Slack app
  10. Review project workflows
  11. Trigger the project workflows

For troubleshooting guidance, see Troubleshooting.

Download and install the project

Follow these steps to install the Studio project for the AI agent:

  1. Log in to the Harmony portal at https://login.jitterbit.com and open Marketplace.

  2. Locate the AI agent named QBR Deck Agent. To locate the agent, use the search bar or, in the Filters pane under Type, select AI Agent to limit the display to AI agents.

  3. Click the agent's Documentation link to open its documentation in a separate tab. Keep the tab open to refer back to after starting the project.

  4. Click Start Project to open a two-step configuration dialog.

    Note

    If you have not yet purchased the AI agent, Get agent is displayed instead. Click it to open an informational dialog, then click Submit to have a representative contact you about purchasing the AI agent.

    Tip

    The configuration dialog includes a warning not to import the template before applying endpoint customizations. That warning does not apply to this AI agent and can be ignored. Follow the recommended order of steps in this documentation instead.

  5. In configuration step 1, Download Customizations, download the provided ZIP file containing the Google Drive folder structure and QBR slide template.

  6. Click Next.

  7. In configuration step 2, Create a New Project, select an environment where the Studio project will be created, then click Create Project.

  8. After the progress dialog indicates the project is created, use the dialog link Go to Studio or open the project directly from the Studio Projects page.

Set up Azure OpenAI

Create an Azure OpenAI resource and deploy a model to use as the LLM for the agent:

  1. Sign in to the Azure portal and create an Azure OpenAI resource in your subscription.
  2. In Azure AI Foundry, create a deployment and note the deployment name and model ID.
  3. Copy the API key and endpoint URL from the Keys and Endpoint section of the resource.
  4. Store the key, endpoint, and deployment details in the corresponding project variables listed under Azure OpenAI.

Set up Google Cloud

Create a Google Cloud service account to allow the agent to access Google Drive and Google Slides:

  1. Go to console.cloud.google.com, select or create a project, and enable the Google Drive API and Google Slides API under APIs & Services > Library.
  2. Go to IAM & Admin > Service Accounts and create a new service account.
  3. On the Keys tab, click Add Key > Create new key, select JSON, and download the generated key file.
  4. From the downloaded JSON file, extract the client_email, private_key, and project_id values and store them in the corresponding project variables listed under Google Cloud.
  5. Set the Google_OAuth_Scopes variable to https://www.googleapis.com/auth/drive.

Prepare Google Drive

Upload the QBR template to a Shared Drive and grant the service account access:

  1. In Google Drive, ensure the destination is a Shared Drive (not a personal My Drive folder).
  2. Grant the service account (the value of Google_Client_Email) Editor access to the Shared Drive.
  3. Upload the ZIP file downloaded in Download and install the project to the Shared Drive and extract its contents. Verify that two folders are created: New Documents and QBR Template.
  4. Open the QBR Template folder, locate the Google Slides template file, and copy the template file ID from the URL (the long string between /d/ and /edit).
  5. Open the New Documents folder and copy the folder ID from the URL (the string after /folders/).
  6. Store both IDs in the project variables Google_Drive_Template_File_Id and Google_Drive_Destination_Folder.

Configure project variables

In the Studio project installed from Marketplace, set values for the following project variables.

To configure project variables, use the project's actions menu and select Project Variables to open the configuration drawer.

Salesforce

Variable name Description
SF_User_Name Username for Salesforce authentication.
SF_Password Password for the Salesforce user.
SF_Security_Token Security token appended to the password for API authentication.
SF_Login_URL Authentication URL (for example, https://login.salesforce.com or your sandbox URL).

NetSuite

Variable name Description
NetSuite_Account NetSuite account identifier.
NetSuite_WSDL NetSuite SOAP WSDL endpoint URL.
NetSuite_Consumer_Key Consumer key for OAuth authentication.
NetSuite_Consumer_Secret Consumer secret for OAuth authentication.
NetSuite_Token_Key Token identifier for token-based authentication.
NetSuite_Token_Secret Token secret for token-based authentication.

Google Cloud

Variable name Description
Google_Project_ID Google Cloud project identifier.
Google_Client_Email Service account email address for authentication.
Google_Private_Key Private key from the service account JSON key file.
Google_OAuth_Scopes OAuth scopes for API access (for example, https://www.googleapis.com/auth/drive).
Google_Drive_Template_File_Id File ID of the QBR slide template in Google Drive.
Google_Drive_Destination_Folder Folder ID of the output destination folder in Google Drive.

Product usage APIs

Variable name Description
Product_Usage_API_URL Base endpoint URL for the product usage service.
NOAM_Product_Usage_APIKey API key for North America product usage data.
EMEA_Product_Usage_APIKey API key for Europe, Middle East, and Africa product usage data.
APAC_Product_Usage_APIKey API key for Asia-Pacific product usage data.

Azure OpenAI

Variable name Description
azure_openai_api_key API key for the Azure OpenAI service.
azure_openai_base_url Base endpoint URL for Azure OpenAI.
Azure_OpenAI_Deployment_Name Deployment name of the model instance (for example, gpt-4o).
azure_deployment_id Specific model deployment identifier.
azure_openai_temperature Controls response randomness. Set to 0 for deterministic output.
azure_openai_top_p Controls nucleus sampling probability.

Test connections

Test the endpoint configurations to verify connectivity using the defined project variable values.

To test connections, go to the design component palette's Project endpoints and connectors tab, hover over each endpoint, and click Test.

Deploy the project

Deploy the Studio project.

To deploy the project, use the project's actions menu and select Deploy.

Create a custom API

Create a custom API in Jitterbit API Manager to expose the agent entry point:

  1. In API Manager, create a new custom API with a POST method at the /newqbr path.
  2. Set the operation trigger to the API Request Handler operation in the 1.0 Main Entry – Slack API Request Handler workflow.
  3. Publish the API and copy the generated endpoint URL.
  4. Use this URL for both the {{Jitterbit API for complete QBR Report}} and {{Jitterbit API for Partial QBR Report}} placeholders when configuring the Slack app manifest. Only one API is required; both slash commands use the same endpoint.

Create and configure the Slack app

Create a Slack app and configure it to call the Jitterbit API endpoint:

  1. Go to api.slack.com/apps and select or create your Slack app.
  2. Navigate to App Manifest in the left-hand menu and click Edit Manifest.
  3. Paste the manifest JSON provided with the project into the editor.
  4. Replace both the {{Jitterbit API for complete QBR Report}} and {{Jitterbit API for Partial QBR Report}} placeholders with the same Jitterbit API endpoint URL created in Create a custom API. Both slash commands use the same endpoint; the agent routes them internally based on the command name.
  5. Click Save Changes to apply the configuration.
  6. Install or reinstall the app to your workspace if prompted.

Review project workflows

The Studio project contains nine workflows that implement the QBR Deck Agent functionality, organized into two functional groups.

Main entry and AI logic

Workflow Description
1.0 Main Entry – Slack API Request Handler Receives incoming Slack requests and orchestrates the full QBR generation workflow.
8.0 Main – AI Agent Tools Logic Sends data to the LLM and processes the generated summaries and insights.
1.0 Main Entry – Slack API Request Handler

This workflow serves as the central controller for the agent. It receives incoming Slack slash command requests via the Jitterbit API endpoint, validates the input, and routes requests to the appropriate data-gathering workflows. After data collection, it coordinates post-response operations and orchestrates the AI processing and slide generation steps.

8.0 Main – AI Agent Tools Logic

This workflow executes the core AI processing logic. It constructs the request payload from the normalized data, sends it to the LLM, and processes the returned summaries and insights. The generated content is then passed to the Google Slides workflows for insertion into the presentation.

Utility and tool workflows

Workflow Description
2.0 Utility – Duplicate Google Slides Template Creates a new slide deck by duplicating the QBR template in Google Drive.
3.0 Utility – Google Slides Populates slide content with AI-generated summaries and insights.
4.0 Tool – Canonical Input Handler Normalizes incoming request data into a standard format for downstream processing.
5.0 Utility – Salesforce Queries Salesforce for account data, contacts, and support cases.
6.0 Utility – NetSuite Retrieves project data from NetSuite.
7.0 Utility – AskJBSales Retrieves product usage metrics from regional product usage APIs.
9.0 Utility – Slack Sends formatted results and notifications back to users in Slack.
2.0 Utility – Duplicate Google Slides Template

This workflow handles template management. It authenticates with Google Cloud using an OAuth token, retrieves the configured QBR template file from Google Drive, creates a copy of the template, assigns it a new file ID, and moves it to the configured destination folder.

3.0 Utility – Google Slides

This workflow manages slide content updates. It modifies slide titles, body content, and summaries, retrieves presentation metadata, handles placeholder mapping, and performs final updates to ensure all slides reflect the AI-generated insights.

4.0 Tool – Canonical Input Handler

This workflow standardizes incoming request data. It loads and normalizes data from multiple sources into a unified canonical format, ensuring consistency before the data is passed to the AI processing workflow.

5.0 Utility – Salesforce

This workflow integrates Salesforce data into the workflow. It queries accounts by name or Salesforce account ID, retrieves region details, and fetches related contacts and support cases to provide CRM context for the QBR.

6.0 Utility – NetSuite

This workflow retrieves project-related data from NetSuite. It searches for and returns project records to enrich the QBR with operational or financial context.

7.0 Utility – AskJBSales

This workflow handles product usage analytics. It retrieves product usage data from the configured regional API endpoints, builds structured usage datasets, and combines multiple API responses into the data used by the AI processing workflow.

9.0 Utility – Slack

This workflow handles outbound Slack communication. It sends formatted messages to Slack, delivering the completed deck link, status updates, or error notifications to the user who triggered the request.

Trigger the project workflows

The QBR Deck Agent is triggered by Slack slash commands sent to the configured Slack app. When a user sends a /completeqbr or /singleslideqbr command, Slack calls the Jitterbit API endpoint, which triggers the API Request Handler operation in the 1.0 Main Entry – Slack API Request Handler workflow.

Before the agent can receive commands, the Slack app must be installed to your workspace and the API endpoint URLs must be configured in the app manifest. See Create and configure the Slack app and Create a custom API.

Troubleshooting

If you encounter issues, review the following logs for detailed troubleshooting information:

For additional assistance, contact Jitterbit support.