salesforce-identify-stalled-opportunities implementation guide

---
availability: INSTALLABLE
description: A plugin that allows you to monitor your pipeline for inactivity and
  gives you stalled deals so you can take timely action.
installation_asset_uuid: a8f557a0-75d3-4b0f-88bf-8f01d4fb72bd
name: Identify Stalled Opportunities
purple_chat_link: https://marketplace.moveworks.com/purple-chat?conversation=%7B%22startTimestamp%22%3A%2211%3A43+AM%22%2C%22messages%22%3A%5B%7B%22role%22%3A%22user%22%2C%22parts%22%3A%5B%7B%22richText%22%3A%22%3Cp+xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxhtml%5C%22%3EI+want+to+view+stalled+opportunities.%3C%2Fp%3E%22%7D%5D%7D%2C%7B%22role%22%3A%22assistant%22%2C%22parts%22%3A%5B%7B%22richText%22%3A%22%3Cp+xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxhtml%5C%22%3EOkay%2C+I+can+help+with+that.+To+identify+stalled+opportunities+for+accounts+assigned+to+you%2C+please+specify+a+date+range+to+check+for+inactivity.%3C%2Fp%3E%22%7D%5D%7D%2C%7B%22role%22%3A%22user%22%2C%22parts%22%3A%5B%7B%22richText%22%3A%22%3Cp+xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxhtml%5C%22%3ELast+quarter%3C%2Fp%3E%22%7D%5D%7D%2C%7B%22role%22%3A%22assistant%22%2C%22parts%22%3A%5B%7B%22reasoningSteps%22%3A%5B%7B%22status%22%3A%22success%22%2C%22richText%22%3A%22Successfully+extracted+date+range%3A+Last+quarter+%28Q1+2024%29.+Identified+target+accounts%3A+ACME%2C+Stark+Industries.%22%7D%2C%7B%22status%22%3A%22pending%22%2C%22richText%22%3A%22Searching+Salesforce+for+opportunities+related+to+ACME%2FStark+Industries+accounts+with+no+activity+during+Q1+2024.%22%7D%5D%7D%2C%7B%22richText%22%3A%22%3Cp+xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxhtml%5C%22%3EHere+are+the+inactive+opportunities+for+%3Cb%3EACME+%26amp%3B+Stark+Industries+accounts%3C%2Fb%3E+from+the+last+quarter+%28Q1+2024%29%3A%3C%2Fp%3E%3Cul+xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxhtml%5C%22%3E%3Cli%3E%3Cp%3E%3Cb%3EOpportunity%3A%3C%2Fb%3E+Stark+Industries+Software+Upgrade%3C%2Fp%3E%3Cul%3E%3Cli%3E%3Cb%3EType%3A%3C%2Fb%3E+Existing+Business+-+Upgrade%3C%2Fli%3E%3Cli%3E%3Cb%3ELead+Source%3A%3C%2Fb%3E+Website%3C%2Fli%3E%3Cli%3E%3Cb%3ECreated+Date%3A%3C%2Fb%3E+December+1%2C+2023%3C%2Fli%3E%3Cli%3E%3Cb%3EProducts%3A%3C%2Fb%3E+Software+License%2C+Implementation+Services%3C%2Fli%3E%3Cli%3E%3Cb%3ELast+Activity%3A%3C%2Fb%3E+January+10%2C+2024%3C%2Fli%3E%3Cli%3E%3Cb%3EStage%3A%3C%2Fb%3E+Proposal%2FPrice+Quote%3C%2Fli%3E%3Cli%3E%3Cb%3EARR%3A%3C%2Fb%3E+%24250%2C000%3C%2Fli%3E%3C%2Ful%3E%3C%2Fli%3E%3Cli%3E%3Cp%3E%3Cb%3EOpportunity%3A%3C%2Fb%3E+ACME+New+Product+Integration%3C%2Fp%3E%3Cul%3E%3Cli%3E%3Cb%3EType%3A%3C%2Fb%3E+New+Business%3C%2Fli%3E%3Cli%3E%3Cb%3ELead+Source%3A%3C%2Fb%3E+Referral%3C%2Fli%3E%3Cli%3E%3Cb%3ECreated+Date%3A%3C%2Fb%3E+January+15%2C+2024%3C%2Fli%3E%3Cli%3E%3Cb%3EProducts%3A%3C%2Fb%3E+Widget+X%2C+Consulting+Services%3C%2Fli%3E%3Cli%3E%3Cb%3ELast+Activity%3A%3C%2Fb%3E+February+5%2C+2024%3C%2Fli%3E%3Cli%3E%3Cb%3EStage%3A%3C%2Fb%3E+Qualification%3C%2Fli%3E%3Cli%3E%3Cb%3EARR%3A%3C%2Fb%3E+%24150%2C000%3C%2Fli%3E%3C%2Ful%3E%3C%2Fli%3E%3Cli%3E%3Cp%3E%3Cb%3EOpportunity%3A%3C%2Fb%3E+ACME+Service+Contract+Renewal%3C%2Fp%3E%3Cul%3E%3Cli%3E%3Cb%3EType%3A%3C%2Fb%3E+Existing+Business+-+Renewal%3C%2Fli%3E%3Cli%3E%3Cb%3ELead+Source%3A%3C%2Fb%3E+Proactive+Outreach%3C%2Fli%3E%3Cli%3E%3Cb%3ECreated+Date%3A%3C%2Fb%3E+February+1%2C+2023%3C%2Fli%3E%3Cli%3E%3Cb%3EProducts%3A%3C%2Fb%3E+Annual+Maintenance+Contract%3C%2Fli%3E%3Cli%3E%3Cb%3ELast+Activity%3A%3C%2Fb%3E+March+1%2C+2024%3C%2Fli%3E%3Cli%3E%3Cb%3EStage%3A%3C%2Fb%3E+Negotiation%2FReview%3C%2Fli%3E%3Cli%3E%3Cb%3EARR%3A%3C%2Fb%3E+%2475%2C000%3C%2Fli%3E%3C%2Ful%3E%3C%2Fli%3E%3C%2Ful%3E%22%7D%2C%7B%22citations%22%3A%5B%7B%22connectorName%22%3A%22salesforce%22%2C%22citationTitle%22%3A%22Stark+Industries+Software+Upgrade%22%7D%2C%7B%22connectorName%22%3A%22salesforce%22%2C%22citationTitle%22%3A%22ACME+New+Product+Integration%22%7D%2C%7B%22connectorName%22%3A%22salesforce%22%2C%22citationTitle%22%3A%22ACME+Service+Contract+Renewal%22%7D%5D%7D%5D%7D%5D%7D
solution_tags:
- Productivity
- Sales
systems:
- salesforce
---

