# Tactile CRM MCP

> Tactile CRM connects your AI client directly into the Tactile CRM database. Your agent can query company records, find specific contact details, and analyze sales opportunities—all without needing a web browser or complex API calls. It gives your LLM read-only access to rich business metadata, allowing it to act as an intelligent sales analyst right from your terminal.

## Overview
- **Category:** productivity
- **Price:** Free
- **Tags:** pipeline-management, contact-tracking, sales-intelligence, b2b-crm, data-parsing, operational-tracking

## Description

Your AI client connects directly into Tactile CRM, giving your agent read-only access to all your company metadata and sales data. You don't need a web browser or complex API setup; your agent simply reads records right into your conversation flow. This server turns your LLM into an instant, highly functional analyst that pulls specific business facts on demand.

**Company Data Deep Dive**
You can start by pulling a raw list of every organization using `list_companies`. If you need the deep background on one account, use **`get_company_details`**. This tool gives you core metadata, sector breakdowns, and general info for any specific company record. You'll know exactly who they are before you talk to them.

**Contact Details and People Search**
Want to find a person? Use `list_contacts` to get the master list of every single individual in your CRM. Once you pick a name, **`get_contact_details`** retrieves their full profile—you'll see their role and direct email address instantly. It’s how you nail down who needs to take the call.

**Managing Opportunities and Deals**
To audit a sales cycle, first grab a list of every potential deal with `list_opportunities`. This shows you what revenue streams are active right now. If a specific deal catches your eye, **`get_opportunity_details`** gives you the full context: how much is it worth, what stage is it in, and who owns it. You can also check out *how* the sales process is structured by running `list_pipelines`, which shows all the configured stages—it's a roadmap of your business.

**Account History and Context**
When you need to know what happened last week, **`list_activities`** compiles a chronological list of everything attached to an account. That includes calls logged, emails exchanged, or tasks completed over time. For quick internal context, use `list_notes`; it pulls general, unformatted text notes and comments from the records you're reviewing. You'll also find any old history by checking out **`list_contacts`** again to see who worked on an account years ago.

This setup means your agent can take a natural language prompt—like asking for 'Acme Corp’s primary contact email and their last call activity'—and run the necessary tools (`get_company_details`, `get_contact_details`, and `list_activities`) in sequence, spitting out all the facts you need. You don't just get data; you get actionable intelligence right where you are.

## Tools

### get_company_details
Pulls the core metadata for a specific company record from Tactile CRM.

### get_contact_details
Retrieves detailed profile information, including roles and emails, for a single individual contact.

### get_opportunity_details
Provides full context on a specific sales deal, detailing its value, stage, and owners.

### list_activities
Gathers a chronological list of recent actions like calls, emails, or tasks linked to accounts.

### list_companies
Returns an initial list of all organizations stored within the Tactile CRM system.

### list_contacts
Provides a master list of every individual person recorded in the entire CRM.

### list_notes
Outputs general, unformatted internal notes and comments attached to records.

### list_opportunities
Lists all current sales deals or potential revenue streams in the active pipeline.

### list_pipelines
Shows the names and structure of different sales stages or pipelines configured in the CRM.

## Prompt Examples

**Prompt:** 
```
Check the list of sales pipelines and extract the basic contact details for the latest three companies created in the CRM.
```

**Response:** 
```
Retrieving data via 'list_pipelines' and 'list_companies' securely...
Found Companies: 'AlphaTech', 'BetaCorp', 'GammaInc'.
Evaluating specific variables natively via 'get_company_details'...

**Company Meta-Details**:
- **AlphaTech**: Tech Sector, 5 Active Deals logged (checking 'list_opportunities').
- **BetaCorp**: Manufacturing, 2 unresolved interaction activities.
- **GammaInc**: Finance, latest Note: "Wait for Q3 budget approval".
```

**Prompt:** 
```
List all open support tickets related to 'login issues'.
```

**Response:** 
```
Interrogating Tactile CRM limits ('list_tickets')...
Found 2 open support entities matching 'login issues':
1. Ticket #1024: 'Cannot access dashboard' (Priority: High)
2. Ticket #1055: 'SSO failure on mobile' (Priority: Medium)
```

**Prompt:** 
```
Create a new contact constraint for 'John Doe' assigned to the 'Enterprise' tag.
```

**Response:** 
```
Executing `create_contact` operation in Tactile...
Contact 'John Doe' successfully inserted.
Added organizational tag 'Enterprise'.
New native ID: `cont-9941`.
```

## Capabilities

### Lookup Company Profiles
Retrieves core metadata, sector data, and general information for any specific organization in the CRM.

### Identify Specific Contacts
Gets detailed profiles—including roles and direct contact info—for individual people linked to accounts.

### Audit Sales Opportunities
Retrieves the full context of a sales deal, including current value, stage, and associated milestones.

### Trace Account Activity History
Lists all recent interactions (calls, emails, tasks) tied to specific companies or contacts over time.

