Skip to Content

Jitterbit Account Intelligence Agent

Overview

Jitterbit provides the Account Intelligence Agent to customers through Jitterbit Marketplace. This agent helps account representatives manage their pipelines more effectively by providing a prioritized, daily list of account tasks and by automatically processing meeting notes into actionable Salesforce records. The agent monitors Salesforce for open tasks and opportunity reports, processes meeting notes retrieved from Gmail, and delivers results through Slack messages and scheduled email digests.

The agent receives on-demand requests through Slack and uses an LLM to identify user intent and retrieve the relevant information from Salesforce. For meeting notes, the agent polls a dedicated Gmail inbox for emails containing Google Docs links, extracts action items and attendees using an LLM, and creates corresponding Task and Event records in Salesforce. Session state and OAuth tokens are maintained in Jitterbit Cloud Datastore.

The agent performs the following tasks:

  • Receives natural language requests from users through Slack and returns a prioritized list of open tasks or opportunity reports.
  • Retrieves open Salesforce tasks assigned to the requesting user, scoped to the last 7 days and the next 30 days.
  • Retrieves exception reports from a configured Salesforce folder and returns them to the requesting user.
  • Polls a dedicated Gmail inbox for meeting note emails from the configured sender, retrieves the linked Google Doc, and extracts action items and attendees using an LLM.
  • Creates Salesforce Task and Event records for each attendee identified in a meeting note.
  • Sends Slack direct messages to meeting attendees with a meeting summary and their assigned action items.
  • Sends scheduled email digests and Slack notifications to registered users containing their open tasks and report summaries.

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

AI agent architecture

This AI agent surfaces account intelligence through a conversational Slack interface and automated scheduled workflows. The agent operates across two main flows.

On-demand Slack requests

A typical on-demand interaction follows these steps:

  1. A user sends a natural language message to the Account Intelligence Agent through Slack.
  2. The agent calls the LLM to identify the user's intent and select the appropriate tool to invoke.
  3. The selected tool queries Salesforce for the requesting user's open tasks or retrieves reports from a configured Salesforce folder.
  4. The LLM formats the results, and the agent posts the response back to the user in Slack.

Meeting notes processing

Meeting note processing follows these steps:

  1. The agent polls a dedicated Gmail inbox for emails from the configured meeting notes sender.
  2. For each new email, the agent extracts the Google Doc link and checks Cloud Datastore to confirm the document has not already been processed.
  3. The agent retrieves the Google Doc content and sends it to the LLM, which extracts meeting attendees and action items.
  4. The agent looks up each attendee's Salesforce Contact ID, then creates a Task record for each action item and an Event record for each attendee.
  5. The agent sends each attendee a Slack direct message with the meeting summary and their assigned action items.

Workflow diagram

The following diagram shows the main components and data flows for the Account Intelligence Agent.