## Introduction

The “Identify Stalled Opportunities” plugin allows sales teams to proactively monitor their pipeline for inactivity and quickly surface stalled deals in Salesforce using the Moveworks AI Assistant, enabling account executives and managers to take timely action, re-engage prospects, and prevent revenue leakage without navigating a maze of Salesforce reports

This guide will walk you through installing and configuring the plugin in **Agent Studio** in just a few minutes. Let’s get started!

## **Prerequisites**

- Access to Agent Studio

## **What are we building?**

### Agent Design

This [purple chat](https://marketplace.moveworks.com/purple-chat?conversation=%7B%22startTimestamp%22%3A%2211%3A43+AM%22%2C%22messages%22%3A%5B%7B%22role%22%3A%22user%22%2C%22parts%22%3A%5B%7B%22richText%22%3A%22%3Cp+xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxhtml%5C%22%3EI+want+to+view+stalled+opportunities.%3C%2Fp%3E%22%7D%5D%7D%2C%7B%22role%22%3A%22assistant%22%2C%22parts%22%3A%5B%7B%22richText%22%3A%22%3Cp+xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxhtml%5C%22%3EOkay%2C+I+can+help+with+that.+To+identify+stalled+opportunities+for+accounts+assigned+to+you%2C+please+specify+a+date+range+to+check+for+inactivity.%3C%2Fp%3E%22%7D%5D%7D%2C%7B%22role%22%3A%22user%22%2C%22parts%22%3A%5B%7B%22richText%22%3A%22%3Cp+xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxhtml%5C%22%3ELast+quarter%3C%2Fp%3E%22%7D%5D%7D%2C%7B%22role%22%3A%22assistant%22%2C%22parts%22%3A%5B%7B%22reasoningSteps%22%3A%5B%7B%22status%22%3A%22success%22%2C%22richText%22%3A%22Successfully+extracted+date+range%3A+Last+quarter+%28Q1+2024%29.+Identified+target+accounts%3A+ACME%2C+Stark+Industries.%22%7D%2C%7B%22status%22%3A%22pending%22%2C%22richText%22%3A%22Searching+Salesforce+for+opportunities+related+to+ACME%2FStark+Industries+accounts+with+no+activity+during+Q1+2024.%22%7D%5D%7D%2C%7B%22richText%22%3A%22%3Cp+xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxhtml%5C%22%3EHere+are+the+inactive+opportunities+for+%3Cb%3EACME+%26amp%3B+Stark+Industries+accounts%3C%2Fb%3E+from+the+last+quarter+%28Q1+2024%29%3A%3C%2Fp%3E%3Cul+xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxhtml%5C%22%3E%3Cli%3E%3Cp%3E%3Cb%3EOpportunity%3A%3C%2Fb%3E+Stark+Industries+Software+Upgrade%3C%2Fp%3E%3Cul%3E%3Cli%3E%3Cb%3EType%3A%3C%2Fb%3E+Existing+Business+-+Upgrade%3C%2Fli%3E%3Cli%3E%3Cb%3ELead+Source%3A%3C%2Fb%3E+Website%3C%2Fli%3E%3Cli%3E%3Cb%3ECreated+Date%3A%3C%2Fb%3E+December+1%2C+2023%3C%2Fli%3E%3Cli%3E%3Cb%3EProducts%3A%3C%2Fb%3E+Software+License%2C+Implementation+Services%3C%2Fli%3E%3Cli%3E%3Cb%3ELast+Activity%3A%3C%2Fb%3E+January+10%2C+2024%3C%2Fli%3E%3Cli%3E%3Cb%3EStage%3A%3C%2Fb%3E+Proposal%2FPrice+Quote%3C%2Fli%3E%3Cli%3E%3Cb%3EARR%3A%3C%2Fb%3E+%24250%2C000%3C%2Fli%3E%3C%2Ful%3E%3C%2Fli%3E%3Cli%3E%3Cp%3E%3Cb%3EOpportunity%3A%3C%2Fb%3E+ACME+New+Product+Integration%3C%2Fp%3E%3Cul%3E%3Cli%3E%3Cb%3EType%3A%3C%2Fb%3E+New+Business%3C%2Fli%3E%3Cli%3E%3Cb%3ELead+Source%3A%3C%2Fb%3E+Referral%3C%2Fli%3E%3Cli%3E%3Cb%3ECreated+Date%3A%3C%2Fb%3E+January+15%2C+2024%3C%2Fli%3E%3Cli%3E%3Cb%3EProducts%3A%3C%2Fb%3E+Widget+X%2C+Consulting+Services%3C%2Fli%3E%3Cli%3E%3Cb%3ELast+Activity%3A%3C%2Fb%3E+February+5%2C+2024%3C%2Fli%3E%3Cli%3E%3Cb%3EStage%3A%3C%2Fb%3E+Qualification%3C%2Fli%3E%3Cli%3E%3Cb%3EARR%3A%3C%2Fb%3E+%24150%2C000%3C%2Fli%3E%3C%2Ful%3E%3C%2Fli%3E%3Cli%3E%3Cp%3E%3Cb%3EOpportunity%3A%3C%2Fb%3E+ACME+Service+Contract+Renewal%3C%2Fp%3E%3Cul%3E%3Cli%3E%3Cb%3EType%3A%3C%2Fb%3E+Existing+Business+-+Renewal%3C%2Fli%3E%3Cli%3E%3Cb%3ELead+Source%3A%3C%2Fb%3E+Proactive+Outreach%3C%2Fli%3E%3Cli%3E%3Cb%3ECreated+Date%3A%3C%2Fb%3E+February+1%2C+2023%3C%2Fli%3E%3Cli%3E%3Cb%3EProducts%3A%3C%2Fb%3E+Annual+Maintenance+Contract%3C%2Fli%3E%3Cli%3E%3Cb%3ELast+Activity%3A%3C%2Fb%3E+March+1%2C+2024%3C%2Fli%3E%3Cli%3E%3Cb%3EStage%3A%3C%2Fb%3E+Negotiation%2FReview%3C%2Fli%3E%3Cli%3E%3Cb%3EARR%3A%3C%2Fb%3E+%2475%2C000%3C%2Fli%3E%3C%2Ful%3E%3C%2Fli%3E%3C%2Ful%3E%22%7D%2C%7B%22citations%22%3A%5B%7B%22connectorName%22%3A%22salesforce%22%2C%22citationTitle%22%3A%22Stark+Industries+Software+Upgrade%22%7D%2C%7B%22connectorName%22%3A%22salesforce%22%2C%22citationTitle%22%3A%22ACME+New+Product+Integration%22%7D%2C%7B%22connectorName%22%3A%22salesforce%22%2C%22citationTitle%22%3A%22ACME+Service+Contract+Renewal%22%7D%5D%7D%5D%7D%5D%7D) shows the experience we are going to build.

## Installation Steps

While you can create a connector during plugin installation, we recommend setting up the connector in **Agent Studio** beforehand to streamline the process. Please follow our [**Salesforce Connector Guide**](https://marketplace.moveworks.com/connectors/salesforce?hist=home%2Cplgn.salesforce-create-campaign-inside-account%2Cbrws#how-to-implement) for detailed instructions. Once completed, proceed to install the plugin and complete the setup efficiently.

For this plugin, ensure the Salesforce integration user has the following permissions:

**Required Permissions:**

- **`Read access`** to the **Account, Opportunity, and User** objects

After configuring the connector, refer to our [plugin installation documentation](https://help.moveworks.com/docs/ai-agent-marketplace-installation) for more details on completing the setup

## **Appendix**

### **API #1: Get Salesforce User ID By Email**

```bash
curl --location 'https://<YOUR_INSTANCE>/services/data/v64.0/query/?q=SELECT+Id%2C+Name%2C+Email+FROM+User+WHERE+Email%3D%27{{EMAIL}}%27' \
--header 'Authorization: Bearer <ACCESS_TOKEN>' \
--header 'Content-Type: application/json'
```

**Query Parameters:**

- `EMAIL` (string) – The email address of the Salesforce user.

### **API #2: Get Stalled Opportunities by Owner**

```bash
curl --location 'https://<YOUR_INSTANCE>/services/data/v64.0/query/?q=SELECT+Id%2C+Name%2C+Type%2C+LeadSource%2C+CreatedDate%2C+StageName%2C+Amount%2C+LastActivityDate%2C+Account.Name%2C+IsClosed%2C+OwnerId%2C+Owner.Id%2C+Owner.Name%2C+(SELECT+Product2.Name%2C+Quantity%2C+TotalPrice+FROM+OpportunityLineItems)+FROM+Opportunity+WHERE+IsClosed%3Dfalse+AND+OwnerId%3D%27{{USER_ID }}%27+AND+(LastActivityDate%3C{{TIME_RANGE}}+OR+LastActivityDate+%3D+null)' \
--header 'Authorization: Bearer <ACCESS_TOKEN>'
```

**Note:**

This SOQL query retrieves opportunities that are considered **stalled** in two ways:

1. Opportunities with **no recorded activity** (`LastActivityDate = null`).
2. Opportunities where the **last recorded activity is before the given date** (`LastActivityDate < {{TIME_RANGE}}`).

**Query Parameters:**

- `USER_ID` (string) – The Salesforce User ID of the opportunity owner.
- `TIME_RANGE` (string) – The date used to check for stalled opportunities.