### Review Internal Notes
Pulls unformatted text notes and internal comments attached to accounts for quick review.

## Use Cases

### The Pre-Call Intelligence Dump
You're about to call a prospect. Instead of opening the web portal, you prompt your agent: 'What is AlphaTech’s status?' The agent executes `get_company_details` and `list_activities`, returning key metadata alongside the last three recorded interactions so you can start the conversation informed.

### Uncovering Stale Deals
You suspect a deal is stuck. You ask your agent to 'Check the sales funnel for any deals with no activity in 60 days.' The system runs `list_opportunities` and then uses `get_opportunity_details` on each one, flagging exactly which deal needs a follow-up call.

### Finding the Right Person
You know 'MegaCorp' has an issue but don't have a name. You prompt: 'Who is the Head of Finance at MegaCorp?' The agent first calls `list_companies` to verify, then uses `get_company_details`, and finally executes `get_contact_details` to pinpoint the correct individual.

### Quick Account Health Check
A client asks about their relationship history. You prompt your agent: 'Show me everything that happened with them.' The tool calls `list_activities` and summarizes every call, email, or note (`list_notes`) in a readable format.

## Benefits

- Instead of navigating through complex web portals to get a client summary, you can pull unformatted notes instantly. Running `get_company_details` allows your agent to pull key metadata right into the chat window for immediate context review.
- You eliminate manual contact lookups. If you know a company name, calling `list_companies` first and then using `get_contact_details` lets you find the primary lead's direct email without leaving your workflow.
- Sales forecasting becomes faster. You can run `list_opportunities` to see all open deals, then use `get_opportunity_details` on specific items to confirm if they are stalled or progressing as expected.
- Account history is always available. By running `list_activities`, you get a clean, consolidated timeline of calls and emails attached to an account—no more guessing which tab holds the last interaction record.
- The process for cross-referencing data gets simpler. You can list both contacts (`list_contacts`) and opportunities (`list_opportunities`), then ask your agent to correlate them, saving you dozens of clicks across different tabs.

## How It Works

The bottom line is you treat the CRM like an external, callable data source inside your conversation thread.

1. Associate the Tactile CRM environment with your AI client via Vinkius. You'll need your corporate `TACTILE_SUBDOMAIN` and API key.
2. Instruct your agent in plain language: 'Get me all contacts for X, then list their recent activities.'
3. The server translates this into tool calls (e.g., `list_contacts` followed by `list_activities`) and returns the structured data directly to your prompt window.

## Frequently Asked Questions

**How do I use the list_companies tool to find a client's metadata?**
First, run `list_companies` to get a master list of available organizations. Then, provide the name you want and ask your agent to call `get_company_details`. This retrieves all core information for that specific company.

**Can I find a contact's direct email using get_contact_details?**
Yes. You must first identify the person via `list_contacts`, and then pass their ID to `get_contact_details`. The tool returns structured data that includes their direct professional email.

**What is the difference between list_opportunities and list_pipelines?**
`list_pipelines` shows you the defined stages (e.g., 'Qualification,' 'Proposal Sent'). `list_opportunities` lists the actual deals that are currently moving through those pipelines, providing specific values.

**If I ask about a company, does it also list their recent activities? (Using get_company_details)**
While `get_company_details` provides core static data, you should follow up with the agent to call `list_activities`. This guarantees you pull the most current operational logs like calls and emails.

**How do I ensure the `list_companies` tool uses my correct API credentials?**
You must pass your dedicated TACTILE_API_KEY and SUBDOMAIN in the initial connection parameters. The MCP server validates these keys before executing any query, ensuring the agent operates within your authorized organizational scope.

**Can I filter notes by date or type when using `list_notes`?**
Yes, you can pass specific filters to `list_notes`. The tool accepts parameters for a start/end date range and allows filtering by note classification (e.g., 'Internal' or 'Client').

**What happens if I run `get_opportunity_details` with an ID that doesn't exist?**
The tool handles non-existent IDs gracefully and returns a structured error message, preventing the agent from crashing. You can use this failure state to prompt the user for correction.

**Are there rate limits when calling `list_activities` multiple times in quick succession?**
Yes, excessive calls within a short period may trigger rate limiting enforced by Vinkius. For large data pulls, batching your requests or implementing an exponential backoff strategy is recommended.

**Is the integration read-only?**
Yes. All tools (list_companies, list_contacts, list_opportunities, etc.) are read-only queries. They cannot modify, create, or delete any CRM records.

**What is the TACTILE_SUBDOMAIN?**
It's the unique prefix of your Tactile CRM URL (e.g., if your URL is `acme.tactilecrm.com`, the subdomain is `acme`). You can find it in the address bar when logged in.

**What data can the agent access?**
Companies, contacts, opportunities with pipeline stages, notes, and activities. The scope is determined by the permissions of the API key you provide.