--- config: flowchart: padding: 20 nodeSpacing: 80 --- flowchart LR classDef default fill:white, stroke:black, stroke-width:3px, rx:15px, ry:15px JSP@{ shape: hex, label: "
Jitterbit
Account Intelligence Agent" } SCHED@{ shape: delay, label: "Operation schedule
(daily)" } SLK[fab:fa-slack
Slack] LLM[fas:fa-brain
LLM] SF[fab:fa-salesforce
Salesforce] GMAIL[fas:fa-envelope
Gmail] GDOC[fab:fa-google
Google Docs] CD@{ shape: hex, label: "fas:fa-database
Cloud Datastore" } SLK <-->|1. User request / response| JSP SCHED -->|2. Scheduled trigger| JSP JSP <-->|3. LLM calls| LLM JSP <-->|4. OAuth tokens and user details| CD JSP <-->|5. Tasks, reports, contacts, and events| SF JSP <-->|6. Meeting note emails| GMAIL JSP <-->|7. Meeting note content| GDOC

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.

Tip

For pricing information, see the Azure OpenAI pricing page.

CRM system

The agent reads and writes records in Salesforce. To use Salesforce, you must have a Salesforce account with API access and permissions to read Tasks, Events, Contacts, and Reports, and to create Task and Event records.

Email and document platform

The agent connects to Gmail to poll a dedicated inbox for meeting note emails and to Google Docs to retrieve meeting note content. Gmail access uses OAuth 2.0 credentials, and Google Docs access uses a Google Cloud Service Account. To use these services, you must have a Google Cloud project with the Gmail API, Google Docs API, and Google Drive API enabled, along with an OAuth 2.0 Client ID for Gmail and a Service Account for Google Docs. A dedicated Gmail inbox is recommended for meeting notes.

Messaging platform

The agent uses Slack as its conversational interface and notification channel. To use Slack, you must have a Slack workspace with a configured Slack app to receive and respond to messages. For detailed instructions on creating a Slack app, see Create a Slack app.

Cloud Datastore

The agent uses Jitterbit Cloud Datastore to store Gmail OAuth tokens, track processed meeting documents to prevent duplicate processing, and maintain user details for scheduled email notifications. Cloud Datastore is part of the Jitterbit Harmony platform and does not require a separate service account.

Agent prompts

The Account Intelligence Agent receives on-demand requests as natural language messages sent to the Slack app. This section describes the rules for effective prompts and provides example prompts.

Prompt guidelines

Follow these guidelines when sending messages to the agent:

  • Requests are scoped to the user sending the message. The agent retrieves tasks and reports associated with your Salesforce user account, based on your Slack email address.
  • Open task queries return tasks within the last 7 days and the next 30 days. Results may be inaccurate for date filters older than 7 days.
  • For date-filtered task queries, include the target date in your message using a recognizable date format (for example, "before April 30" or "before 2026-04-30").
  • For report queries, provide the exact name of the Salesforce contact as it appears in their Salesforce user profile.

Example prompts

The following example prompts show the types of requests the agent can handle. Replace [Date] with your target date.

Open tasks

Use these prompts to retrieve your open Salesforce tasks:

Prompts

  • Provide me a list of open tasks.
  • What are my open tasks for today?
  • Provide me all my open tasks I need to complete before [Date].
  • What tasks do I need to complete before [Date]?

Reports

Use this prompt to retrieve exception report details for a specific contact. Replace [Contact Name] with the contact's exact name as it appears in their Salesforce user profile:

Prompts

  • Give me the report details of [Contact Name].

Installation, configuration, and operation

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

  1. Download and install the project
  2. Set up Google Cloud
  3. Create Microsoft Azure resources
  4. Create the Slack app
  5. Configure Cloud Datastore
  6. Configure project variables
  7. Test connections
  8. Deploy the project
  9. Create Jitterbit custom APIs
  10. Complete Gmail OAuth authorization
  11. Review project workflows
  12. 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 Jitterbit Account Intelligence 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 this 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.

  5. In configuration step 1, Download Customizations, download the provided Slack app manifest file. You will use this file when creating the Slack app.

  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 Google Cloud

The agent requires two types of Google credentials: OAuth 2.0 credentials for Gmail access, and a Service Account for Google Docs access.

Set up Gmail OAuth

Gmail authentication uses OAuth 2.0. Each deployment environment requires its own OAuth credentials because the redirect URI is environment-specific.

Follow these steps for each environment where you deploy the agent:

  1. Deploy the Studio project first and note the API Gateway base URL from API Manager > My APIs. This URL is required when registering the OAuth redirect URI in Google Cloud.

  2. In Google Cloud Console, open your project or create a new one for this integration.

  3. Enable the following APIs under APIs & Services > Library:

    • Gmail API
    • Google Drive API
  4. Configure the OAuth consent screen under APIs & Services > OAuth consent screen. Select Internal if the dedicated Gmail account belongs to a Google Workspace organization. Select External for a personal Gmail account. Add the following OAuth scopes:

    • https://www.googleapis.com/auth/gmail.readonly
    • https://www.googleapis.com/auth/drive.readonly
  5. Create an OAuth 2.0 Client ID under APIs & Services > Credentials. Select Web application as the application type.

  6. In the Authorized redirect URIs field, add the /oauth/callback endpoint URL using the API Gateway base URL noted in step 1, in the format: https://<your-org>.jitterbit.com/oauth/callback.

  7. Copy the generated Client ID and Client Secret. Store them securely and enter them as project variables when you configure project variables.

Set up a Google Docs Service Account

Google Docs access uses a Service Account rather than user OAuth credentials.

Follow these steps:

  1. In Google Cloud Console, open the same project used for Gmail OAuth or create a new one.

  2. Enable the Google Docs API under APIs & Services > Library.

  3. Under IAM & Admin > Service Accounts, click Create Service Account. Enter a name and description, then click Create and Continue.

  4. Assign an appropriate role to the service account (for example, Viewer), then click Done.

  5. Click the service account to open its details, then select the Keys tab.

  6. Click Add Key > Create new key, select JSON, and click Create. Save the downloaded JSON key file securely.

  7. From the JSON key file, copy the client_email and private_key values. Enter them as project variables when you configure project variables.

Create Microsoft Azure resources

Create the following Microsoft Azure resources and note the information for configuring the AI agent. To create and manage these resources, you must have a Microsoft Azure subscription with the appropriate permissions.

You must create an Azure OpenAI resource and deploy a model through the Azure AI Foundry portal.

Note the deployment name, endpoint URL, and API key. Enter these values when you configure project variables.

To find these values, follow these steps:

  1. In the Azure AI Foundry portal, open the specific OpenAI resource.

  2. On the resource landing page, copy the endpoint URL and API key.

  3. In the navigation menu under Shared resources, select Deployments. Copy the deployment name.

Create the Slack app

To enable the agent's Slack interface, follow these steps:

  1. Create a Slack app using the manifest file downloaded in Download and install the project. The manifest pre-configures the bot user (displayed as Account Wingman Assistant), OAuth scopes, and event subscriptions for the Account Intelligence Agent. Install the app to your Slack workspace.

  2. Obtain the bot token and retain it for the Bot_oauth_user_token project variable.

  3. Add a Slack slash command to the app, pointing the Request URL to the /connect-gmail custom API endpoint. This command allows an administrator to trigger the Gmail OAuth authorization flow directly from Slack.

Configure Cloud Datastore

The agent uses three Cloud Datastore key storages to manage OAuth credentials, deduplicate processed meetings, and store user notification details:

Key storage Purpose
AIA_Authorized_Users Stores the Gmail OAuth refresh token and email address for the dedicated meeting notes inbox.
AIA_Processed_Meetings Tracks Google Doc IDs of processed meeting notes to prevent duplicate processing.
AIA_Notification_User_details Stores Slack user details for users who receive scheduled email and Slack notifications.

Create the following key storages in Jitterbit Cloud Datastore:

AIA_Authorized_Users

Create a key storage named AIA_Authorized_Users and add the following custom fields:

  • email (text)
  • refresh_token (text)
  • created_at (text)

AIA_Processed_Meetings

Create a key storage named AIA_Processed_Meetings and add the following custom fields:

  • doc_id (text)
  • processed_at (text)

AIA_Notification_User_details

Create a key storage named AIA_Notification_User_details and add the following custom fields:

  • SlackChannel (text)
  • SlackuserID (text)

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.

Enable Mask Value for all credential and token fields.

Salesforce

Variable name Description
SF_User_Name Username for the Salesforce instance.
SF_Security_Token Security token for the Salesforce user account.
SF_Password Password for the Salesforce user account.
SF_Login_URL Login URL for the Salesforce instance (for example, https://login.salesforce.com).
SF_Folder_Id Salesforce folder ID containing the exception reports retrieved by the Exception Report Monitor workflow.
SF_Client_ID OAuth 2.0 Client ID for direct Salesforce API authentication used by the Exception Report Monitor workflow.
SF_Client_Secret OAuth 2.0 Client Secret paired with SF_Client_ID.
SF_Base_URL Base URL of the Salesforce instance, used by HTTP connector calls and to construct redirect links in the LLM prompts.

Azure OpenAI

Variable name Description
Open_ai_token Authentication token for the Azure OpenAI service.
Azure_OpenAI_Deployment_Name Deployment name of the Azure OpenAI model to use.
Azure_openai_base_url Base endpoint URL for the Azure OpenAI service.
azure_openai_api_key API key used to authenticate requests to the Azure OpenAI service.
Generic_System_Prompt System prompt used for general LLM calls. Pre-configured: do not modify.
Generic_Mail_Prompt System prompt used for email digest formatting. Pre-configured: do not modify.

Cloud Datastore

Variable name Description
Cloud_Datastore_Access_Token Cloud Datastore authentication token, obtained from the Management Console Access Tokens page.

Slack

Variable name Description
Bot_oauth_user_token The Slack bot token obtained after creating the Slack app, used for the Slack connection's Bot User OAuth Token field.

Gmail and Google

Variable name Description
Email_Account_User Email address of the dedicated Gmail inbox used for meeting notes.
client_id Google Cloud OAuth 2.0 Client ID generated in Set up Gmail OAuth.
client_secret Google Cloud OAuth 2.0 Client Secret paired with client_id.
refresh_token Gmail OAuth refresh token. Leave this field blank: it is populated automatically when you complete Gmail OAuth authorization.
client_email Service Account email address from the JSON key file generated in Set up a Google Docs Service Account.
private_key Service Account private key from the JSON key file generated in Set up a Google Docs Service Account.

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 Jitterbit custom APIs

The agent requires three custom APIs. Create each using the Publish as an API option.

Slack event handler

Create a custom API for the Slack Bot Request operation in the Main Entry - Slack API Request Handler workflow.

Configure these settings for the service:

Setting Value
Service name slackRequestBot
Path /slackRequestBot
Method POST
Response Type System Variable

After publishing, copy the API service URL and paste it into your Slack app's Event Subscriptions > Request URL field.

Gmail OAuth endpoints

Create two additional custom APIs for the Gmail OAuth flow:

connect-gmail endpoint — triggers the Google OAuth consent screen for an administrator:

Setting Value
Service name connectGmail
Operation Handle Connect Gmail
Path /connect-gmail
Method POST
Response Type System Variable

oauth/callback endpoint — receives the authorization code after Google redirects back:

Setting Value
Service name oauthCallback
Operation OAuth Callback
Path /oauth/callback
Method GET
Response Type System Variable

After publishing both endpoints, return to Google Cloud Console and confirm the Authorized redirect URI for your OAuth 2.0 Client ID matches the /oauth/callback URL exactly.

Tip

You can also add a security profile for authentication.

Complete Gmail OAuth authorization

After the APIs are deployed, run the OAuth authorization flow to generate and store the Gmail refresh token:

  1. Trigger the /connect-gmail API endpoint. You can do this from a browser, using the Slack slash command configured in Create the Slack app, or by calling the endpoint directly.

  2. Sign in with the dedicated meeting notes Gmail account and grant the requested permissions for Gmail and Google Drive on the Google consent screen.

  3. Google redirects to the /oauth/callback endpoint. The agent exchanges the authorization code for access and refresh tokens and stores the refresh token in the AIA_Authorized_Users Cloud Datastore key storage automatically.

  4. In the Studio project, open Project Variables and confirm that refresh_token now has a non-empty value. If it is still blank, check the OAuth Callback and Exchange Token operation logs for errors.

Review project workflows

The Studio project contains 6 workflows that implement the Account Intelligence Agent functionality, organized into three functional groups.

Request handling

Workflow Description
Main Entry - Slack API Request Handler Receives incoming Slack messages and manages user details in Cloud Datastore.
Main - AI Agent Tools Logic Analyzes each request, selects the appropriate tool, and manages LLM calls.
Main Entry - Slack API Request Handler

This workflow is triggered by the Jitterbit custom API each time a user sends a message to the Slack bot. It manages incoming Slack bot requests and maintains the AIA_Notification_User_details Cloud Datastore key storage to keep Slack user details available for scheduled email notification workflows. After routing the request, this workflow passes the required information to the Main - AI Agent Tools Logic workflow.

Main - AI Agent Tools Logic

This workflow receives the incoming request from the Main Entry - Slack API Request Handler workflow, analyzes it using the LLM to identify the intended function, and prepares a payload to invoke the appropriate agent tool workflow. This workflow also manages all LLM requests and captures LLM responses for downstream use.

Account monitoring

Workflow Description
Agent - Open Task Monitoring Fetches open Salesforce tasks for the requesting user and returns them to the LLM for formatting.
Agent - Exception Report Monitor Retrieves reports from a configured Salesforce folder and returns them for formatting.
Agent - Open Task Monitoring

This workflow retrieves open tasks from Salesforce for the user who sent the Slack request. The master operation (SF_Open_Task_Monitoring) checks for a Slack user ID, calls the Get Slack User Profile operation to obtain the user's email address, queries Salesforce for the matching user record, and then retrieves all tasks with a status of "Not Started" that fall within the last 7 days and the next 30 days.

Agent - Exception Report Monitor

This workflow retrieves exception reports from a configured Salesforce folder. To authenticate directly with the Salesforce API, it first obtains a Salesforce access token via OAuth. It then maps the requesting user's Slack email to their Salesforce user record, retrieves the list of reports from the folder specified by the SF_Folder_Id project variable, and fetches the details of each relevant report to build the final response.

Meeting notes and notifications

Workflow Description
Agent - Meeting Notes Polls Gmail for meeting note emails, retrieves Google Doc content, and creates Salesforce tasks and events via LLM-extracted data.
Tool - Schedules Notification Email Runs on a schedule to send open task and report summaries to all registered users via email and Slack.
Agent - Meeting Notes

This workflow handles the complete meeting notes pipeline. An administrator triggers the Gmail OAuth flow via the /connect-gmail API endpoint. The workflow exchanges the authorization code for OAuth tokens and stores the refresh token in the AIA_Authorized_Users Cloud Datastore key storage. On each scheduled run, the workflow authenticates with Gmail, polls the inbox for meeting note emails from the configured sender, and extracts the Google Doc link from each email. It checks the AIA_Processed_Meetings key storage to skip any document already processed. For new documents, it retrieves the content from Google Docs, sends it to the LLM to extract attendees and action items, looks up each attendee's Salesforce Contact ID, and creates Task and Event records in Salesforce. Each attendee also receives a Slack direct message with the meeting summary and their assigned action items.

Tool - Schedules Notification Email

This workflow runs on a schedule to deliver daily task and report summaries to all users registered in the AIA_Notification_User_details Cloud Datastore key storage. For each user, it calls the Get Slack User Profile operation to confirm the user has an associated email address, invokes the Main-AI Logic operation to compile open tasks and reports in an email-formatted layout, and sends the summary to both the user's Slack channel and their email address.

Note

This workflow does not run automatically. You must create an operation schedule and assign it to this workflow based on your notification requirements.

Trigger the project workflows

The Main Entry - Slack API Request Handler workflow is triggered automatically when users send messages to the Slack bot. No manual operation is required to start on-demand interactions.

The Agent - Meeting Notes and Tool - Schedules Notification Email workflows must be configured to run on operation schedules. Two schedules have specific requirements:

  • Agent - Meeting Notes: Schedule to run at a frequency that matches your meeting cadence. Running it multiple times per day is safe because processed document IDs are tracked in Cloud Datastore to prevent duplicate records.
  • Tool - Schedules Notification Email: Schedule to run once per day. The default query retrieves data scoped to the current day, so running it more than once per day returns duplicate results.

To configure a schedule, open the operation's actions menu and select Settings > Schedules.

Troubleshooting

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

For Gmail OAuth errors, check the OAuth Callback and Exchange Token operation logs. Confirm the redirect URI in Google Cloud Console exactly matches the deployed /oauth/callback API Gateway URL, with no trailing slash.

For additional assistance, contact Jitterbit support.