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:
- A user sends a natural language message to the Account Intelligence Agent through Slack.
- The agent calls the LLM to identify the user's intent and select the appropriate tool to invoke.
- The selected tool queries Salesforce for the requesting user's open tasks or retrieves reports from a configured Salesforce folder.
- 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:
- The agent polls a dedicated Gmail inbox for emails from the configured meeting notes sender.
- For each new email, the agent extracts the Google Doc link and checks Cloud Datastore to confirm the document has not already been processed.
- The agent retrieves the Google Doc content and sends it to the LLM, which extracts meeting attendees and action items.
- 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.
- 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.
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:
- Jitterbit Studio.
- Jitterbit API Manager to expose the Slack and Gmail OAuth endpoints.
- Jitterbit Cloud Datastore to store Gmail OAuth tokens, processed meeting records, and user notification details.
- Jitterbit Account Intelligence Agent purchased as a license add-on.
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:
- Download and install the project
- Set up Google Cloud
- Create Microsoft Azure resources
- Create the Slack app
- Configure Cloud Datastore
- Configure project variables
- Test connections
- Deploy the project
- Create Jitterbit custom APIs
- Complete Gmail OAuth authorization
- Review project workflows
- 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:
-
Log in to the Harmony portal at https://login.jitterbit.com and open Marketplace.
-
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.
-
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.
-
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.
-
In configuration step 1, Download Customizations, download the provided Slack app manifest file. You will use this file when creating the Slack app.
-
Click Next.
-
In configuration step 2, Create a New Project, select an environment where the Studio project will be created, then click Create Project.
-
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:
-
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.
-
In Google Cloud Console, open your project or create a new one for this integration.
-
Enable the following APIs under APIs & Services > Library:
- Gmail API
- Google Drive API
-
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.readonlyhttps://www.googleapis.com/auth/drive.readonly
-
Create an OAuth 2.0 Client ID under APIs & Services > Credentials. Select Web application as the application type.
-
In the Authorized redirect URIs field, add the
/oauth/callbackendpoint URL using the API Gateway base URL noted in step 1, in the format:https://<your-org>.jitterbit.com/oauth/callback. -
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:
-
In Google Cloud Console, open the same project used for Gmail OAuth or create a new one.
-
Enable the Google Docs API under APIs & Services > Library.
-
Under IAM & Admin > Service Accounts, click Create Service Account. Enter a name and description, then click Create and Continue.
-
Assign an appropriate role to the service account (for example, Viewer), then click Done.
-
Click the service account to open its details, then select the Keys tab.
-
Click Add Key > Create new key, select JSON, and click Create. Save the downloaded JSON key file securely.
-
From the JSON key file, copy the
client_emailandprivate_keyvalues. 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:
-
In the Azure AI Foundry portal, open the specific OpenAI resource.
-
On the resource landing page, copy the endpoint URL and API key.
-
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:
-
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.
-
Obtain the bot token and retain it for the
Bot_oauth_user_tokenproject variable. -
Add a Slack slash command to the app, pointing the Request URL to the
/connect-gmailcustom 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:
-
Trigger the
/connect-gmailAPI 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. -
Sign in with the dedicated meeting notes Gmail account and grant the requested permissions for Gmail and Google Drive on the Google consent screen.
-
Google redirects to the
/oauth/callbackendpoint. 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. -
In the Studio project, open Project Variables and confirm that
refresh_tokennow 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.