Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Sales Genie Declarative Agent

Summary

Sales Genie is a Declarative Agent designed to help sales executives get instant, actionable insights from their Salesforce CRM, Microsoft 365, and the web — all via natural language. Whether you're preparing for an upcoming customer meeting, reviewing your opportunity pipeline, or logging call notes into Salesforce, Sales Genie acts as a smart assistant that streamlines your daily sales activities. It showcases complex workflows directly using instructions.

Sales Genie Video

Features

This sample illustrates the following concepts:

  • Provide a 360° view of any customer account, including opportunities, tasks, cases, and past interactions.
  • Help prepare for customer meetings by surfacing key insights from:
    • Salesforce CRM
    • Outlook emails & Teams conversations
    • External news
    • Documents and pitch decks in your OneDrive and SharePoint
  • Log customer meeting notes or call summaries directly into Salesforce.
  • Visualize sales pipeline and task status with charts and tables.

Contributors

Version history

Version Date Comments
1.0 July 10, 2025 Initial release

Prerequisites

Example Prompts

  1. Help me prepare for customer meeting

    Prepare for customer meeting

  2. Show opportunities pipeline for this month

    Opportunities pipeline

  3. Log call for a recent customer conversation

    Log call notes

  4. Show key deals anticipated to close this week

    Key deals

Minimal path to awesome

  • Clone this repository (or download this solution as a .ZIP file then unzip it)
  • Open the Agents Toolkit extension and sign in to your Microsoft 365 tenant with Microsoft 365 Copilot
  • Select Preview in Copilot (Edge) from the launch configuration dropdown

Configuration

Salesforce Plugin Configuration

In your OpenAPI spec appPackage/apiSpecificationFile/openapi.yaml:

  • Update the server URL to point to your Salesforce instance

    OpenAPI server URL

  • In your ai-plugin.json (plugin manifest), go to the response_semantics section for each function. This sample comes with basic Adaptive Card views for rich representation. You can further customize the layout and data bindings to create richer, domain-specific views. Ensure all links point to your Salesforce instance.

    Plugin response semantics

Salesforce Authentication Setup

  1. Log into your Salesforce account and open the Setup page.

    Salesforce Setup

  2. Navigate to Platform Tools > Apps > External Client App Manager.

    Salesforce External Client App Manager

  3. Click New External Client App.

    Salesforce New External Client App

  4. In the app configuration:

  • Set Callback URL to: https://teams.microsoft.com/api/platform/v1.0/oAuthRedirect
  • Add OAuth Scopes as needed (e.g., full for complete access and Perform request at any time).

  • Only Authorization Code and Client Credentials grant types are supported.

  • More info on supported Auth types in : Copilot Plugin Auth Guide.

    Salesforce App Configuration

  1. After app creation, you'll see Policies, Settings, and Package Details tabs.
  • In the Policies tab: Under OAuth Policies, select "Relax IP Restrictions".

    Salesforce App Policies and Settings

  • In the Settings tab: Click Reveal to copy your Consumer Key and Consumer Secret.

    Salesforce App Keys

  1. Provision Key & Secret in Copilot

    When provisioning the Declarative Agent via the Teams Toolkit, you’ll be prompted to enter the Client ID (Key) and Client Secret. Use the values from the Salesforce OAuth app you created.

Help

We do not support samples, but this community is always willing to help, and we want to improve these samples. We use GitHub to track issues, which makes it easy for community members to volunteer their time and help resolve issues.

You can try looking at issues related to this sample to see if anybody else is having the same issues.

If you encounter any issues using this sample, create a new issue.

Finally, if you have an idea for improvement, make a suggestion.

Disclaimer

THIS CODE IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.