# Welcome to DarcyIQ

AI-powered platform for consultants and solution architects

DarcyIQ is an AI-powered platform designed for services-focused consultants and solution architects to streamline the creation of proposals, manage client interactions, and accelerate the consulting workflow. This documentation will help you get started with DarcyIQ and make the most of its features.

## How DarcyIQ Works

{% embed url="<https://share.synthesia.io/embeds/videos/edbe93b0-0d6f-473d-b33c-49b3554db699>" %}

DarcyIQ operates in three main phases to help you manage your consulting projects effectively:

1. **Connect & Capture** - Upload customer information from various sources including Excel files, PowerPoints, Word documents, and meeting recordings. DarcyIQ processes these inputs to capture key requirements and insights.
2. **Generate & Create** - Transform captured insights into client deliverables, including technical proposals, architecture diagrams, statements of work, and presentations with DarcyIQ's AI assistance.
3. **Accelerate & Deliver** - Streamline your documentation process and remove bottlenecks by leveraging past successful projects to improve future proposals.

## DarcyIQ's Features

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>DarcyIQ Chat</strong></td><td>A multi-purpose AI Agent that can interact with data and complete tasks</td><td><a href="/pages/d6y2ylsJuaHczcctHSh6">/pages/d6y2ylsJuaHczcctHSh6</a></td></tr><tr><td><strong>Scoping &#x26; Estimates</strong></td><td>Create project scopes and LOE estimates with AI assistance and self-learning capabilities</td><td><a href="/pages/R5xEWXobVqpnSIwMna1n">/pages/R5xEWXobVqpnSIwMna1n</a></td></tr><tr><td><strong>Lead Lists</strong></td><td>Build targeted prospecting lists with AI-powered company and contact discovery</td><td><a href="/pages/HolOvmzdSxeDHJHk9buT">/pages/HolOvmzdSxeDHJHk9buT</a></td></tr><tr><td><strong>Meetings &#x26; Call Coach</strong></td><td>Let DarcyIQ listen to your calls and provide insights and feedback</td><td><a href="/pages/QkUN8165fh6KwocY69in">/pages/QkUN8165fh6KwocY69in</a></td></tr><tr><td><strong>AI Workflows</strong></td><td>Create repeatable automated workflows to solve consistent business problems</td><td><a href="/pages/7U12vPsq1zS7Rw8puwVV">/pages/7U12vPsq1zS7Rw8puwVV</a></td></tr><tr><td><strong>PartnerAI</strong></td><td>Enable AWS Partner programs by identifiying AWS PO and automatically submitting to ACE</td><td><a href="/pages/h95efGd6bE5kIvJ7EpFN">/pages/h95efGd6bE5kIvJ7EpFN</a></td></tr></tbody></table>

## Core Features

* 💬 **DarcyIQ Chat** - Get instant assistance through natural conversation with the AI
* 🗣️ **Meeting Hub** - Record, transcribe, and extract insights from client meetings
* 🧠 **AI-Driven Analysis** - Convert client conversations and requirements into structured proposals

## Workspace Features

* 📋 **Projects** - Create and manage projects for individual clients with document repositories
* 📊 **Scoping & Estimates** - AI-powered project scoping with self-learning and pricing automation
* 📝 **Apps** - Custom dashboard pages powered by MCP UI artifacts

## Automation

* ⚡ **AI Workflows** - Create repeatable automated workflows to solve consistent business problems

## Additional Features

* 🔍 **Research Reports** - Generate comprehensive research on topics relevant to your projects
* 📝 **Document Generation** - Create statements of work, technical proposals, and diagrams
* 🔌 **Integrations** - Connect with tools like Salesforce, Zoom, MS Office, AWS ACE and more


# Home Dashboard

Build your homepage from the widgets you actually use

Your homepage is a dashboard you build yourself. Add the widgets you care about, arrange them how you like, and your layout follows you between sessions and devices.

{% hint style="success" %}
Your dashboard holds a widget grid, quick links to Projects, Meetings, and Lists, and the chat bar along the bottom — so you can start a conversation without leaving the page.
{% endhint %}

## Adding & Removing Widgets

Click **Widgets** to open the catalog. It lists everything available to you, grouped by area, with the ones already on your homepage marked as active.

{% stepper %}
{% step %}
**Open the catalog** Click **Widgets** at the top of your dashboard. The panel explains itself: *Click to add or remove a widget*.
{% endstep %}

{% step %}
**Click to toggle** Clicking an inactive widget adds it to your grid. Clicking an active one removes it. Each widget can only be on your homepage once.
{% endstep %}

{% step %}
**Arrange it** Drag the grip handle on a widget to move it, or drag the bottom-right corner to resize. Each widget's **⋯** menu also offers fixed widths — **Third**, **Half**, **Two-thirds**, and **Full** — plus **Remove**.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
Dragging and resizing are available on desktop screens. On smaller screens widgets automatically reflow to fit, so your layout stays readable on a tablet or phone.
{% endhint %}

## Available Widgets

You'll only see widgets for the areas your plan and permissions give you access to, so this list may be shorter for you.

| Widget                             | Shows                                                              |
| ---------------------------------- | ------------------------------------------------------------------ |
| **Briefing**                       | Your daily brief with highlights and suggested prompts             |
| **Tasks**                          | Pending to-dos, with a jump into the tasks drawer                  |
| **Join Next Meeting**              | Your next calendar event with invite details and join links        |
| **Upcoming Meetings**              | The next four meetings on your calendar                            |
| **Recently Completed Meetings**    | Finished recordings and their open follow-ups                      |
| **My Recent Scopes**               | Your recent estimates and a status breakdown of everything you own |
| **Recent Projects**                | Projects you can access, most recently updated first               |
| **Project Activity**               | Your most active projects with compact sparklines                  |
| **At-Risk Accounts**               | Account-team customers below the health threshold                  |
| **Account Health**                 | Team account count, average health, and distribution               |
| **Recent Account Signals**         | Signal volume and strength mix across your assigned accounts       |
| **Priority Opportunities**         | Highest-priority opportunities by weighted value                   |
| **Recent Artifacts**               | Recently updated files in your vault                               |
| **Custom Artifact**                | Up to five artifacts you pin, switchable as tabs                   |
| **Public Artifacts Expiring Soon** | Published artifacts that are expired or expiring within seven days |

## Layout Presets

If you'd rather not arrange widgets by hand, pick a preset and everything on your grid is resized to fit the pattern.

| Preset              | Arrangement                                   |
| ------------------- | --------------------------------------------- |
| **Three Columns**   | Uniform grid, three widgets per row           |
| **Two Columns**     | Uniform grid, two widgets per row             |
| **Full Width**      | One widget per row, maximum detail            |
| **Featured + Grid** | A hero widget on top, three-column grid below |
| **Wide + Narrow**   | Alternating wide and narrow pairs             |
| **Mixed**           | A two-column row, then a three-column row     |

Presets repack the whole grid, so any hand-tuned positions are replaced.

## Focus Mode

**Focus Mode** hides the widgets and shortcuts and leaves you with a greeting and the chat box, centered on an otherwise empty page. It's for when you want to talk to Darcy without the dashboard in your peripheral vision.

Toggle it from the homepage header, and toggle it off again with **Exit Focus Mode**. Your widgets are untouched while it's on.

## Starting Over

**Reset layout**, at the top of the widget catalog, restores the starter set: **Briefing**, **Upcoming Meetings**, and **Tasks** (filtered to what you have access to). Everything else is cleared from your grid.

## How Your Layout Is Saved

Your widget arrangement and your Focus Mode setting are stored on your account rather than in your browser, so they follow you to any device you sign in from. Layouts are saved per organization — if you belong to more than one, each gets its own homepage.

Changes save automatically a couple of seconds after you make them. If a save fails you'll see a *Could not save layout* message.

## Related

* [Chat](/core-features/darcy-chat) — the chat box that sits beneath your widgets
* [Command Menu](/core-features/command-menu) — jump anywhere with **Ctrl + K** without going through the homepage
* [User Configuration](/settings-and-configuration/user-configuration) — theme, timezone, and other personal settings


# Chat

DarcyIQ Chat is your intelligent conversational assistant, designed to help you get your best work done with dynamic, context-aware interactions, a refreshed UI, saved chat history, and a built-in DarcyOS environment that lets Darcy execute code, run calculations, process files, and produce real deliverables right inside the conversation.

Unlike generic AI assistants, DarcyIQ Chat **understands who you are, your role, organization, and has access to your meetings, workflows, research reports, and knowledge bases**.

{% hint style="success" %}
**DarcyOS 2.0**: Chat runs on DarcyOS — Darcy writes and executes her own scripts, processes your files, and builds real deliverables inside the conversation. Paired with a redesigned UI, persistent chat history, and a faster artifact system across all content types.
{% endhint %}

<figure><img src="/files/qlI0GTC9WK2ReA3nTDfW" alt=""><figcaption></figcaption></figure>

## Dynamic Conversational Intelligence

DarcyIQ Chat leverages the most advanced AI models - with direct access to your organization's data, creating a uniquely personalized experience that helps you:

* **Get instant answers** to complex questions about your work
* **Generate professional content** like emails, summaries, and action items
* **Research topics** using both internal and external sources
* **Understand meeting recordings and transcripts** without having to review them manually
* **Create visual artifacts** like diagrams, charts, and structured information

<table data-view="cards" data-full-width="true"><thead><tr><th></th><th></th><th data-hidden data-type="content-ref"></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td>Search the internet</td><td>Chat can dynamically search the internet to augment answers</td><td></td><td><a href="/files/sPANmTtzpt3UEZ7VTc03">/files/sPANmTtzpt3UEZ7VTc03</a></td></tr><tr><td><strong>Create artifacts</strong></td><td>Create documents, web pages, diagrams and more</td><td></td><td><a href="/files/nJAzMveun1OO7ygLlDAV">/files/nJAzMveun1OO7ygLlDAV</a></td></tr><tr><td><strong>Multi-step turns</strong></td><td>Ask Chat to do multiple things at once!</td><td></td><td><a href="/files/sO4KKupNOiVFnvMu8oQP">/files/sO4KKupNOiVFnvMu8oQP</a></td></tr></tbody></table>

## Prompt Library

Save time with pre-built and custom prompt templates:

<figure><img src="/files/PqLyf4mijpBkJpMTM0or" alt="" width="563"><figcaption><p>Customizable per user</p></figcaption></figure>

| Template Type       | Examples                                                             |
| ------------------- | -------------------------------------------------------------------- |
| **Communication**   | Follow-up emails, meeting invitations, status updates                |
| **Analysis**        | Content summarization, SWOT analysis, trend identification           |
| **Action Planning** | Action item extraction, project planning, task delegation            |
| **Technical**       | Code explanations, architecture descriptions, troubleshooting guides |
| **Custom**          | Your own specialized prompts saved for repeat use                    |

Your custom prompts are saved to your user profile and available across sessions. Find them in the chat toolbar under **Quick Prompts**, or run them as slash commands.

## Slash Commands

Type **`/`** in the message box to open an autocomplete menu of shortcuts. Keep typing to filter, use the arrow keys to move through the list, and press **Enter** to run the highlighted command.

| Command         | What it does                                                                   |
| --------------- | ------------------------------------------------------------------------------ |
| `/plan`         | Switch to Plan mode so Darcy drafts a plan before acting                       |
| `/attach`       | Open the file picker                                                           |
| `/draw`         | Open the whiteboard                                                            |
| `/skills`       | Open the skills popover. Add a search term to filter, e.g. `/skills migration` |
| `/meeting`      | Open the meetings panel, optionally seeded with a search                       |
| `/project`      | Open the projects panel, optionally seeded with a search                       |
| `/integrations` | Open the integrations panel, optionally seeded with a search                   |

### Your Prompts as Slash Commands

Every prompt you save also becomes its own slash command, named from its title and grouped under **Quick Prompts** in the menu. A prompt called "Create a follow-up email" becomes `/create-a-follow-up-email`; running it drops the saved prompt straight into the conversation.

{% hint style="info" %}
Slash commands work in the full chat experience and are unavailable while Darcy is mid-response. To move between pages rather than act inside a conversation, use the [Command Menu](/core-features/command-menu) with **Ctrl + K**.
{% endhint %}

## Super-charged Chat: Multi-step Intelligence

DarcyIQ can handle complex, multi-step requests that would typically require multiple tools or applications. With a single prompt, DarcyIQ can execute a series of interconnected tasks to deliver comprehensive results.

### Example: Competitive Analysis Workflow

**Prompt: "Get my Acme Corp data, research their competitors, analyze their strengths and weaknesses, compile a SWOT diagram with a summary."**

| Prompt execution | "Research Acme Corp, find their main competitors, and create a SWOT analysis diagram" |
| ---------------- | ------------------------------------------------------------------------------------- |
| **Step 1**       | DarcyIQ searches for Acme Corp across your internal knowledge bases and the web       |
| **Step 2**       | Identifies and researches top competitors from industry sources                       |
| **Step 3**       | Analyzes strengths, weaknesses, opportunities, and threats                            |
| **Step 4**       | Creates a visual SWOT diagram as an artifact                                          |
| **Step 5**       | Provides a summary with links to sources                                              |
| **Result**       | Complete competitive analysis delivered in a single conversation                      |

This multi-step intelligence allows you to delegate complex research and analysis tasks that would normally take hours of work across multiple applications.

## Plan Mode

By default Darcy gets straight to work. When a request is big enough that you'd rather see the approach before she commits to it, switch to **Plan mode** — Darcy drafts a numbered plan, waits for your approval, then works through it one task at a time so you can watch progress.

{% hint style="success" %}
**Approve before she acts**: Plan mode is the difference between "go do this" and "tell me how you'd do this, then go." Use it for anything long-running, expensive, or hard to undo.
{% endhint %}

### Turning Plan Mode On

| How                   | Where                                                                                                                    |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| **Toolbar toggle**    | The checklist icon in the chat toolbar. Off it reads *Switch to Plan mode*; on it reads *Plan mode on — click for Agent* |
| **Slash command**     | Type `/plan` in the message box                                                                                          |
| **From the homepage** | Switch to Plan mode on the homepage composer and it carries through when the conversation opens in full chat             |

Toggling back to **Agent** returns Darcy to working directly.

### Reviewing a Plan

{% stepper %}
{% step %}
**Send your request** Darcy may ask a clarifying question or two first, since a plan is only as good as the brief.
{% endstep %}

{% step %}
**Read the proposed plan** The plan arrives in the conversation as a card listing every task in order, with the note *"Review and accept this plan before work begins."*
{% endstep %}

{% step %}
**Accept, revise, or reject** Choose **Accept plan** to start work, **Edit** to describe what should change and get a revised plan back, or **Reject** to discard it.
{% endstep %}

{% step %}
**Watch it run** Darcy works through the tasks in order, marking each one off as she completes it.
{% endstep %}
{% endstepper %}

### Tracking Progress

Once a plan is accepted, a progress bar sits just above the message box showing the task Darcy is on and how many are done — `3/7`, for example. Click it to expand the full checklist, where each task shows as pending, in progress, or complete.

When everything is finished the plan collapses to a single **Plan completed** line, which you can expand again to review what was done.

### Pausing and Resuming

If Darcy comes back with a question or an observation instead of an action, the plan pauses and hands control back to you. Two controls appear on the progress bar:

| Control       | What it does                                         |
| ------------- | ---------------------------------------------------- |
| **Continue**  | Picks the plan back up from the current task         |
| **Exit plan** | Abandons the plan and returns to normal conversation |

Sending any follow-up message also resumes a paused plan, so you can answer Darcy's question and she'll carry on.

### Good to Know

* A plan can hold up to **20 tasks**. Requests bigger than that are better split across conversations.
* A plan you haven't accepted yet **won't survive a page refresh** — ask again and Darcy will propose a fresh one. Accepted plans persist.
* Plan mode is available to every user with chat access; there's nothing to enable. The toggle is hidden in compact and embedded chat windows.

## DarcyOS — Real Execution in Chat

DarcyIQ Chat now runs on [DarcyOS](/core-features/darcy-os), Darcy's built-in operating system. Darcy can write her own scripts, install packages, process files, and execute code directly inside the conversation — turning chat into an actual workspace.

| Capability               | What Darcy Does                                                                  |
| ------------------------ | -------------------------------------------------------------------------------- |
| **Code Execution**       | Writes and runs Python or shell to complete the task                             |
| **Calculations**         | Works out arithmetic, statistics, financial models, and unit conversions in code |
| **File Processing**      | Reads, transforms, and produces files (CSV, DOCX, JSON, images, etc.)            |
| **Data Analysis**        | Cleans data, runs statistics, and generates charts inline                        |
| **Bulk Operations**      | Processes batches of files in a single pass                                      |
| **Persistent Workspace** | Each conversation has its own workspace that survives across turns               |

You don't need to invoke it explicitly — describe the outcome you want and Darcy reaches for DarcyOS when execution is the right tool. See [DarcyOS](/core-features/darcy-os) for full details.

{% hint style="info" %}
**Math and calculations**: Anything numeric — compound interest, NPV, standard deviation, unit conversions, multi-step arithmetic — is worked out by writing and running real code in DarcyOS rather than estimated in prose. Because it's real Python, Darcy can show her working, handle a whole dataset in one pass, and chart the result in the same step.
{% endhint %}

### More Multi-step Capabilities

| Request Type           | Description                                                       | Example                                                                  |
| ---------------------- | ----------------------------------------------------------------- | ------------------------------------------------------------------------ |
| **Client Preparation** | Research client, find previous interactions, summarize key points | "Prepare me for tomorrow's meeting with XYZ Inc."                        |
| **Technical Research** | Compare technologies, find use cases, create architecture diagram | "Compare AWS Lambda vs. Azure Functions and diagram best implementation" |
| **Content Creation**   | Research topic, outline structure, draft content                  | "Create a blog post about AI trends in consulting"                       |
| **Financial Analysis** | Gather financial data, analyze trends, visualize results          | "Analyze our Q3 performance and create charts comparing to competitors"  |

## Personalized Experience

DarcyIQ Chat is automatically personalized to each user based on:

| Personalization Factor   | Description                                                             |
| ------------------------ | ----------------------------------------------------------------------- |
| **User Identity**        | Recognizes you by name and remembers preferences                        |
| **Professional Role**    | Understands your job responsibilities and tailors responses accordingly |
| **Organization Context** | Knows your company and its description for relevant recommendations     |
| **Time Awareness**       | Considers the current date and time for contextual responses            |

This personalization happens automatically when you start chatting, with DarcyIQ tailoring responses to match your specific context, making interactions more relevant and helpful.

## Contextual Intelligence

DarcyIQ Chat can access and understand your organization's content through several integrated tools:

### Universal Search Integration

Instantly search across all your content within DarcyIQ:

| Content Type         | Description                                                                  |
| -------------------- | ---------------------------------------------------------------------------- |
| **Meetings**         | Find recordings, transcripts, action items, and summaries from past meetings |
| **Research Reports** | Access AI-generated research on various topics created within DarcyIQ        |
| **Workflows**        | Locate previous workflow executions, proposals, and their outputs            |

Simply ask about any content you've created or accessed in DarcyIQ, and the assistant will find and reference it directly in the conversation.

### Knowledge Base Access

DarcyIQ can search through your organization's custom knowledge bases to provide answers based on your internal documentation:

* **Product Knowledge**: Technical specifications and documentation
* **Company Policies**: HR policies, compliance guidelines, and procedures
* **Project Documentation**: Project plans, requirements, and updates

Each knowledge base is individually accessible, allowing for targeted, precise responses from your organization's trusted sources.

### Web Research with Search Subagents

When information isn't available in your internal systems, DarcyIQ deploys **Search Subagents** — dedicated AI researchers that search the web, visit pages, and return only the specific information you need.

Unlike a simple web search, Search Subagents work like a research assistant:

| Capability               | Description                                                                                                    |
| ------------------------ | -------------------------------------------------------------------------------------------------------------- |
| **Multi-query research** | The subagent runs multiple targeted searches to cover a topic from different angles                            |
| **Deep page reading**    | Visits promising pages to extract detailed information beyond search snippets                                  |
| **Source verification**  | Cross-references claims across multiple sources for accuracy                                                   |
| **Inline citations**     | Results include source links so you can verify and explore further                                             |
| **Conversation memory**  | The subagent remembers previous searches in the conversation, so follow-up questions build on earlier research |
| **Parallel deployment**  | DarcyIQ can launch multiple subagents simultaneously to research different aspects of a complex question       |

You'll see live progress as the subagent searches and reads pages, with the final synthesized answer delivered back into the conversation.

## Saved Chat History

Never lose important conversations again with persistent chat history:

| Feature                    | Description                           | Benefit          |
| -------------------------- | ------------------------------------- | ---------------- |
| **Automatic Saving**       | All conversations saved automatically | Never lose work  |
| **Search History**         | Find past conversations instantly     | Quick reference  |
| **Continue Conversations** | Pick up where you left off            | Maintain context |
| **Export Chats**           | Download conversation history         | Documentation    |
| **Selective Deletion**     | Remove specific chats                 | Privacy control  |

### History Management

* **Unlimited Storage**: Keep all your conversations
* **Fast Search**: Find any past discussion
* **Context Preservation**: Return to previous topics seamlessly
* **Privacy Controls**: Delete sensitive conversations
* **Export Options**: PDF, Markdown, or JSON formats

## Artifacts

DarcyIQ Chat can create rich [Artifacts](/core-features/artifacts) — documents, diagrams, charts, images, presentations, battlecards, and interactive apps — directly in conversation. Artifacts appear in a dedicated panel where you can view, edit, export, and save them to your projects. See the [Artifacts documentation](/core-features/artifacts) for full details on each type.

## Blueprints from Chat

You can also create [Blueprints](/organize/blueprints) — Darcy's fillable document templates — directly from a conversation. Describe the template you need, attach an example, or paste in a draft, and Darcy will set up a Blueprint with fillable fields automatically detected.

* "Turn this proposal into a Blueprint I can reuse for new clients"
* "Create a Blueprint from this SOW template with fields for client name, scope, and timeline"
* "Make a Blueprint of our weekly status report"

The new Blueprint shows up in the Blueprints section, ready for submissions. See [Blueprints](/organize/blueprints) for the full lifecycle.

## Performance Improvements

### 50% Speed Boost

DarcyIQ Chat is now lightning fast:

| Improvement         | Before      | After       | Impact               |
| ------------------- | ----------- | ----------- | -------------------- |
| **Response Time**   | 4-6 seconds | 2-3 seconds | Faster conversations |
| **Streaming**       | Delayed     | Immediate   | Real-time responses  |
| **Search**          | 3-5 seconds | 1-2 seconds | Instant results      |
| **File Processing** | 10+ seconds | 5 seconds   | Quicker analysis     |

## Interactive Tools

### Webpage Insights

Analyze external web content without leaving the chat:

* **Link Sharing**: Share links directly in the conversation
* **Content Extraction**: Pull key information from webpages
* **Comparative Analysis**: Compare information across multiple sources

## Best Practices

Get the most out of DarcyIQ Chat with these best practices:

1. **Be specific in your requests** - The more details you provide, the more tailored the response
2. **Reference existing content** - Mention meetings, reports, or projects by name
3. **Use follow-up questions** - Ask for clarification or more detail on specific points
4. **Create artifacts for complex information** - Ask DarcyIQ to create diagrams or structured documents for complex topics
5. **Save useful prompts** - Create custom prompts for requests you make frequently


# Meetings

Darcy's Meeting Recording & Transcription transforms your customer conversations into actionable intelligence. Automatically join, record, and analyze your meetings to capture every insight without the cognitive burden of manual note-taking.

{% hint style="success" %}
**Time kills deals. Darcy doesn't wait.** Our AI-powered meeting intelligence ensures you never miss a critical detail or opportunity.
{% endhint %}

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZAWfHaMLwFz29fKwv8d8%2Fuploads%2FgngoSjwGIzH5ZOFjvkmN%2FMeetingsVideo.mp4?alt=media&token=f8e5b2d6-f28e-4584-a107-9cc0f187ab2b>" %}

## :calendar: Automatic Meeting Integration

Gone are the days of manual uploads and missed opportunities. Darcy seamlessly integrates with your calendar to provide intelligent meeting automation:

### Smart Calendar Connection

* **Direct Integration**: Connect your Outlook or Gmail calendar in one click
* **Intelligent Filtering**: Choose when Darcy joins (internal only, external only, or all meetings)
* **Host-Based Control**: Filter by meetings where you're the host or meetings you've accepted
* **Zero Manual Work**: No more forgetting to invite Darcy or upload recordings

### Crystal-Clear Transcription

Powered by AWS Transcribe for enterprise-grade accuracy and reliability, ensuring every word is captured with precision.

{% hint style="info" %}
**Pro Tip**: Darcy learns your company's terminology and customer names over time, improving transcription accuracy with each meeting.
{% endhint %}

***

## :microphone: Call Coach - Your Real-Time Meeting AI

Transform every team member into a seasoned expert with AI-powered guidance that provides instant insights during your calls.

<figure><img src="/files/oCRSn38nVxLcirZwdUBv" alt="" width="275"><figcaption><p>Real-time coaching helps optimize your conversation dynamics</p></figcaption></figure>

### Real-Time Performance Insights

{% tabs %}
{% tab title="Talk Ratio" %}
**Balanced Conversations**

* Monitor speaker time distribution
* Ensure customers are engaged and talking
* Get alerts when you're dominating the conversation
* Optimize for the ideal 30/70 talk ratio
  {% endtab %}

{% tab title="Engagement Tracking" %}
**Question Rate Monitoring**

* Track your question frequency to maintain engagement
* Suggested follow-up questions based on conversation context
* Identify when to probe deeper vs. when to listen
* Ensure you're gathering all necessary requirements
  {% endtab %}

{% tab title="Key Concepts" %}
**Intelligent Topic Tracking**

* Automatically identify and track important discussion points
* Flag potential opportunities and pain points
* Monitor for technical requirements and constraints
* Ensure no critical details are missed
  {% endtab %}

{% tab title="Delivery Optimization" %}
**Pace & Clarity Monitoring**

* Real-time feedback on speaking pace
* Clarity and confidence indicators
* Optimal delivery recommendations
* Reduce filler words and improve professionalism
  {% endtab %}
  {% endtabs %}

### Intelligent Conversation Guidance

| Feature                   | Benefit                                         | Impact                             |
| ------------------------- | ----------------------------------------------- | ---------------------------------- |
| **Smart Prompts**         | Context-aware question suggestions              | Deeper discovery conversations     |
| **Opportunity Detection** | Real-time identification of sales opportunities | Never miss a potential deal        |
| **Technical Validation**  | Instant fact-checking and technical guidance    | Increased credibility and accuracy |
| **Follow-up Reminders**   | Automated action item identification            | Improved client satisfaction       |

{% hint style="warning" %}
**Remember**: Call Coach is designed to enhance, not replace, your expertise. Use it as a safety net and learning tool to consistently deliver exceptional client experiences.
{% endhint %}

***

## :computer: Supported Platforms

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td><strong>Zoom</strong></td><td>Full support for meetings and webinars with native recording integration. Works with all Zoom plans including Basic, Pro, and Enterprise.</td><td></td></tr><tr><td><strong>Microsoft Teams</strong></td><td>Complete integration for all meeting types and channels. Supports both scheduled meetings and instant meetings.</td><td></td></tr><tr><td><strong>Google Meet</strong></td><td>Seamless support for meetings with real-time analysis. Compatible with Google Workspace and personal Google accounts.</td><td></td></tr></tbody></table>

{% hint style="info" %}
**Coming Soon**: Webex, GoToMeeting, and other enterprise platforms based on customer demand.
{% endhint %}

{% hint style="info" %}
**For IT Administrators & Security Reviewers**: For a detailed breakdown of the OAuth permissions and scopes DarcyIQ requires from Google, Microsoft, and Zoom, see [Meeting & Calendar Integrations](/build/integration-overview/meeting-calendar-integrations).
{% endhint %}

***

## :gear: How It Works

{% stepper %}
{% step %}
**Seamless Setup**\
Connect your calendar and configure your preferences. Darcy automatically identifies relevant meetings and prepares to join.

<figure><img src="/files/aQHtKElyQtn0LXLGJvqJ" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
**Smart Participation**\
Darcy joins meetings as a participant at the scheduled time, introducing itself professionally and beginning immediate analysis.

![](/files/fjtxuybbJz3F2tGX0DAw)
{% endstep %}

{% step %}
**Live Analysis & Coaching**\
Speech is converted to text and analyzed in real-time, providing immediate feedback on conversation dynamics and identifying key insights.
{% endstep %}

{% step %}
**Actionable Feedback**\
Get immediate guidance on talk ratio, engagement levels, and conversation opportunities without disrupting the flow.

![](/files/fxrt2CnE8xUbBudqb1JP)
{% endstep %}

{% step %}
**Complete Intelligence Package**\
Receive detailed meeting summaries, action items, identified opportunities, and technical requirements within minutes of call completion.
{% endstep %}
{% endstepper %}

***

## :label: Smart Organization with Tags

Darcy's tagging system automatically organizes your meetings for maximum efficiency:

<figure><img src="/files/7Wytxx8qc22aquoJsUXE" alt=""><figcaption></figcaption></figure>

### AutoTag Agent

* **Automatic Classification**: AI automatically tags content using intelligent analysis
* **Salesforce Integration**: Auto-identifies customers and applies relevant tags
* **Custom Organization**: Create your own tagging system (e.g., "Customer = AcmeCorp")
* **Future-Ready**: Foundation for advanced automation and reporting features

***

{% hint style="success" %}
**Coming Soon**: Meeting-specific notifications and advanced alert customization options.
{% endhint %}


# DarcyOS

DarcyOS is the operating system that powers DarcyIQ Chat and Agents — a full computer-use microVM giving Darcy a real Linux environment where she can write her own scripts, execute code, install packages, process files, and produce deliverables directly inside your conversation.

{% hint style="success" %}
**From answering questions to actually getting things done**: Ask Darcy to clean a CSV, generate charts, and produce a polished report — all in one conversation, with real code running behind the scenes.
{% endhint %}

## Overview

DarcyOS gives every conversation access to a sandboxed Linux environment with Python, Node.js, common data tools, and a persistent workspace. Darcy uses it autonomously whenever a task benefits from real execution — analysis, transformations, file processing, scripting, and multi-step deliverables.

| Feature                  | Capability                                                                | Business Impact                                       |
| ------------------------ | ------------------------------------------------------------------------- | ----------------------------------------------------- |
| **Full microVM**         | Real Linux environment with Python, Node, and standard packages           | Darcy executes work instead of just describing it     |
| **Script Authoring**     | Darcy writes scripts on the fly to fit your task                          | No need to specify exact tools — describe the outcome |
| **File Processing**      | Read, transform, and produce files directly in chat                       | CSV cleanup, format conversion, batch operations      |
| **Persistent Workspace** | Each conversation gets its own workspace that survives across turns       | Iterate on results without re-uploading inputs        |
| **Package Installation** | Darcy installs additional Python or Node packages when a task requires it | Specialized libraries available on demand             |
| **Agents Integration**   | Agents and scheduled runs use the same DarcyOS environment                | Automated workflows can produce real outputs          |

## How It Works

When you ask Darcy to do something that needs execution, DarcyOS spins up automatically for your conversation. Darcy decides when to use it — you don't need to invoke it explicitly.

{% stepper %}
{% step %}
**Describe Your Task** Ask Darcy in chat as you normally would. For example: *"Take this sales CSV, drop rows with missing emails, and give me a chart of revenue by region."*
{% endstep %}

{% step %}
**Darcy Plans and Executes** Darcy writes the necessary scripts, installs any required packages, and runs them inside DarcyOS. You'll see the steps streamed live in the conversation.
{% endstep %}

{% step %}
**Iterate in the Same Workspace** Follow-up requests — *"Sort the chart by revenue descending"* or *"Now export it as a PNG"* — operate on the same workspace, so Darcy doesn't have to start from scratch.
{% endstep %}

{% step %}
**Collect Your Deliverables** Generated files land in the conversation's workspace. Open them inline, download them, or attach them to a project.
{% endstep %}
{% endstepper %}

## The Workspace

Every conversation has its own workspace mounted inside DarcyOS. Open the workspace from the chat side panel to browse files, upload inputs, and download deliverables.

| Folder         | Purpose                                                                  |
| -------------- | ------------------------------------------------------------------------ |
| **user-files** | Files you upload for Darcy to use as inputs                              |
| **artifacts**  | Deliverables Darcy produces and publishes back to you                    |
| *Other*        | Anything else Darcy creates while working — scripts, intermediates, logs |

You can upload files at any time. Darcy will pick them up automatically the next time it runs against the workspace.

## Using DarcyOS in Chat

DarcyOS activates whenever Darcy decides a task benefits from execution. Common patterns:

| Request Type         | What Darcy Does                                                 |
| -------------------- | --------------------------------------------------------------- |
| **Data Analysis**    | Loads your file, cleans it, and runs the analysis you asked for |
| **File Conversion**  | Transforms between formats (CSV ↔ Excel, Markdown ↔ DOCX, etc.) |
| **Chart Generation** | Builds matplotlib / Plotly charts and returns them as images    |
| **Bulk Operations**  | Renames, reorganizes, or processes many files in one pass       |
| **Code Execution**   | Runs Python or shell snippets and shows the output              |
| **Report Building**  | Combines multiple inputs into a polished deliverable            |

You don't need a special prompt — describe the outcome you want and Darcy will reach for DarcyOS when it's the right tool.

## DarcyOS in Agents

Agents run on the same DarcyOS environment as Chat. When you build an agent for a task that involves execution — data pulls, report generation, file transformations — that agent can:

* Write and run scripts to complete its assigned task
* Use any installed Python or Node tooling
* Produce real file deliverables that get attached to the run
* Operate inside its own isolated workspace

This is what makes scheduled agents genuinely "set and forget" — a daily reporting agent can pull data, transform it, and publish a polished output without a human in the loop.

See [Agents](/core-features/agents) for more on building and scheduling agents.

## DarcyOS in Workflows

[Workflows](/build/ai-workflows) can leverage DarcyOS at any step where execution is needed. This is especially useful for:

* **Multi-step transformations** — chain together extracts, cleans, and joins
* **Code-driven steps** — embed a script as part of an automated pipeline
* **File pipelines** — accept a file, process it, and emit a deliverable as the next step's input

See [Creating Efficient Workflows](/build/ai-workflows/creating-efficient-workflows) for design guidance.

## Use Cases

### Data & Analytics

* Clean and reshape CSVs, Excel sheets, or JSON dumps
* Run statistical analyses and return charts in the conversation
* Join data across multiple uploaded files

### Content & Documents

* Convert between document formats while preserving structure
* Extract text, tables, or images from large files
* Apply consistent formatting across a batch of documents

### Engineering & DevOps

* Run quick scripts against logs or config files
* Validate or generate JSON, YAML, or other structured formats
* Prototype small automations directly in chat

### Reporting

* Build periodic reports from raw data inputs
* Produce charts, summaries, and downloadable deliverables
* Schedule the whole flow through an agent for hands-off delivery

## Best Practices

1. **Describe outcomes, not tools**: Tell Darcy *what* you need, not which library to use — it picks tools that fit
2. **Upload inputs once**: The workspace persists across turns, so re-iterate without re-uploading
3. **Iterate in the same conversation**: Follow-ups are faster because Darcy already has the context and files
4. **Combine with Skills**: Pair DarcyOS with a [Skill](/core-features/skills) that encodes your team's conventions for outputs (naming, formatting, structure)
5. **Schedule it**: Once a workflow works in chat, wrap it in an [Agent](/core-features/agents) and schedule it to run on its own

{% hint style="info" %}
**Pro Tip**: DarcyOS shines on tasks that would normally bounce between chat, a spreadsheet, and a script. If you find yourself copying data out to do something with it, ask Darcy to do it in DarcyOS instead.
{% endhint %}


# Agents

Configure specialized AI agents in DarcyIQ that combine custom instructions, MCP tool integrations, calibration forms, and automated scheduling. **Build purpose-built agents for your team and let them run tasks on your behalf — on demand or on a recurring schedule.**

{% hint style="success" %}
**From Chat to Automation**: Create a "Sales Analyst" agent with product knowledge and CRM tools, then schedule it to generate pipeline reports every Monday morning.
{% endhint %}

## Overview

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZAWfHaMLwFz29fKwv8d8%2Fuploads%2FIf7WrqKP66fg3lFo3XkO%2FScheduledAgentsVideo.mp4?alt=media&token=6e7f3a21-0261-4a70-990e-ff41691d8e80>" %}

Agents elevate DarcyIQ from a general-purpose AI into a library of specialized experts, each tailored to a specific role and equipped with the tools it needs.

| Feature                  | Capability                                                       | Business Impact                                     |
| ------------------------ | ---------------------------------------------------------------- | --------------------------------------------------- |
| **Custom Instructions**  | Define the agent's role, behavior, and response style            | Consistent, role-appropriate interactions           |
| **MCP Integrations**     | Attach MCP tools so the agent can interact with external systems | Agents that take action, not just answer questions  |
| **Calibration Forms**    | Present structured input forms to users before a conversation    | Collect context up-front for better results         |
| **Agent Types**          | Chat agents for DarcyIQ, Widget agents for website embedding     | Deploy AI where your users are                      |
| **Automated Scheduling** | Run agents on a recurring basis with full context                | Hands-off reporting, monitoring, and task execution |
| **Team Sharing**         | Share agents with configurable permissions                       | Standardized expertise across the organization      |

## Creating an Agent

{% stepper %}
{% step %}
**Open the Agents Panel** Click the **Agents** icon in the sidebar to open the Agents drawer, then click **New Agent**.
{% endstep %}

{% step %}
**Name Your Agent** Give the agent a clear, descriptive name (e.g., "Technical Writer", "Sales Analyst", "AWS Advisor").
{% endstep %}

{% step %}
**Choose an Agent Type**

| Type          | Description                       | Use Case                                |
| ------------- | --------------------------------- | --------------------------------------- |
| **Default**   | Regular chat agent inside DarcyIQ | Internal team use                       |
| **Widget**    | Embeddable agent for your website | Customer-facing support or self-service |
| {% endstep %} |                                   |                                         |

{% step %}
**Write Role and Instructions** Provide detailed instructions that tell the agent who it is, how it should behave, what tone to use, and what topics it should focus on. This is the core of the agent's personality and expertise.
{% endstep %}

{% step %}
**Configure Optional Settings** Add welcome screen options, calibration forms, MCP integrations, and schedules (all described below).
{% endstep %}

{% step %}
**Save and Share** Click **Create Agent** to save. You can then share the agent with your team.
{% endstep %}
{% endstepper %}

## Agent Configuration

### Role and Instructions

The **Role and Instructions** field is the most important part of your agent. Write detailed guidelines covering:

* The agent's persona and expertise area
* Communication tone and style (formal, friendly, technical)
* What the agent should and should not do
* Preferred response formats (bullet points, tables, structured documents)
* Domain-specific knowledge or constraints

{% hint style="info" %}
**Pro Tip**: Be specific in your instructions. "Always include 3 supporting data points" is better than "Be thorough." Instructions up to 10,000 characters are supported.
{% endhint %}

### Welcome Screen Options

Optionally configure a **use case** label and **initial prompt** so the agent appears on the DarcyIQ welcome screen with a quick-start button. Both fields must be provided together.

| Setting            | Purpose                                           | Example                                  |
| ------------------ | ------------------------------------------------- | ---------------------------------------- |
| **Use Case**       | Short label shown on the welcome screen           | "Technical Documentation"                |
| **Initial Prompt** | Pre-filled message when the user clicks the agent | "Help me write API documentation for..." |

### Calibration Forms

Calibration forms present structured input fields to the user above the chat input when the agent is selected. Use them to collect key context before the conversation begins.

| Configuration  | Description                                             |
| -------------- | ------------------------------------------------------- |
| **Form Title** | Header displayed above the form fields                  |
| **Form Icon**  | Icon displayed alongside the title                      |
| **Fields**     | Custom fields the user fills in (text, dropdowns, etc.) |

This is useful for agents that need specific information to do their job well — for example, a proposal writer that needs the client name, budget range, and timeline before drafting.

### MCP Integrations

Attach MCP tools to give your agent access to external systems and data sources. When a user chats with the agent, the selected integrations are automatically available.

To configure:

1. Open the agent editor
2. Scroll to **MCP Integrations**
3. Check the integrations you want to enable

The agent will be able to use any tools provided by the selected MCP integrations during conversations and scheduled runs.

## Managing Agents

### Agents Drawer

The Agents drawer is the hub for agents and everything they use:

| Tab                 | Purpose                                           |
| ------------------- | ------------------------------------------------- |
| **Agents**          | View, create, edit, and manage your agents        |
| **To Do's & Tasks** | View task submissions and their results           |
| **Automation**      | Manage all recurring schedules (see below)        |
| **Skills**          | Create and manage reusable skills for your agents |
| **Integrations**    | Connect and manage the tools DarcyIQ can use      |

### Sending an Agent a Task

Click any agent card on the **Agents** tab to open a task composer — *Send a task to this agent*. Describe what you need and submit; DarcyIQ confirms with **Assigned to {agent}** and switches to the **To Do's & Tasks** tab, where the run appears as it progresses. The agent works in the background, so you can close the drawer and carry on.

### Agent List Features

* **Grid or Table view**: Switch between card and table layouts
* **Search**: Filter agents by name
* **"Only mine" filter**: Show only agents you created
* **Default agent**: Star an agent to set it as your default for new conversations
* **Share**: Invite team members with Owner, Editor, or Read access
* **Edit**: Modify agents you own
* **Archive**: Remove an agent from the active list, recoverable from the **Archived** view

### Sharing & Permissions

Click the **Share** button on any agent you own to invite team members.

| Permission | Capabilities                       |
| ---------- | ---------------------------------- |
| **Owner**  | Full control — edit, share, delete |
| **Editor** | Modify the agent's configuration   |
| **Read**   | Run the agent without changing it  |

Recipients run a shared agent **as themselves**, using their own credentials and context rather than yours.

#### Shared Agents Bring Their Dependencies

An agent is only useful if the things it depends on come with it. When you share an agent, DarcyIQ also grants the recipient **read-only access to that agent's integrations and custom skills**, so it works for them the way it works for you.

The share dialog tells you exactly what's included before you confirm — for example *2 integrations, 1 skill included* — grouped into **Integrations** and **Skills** so there are no surprises.

{% hint style="warning" %}
**This is a real grant of access.** Sharing an agent gives the recipient read-only visibility of the integrations and skills it uses, and that access can't be removed piece by piece while the agent is shared. If you don't want someone to reach a particular integration, don't share an agent that depends on it.
{% endhint %}

| Included in a share                       | Not included    |
| ----------------------------------------- | --------------- |
| Integrations the agent has enabled        | Knowledge bases |
| Custom skills the agent has been assigned | Lists           |

Knowledge bases and lists stay out because they're chosen per run rather than baked into the agent.

#### Revoking Access

Derived access follows the agent, so you manage it by managing the share:

* **Un-share the agent** and the recipient's access to its integrations and skills goes away with it.
* **Archived agents grant nothing** — archiving an agent withdraws the derived access until you restore it.
* On an integration's or skill's own sharing panel, people who reached it this way appear under **Via shared agents**, labeled *Read-only via agent '{name}'*. You can't remove them from there; un-share the agent instead.

#### Before You Remove a Dependency

Because agents depend on integrations and skills, removing one can quietly break agents — including other people's. DarcyIQ warns you before you confirm.

Archiving or deleting a skill, or disconnecting an integration, shows how many agents rely on it and names them, marking any that are shared. Recipients of a shared agent lose the capability silently, so the warning is worth reading closely.

### Archiving & Deleting Agents

Deleting an agent from the active list **archives** it. Archived agents are hidden from the list, keep working state, and can be restored from the **Archived** view. Permanent deletion is a separate, deliberate action available only from that view.

Because agents power automations, archiving has knock-on effects that DarcyIQ handles for you:

| Action                 | What happens to schedules and automations                                                                                                                   |
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Archive an agent**   | Its schedules are **paused** and any automations that launch it are **deactivated**. The dialog lists which automations will be affected before you confirm |
| **Restore an agent**   | Schedules are re-enabled. **Automations stay switched off** so nothing unexpected fires — turn them back on when you're ready                               |
| **Delete permanently** | Automations referencing the agent stay disabled by default. Tick **Also permanently delete this automation** to remove them too                             |

{% hint style="info" %}
Restoring an agent deliberately does **not** re-enable its automations. Check the **Automation** tab after restoring and switch back on the ones you still want.
{% endhint %}

An automation whose agent has been archived shows a disabled toggle explaining the fix — unarchive the agent, or edit the automation and pick a different one.

Agents tied to a project (FDE agents) can't be archived on their own; archive the project instead.

***

## Scheduling Agents

Schedule agents to run tasks automatically on a recurring basis — no manual intervention required. Scheduled runs execute in the background and can include meetings, project context, and integrations.

### Creating a Schedule

Use the step-by-step schedule wizard to set up a new schedule:

{% stepper %}
{% step %}
**Select an Agent** Choose which agent will execute the scheduled task. Search by name to find the right one.
{% endstep %}

{% step %}
**Set the Frequency** Choose when the schedule should run using built-in presets:

**Interval options:**

| Frequency        | Description                          |
| ---------------- | ------------------------------------ |
| Every 15 minutes | High-frequency monitoring or polling |
| Every 30 minutes | Regular check-ins                    |
| Every hour       | Hourly updates                       |
| Every 2 hours    | Moderate-frequency tasks             |
| Every 6 hours    | Periodic summaries                   |
| Every 12 hours   | Twice-daily reports                  |

**Time-based options:**

| Frequency | Configuration                             |
| --------- | ----------------------------------------- |
| Daily     | Pick a specific time of day               |
| Weekly    | Pick a day of the week and a time         |
| Monthly   | Pick a day of the month (1–28) and a time |

All schedules run in your local timezone.
{% endstep %}

{% step %}
**Define the Task** Describe what the agent should do on each run. Write the task just like you would type a message in chat.

You can enrich the task with additional context:

| Context          | How to Add                                      | Purpose                                                |
| ---------------- | ----------------------------------------------- | ------------------------------------------------------ |
| **Meetings**     | Attach one or more meetings                     | Give the agent access to meeting transcripts and notes |
| **Project**      | Link a project                                  | Provide project-specific knowledge and documents       |
| **Integrations** | Enable MCP tools, AWS, Atlassian, or Salesforce | Let the agent interact with external systems           |
| {% endstep %}    |                                                 |                                                        |
| {% endstepper %} |                                                 |                                                        |

### Schedule Options

| Option                  | Description                                                                                  |
| ----------------------- | -------------------------------------------------------------------------------------------- |
| **Enable / Disable**    | Toggle the schedule on or off without deleting it                                            |
| **Email on Completion** | Receive an email when the scheduled run finishes. Add one or more recipient email addresses. |

### Managing Schedules

Open the **Schedules** tab in the Agents drawer to view and manage all schedules across your organization.

| Feature               | Description                                                                                                          |
| --------------------- | -------------------------------------------------------------------------------------------------------------------- |
| **Search**            | Find schedules by agent name or task description                                                                     |
| **Filter by type**    | Show only agent runs or workflow runs                                                                                |
| **Enable / Disable**  | Toggle individual schedules on or off                                                                                |
| **Edit**              | Modify the frequency and task details (the agent stays the same)                                                     |
| **Delete**            | Permanently remove a schedule                                                                                        |
| **Execution History** | Click any schedule to expand and view recent executions with time, status (Success / Failed / Running), and duration |

***

## Use Cases

### Sales & Revenue

* **Pipeline Reporter**: Schedule a daily summary of CRM pipeline changes
* **Lead Researcher**: Run competitive intelligence on new prospects every morning
* **Meeting Prep**: Automatically generate briefing docs before client calls

### Operations & Monitoring

* **System Health Check**: Run infrastructure checks every 15 minutes
* **Compliance Monitor**: Weekly audit of policy adherence
* **Cost Analyzer**: Daily AWS spend summaries with anomaly detection

### Customer Success

* **Renewal Tracker**: Monthly renewal risk reports
* **Support Digest**: Daily summary of open tickets and trends
* **Onboarding Checklist**: Automated status checks on new customer implementations

### AWS Marketplace & Partner Programs

* **Marketplace Manager**: Update product listings, descriptions, and pricing through conversation
* **Offer Coordinator**: Create and track private offers for customers on a schedule
* **Listing Auditor**: Weekly analysis of marketplace listings to ensure completeness and optimization

### Content & Documentation

* **Technical Writer**: Scheduled documentation reviews and updates
* **Report Generator**: Weekly market analysis or project status reports
* **Knowledge Base Curator**: Monthly review of outdated content

## Integration with Other Features

### Chat Integration

* Select any agent from the chat agent picker
* Each agent maintains its own conversation context
* Switch between agents without losing history

### Project Integration

* Link agents to specific projects for contextual conversations
* Scheduled runs can reference project knowledge bases

### Workflow Integration

* Agents can run as part of automated workflows
* Combine agent expertise with workflow automation for complex processes

### Meeting Integration

* Include meeting transcripts as context for agent conversations
* Schedule post-meeting analysis to run automatically

## Best Practices

### Designing Effective Agents

1. **Single Responsibility**: Each agent should have a clear, focused role
2. **Detailed Instructions**: Provide specific guidelines, not vague directions
3. **Right Tools**: Only enable the MCP integrations the agent actually needs
4. **Test First**: Try the agent in chat before setting up schedules
5. **Iterate**: Refine instructions based on output quality

### Scheduling Tips

| Practice               | Recommendation                                                          |
| ---------------------- | ----------------------------------------------------------------------- |
| **Start conservative** | Begin with daily schedules before moving to higher frequencies          |
| **Be specific**        | Write clear task descriptions — the agent performs exactly what you ask |
| **Add context**        | Attach meetings and projects to give the agent the information it needs |
| **Monitor results**    | Review execution history regularly to ensure quality                    |
| **Use notifications**  | Enable email notifications so you know when runs complete               |

{% hint style="info" %}
**Pro Tip**: Start with one well-defined agent for your most common use case. Schedule it to run a daily task, review the output quality, and then expand to more agents and higher frequencies.
{% endhint %}


# Skills

Teach DarcyIQ reusable expertise that persists across conversations. Skills are instruction sets — written in markdown — that tell the AI **how** to perform a specific task, follow a process, or apply domain knowledge. Create them yourself, ask Darcy to build one in chat, or import them using the open [agentskills.io](https://agentskills.io) standard. **Skills also lets you attach reference files — templates, scripts, datasets — that Darcy can read whenever the skill runs, and you can publish your best skills to a shared** [**Skills Catalog**](#skills-catalog) **so your whole organization can install them with one click.**

{% hint style="success" %}
**Example:** Save a "Client Proposal Writer" skill with your company's formatting rules, pricing structure, and tone guidelines, plus a proposal template and a pricing sheet attached as files. Every future conversation can load that skill instantly — no re-explaining required.
{% endhint %}

## Why Skills?

Skills solve a common problem with AI assistants: **repeating the same instructions across conversations**. Instead of re-typing how you want proposals formatted, how your deployment pipeline works, or what your company's naming conventions are, you save those instructions once as a skill and DarcyIQ loads them on demand.

| Feature              | Description                                                                                     |
| -------------------- | ----------------------------------------------------------------------------------------------- |
| **Persistent**       | Saved to your account and available across all conversations                                    |
| **On-Demand**        | Loaded only when needed, keeping conversations fast and focused                                 |
| **File Attachments** | Attach templates, scripts, and reference docs that Darcy reads alongside the skill instructions |
| **Cross-Platform**   | Import SKILL.md packages from Anthropic, ChatGPT, and other agent platforms                     |
| **Versioned**        | Every edit increments the version so you can track changes and roll back                        |
| **Shareable**        | Publish to your organization's Skills Catalog for one-click install by any teammate             |
| **Toggleable**       | Enable or disable skills without deleting them                                                  |
| **Import / Export**  | Share skills using standard SKILL.md files compatible with agentskills.io                       |

## Creating Skills

### From the Skills Panel

{% stepper %}
{% step %}
**Open the Skills Panel** Click the **Skills** icon (lightbulb) in the sidebar to open the Skills drawer.
{% endstep %}

{% step %}
**Click "New"** Click the **New** button in the top-right corner of the panel.
{% endstep %}

{% step %}
**Fill in the Details**

| Field           | Description                                                   | Limits             |
| --------------- | ------------------------------------------------------------- | ------------------ |
| **Name**        | A descriptive name (auto-converted to a URL-safe slug)        | 2–64 chars         |
| **Description** | Brief summary of what the skill does                          | Up to 500 chars    |
| **Skill Body**  | The full instructions in markdown — this is what the AI reads | Up to 15,000 chars |
| {% endstep %}   |                                                               |                    |

{% step %}
**Save** Click **Create** to save. The skill is immediately available in all conversations.
{% endstep %}
{% endstepper %}

### In Chat

Ask DarcyIQ to create a skill directly in conversation:

* "Create a skill called `meeting-summary` that formats meeting notes with attendees, action items, and next steps."
* "Save what we just discussed as a skill I can reuse."
* "Make a skill for writing customer onboarding emails in our company's tone."

DarcyIQ saves the skill to your account automatically. You can view and manage it from the Skills panel afterwards.

### Import a SKILL.md File

If you have a skill file from another user, from the [agentskills.io](https://agentskills.io) community, or from another agent platform:

1. Open the **Skills Panel**
2. Click **Import**
3. Select a `.md` file in the SKILL.md format
4. Review the imported name, description, and body
5. Click **Create** to save

{% hint style="info" %}
**Cross-platform compatibility**: DarcyIQ follows the open [agentskills.io](https://agentskills.io) standard, so SKILL.md packages built for Anthropic Claude, ChatGPT, and other agent platforms can be imported and used directly — no rework required. Any file that uses YAML frontmatter with `name` and `description` fields followed by a markdown body is compatible.
{% endhint %}

## File Attachments

Skills can include reference files — templates, scripts, datasets, schemas, examples, or anything else Darcy might need to do the task well. When the skill is active, those files are available to Darcy in the conversation's workspace.

| Capability              | Detail                                                                                                                                  |
| ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| **File types**          | Markdown, text, PDFs, Office docs, images, code files, JSON/YAML/CSV — most formats                                                     |
| **Per-file size limit** | 5 MB                                                                                                                                    |
| **Files per skill**     | Up to 100                                                                                                                               |
| **Storage**             | Files are stored alongside the skill and travel with it                                                                                 |
| **Workspace staging**   | Available to Darcy through [DarcyOS](/core-features/darcy-os) — Darcy can read them, run scripts you attached, or use them as templates |

### Adding Files to a Skill

{% stepper %}
{% step %}
**Open the Skill** From the Skills panel, click any skill to open the editor.
{% endstep %}

{% step %}
**Expand the Files Section** Scroll to the **Files** section in the editor and click to expand it.
{% endstep %}

{% step %}
**Upload Files** Click **Upload** and select one or more files from your machine. Files appear in the list as soon as they finish uploading.
{% endstep %}

{% step %}
**Save** The skill (and its files) are saved to your account and ready to use in any conversation.
{% endstep %}
{% endstepper %}

### Managing Attached Files

| Action       | How                                                             |
| ------------ | --------------------------------------------------------------- |
| **List**     | Open the skill editor and expand the Files section              |
| **Download** | Click the download icon next to any file                        |
| **Delete**   | Click the trash icon (the file is removed from the skill only)  |
| **Replace**  | Upload a file with the same name to overwrite the existing copy |

### Using Attached Files

When a skill with attachments is active in a conversation, Darcy can read those files automatically as part of executing the skill. Common patterns:

* **Templates** — proposal, SOW, or report templates that Darcy fills in
* **Reference data** — pricing sheets, product catalogs, lookup tables
* **Scripts** — helper scripts Darcy can run on [DarcyOS](/core-features/darcy-os)
* **Examples** — sample outputs that show Darcy what "good" looks like
* **Schemas** — JSON/YAML schemas Darcy validates against

{% hint style="info" %}
**Pro Tip**: For binary files (DOCX, PDF, images, scripts), Darcy uses [DarcyOS](/core-features/darcy-os) to read them directly from the workspace. This means a skill with a Python helper script can have Darcy actually run that script when the skill is invoked.
{% endhint %}

## Managing Skills

### Skills Panel

| Action             | How                                                         |
| ------------------ | ----------------------------------------------------------- |
| **View all**       | Open the Skills panel from the sidebar                      |
| **Edit**           | Click any skill to open the editor                          |
| **Enable/Disable** | Toggle the switch next to any skill                         |
| **Export**         | Click the download icon to get a SKILL.md file              |
| **Archive**        | Click the trash icon — the skill moves to the archived view |
| **Import**         | Click Import and select a SKILL.md file                     |

### In Chat

You can also ask DarcyIQ to manage skills conversationally:

* "Update my `deploy-checklist` skill with these new steps..."
* "In my `deploy-checklist` skill, change 'staging' to 'pre-prod'"
* "Delete the `old-template` skill"
* "What skills do I have?"

{% hint style="warning" %}
**Disabling vs. archiving vs. deleting**: Use the toggle switch to temporarily disable a skill without losing it. Archiving removes it from your list but keeps it restorable. Permanent deletion is a separate action from the archived view and cannot be undone.
{% endhint %}

### Check What Depends on a Skill First

Skills can be assigned to agents, and those agents may be shared with other people. Archiving or deleting a skill takes it away from all of them.

Both the archive and the permanent-delete dialogs tell you what's at stake — how many agents use the skill, and their names, with any shared agents marked **(shared)**. Pay attention to those: recipients of a shared agent lose the skill without any notification of their own.

See [Agents](/core-features/agents) for how shared agents pass their skills and integrations to recipients.

## Skills Catalog

The Skills Catalog turns individual expertise into shared organizational capability. Instead of emailing SKILL.md files or recreating workflows from scratch, publish a skill once and let every teammate discover and install it with a single click — then keep everyone in sync when you publish updates.

The catalog lives right inside the Skills panel. Switch between the **My Skills** and **Catalog** tabs at the top of the panel to move between your own skills and everything published across your organization.

{% hint style="info" %}
**The catalog is your organization's.** Publishing shares a skill within your own organization — never across organizations. A listing stays under the control of the organization that published it, so only they can update or unpublish it.
{% endhint %}

{% hint style="success" %}
**Example:** Your solutions architect builds an "AWS Migration Assessment" skill and publishes it to the catalog. Every consultant in the org installs it in one click — and when the architect refines the methodology, everyone is prompted to update to the latest version.
{% endhint %}

### Publishing a Skill

Publishing takes the **latest saved version** of a skill — its instructions *and* attached files — and creates a stable, shareable snapshot in the catalog. Installers always get that published snapshot, so your work-in-progress edits stay private until you publish them.

{% stepper %}
{% step %}
**Open the skill's actions** In the **My Skills** tab, hover a skill you own and open its actions menu (or open the skill editor).
{% endstep %}

{% step %}
**Click "Publish to Catalog"** The current saved version is snapshotted and listed in your organization's catalog. Your name is shown as the author.
{% endstep %}

{% step %}
**Keep it current** After making further edits, choose **Update Catalog Version** to push your latest saved version to the catalog. To pull a listing down entirely, choose **Unpublish**.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
**Who can publish**: Publishing, updating a catalog listing, and unpublishing all require skill ownership **plus** the `Publish to Skill Library` permission. This is an opt-in permission that administrators grant through role management, so your organization controls exactly who can share skills org-wide.
{% endhint %}

{% hint style="warning" %}
**Publish after uploading files**: A published snapshot only includes files that existed when the version was saved. If you add attachments to a skill, save a new version and then publish (or update the catalog version) so installers receive those files.
{% endhint %}

### Previewing Before You Install

You don't have to install a skill to find out what's in it. Open any catalog listing to read it first — its description, its full instructions, and the files attached to it — in a read-only view marked *preview only*.

**Add** stays available from the preview header, so you can read the skill and install it without going back to the list. Once installed the button reads **Added**, changing to **Update** when the author publishes a newer version.

### Installing a Skill

Anyone with skill access can browse the **Catalog** tab, search by name or description, and install what they need.

* **One-click install** — Click **Add** on a catalog skill to copy it into your own **My Skills** list. Darcy copies the instructions and all attached files into a brand-new skill that belongs to you — edit it freely without affecting the original.
* **No duplicates** — You can't install the same catalog skill twice, and you can't install your own published skill. If a name collides with an existing skill, Darcy automatically gives your copy a unique name.
* **Update notifications** — When the author publishes a newer version, your installed copy shows that an update is available. Click **Update** to overwrite your copy with the latest published snapshot in one step.

### Version Control & Rollbacks

Every catalog action is captured in a skill's version history, so nothing is ever lost:

* Installing a catalog skill creates an initial **`catalog_install`** version snapshot.
* Updating an installed skill from the catalog creates a **`catalog_update`** snapshot before applying the new content.

Because each of these is a full snapshot, you can open the skill's version history and **roll back** to a previous version at any time if an update doesn't work as expected. If you archive an installed catalog skill, it also appears under the archived view with a **Restore** action.

## Using Skills in Conversations

DarcyIQ is automatically aware of your active skills at the start of every conversation. You don't need to list or reference them — DarcyIQ already knows what's available.

To use a skill, simply ask:

* "Use my `client-proposal-writer` skill to draft a proposal for Acme Corp."
* "Follow my `meeting-summary` skill to format these notes."

DarcyIQ may also load a relevant skill on its own when it recognizes your request matches one.

### Chat Quick-Toggle

The chat input area includes a skills toggle where you can enable or disable specific skills before sending a message — no need to open the full Skills panel.

## Integration with Agents

Skills work alongside [Agents](/core-features/agents). When you chat with an agent that has its own custom instructions, your skills layer additional expertise on top of the agent's configuration. Skills are also available during scheduled agent runs.

### Skills an Agent Brings With It

Skills assigned to an agent load automatically whenever that agent is selected — you don't have to switch them on. In the chat skills toggle they appear already enabled and **locked**, badged **Enabled by {agent name}**, and you can't turn them off while that agent is in use.

This applies even if you have the same skill disabled for your own general chat: the agent's configuration wins for the duration of the conversation. Switch to a different agent, and the lock lifts.

## Use Cases

| Category                | Examples                                                               |
| ----------------------- | ---------------------------------------------------------------------- |
| **Process & Templates** | Proposal formatting, meeting note structure, code review checklists    |
| **Domain Knowledge**    | Product specs, compliance rules, client account context                |
| **Workflow Automation** | Deployment checklists, incident response procedures, onboarding steps  |
| **Communication**       | Email templates, tone guidelines, client-specific language preferences |

## Best Practices

1. **Be specific**: "Format prices as USD with two decimal places" beats "Format prices correctly"
2. **Use structure**: Break instructions into sections with headers and lists
3. **Include examples**: Show what good output looks like
4. **Keep it focused**: One skill per task or domain — don't combine unrelated instructions
5. **Start small**: Begin with one or two high-value skills for the processes you explain most often, then expand from there

{% hint style="info" %}
**Pro Tip**: If you find yourself repeating the same instructions across multiple conversations, that's a great candidate for a skill.
{% endhint %}


# Artifacts

Artifacts are rich, interactive content objects that DarcyIQ creates during conversations. When you ask Darcy to create a document, diagram, chart, image, presentation, or app, the result appears as an artifact — a self-contained piece of content you can view, edit, export, share, and save to your projects.

{% hint style="success" %}
**From conversation to deliverable**: Ask "Create a SWOT analysis diagram for Acme Corp" and Darcy produces an editable Mermaid diagram artifact you can refine, export as SVG, or save to a project — all without leaving chat.
{% endhint %}

## Artifact Types

DarcyIQ supports a wide range of artifact types, each with its own viewer, editor, and export options:

| Type                                                                | What It Creates                                 | Created By     |
| ------------------------------------------------------------------- | ----------------------------------------------- | -------------- |
| [**Documents**](/core-features/artifacts/documents)                 | Markdown, text, HTML, JSON, and XML files       | Chat or Agents |
| [**Diagrams**](/core-features/artifacts/diagrams)                   | Mermaid flowcharts, sequence diagrams, and more | Chat or Agents |
| [**Data Reports**](/core-features/artifacts/data-reports)           | Charts, tables, and multi-panel dashboards      | Chat or Agents |
| [**Images**](/core-features/artifacts/images)                       | AI-generated images from text prompts           | Chat or Agents |
| [**Competitive Battlecards**](/core-features/artifacts/battlecards) | Structured competitive intelligence cards       | Chat or Agents |
| [**Presentations**](/core-features/artifacts/presentations)         | PowerPoint slide decks                          | Chat or Agents |
| [**Interactive Apps**](/core-features/artifacts/interactive-apps)   | Live React components and MCP-powered UIs       | Chat or Agents |

## Shared Features

Every artifact — regardless of type — supports a common set of actions from the artifact toolbar.

### Editing

Most artifact types can be edited directly in the artifact panel. Click **Edit** to open the appropriate editor for that type (rich text for markdown, code editors for JSON/XML/HTML, split-pane previews for diagrams and React apps). When you're done, click **Save** to create a new version.

You can also ask Darcy to edit an existing artifact in chat — for example, "Add a conclusion section to that document" or "Change the bar chart to a pie chart."

### Versioning

Every edit creates a new version. Use the **version selector** in the toolbar to browse previous versions and see how an artifact evolved during the conversation.

### Export & Download

The toolbar download menu adapts to the artifact type:

| Artifact Type     | Export Options                            |
| ----------------- | ----------------------------------------- |
| **Documents**     | Markdown, PDF, DOCX, DOCX with template   |
| **Diagrams**      | SVG image, Mermaid source, Eraser.io link |
| **Data Reports**  | Image (PNG), CSV (for tables)             |
| **Images**        | PNG download, copy to clipboard           |
| **Battlecards**   | PDF                                       |
| **Presentations** | PPTX download                             |
| **React Apps**    | Image (screenshot)                        |

### Copy

Click **Copy** to place the artifact content on your clipboard. The format adapts to the type — documents copy as rich HTML, tables copy as tab-separated values, images copy as image data.

### Save to Project

Click **Save** in the toolbar to add any artifact to one of your projects. The artifact becomes a searchable project item you can reference later.

### Share

Click **Share** to publish an artifact with a public link. You can update the published version or unpublish at any time.

{% hint style="info" %}
Share is available for most artifact types. Data Reports do not currently support public sharing.
{% endhint %}


# Documents

Document artifacts are the most common artifact type in DarcyIQ. Ask Darcy to write, format, or structure any text-based content and it produces an editable document artifact you can refine, export, and save.

## Supported Formats

| Format       | Best For                                            | Editor                       |
| ------------ | --------------------------------------------------- | ---------------------------- |
| **Markdown** | Reports, summaries, proposals, formatted documents  | Rich text (MDX)              |
| **Text**     | Plain notes, logs, unformatted content              | Monospace text               |
| **HTML**     | Web content, email templates, rich formatting       | Split-pane with live preview |
| **JSON**     | Structured data, configuration files, API responses | Code editor with validation  |
| **XML**      | Data structures, configuration, SOAP payloads       | Code editor                  |

Darcy automatically picks the best format based on your request. If you want a specific format, just say so — for example, "Create this as HTML" or "Give me the raw JSON."

## Creating Documents

Ask Darcy naturally:

* "Write a project status report for Q1"
* "Draft a follow-up email to the client"
* "Create an HTML email template for our newsletter"
* "Format this data as JSON"

## Editing

Click **Edit** to modify the document directly in the artifact panel. Each format has its own editor:

* **Markdown**: Rich text editor with formatting toolbar
* **HTML**: Side-by-side code and live preview
* **JSON**: Code editor with syntax validation — invalid JSON is flagged before you can save
* **Text / XML**: Monospace code editor

You can also ask Darcy to make changes in chat. Darcy uses targeted find-and-replace edits, so only the parts you want changed are updated while the rest of the document stays intact.

## Export Options

| Format   | Export Options                               |
| -------- | -------------------------------------------- |
| Markdown | Markdown file, PDF, DOCX, DOCX with template |
| Text     | Text file, PDF                               |
| HTML     | HTML file, PDF                               |
| JSON     | JSON file, PDF                               |
| XML      | XML file, PDF                                |

Markdown documents have the richest export support, including **DOCX with template** — upload a Word template and Darcy will apply your branding and styles to the export.


# Diagrams

Diagram artifacts let you create visual diagrams directly in conversation using [Mermaid](https://mermaid.js.org/) syntax. Ask Darcy to create flowcharts, sequence diagrams, architecture diagrams, and more — the result renders as an interactive, editable diagram.

## Supported Diagram Types

| Type                    | Use Case                                     |
| ----------------------- | -------------------------------------------- |
| **Flowchart**           | Process flows, decision trees, workflows     |
| **Sequence Diagram**    | API interactions, system communication flows |
| **Class Diagram**       | Object models, data structures               |
| **State Diagram**       | State machines, lifecycle flows              |
| **Entity Relationship** | Database schemas, data models                |
| **Gantt Chart**         | Timelines, project schedules                 |
| **Pie Chart**           | Simple proportional breakdowns               |
| **Mind Map**            | Brainstorming, topic exploration             |
| **Timeline**            | Chronological events                         |
| **Git Graph**           | Branch and merge visualizations              |

## Creating Diagrams

Ask Darcy naturally:

* "Create a flowchart showing our deployment process"
* "Draw a sequence diagram for the checkout API flow"
* "Make an ER diagram for our user database schema"
* "Diagram the state machine for order processing"

## Editing

Click **Edit** to open the split-pane editor — Mermaid source code on the left, live diagram preview on the right. Changes to the code update the preview in real time.

You can also ask Darcy to modify diagrams in chat: "Add an error handling branch to that flowchart" or "Include the payment service in the sequence diagram."

## Eraser.io Integration

Diagrams can integrate with [Eraser.io](https://eraser.io) for enhanced rendering. When available, diagrams display using Eraser's polished visual style and include an **Open in Eraser.io** link in the download menu for further collaborative editing.

## Export Options

| Option                | Format                                 |
| --------------------- | -------------------------------------- |
| **Download as Image** | SVG                                    |
| **Download Mermaid**  | Raw `.mmd` source file                 |
| **Open in Eraser.io** | Collaborative editing (when available) |


# Data Reports & Dashboards

Data report artifacts turn raw data into interactive charts, tables, and multi-panel dashboards — directly in conversation. Ask Darcy to visualize data and the result is a live, filterable report you can explore, refresh, and export.

## Chart Types

| Chart Type         | Best For                                          |
| ------------------ | ------------------------------------------------- |
| **Bar**            | Comparing categories                              |
| **Grouped Bar**    | Comparing categories across multiple series       |
| **Stacked Bar**    | Showing composition within categories             |
| **Line**           | Trends over time                                  |
| **Area**           | Volume trends over time                           |
| **Pie / Doughnut** | Proportional breakdowns                           |
| **Table**          | Structured data with sortable columns             |
| **Dashboard**      | Multi-panel layouts combining several chart types |

## Creating Data Reports

Ask Darcy naturally:

* "Create a bar chart comparing Q1 revenue by region"
* "Build a dashboard showing our key sales metrics"
* "Make a table of the top 20 customers by revenue"
* "Chart this data as a line graph over time"

Darcy determines the best chart type based on your data and request. You can always ask for a specific type: "Show this as a stacked bar chart instead."

## Interactive Features

### Filtering

Data reports include a filter panel where you can:

* **Search** data labels
* **Toggle** individual datasets on and off
* **Set value ranges** to zoom into specific data
* **Filter by label** to focus on specific categories

### Refresh

When a report is backed by a data source (API call or transformation script), a **Refresh** button appears. Click it to re-fetch the data and update the visualization with the latest numbers. Dashboard reports also support **date range pickers** for time-based queries.

### KPI Headers

Charts can include KPI summary headers that highlight key metrics (totals, averages, percentages) above the visualization for quick reference.

## Dashboards

Dashboards combine multiple chart panels into a single grid layout. Each panel is independently configured with its own chart type, data, and settings. Darcy creates dashboards when your request involves multiple related metrics that benefit from a unified view.

## Editing

Click **Edit** to modify the report data and configuration. If the report includes a transformation script, the script editor lets you adjust how source data is processed before visualization.

You can also ask Darcy to make changes in chat: "Change the bar chart to a pie chart" or "Add a column for percentage change."

## Export Options

| Option                | Availability                    |
| --------------------- | ------------------------------- |
| **Download as Image** | All chart types                 |
| **Download as CSV**   | Table reports only              |
| **Copy as TSV**       | Table reports (via Copy button) |

{% hint style="info" %}
Data Reports do not currently support public sharing via link. Use the image or CSV export to share report data externally.
{% endhint %}


# Images

Image artifacts let you generate images from text descriptions directly in conversation. Describe what you want and Darcy creates it using AI image generation.

## Creating Images

Ask Darcy naturally:

* "Generate an image of a modern office workspace"
* "Create a logo concept for a cloud computing company"
* "Make a hero image for a blog post about AI in healthcare"

### Prompt Tips

The quality of the generated image depends on how you describe it. Darcy rewrites your request into an optimized prompt, but more detail in your original request leads to better results:

* **Be descriptive**: "A minimalist flat-design icon of a calendar with a blue gradient background" works better than "calendar icon"
* **Specify style**: Mention art styles, mediums, or aesthetics — photorealistic, watercolor, flat vector, isometric, etc.
* **Include context**: Describe the setting, lighting, mood, and composition

### Aspect Ratios

You can request a specific aspect ratio:

| Ratio    | Use Case                   |
| -------- | -------------------------- |
| **1:1**  | Social media posts, icons  |
| **16:9** | Presentations, hero images |
| **9:16** | Mobile content, stories    |
| **4:3**  | Standard documents         |
| **3:4**  | Portrait-oriented content  |
| **21:9** | Ultra-wide banners         |

If you don't specify, Darcy defaults to **1:1**.

### Negative Prompts

Tell Darcy what to exclude: "Generate a landscape photo, but avoid any people or text." Darcy uses negative prompting to steer the generation away from unwanted elements.

### Reference Images

If the conversation includes a reference image, you can ask Darcy to use it as a visual guide: "Generate a similar image but with a sunset background." The reference image influences the style and composition of the result.

## Viewing

The image viewer includes:

* **Zoom**: Scale from 25% to 300%
* **Rotate**: Rotate in 90° increments
* **Fullscreen**: Click to expand the image to full screen
* **Prompt display**: See the exact prompt and parameters used to generate the image

## Export Options

| Option                | How                                             |
| --------------------- | ----------------------------------------------- |
| **Download**          | Download as PNG from the toolbar                |
| **Copy to clipboard** | Copy button places image data on your clipboard |


# Competitive Battlecards

Battlecard artifacts produce structured competitive intelligence cards that help sales and strategy teams quickly understand how a company or product stacks up against competitors. Darcy researches the subjects, then organizes findings into a rich, scannable layout.

## Modes

Battlecards come in two modes:

| Mode              | When To Use                                              | Example                                         |
| ----------------- | -------------------------------------------------------- | ----------------------------------------------- |
| **Competitive**   | Compare a subject head-to-head against a competitor      | "Create a battlecard for Acme Corp vs Beta Inc" |
| **Single-Entity** | Build an intelligence profile for one company or product | "Create a battlecard for Acme Corp"             |

Darcy automatically selects the mode based on whether you mention a competitor.

## Creating Battlecards

Ask Darcy naturally:

* "Create a competitive battlecard for Salesforce vs HubSpot"
* "Build an intel card on our competitor Acme Corp"
* "Make a battlecard comparing our product to Beta Platform"

Darcy uses [Search Subagents](/core-features/darcy-chat#web-research-with-search-subagents) to research both subjects before generating the battlecard, so the content is grounded in current information with sources.

## Battlecard Sections

A generated battlecard includes some or all of the following sections, depending on available information:

| Section                    | Description                                                      | Mode        |
| -------------------------- | ---------------------------------------------------------------- | ----------- |
| **Overview**               | Company/product summary in markdown                              | Both        |
| **Win Themes**             | Key reasons you win against this competitor                      | Both        |
| **Head-to-Head Analysis**  | Dimension-by-dimension comparison with win/lose/neutral verdicts | Competitive |
| **How to Win Playbook**    | Tactical guidance for competitive deals                          | Competitive |
| **Strengths**              | Key strengths of the subject                                     | Both        |
| **Weaknesses**             | Known weaknesses or gaps                                         | Both        |
| **Differentiators**        | What sets the subject apart, with impact ratings                 | Both        |
| **Objection Handling**     | Common objections and recommended responses                      | Both        |
| **Recent Developments**    | Latest news, funding, product launches                           | Both        |
| **Pricing**                | Pricing models and tiers (when publicly available)               | Both        |
| **Ideal Customer Profile** | Target market segments and characteristics                       | Both        |
| **Key Personas**           | Decision-maker profiles with priorities and pain points          | Both        |

Sections are collapsible, so you can quickly scan the card and expand the areas most relevant to your situation.

## Export Options

| Option  | Format                                       |
| ------- | -------------------------------------------- |
| **PDF** | Download as a formatted PDF from the toolbar |


# Presentations

Presentation artifacts generate PowerPoint slide decks directly from conversation. Describe the presentation you need and Darcy creates a `.pptx` file with structured slides, color themes, and optional AI-generated imagery.

## Creating Presentations

Ask Darcy naturally:

* "Create a 10-slide presentation on our Q1 results"
* "Build a pitch deck for our Series A fundraise"
* "Make a training presentation on cloud security best practices"

### Slide Types

Darcy selects from a library of over 20 slide types to match your content:

| Category    | Slide Types                                               |
| ----------- | --------------------------------------------------------- |
| **Openers** | Title slide, section divider                              |
| **Content** | Bullet points, two-column, numbered list, text with image |
| **Data**    | Comparison table, timeline, process flow, statistics      |
| **Visual**  | Full-image slide, quote, team/profile, icon grid          |
| **Closing** | Summary, call to action, Q\&A, thank you                  |

Some slide types include AI-generated images — Darcy creates images that match the slide content automatically.

### Color Themes

Presentations use a color theme for consistent styling. You can request a specific look:

* "Use a dark professional theme"
* "Make it blue and white to match our brand"
* "Use warm colors for the client presentation"

You can also provide custom hex colors for precise brand alignment.

### Aspect Ratio

| Ratio    | Use Case                  |
| -------- | ------------------------- |
| **16:9** | Widescreen (default)      |
| **4:3**  | Standard / legacy screens |

## Viewing

The presentation viewer embeds a preview using Microsoft Office Online, so you can page through slides directly in DarcyIQ without downloading the file. A toolbar below the preview shows the filename, slide count, and quick actions.

## Export Options

| Option            | How                                           |
| ----------------- | --------------------------------------------- |
| **Download PPTX** | Download the PowerPoint file from the toolbar |
| **Open**          | Open in a new browser tab                     |

Once downloaded, you can open and further edit the presentation in PowerPoint, Google Slides, or any `.pptx`-compatible application.


# Interactive Apps

Interactive app artifacts are live, functional mini-applications that run directly inside the artifact panel. There are two kinds: **React Apps** that Darcy generates from scratch, and **MCP UI** apps powered by your connected MCP integrations.

## React Apps

React app artifacts are self-contained components that Darcy writes and renders live. They're useful when static content isn't enough and you need interactivity — calculators, interactive forms, data explorers, mini tools, and visual simulations.

### Creating React Apps

Ask Darcy naturally:

* "Build an interactive ROI calculator"
* "Create a sortable comparison table for these products"
* "Make a visual timeline I can click through"
* "Build a kanban board with drag-and-drop"

Darcy writes a React component using Tailwind CSS for styling and renders it immediately in the artifact panel. The apps have access to a set of pre-loaded libraries including charting (Recharts), icons (Lucide), and UI components (shadcn/ui).

### Editing

Click **Edit** to open a split-pane view — React source code on the left, live preview on the right. Changes update the preview in real time. If the code has an error, Darcy can fix it automatically.

### Export

React apps can be exported as a **screenshot image** from the toolbar.

***

## MCP UI Apps

When you interact with [MCP integrations](/build/mcp-studio), some tools return rich interactive UIs instead of plain text. These are rendered as MCP UI artifacts — live interfaces that can display data, forms, and controls powered by your connected services.

MCP UI artifacts are interactive and context-aware. They can trigger tool callbacks, update in response to user actions, and pass context back into the conversation.

### Examples

* An AWS cost dashboard returned by an AWS MCP integration
* A Salesforce record viewer from a Salesforce MCP tool
* A custom form or data view built with the MCP Builder

{% hint style="info" %}
MCP UI artifacts are generated by MCP tools, not by direct user request. They appear automatically when an MCP tool returns a UI response.
{% endhint %}


# Apps

Build custom dashboard pages powered by MCP UI artifacts with DarcyIQ's Apps feature. **Create interactive, widget-based app pages that surface real-time data, tools, and visualizations** directly in your DarcyIQ navigation — perfect for operational dashboards, monitoring panels, and custom tooling.

{% hint style="success" %}
**From MCP to Dashboard in Minutes**: Turn any MCP UI artifact into a live dashboard widget, arrange multiple widgets on a single page, and share the app with your team.
{% endhint %}

## Overview

Apps let you compose one or more MCP UI artifacts into dedicated pages that appear in your DarcyIQ sidebar, giving your team instant access to the tools and data they need.

| Feature               | Capability                                      | Business Impact                               |
| --------------------- | ----------------------------------------------- | --------------------------------------------- |
| **Custom Pages**      | Create dedicated app pages in your navigation   | One-click access to key tools and data        |
| **Widget Dashboards** | Arrange multiple artifacts in a responsive grid | Unified view of related information           |
| **Flexible Layouts**  | Full, Half, and Third-width widget sizing       | Tailor the layout to your content             |
| **Drag-and-Drop**     | Reorder widgets visually                        | Prioritize what matters most                  |
| **Team Sharing**      | Share apps with configurable permissions        | Consistent dashboards across the organization |
| **Enable / Disable**  | Toggle app visibility without deleting          | Control what appears in the navigation        |

## Creating an App

{% stepper %}
{% step %}
**Open Apps** Navigate to the **Apps** section from the sidebar, then click **Create App**.
{% endstep %}

{% step %}
**Provide Details** Enter a name for your app, an optional description, and choose an icon from the built-in icon library.
{% endstep %}

{% step %}
**Select Your First Widget** Choose an MCP UI artifact from your artifact library. This becomes the initial widget displayed on the app page.
{% endstep %}

{% step %}
**Enable the App** Toggle the **Enable App** switch to make the app visible in the navigation menu. You can also leave it disabled while you build it out.
{% endstep %}

{% step %}
**Save and Customize** After creating the app, expand it in the list to add more widgets, adjust layouts, and reorder content.
{% endstep %}
{% endstepper %}

## Dashboard Widgets

Each app page is composed of one or more **widgets**, where each widget displays an MCP UI artifact. Widgets are arranged in a responsive 12-column grid.

### Adding Widgets

1. Find your app in the Apps list and click to expand it
2. Click **Add Widget**
3. Select an MCP UI artifact from the artifact library
4. The widget is added to the dashboard

### Widget Layout Options

Each widget can be sized to fit your content needs:

| Layout    | Width            | Best For                                                 |
| --------- | ---------------- | -------------------------------------------------------- |
| **Full**  | 100% of the page | Primary dashboards, detailed views, large visualizations |
| **Half**  | 50% of the page  | Side-by-side comparisons, medium-sized panels            |
| **Third** | 33% of the page  | KPI cards, compact metrics, summary widgets              |

Hover over any widget to reveal layout controls and change its size.

### Reordering Widgets

Drag and drop widgets to reorder them. Grab the drag handle that appears when you hover over a widget and move it to the desired position.

### Editing Widget Content

Click the edit button on any widget to open it in a full-screen editor where you can modify the underlying artifact content.

### Removing Widgets

Click the remove button on a widget to detach it from the app. The underlying artifact is not deleted and can be re-added later.

## Viewing an App

When you open an app from the navigation:

* **Single widget**: The artifact fills the full page height for an immersive experience
* **Multiple widgets**: Widgets are displayed in a responsive grid layout, adapting to the sizes you configured

## Sharing & Permissions

Share apps with team members to provide consistent dashboards across your organization.

| Permission | Capabilities                                       |
| ---------- | -------------------------------------------------- |
| **Owner**  | Full control — edit, share, delete, manage widgets |
| **Editor** | Modify the app and its widgets                     |
| **Viewer** | View the app (read-only)                           |

To share an app, click the **Share** button on any app you own and invite team members with the appropriate permission level.

## Managing Apps

From the Apps list, you can manage all your apps:

| Action                   | Description                                              |
| ------------------------ | -------------------------------------------------------- |
| **Create**               | Build a new app with a name, icon, and initial widget    |
| **Edit**                 | Update the app name, description, or icon                |
| **Enable / Disable**     | Toggle whether the app appears in the sidebar navigation |
| **Add / Remove Widgets** | Manage dashboard widgets from the expanded view          |
| **Share**                | Invite team members and set permission levels            |
| **Open**                 | View the live app page in a new tab                      |
| **Delete**               | Permanently remove the app (cannot be undone)            |

## Integration with Projects

Apps can be linked to projects, allowing you to associate a dashboard directly with a customer engagement or initiative. Select an app when configuring a project to give team members quick access to the relevant dashboard.

## Building MCP UI Artifacts

Apps are powered by MCP UI artifacts created in **MCP Studio**. To build new artifacts for your dashboards:

1. Navigate to **MCP Studio** from the Apps page or sidebar
2. Build or select an MCP that produces interactive UI artifacts
3. The artifacts become available in the artifact library when creating app widgets

For more on building MCPs, see the [MCP Studio documentation](/build/mcp-studio).

## Best Practices

### App Design

1. **Clear Purpose**: Each app should serve a specific function — a sales dashboard, an ops panel, a monitoring view
2. **Widget Balance**: Mix full-width detail views with half and third-width summary cards
3. **Naming Conventions**: Use descriptive names so team members can find apps quickly
4. **Gradual Build-Out**: Start with one or two widgets and expand as you identify what the team needs

### Dashboard Organization

| Practice                   | Implementation                                  | Impact                          |
| -------------------------- | ----------------------------------------------- | ------------------------------- |
| **Group Related Widgets**  | Place related metrics and tools on the same app | Faster decision-making          |
| **Use Layout Wisely**      | Full-width for primary content, thirds for KPIs | Scannable at a glance           |
| **Enable Only When Ready** | Keep apps disabled while configuring            | Clean navigation for the team   |
| **Review Permissions**     | Periodically check who has access               | Maintain security and relevance |

{% hint style="info" %}
**Pro Tip**: Start by creating MCP UI artifacts in MCP Studio, then compose them into an App for a polished dashboard experience your whole team can use.
{% endhint %}


# Command Menu

Jump to any page or search your entire workspace from one keyboard shortcut

The command menu is the fastest way to get anywhere in DarcyIQ. Press **Ctrl + K** (**⌘ + K** on Mac) from any page to open it, then either jump straight to a destination or search across everything you've created.

{% hint style="success" %}
**One shortcut, two jobs**: **Ctrl + K** takes you to any page in DarcyIQ, and it searches your meetings, projects, lists, artifacts, workflows, and tasks — without you having to decide which one you wanted first.
{% endhint %}

## Opening the Menu

| How                       | Notes                                                                        |
| ------------------------- | ---------------------------------------------------------------------------- |
| **Ctrl + K** / **⌘ + K**  | Works from anywhere in the app. Press again to close                         |
| **Top navigation button** | Shows the shortcut next to it, labeled *Jump to a page or search everything* |
| **Search icon**           | On smaller screens the button collapses to an icon                           |

## Jump To

The **Jump to** tab lists everywhere you can go, in alphabetical order. Start typing to filter, use the arrow keys to move through results, and press **Enter** to go.

Destinations cover the full product — Chat, Meetings, Projects, Lists, Lead Lists, Blueprints, Workflows, Artifact Vault, Apps, MCP Studio, Customer Intelligence, Research Reports, Scoping & Estimates, Settings and more. A few open a panel rather than a page: **Integrations** and **Automation** open their tab in the agents drawer.

{% hint style="info" %}
The list is filtered to what you have access to, so two people in the same organization may see different destinations depending on their permissions and plan.
{% endhint %}

## Search

The **Search** tab looks across your workspace rather than the app's navigation. Type a query and press **Enter**.

| Searchable          | Includes                                  |
| ------------------- | ----------------------------------------- |
| **Projects**        | Project names and descriptions            |
| **Meetings**        | Recordings, transcripts, and summaries    |
| **Workflows**       | Previous runs and their outputs           |
| **Lists**           | Lists you own or that are shared with you |
| **Artifacts**       | Anything saved to the Artifact Vault      |
| **To Do's & Tasks** | Open and completed work                   |

## Searching Within One Area

If you know roughly where the thing you want lives, you can narrow the search before you run it. This is **Tab to scope**.

{% stepper %}
{% step %}
**Highlight a destination** On the **Jump to** tab, arrow down to something searchable — Projects, Meetings, Lists, Artifacts, Workflows, or To Do's & Tasks. Rows that support it show a *search here* hint.
{% endstep %}

{% step %}
**Press Tab** The menu switches to search, limited to that area. A chip appears showing what you're scoped to, for example *in Projects*.
{% endstep %}

{% step %}
**Type your query** Only results from that area come back. Clear the chip, or press **Backspace** on an empty search box, to search everything again.
{% endstep %}
{% endstepper %}

## Keyboard Reference

| Key                      | Action                                               |
| ------------------------ | ---------------------------------------------------- |
| **Ctrl + K** / **⌘ + K** | Open or close the menu                               |
| **↑ ↓**                  | Move through results                                 |
| **Enter**                | Go to the highlighted destination, or run the search |
| **Tab**                  | Search within the highlighted destination            |
| **Backspace**            | On an empty search box, clear the scope              |
| **Esc**                  | Close the menu                                       |

## Related

* [Chat](/core-features/darcy-chat) — slash commands give you similar shortcuts inside a conversation
* [Artifact Vault](/organize/artifact-vault) — the full browsing and filtering experience for artifacts
* [Projects](/organize/projects) — where project search results take you


# Projects

Sales-to-delivery handoff and project enablement with AI-powered definitions, specs, development tracking, and team collaboration

In professional services — whether you are a system integrator, digital agency, consulting firm, or managed services provider — the biggest source of lost context happens between the sales cycle and delivery. Customer requirements, meeting notes, proposals, and relationship knowledge live in scattered tools and inboxes, and delivery teams are left to start from scratch.

**DarcyIQ Projects solve this by giving every customer engagement a single, AI-powered workspace that carries context from the first discovery call through project completion.** During the sales cycle, capture customer needs, upload RFPs, record meetings, and build a knowledge base. When the deal closes, the same project becomes the delivery workspace — the team inherits every document, meeting transcript, and requirement automatically, then layers on specs, development tracking, discussion threads, and status reporting.

{% hint style="success" %}
**Sales to Delivery in action**: Your sales team creates an "Acme Corp Cloud Migration" project, uploads the RFP, and records three discovery calls. When the deal closes, the delivery lead opens the same project, clicks **Generate** to create an AI-powered definition from all that context, breaks it into specs, connects the GitHub repo, and enables a weekly status report — zero handoff friction.
{% endhint %}

## Who Is This For?

Projects are built for the services industry and any team that manages customer engagements:

* **System Integrators** — manage cloud migrations, ERP implementations, and custom development from scoping through go-live
* **Digital Marketing Agencies** — centralize campaign briefs, creative assets, and client feedback across the engagement lifecycle
* **Consulting Firms** — organize advisory engagements with research, deliverables, and client meeting history in one place
* **Managed Services Providers** — track onboarding, ongoing operations, and quarterly business reviews per client
* **Internal Delivery Teams** — coordinate cross-functional projects with shared context and AI-assisted reporting

## Key Benefits

| Benefit                     | Description                                                                      | Business Impact                               |
| --------------------------- | -------------------------------------------------------------------------------- | --------------------------------------------- |
| **Seamless Handoff**        | Sales context — meetings, documents, requirements — flows directly into delivery | Eliminate the "starting from scratch" problem |
| **AI-Powered Definitions**  | Generate a project definition from uploaded context with one click               | Jump-start scoping and alignment in minutes   |
| **Specs with Lifecycle**    | Break definitions into detailed specs with Draft / In Review / Approved status   | Structured requirements management            |
| **Development Tracking**    | Connect GitHub repositories and review PRs with AI-generated citations           | Bridge the gap between planning and code      |
| **Team Discussion Threads** | Post updates, questions, feedback, and decisions in a shared timeline            | Replace scattered emails with a single source |
| **Unified Item Management** | Attach meetings, documents, artifacts, tasks, lists, and scoping estimates       | All deliverables organized in one place       |
| **Dashboard & Insights**    | Activity charts, definition freshness, quick actions, and getting-started guide  | Full visibility into project health           |
| **Built-in Automations**    | Auto-assign meetings and schedule weekly status reports                          | Eliminate repetitive project housekeeping     |
| **Darcy Chat Integration**  | Chat with full project context — definitions, specs, items, and knowledge base   | AI responses grounded in your project data    |

## The Project Lifecycle

Projects support the full engagement lifecycle, from the first sales conversation to project closeout:

```mermaid
graph LR
    A["Sales &<br/>Discovery"] --> B["Scoping &<br/>Proposal"]
    B --> C["Handoff to<br/>Delivery"]
    C --> D["Execution &<br/>Tracking"]
    D --> E["Review &<br/>Closeout"]
```

| Phase                    | What Happens in the Project                                                                                     |
| ------------------------ | --------------------------------------------------------------------------------------------------------------- |
| **Sales & Discovery**    | Create the project, record discovery calls (auto-assigned via meeting automation), upload RFPs and requirements |
| **Scoping & Proposal**   | Generate a project definition from accumulated context, attach scoping estimates and proposals                  |
| **Handoff to Delivery**  | Share the project with the delivery team — they inherit every document, meeting, and requirement instantly      |
| **Execution & Tracking** | Break the definition into specs, connect GitHub repos, track PR progress, post status updates via threads       |
| **Review & Closeout**    | Use the Dashboard to review activity, generate final reports with Quick Actions, archive the project            |

## How Projects Work

### Project Architecture

| Component                  | Function                                                        | Value                                         |
| -------------------------- | --------------------------------------------------------------- | --------------------------------------------- |
| **Dashboard**              | Overview stats, activity chart, insights, and quick actions     | At-a-glance project health                    |
| **Definition & Specs**     | AI-generated or manual scope documents with feedback workflow   | Living requirements that stay current         |
| **Items**                  | Linked meetings, documents, artifacts, tasks, lists, and scopes | Centralized deliverable management            |
| **Thread**                 | Typed discussion feed (updates, questions, feedback, decisions) | Persistent team communication                 |
| **Development**            | GitHub connection, PR reviews, and Cursor Cloud Agents          | Code-level traceability to project scope      |
| **App**                    | Linked dashboard app with interactive widgets                   | Visual project reporting                      |
| **Project Knowledge Base** | Dedicated AI-searchable repository for uploaded files           | Instant, project-scoped information retrieval |

## Creating and Managing Projects

### Creating a New Project

{% stepper %}
{% step %}
**Navigate to Projects** Click **Projects** in the sidebar to open the project list.
{% endstep %}

{% step %}
**Click "New Project"** Enter a project name (up to 100 characters) and an optional description (up to 500 characters).
{% endstep %}

{% step %}
**Configure the Sidebar** Once the project opens, use the sidebar to set the client, dates, assigned agent, automations, and external links.
{% endstep %}

{% step %}
**Follow the Getting Started Checklist** The Dashboard tab walks you through key setup steps: add items, create a definition, write your first spec, and start a thread.
{% endstep %}
{% endstepper %}

### Project List

The **Projects** page displays all projects you own or have been shared with. From here you can:

* **Search** projects by name
* **Create** a new project
* **Share** or **delete** projects you own
* **Open** any project to view its detail page

***

## Configuring a Project

The left sidebar has two tabs — **Info** and **Links** — that let you configure project metadata and external references.

### Info Tab

| Field           | Description                                                                                                 |
| --------------- | ----------------------------------------------------------------------------------------------------------- |
| **Name**        | Project name displayed in the header and list. Click the pencil icon to edit.                               |
| **Description** | Brief summary of the project. Click the pencil icon to edit.                                                |
| **Client**      | CRM client name. If Salesforce is connected, search and link a Salesforce account directly.                 |
| **Start / End** | Project timeline dates stored in the project metadata.                                                      |
| **Agent**       | Assign a DarcyIQ agent to the project. This agent is used for scheduled automations and contextual actions. |

### Automations

Two built-in automations are available in the sidebar:

| Automation               | What It Does                                                                                                                                                                            |
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Meeting Auto-assign**  | When a meeting completes whose name contains the client or project name **and** has external attendees, it is automatically added to the project.                                       |
| **Weekly Status Report** | Every Friday at 6 AM (your timezone), an agent generates a comprehensive 7-day status report covering accomplishments, decisions, risks, action items, and more — and emails it to you. |

Toggle each automation on or off with one click.

### MCP Integration

The sidebar also displays **MCP Install Actions** — pre-built configurations to install the project as an MCP server in Claude Code, Cursor, VS Code, or Kiro. This lets external coding tools access your project's knowledge base and context.

### Links Tab

Add external links (label + URL) to reference tools like Jira boards, Confluence spaces, shared drives, or any other resource your team needs quick access to.

***

## Sharing and Permissions

Click the **Share** button in the project header to invite team members and control access.

| Permission Level | Capabilities                                        | Use Case                           |
| ---------------- | --------------------------------------------------- | ---------------------------------- |
| **Owner**        | Full control — edit, share, configure, delete       | Project lead or account owner      |
| **Editor**       | Edit content, manage items, post threads, configure | Core delivery team members         |
| **Viewer**       | Read-only access to all project content             | Stakeholders, reviewers, observers |

Share with individual users or with [Groups](/settings-and-configuration/groups) for bulk access management.

***

## Darcy Chat Integration

Every project has a **Darcy Chat** button in the header that opens a contextual AI chat panel. Chat is automatically scoped to the project's knowledge base, definition, specs, and items so that AI responses are grounded in your project data.

The Dashboard tab also provides **Quick Actions** — preset prompts that open Darcy Chat with a specific task:

* Create a sales-to-delivery handoff
* Write a project status update
* Draft a meeting agenda
* Summarize all meeting notes
* Identify risks and blockers
* Summarize the project scope
* Write a stakeholder email update
* Review and improve specs

***

## Use Cases

### System Integrator — Cloud Migration

A cloud consulting firm wins a multi-phase AWS migration. The sales team creates the project during the sales cycle, uploading the RFP and recording three discovery calls. When the deal closes, the delivery lead opens the project, generates a definition from the accumulated context, breaks it into per-workload specs, connects the GitHub repo, and enables the weekly status report. The entire team — from solution architects to developers — works from the same project throughout the engagement.

### Digital Agency — Campaign Engagement

An agency creates a project for a new brand campaign. Creative briefs, competitive research, and client feedback are uploaded to the knowledge base. Meeting auto-assign captures every client call. As the campaign progresses, the team tracks deliverables in Items, discusses creative direction in Threads, and uses Quick Actions to generate client status emails before each check-in.

### Consulting Firm — Advisory Engagement

A management consulting team creates a project for a digital transformation assessment. Discovery meeting transcripts, industry reports, and the statement of work are added during sales. At kickoff, the delivery team generates a definition, creates specs for each assessment area, and uses the Dashboard to monitor progress. When the engagement wraps, they generate a final handoff document using Darcy Chat.

***

## Best Practices

### Project Organization

1. **Create projects at the start of the sales cycle** — not after the deal closes. This ensures discovery meetings, documents, and context are captured from day one and flow directly into delivery.
2. **Naming Convention**: Use a consistent format like "\[Client] - \[Engagement Type] - \[Year]"
3. **Client Field**: Set the client name early so meeting auto-assign matches correctly
4. **Initial Setup**: Upload background materials and set dates before inviting team members
5. **Regular Updates**: Keep the definition and specs current — the Dashboard tracks freshness over 30 days
6. **Access Reviews**: Periodically review shared users and permission levels

### Knowledge Base Management

| Practice              | Recommendation                                          |
| --------------------- | ------------------------------------------------------- |
| **Upload Early**      | Add all reference materials before the team starts work |
| **Descriptive Names** | Use searchable file names for better AI comprehension   |
| **Version Control**   | Upload latest versions and remove outdated ones         |
| **Use Quick Upload**  | The KB upload button in Items supports drag-and-drop    |

### Smooth Handoffs

* **Share early**: Add delivery team members to the project before the formal handoff so they can review context at their own pace
* **Use the handoff Quick Action**: The Dashboard includes a "Create a Sales to Delivery Handoff" prompt that generates a structured handoff document from all project context
* **Thread the transition**: Post a Decision thread when the handoff is complete, summarizing key expectations and next steps

### Team Collaboration

* **Onboarding**: Share the project with new team members — they instantly gain access to all items, threads, and the knowledge base
* **Thread Types**: Use the correct thread type (Update, Question, Feedback, Decision) so the team can filter by category
* **Quick Actions**: Use Dashboard quick actions to generate recurring deliverables like status updates and meeting agendas

{% hint style="info" %}
**Pro Tip**: Create a project the moment a customer engagement begins — even during early discovery. Enable meeting auto-assign so every client conversation is captured automatically. When the deal closes and delivery starts, the team inherits a complete knowledge base with zero handoff friction.
{% endhint %}

## Next Steps

| Goal                                     | Documentation                                                   |
| ---------------------------------------- | --------------------------------------------------------------- |
| Create and manage project definitions    | [Definition & Specs](/organize/projects/definition-and-specs)   |
| Attach and organize project resources    | [Project Items](/organize/projects/project-items)               |
| Use the dashboard and discussion threads | [Dashboard & Threads](/organize/projects/dashboard-and-threads) |
| Connect GitHub and track development     | [Development](/organize/projects/development)                   |
| Run AI-led discovery interviews          | [Interviews](/organize/projects/interviews)                     |
| Engage end-customers with a project      | [Project Portal](/organize/projects/portal)                     |
| Learn about AI agents                    | [Agents](/core-features/agents)                                 |
| Configure knowledge bases                | [Knowledge Bases](/additional-features/knowledge-bases)         |


# Definition & Specs

The **Definition** tab is where you capture and maintain the scope, goals, and detailed requirements for your project. A project definition is the high-level overview, while specs break it down into discrete, trackable deliverables — each with its own lifecycle status.

{% hint style="success" %}
**From documents to definition in seconds**: Upload your RFP, SOW, and meeting transcripts to the project, then click **Generate** — Darcy will analyze everything and produce a structured project definition automatically.
{% endhint %}

## Project Definition

### What Is a Project Definition?

A project definition is a living document that captures the project's goals, scope, stakeholders, and context. It serves as the single source of truth for what the project is about and keeps everyone aligned. Definitions are written in Markdown and saved automatically as you edit.

### Generating a Definition with AI

If your project has items in its knowledge base (uploaded documents, meeting transcripts, etc.), Darcy can generate a definition for you.

{% stepper %}
{% step %}
**Open the Definition Tab** Navigate to the project and click the **Definition** tab. If no definition exists yet, you will see the empty-state options.
{% endstep %}

{% step %}
**Click "Generate a project definition"** Darcy begins analyzing your project's knowledge base and items using server-sent events (SSE). You will see:

* **Tool calls** — each research step Darcy performs (e.g., searching documents, summarizing meetings)
* **Streaming Markdown** — the definition appears in real time as it is generated
  {% endstep %}

{% step %}
**Review and Edit** Once generation is complete, the definition opens in the Markdown editor. Review the output, make any adjustments, and your changes save automatically.
{% endstep %}
{% endstepper %}

### Writing a Definition Manually

Prefer to write from scratch? Click **"Write manually"** on the empty state to open a blank Markdown editor with a suggested template:

* **Goals** — what the project aims to achieve
* **Scope** — what is and is not included
* **Stakeholders** — who is involved and their roles

All changes save automatically.

***

## Specs

### What Are Specs?

Specs are detailed sub-documents that break a project definition into discrete, trackable deliverables. Each spec focuses on a specific feature, workstream, or requirement and follows a structured template with sections for context, users, solution overview, features and acceptance criteria, out-of-scope items, commitments, and success metrics.

While the **definition** answers "what is this project?", each **spec** answers "what exactly are we building for this part?"

### Spec Lifecycle Statuses

Every spec has a status that tracks where it is in the review process:

| Status         | Meaning                                            |
| -------------- | -------------------------------------------------- |
| **Draft**      | Work in progress — still being written or refined  |
| **In Review**  | Complete and shared with stakeholders for feedback |
| **Approved**   | Finalized and accepted — ready for implementation  |
| **Superseded** | Replaced by a newer version or no longer relevant  |

Change a spec's status from the dropdown next to its name in the left navigation.

### Creating a Spec

{% stepper %}
{% step %}
**Open the Definition Tab** Navigate to the project's Definition tab. The left panel lists the project definition ("Overview") and all existing specs.
{% endstep %}

{% step %}
**Click the + Button** At the top of the specs list, click the **+** button. A new spec is created with the structured template pre-filled.
{% endstep %}

{% step %}
**Edit the Spec** The template includes sections for Context, Users, Solution Overview, Features & Functionality (with acceptance criteria), Out of Scope, Commitments, and Success Metrics. Fill in each section. All changes save automatically.
{% endstep %}

{% step %}
**Set the Status** Use the status dropdown to move the spec through its lifecycle as it progresses.
{% endstep %}
{% endstepper %}

### Searching and Managing Specs

* **Search**: Use the search bar in the left panel to filter specs by name
* **Navigate**: Click any spec to open it in the editor
* **Delete**: Click the delete button on a spec to remove it (with confirmation)

***

## Inline Feedback

Team members can leave feedback on specific sections of a definition or spec without leaving the page.

### Leaving Feedback

1. **Select text** in the definition or spec editor
2. A **Comment** action appears in the selection toolbar
3. Click it to open the comment popover and write your feedback
4. The feedback is posted as a **feedback thread** linked to the specific section heading

### Reviewing Feedback

* **Feedback badges** appear next to section headings that have unresolved feedback
* Click a badge to see the feedback and the commenter
* **Acknowledge** feedback to mark it as resolved, or **Decline** if it does not apply
* Use the **floating feedback list button** to see all unresolved feedback across the document and jump to each section

Feedback threads are also visible in the project's **Thread** tab, where they can be filtered by type.

***

## PR Citations

When your project is connected to GitHub (see [Development](/organize/projects/development)), Darcy can create semantic links between pull requests and sections of your definition or specs.

### How Citations Work

* After PRs are reviewed, Darcy analyzes their content and maps them to relevant headings in your definition and specs
* **Citation badges** appear next to headings that have linked PRs
* Click a badge to see which PRs reference that section, with direct links to the PR detail panel

### Stale Citations

If the definition or spec content has changed since citations were last computed, badges appear as **stale**. Click the **Recompute Citations** button on the Development tab to refresh them.

### Why Citations Matter

Citations create traceability from requirements to implementation. When a stakeholder asks "has this been built?", you can see exactly which PRs address each section of the spec.

***

## Launching a Cursor Agent from a Spec

If your organization has both the **Cursor Cloud Agents** feature and a **GitHub connection** configured for the project, an additional action appears in the spec toolbar:

{% stepper %}
{% step %}
**Open a Spec** Navigate to any spec in the Definition tab.
{% endstep %}

{% step %}
**Click the Cursor Agent Button** A dialog opens showing a plan prompt derived from the spec content.
{% endstep %}

{% step %}
**Customize and Launch** Optionally add extra instructions and select a model. Click **Launch** to start the Cursor agent, then navigate to the Development tab to monitor progress.
{% endstep %}
{% endstepper %}

This bridges the gap between requirements and code — write a spec, then let an AI coding agent begin implementation.

***

## Best Practices

| Practice                          | Recommendation                                                                                |
| --------------------------------- | --------------------------------------------------------------------------------------------- |
| **Generate first, refine second** | Use AI generation to get a solid starting point, then edit by hand for precision              |
| **Keep definitions current**      | The Dashboard tracks definition freshness — update within 30 days to avoid staleness warnings |
| **Break into specs early**        | Don't wait for the definition to be perfect — create specs for known deliverables right away  |
| **Use feedback, not email**       | Leave inline feedback on specific sections instead of sending separate messages               |
| **Set status consistently**       | Move specs through Draft → In Review → Approved so the team knows what's finalized            |
| **Review citations regularly**    | After a sprint, recompute citations to see which specs have implementation coverage           |

{% hint style="info" %}
**Pro Tip**: When creating your first spec, use the Dashboard's "Create your first spec" checklist item — it opens Darcy Chat with a prompt that generates a spec based on your project definition and context.
{% endhint %}


# Project Items

The **Items** tab is the central hub for all resources attached to a project. Items include meetings, knowledge base documents, artifacts, tasks, lists, and scoping estimates — everything your team needs to deliver the engagement.

{% hint style="success" %}
**One workspace, every deliverable**: Attach client meeting recordings, upload RFP documents to the knowledge base, link scoping estimates and task lists, and manage artifacts — all searchable and filterable from a single table.
{% endhint %}

## Overview

Items are resources linked to a project that build its knowledge base and track deliverables. Each item type has its own assignment flow and behavior, but they all appear together in a unified table with grouping, filtering, and bulk operations.

## Item Types

| Item Type             | Description                                                             | How to Add                                                     | Click Behavior                             |
| --------------------- | ----------------------------------------------------------------------- | -------------------------------------------------------------- | ------------------------------------------ |
| **Meetings**          | Recorded meetings with transcripts, summaries, and action items         | Assign from the **+** popover or enable meeting auto-assign    | Opens the meeting detail page in a new tab |
| **Knowledge Base**    | Documents uploaded directly to the project's dedicated knowledge base   | Click the **Upload** button to drag-and-drop or select files   | Opens the document viewer panel            |
| **Artifacts**         | Generated documents, diagrams, and deliverables from Darcy Chat or Apps | Created through Darcy Chat or workflows; linked to the project | Opens an editable artifact viewer panel    |
| **Tasks**             | Agent tasks and to-do items created from the Agents drawer              | Click **+** to open the Agents drawer and create a task        | Opens the task detail in the Agents drawer |
| **Lists**             | Structured AI-powered data tables (see [Lists](/organize/lists))        | Assign from the **+** popover                                  | Opens the list page in a new tab           |
| **Scoping Estimates** | AI-powered project scopes and LOE estimates                             | Assign from the **+** popover                                  | Opens the scoping page in a new tab        |

***

## Adding Items

### Assigning Meetings

1. Click the **+** button in the Meetings section header
2. A popover opens with a scrollable list of available meetings
3. Use the **"Only mine"** filter to show only meetings you recorded
4. Select one or more meetings and they are immediately linked to the project

Alternatively, enable the **Meeting Auto-assign** automation in the project sidebar to capture client meetings automatically as they complete.

### Uploading Knowledge Base Documents

1. Click the **Upload** button in the Knowledge Base section
2. Drag and drop files or click to browse — many file types are supported (PDF, Word, Excel, PowerPoint, text, and more)
3. Files are uploaded directly to the project's dedicated knowledge base and become available for AI-powered search

{% hint style="info" %}
Deleting a knowledge base document removes it from the project's knowledge base entirely, not just from the items list.
{% endhint %}

### Assigning Lists

1. Click the **+** button in the Lists section header
2. A popover shows available lists that are not yet assigned to the project
3. Select one or more lists to link them

### Assigning Scoping Estimates

1. Click the **+** button in the Scoping section header
2. A popover shows available scoping estimates
3. Use the **"Only editable"** filter to show only scopes you have permission to modify
4. Select one or more estimates to link them

### Adding Tasks

1. Click the **+** button in the Tasks section header
2. The **Agents drawer** opens to the Tasks tab
3. Create a new task or submit a task to an agent
4. When the drawer closes, the items list refreshes automatically

### Working with Artifacts

Artifacts are typically created through Darcy Chat or workflow outputs. Once created, they appear in the project's items list and can be viewed and edited in a floating panel directly from the Items tab.

***

## Toolbar Features

The Items toolbar provides several controls for organizing and navigating your items:

| Control               | Description                                                                               |
| --------------------- | ----------------------------------------------------------------------------------------- |
| **Search**            | Filter items across all types by name or title                                            |
| **Group By**          | Group items by **Type** (default), **Timeline**, or **None** (flat list)                  |
| **Filter Chips**      | Toggle visibility of specific item types (Meetings, KB, Artifacts, Tasks, Lists, Scoping) |
| **Collapse / Expand** | Collapse or expand all groups at once                                                     |

***

## Bulk Operations

Select multiple items for batch operations:

1. **Click** a row to select it
2. **Shift-click** another row to select a range
3. A batch action bar appears with the option to **Remove** all selected items from the project

For knowledge base documents, batch removal deletes the documents from the knowledge base. For all other item types, batch removal unlinks them from the project without deleting the underlying resource.

***

## Best Practices

| Practice                       | Recommendation                                                                                            |
| ------------------------------ | --------------------------------------------------------------------------------------------------------- |
| **Upload materials early**     | Add all reference documents to the knowledge base before generating a definition or sharing with the team |
| **Use grouping**               | Group by Type to quickly find specific resources; switch to Timeline for a chronological view             |
| **Enable auto-assign**         | Turn on meeting auto-assign so client meetings are captured without manual effort                         |
| **Use descriptive file names** | Clear file names improve AI search results within the knowledge base                                      |
| **Clean up regularly**         | Remove outdated items to keep the project focused and improve AI response quality                         |
| **Leverage filter chips**      | When working on a specific area, filter to just that item type to reduce visual clutter                   |

{% hint style="info" %}
**Pro Tip**: Upload all background materials to the knowledge base before clicking "Generate" on the Definition tab. The more context Darcy has, the better the generated definition will be.
{% endhint %}


# Dashboard & Threads

The **Dashboard** tab gives you an at-a-glance view of project health, while the **Thread** tab provides a persistent discussion feed where the team posts updates, asks questions, shares feedback, and records decisions.

{% hint style="success" %}
**Start your day on the Dashboard**: Check the activity chart for the past two weeks, review unresolved feedback, open any Quick Action to generate a status update or meeting agenda — all without leaving the project.
{% endhint %}

## Dashboard

The Dashboard is the first thing you see when you open a project. It combines stats, insights, recent activity, and AI-powered quick actions into a single view.

### Getting Started Checklist

When you first create a project, the Dashboard shows a **Getting Started** checklist to guide you through initial setup. The checklist is visible only to editors and disappears once all steps are complete.

| Step                            | Description                                            | Action                                       |
| ------------------------------- | ------------------------------------------------------ | -------------------------------------------- |
| **Add project items**           | Attach meetings, documents, tasks, or other items      | Navigates to the Items tab                   |
| **Create a project definition** | Describe your project scope, goals, and context        | Navigates to the Definition tab              |
| **Create your first spec**      | Add a detailed spec to capture requirements or designs | Opens Darcy Chat with a spec creation prompt |
| **Start a discussion thread**   | Post an update, question, or decision for your team    | Navigates to the Thread tab                  |

A progress bar tracks how many steps you've completed.

### Project Overview

A four-panel card (bento layout) summarizes the current state of the project. Click any panel to navigate to its tab.

| Panel          | Shows                                                                                           |
| -------------- | ----------------------------------------------------------------------------------------------- |
| **Definition** | Whether a definition exists (Active / Not started)                                              |
| **Specs**      | Total spec count with breakdown by status (Draft, In Review, Approved, Superseded)              |
| **Threads**    | Total thread count with breakdown by type, plus count of unresolved feedback                    |
| **Items**      | Total item count with breakdown by type (Meetings, Documents, Artifacts, Tasks, Lists, Scoping) |

### Activity Chart

A **14-day stacked area chart** shows project activity over time. Each data series represents a different category:

* **Threads** — new thread posts per day
* **Meetings**, **Artifacts**, **Tasks**, **Lists**, **Scoping** — items added per day

Hover over the chart for daily tooltips. The chart helps you spot quiet periods and track engagement across the team.

### Insights

Three insight cards sit below the overview:

| Card                     | What It Shows                                                                                                                                                 |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Team**                 | Number of shared users, avatar row of team members (with tooltips showing name and role), and a "View team" link that opens the share panel                   |
| **Meetings**             | Count of linked meetings, the next upcoming meeting date, how many days since the last meeting, and a link to open the most recent meeting                    |
| **Definition Freshness** | Whether the definition and specs have been updated within the last 30 days. Stale content is flagged with a warning — click to navigate to the Definition tab |

### Recent Activity

A feed of the most recent thread entries with:

* Author name (or "Darcy" for agent-generated threads)
* Thread type badge
* Timestamp
* Markdown content preview (truncated to two lines)

Click any entry to navigate to the Thread tab.

### Quick Actions

On desktop, a sidebar of **eight preset prompts** appears to the right of the dashboard content. Click any action to open Darcy Chat with the corresponding prompt:

| Quick Action                            | What It Generates                                                      |
| --------------------------------------- | ---------------------------------------------------------------------- |
| **Create a Sales to Delivery Handoff**  | Handoff document with expectations, deliverables, timelines, and risks |
| **Write a project status update**       | Summary of progress, blockers, and upcoming priorities                 |
| **Draft a meeting agenda**              | Agenda with topics, decisions, action items, and time allocations      |
| **Summarize all meeting notes**         | Consolidated summary of key decisions and action items                 |
| **Identify project risks and blockers** | Analysis of definition, specs, and threads for potential issues        |
| **Summarize the project scope**         | Concise stakeholder-ready scope overview                               |
| **Write a stakeholder email update**    | Professional email with status, milestones, and attention items        |
| **Review and improve a spec**           | Gap analysis across all specs with improvement suggestions             |

***

## Thread

The Thread tab provides a persistent, typed discussion feed for the project. Threads replace scattered emails and Slack messages with a centralized, searchable record of team communication.

### Thread Types

Every thread post is tagged with a type so the team can filter and find what they need:

| Type         | Purpose                                                                                     | Example                                             |
| ------------ | ------------------------------------------------------------------------------------------- | --------------------------------------------------- |
| **Update**   | Share progress, milestones, or status changes                                               | "Completed the database migration to staging today" |
| **Question** | Ask the team for input or clarification                                                     | "Which authentication provider should we use?"      |
| **Feedback** | Provide inline comments on the definition or specs (also created via the feedback workflow) | "Section 3 needs more detail on error handling"     |
| **Decision** | Record a decision that was made, with context                                               | "Decided to use PostgreSQL for the primary store"   |

### Composing a Thread

1. Click inside the text area at the top of the Thread tab
2. Select a **thread type** chip (Update, Question, Feedback, or Decision)
3. Write your post in the text area
4. Click **Post**

Posts support rich text and are rendered as Markdown.

### Filtering and Searching

| Control          | Description                                                    |
| ---------------- | -------------------------------------------------------------- |
| **Search**       | Filter threads by content text                                 |
| **Type toggles** | Show or hide specific thread types                             |
| **Date range**   | Filter to All time, Last 7 days, Last 30 days, or Last 90 days |

Filters are applied in combination and update results in real time.

### Timeline View

Threads are displayed in a **day-grouped timeline** — each day is a collapsible section showing all posts from that date. Each thread entry displays:

* **Author** — user name or "Darcy" for agent-generated posts
* **Type badge** — color-coded thread type
* **Source indicator** — distinguishes between user and agent posts
* **Definition/spec metadata** — if the thread is feedback linked to a specific section
* **Resolved badge** — for feedback threads that have been acknowledged or declined

### Editing and Deleting

* **Your own posts**: Click a thread to open it in a floating panel with a rich text editor. Make changes and save, or delete the post with confirmation.
* **Others' posts**: View in read-only mode in the floating panel.

### Connection to Definition Feedback

When someone leaves inline feedback on the Definition or Specs tab (using the text selection comment workflow), a **feedback thread** is automatically created and appears in the Thread tab. These threads include metadata about which section heading the feedback references.

***

## Best Practices

| Practice                          | Recommendation                                                                                          |
| --------------------------------- | ------------------------------------------------------------------------------------------------------- |
| **Check the Dashboard weekly**    | Use the activity chart and insights to spot stale content, quiet periods, or unresolved feedback        |
| **Use Quick Actions for reports** | Generate status updates and meeting agendas directly from the Dashboard instead of writing from scratch |
| **Tag thread types correctly**    | Use Decision for decisions, Question for questions — this makes filtering reliable over time            |
| **Keep threads actionable**       | Include next steps or mention team members when posting updates                                         |
| **Review freshness warnings**     | When the Dashboard flags stale definitions or specs, schedule time to update them                       |

{% hint style="info" %}
**Pro Tip**: Use the "Weekly Status Report" automation in the sidebar to have Darcy generate and email a comprehensive status update every Friday. You can also trigger one on demand from the Quick Actions panel.
{% endhint %}


# Development

The **Development** tab bridges the gap between project requirements and code. Connect your GitHub repositories, review pull requests with AI-powered analysis, and track which PRs implement which parts of your definition and specs.

{% hint style="success" %}
**Requirements-to-code traceability**: Connect a GitHub repo, let Darcy review your PRs, then compute citations to see exactly which sections of your definition and specs have been implemented — and which haven't.
{% endhint %}

## GitHub Connection

Before you can use PR Reviews, you need to connect a GitHub account and select repositories.

### Connecting GitHub

{% stepper %}
{% step %}
**Open Development Settings** On the Development tab, click **Connect GitHub** (or the settings gear icon if you're reconfiguring). This opens the GitHub connection dialog.
{% endstep %}

{% step %}
**Authenticate with GitHub** Click **Connect & Discover** to open a GitHub OAuth popup. Sign in and authorize the DarcyIQ GitHub App. After authorization, the dialog detects your GitHub App installations.
{% endstep %}

{% step %}
**Select an Installation** If you have multiple GitHub App installations (e.g., personal account and organization), choose the one that contains the repositories you want to connect.

If you don't see the installation you need, click **New Installation** to install the GitHub App on another account or organization. The dialog will detect the new installation automatically after you complete the setup.

Alternatively, use the **Manual Setup** option and enter an installation ID directly.
{% endstep %}

{% step %}
**Select Repositories** A list of available repositories from the selected installation appears. Check the repositories you want to link to this project. Each repository shows its name and default branch.
{% endstep %}

{% step %}
**Configure Author Filter (Optional)** Toggle on the author filter to limit which PR authors are included in reviews. For each selected repository, a collaborator list is loaded from GitHub. Check the authors whose PRs should be reviewed — unchecked authors' PRs are excluded from review.
{% endstep %}

{% step %}
**Save** Click **Save** to store the connection. The Development tab will begin showing PR reviews for the selected repositories.
{% endstep %}
{% endstepper %}

### Managing the Connection

| Action                   | Description                                                                                              |
| ------------------------ | -------------------------------------------------------------------------------------------------------- |
| **Change repositories**  | Open the settings dialog and update your repository selection                                            |
| **Update author filter** | Toggle the filter on or off, and add or remove authors per repository                                    |
| **Disconnect**           | Click **Disconnect** in the settings dialog to remove the GitHub connection entirely (with confirmation) |
| **View configuration**   | A summary in the dialog shows who configured the connection and when                                     |

***

## PR Reviews

Once GitHub is connected, the **PR Reviews** sub-tab shows a list of pull requests from your linked repositories, along with Darcy's automated review analysis.

### PR Review List

The PR list includes:

* **Search** — filter PRs by title or number
* **Pagination** — navigate through pages of PRs
* **Status chips** for each PR:

| Chip              | Meaning                                              |
| ----------------- | ---------------------------------------------------- |
| **Merged**        | The PR was merged into the default branch            |
| **Closed**        | The PR was closed without merging                    |
| **Review posted** | Darcy has completed its automated review of this PR  |
| **Quality score** | A numeric score assessing the PR's quality           |
| **Helpful**       | The team rated Darcy's review as helpful (thumbs up) |
| **Cited**         | This PR appears in definition or spec citations      |

### PR Detail Panel

Click any PR to open a detail panel showing:

* **Full PR information** — title, number, repository, author, branches, merge status, dates
* **Darcy's review** — the AI-generated analysis in Markdown, including code review comments and suggestions
* **Direct link** — open the PR on GitHub
* **Feedback** — rate Darcy's review with thumbs up or thumbs down; feedback history is visible below

### Providing Feedback

Feedback helps improve Darcy's review quality over time:

1. Open a PR detail panel
2. Click **thumbs up** if the review was helpful, or **thumbs down** if it wasn't
3. Your vote and a timestamp are recorded and visible in the feedback history

***

## PR Citations

Citations create semantic links between pull requests and sections of your project definition and specs.

### Computing Citations

1. Click the **Compute Citations** button on the PR Reviews sub-tab
2. Darcy analyzes all reviewed PRs and maps them to relevant headings in your definition and specs
3. Citation badges appear next to PR entries in the list (showing "Cited") and next to headings in the Definition tab

### Recomputing Citations

If your definition or specs change after citations are computed, they become **stale**. A banner appears prompting you to recompute. Click **Recompute** to refresh all citations based on the current content.

### Using Citations

* On the **Development tab**: PRs with citations show a "Cited" badge, making it easy to see which PRs implement requirements
* On the **Definition tab**: Section headings show citation badges linking to the specific PRs that address them
* Click any citation badge to open the referenced PR in the detail panel

***

## Best Practices

| Practice                              | Recommendation                                                                                  |
| ------------------------------------- | ----------------------------------------------------------------------------------------------- |
| **Connect GitHub early**              | Set up the GitHub connection when creating the project so PR reviews begin accumulating         |
| **Use author filters**                | Filter out bot accounts and external contributors to focus reviews on your team's PRs           |
| **Recompute citations after sprints** | After merging a batch of PRs, recompute citations to update traceability between specs and code |
| **Provide feedback on reviews**       | Rate Darcy's PR reviews with thumbs up/down to improve review quality over time                 |
| **Keep specs up to date**             | Accurate specs lead to better citation results and more useful traceability                     |

{% hint style="info" %}
**Pro Tip**: After connecting GitHub, enable the author filter to include only your delivery team members. This keeps the PR review list focused on relevant PRs and avoids noise from dependency bots or unrelated contributors.
{% endhint %}


# Interviews

AI-led discovery interviews that collect structured insights from participants over text or voice, then turn each conversation into a discovery document

**Interviews** let an Interview Agent run AI-led discovery conversations with people outside DarcyIQ — customers, stakeholders, end users, or prospects. You define what the interview should cover, publish a shareable link, and the agent conducts each conversation over **text or voice**. Every completed session is automatically turned into a structured **discovery document** you can read, edit, and feed back into the project.

{% hint style="success" %}
**Discovery at scale**: Instead of scheduling ten stakeholder calls, publish one interview link. Each participant joins on their own time, the AI Agent walks them through your topics over text or voice, and you get ten structured discovery documents — without booking a single meeting.
{% endhint %}

Interviews live inside a project and appear as the **Interviews** tab on the project detail page.

## Who Is This For?

Interviews are built for any team that needs to gather structured input from many people without manual note-taking:

* **System Integrators & Consultants** — run discovery interviews with client stakeholders before scoping an engagement
* **Product Teams** — collect structured feedback from end users and customers
* **Pre-Sales / Solutions Teams** — capture requirements from multiple stakeholders in parallel
* **Customer Success** — gather onboarding context or quarterly review input
* **Research Teams** — conduct repeatable, consistent interviews at scale

## Key Benefits

| Benefit                      | Description                                                                                        | Business Impact                                               |
| ---------------------------- | -------------------------------------------------------------------------------------------------- | ------------------------------------------------------------- |
| **AI-Led Conversations**     | The Interview Agent asks your questions, follows up naturally, and keeps the conversation on track | Consistent, high-quality interviews without a human moderator |
| **Text or Voice**            | Participants choose to type their answers or just talk (Amazon Nova Sonic voice)                   | Lower friction and higher completion rates                    |
| **Structured Topics**        | Define topics and questions; the agent ticks each one off as it's covered                          | Comparable, structured results across participants            |
| **Self-Serve Link**          | Publish a password-protected public link participants join on their own schedule                   | Eliminate scheduling overhead                                 |
| **Automatic Discovery Docs** | Each completed session produces an editable discovery document                                     | Insights ready to use, not raw transcripts                    |
| **Project Knowledge**        | Optionally arm the agent with the project's knowledge bases and MCP tools                          | Context-aware questions grounded in your data                 |
| **Templates**                | Scaffold a starter set of topics and questions from a template                                     | Launch a well-structured interview in minutes                 |

## How Interviews Work

```mermaid
graph LR
    A["Create<br/>Interview"] --> B["Configure<br/>(3 steps)"]
    B --> C["Publish &<br/>Share Link"]
    C --> D["Participants<br/>Join (text/voice)"]
    D --> E["Sessions &<br/>Discovery Docs"]
```

| Component              | Function                                                      |
| ---------------------- | ------------------------------------------------------------- |
| **Interview**          | A configured discovery conversation that belongs to a project |
| **Interview Agent**    | The project's assigned agent that conducts the conversation   |
| **Welcome Message**    | The greeting participants see before they start               |
| **Topics & Questions** | The structured checklist the agent walks through              |
| **Public Link**        | The password-protected URL participants use to join           |
| **Session**            | One participant's interview run                               |
| **Discovery Document** | The structured artifact generated from a completed session    |

***

## Creating an Interview

{% stepper %}
{% step %}
**Open the Interviews tab** From the project detail page, click the **Interviews** tab.
{% endstep %}

{% step %}
**Click "New Interview"** A new draft interview is created and opens to its configuration page. You can rename it at any time.
{% endstep %}

{% step %}
**Configure the three steps** Work through Interview Details, the User Welcome Message, and Topics & Questions (see below). Changes save automatically.
{% endstep %}

{% step %}
**Publish** Once the welcome message and at least one question are in place, click **Publish** to generate the public link and password.
{% endstep %}
{% endstepper %}

***

## Configuring an Interview

The configuration page is a three-step wizard. You can jump between steps freely, and everything **saves automatically** — there is no manual save button.

### Step 1 — Interview Details

| Field                         | Description                                                                                                                                                                  |
| ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Interview Name**            | Internal label shown in the project's interview list and the host UI. Not shown to participants.                                                                             |
| **Interview Description**     | Optional internal summary of what the interview is about.                                                                                                                    |
| **Access Password**           | The password participants must enter to join. Auto-generated; copy it with the copy button or edit it.                                                                       |
| **Include Project Knowledge** | When on, the Interview Agent's knowledge bases and MCP tools are attached to the interview chat so it can answer with project context. When off, the agent runs prompt-only. |

### Step 2 — User Welcome Message

A short **Markdown** greeting shown to the participant on the text or voice screen before the conversation starts. Use it to set expectations, explain the purpose, and thank them for their time.

{% hint style="info" %}
The welcome message is **required to publish**. It's the only host-authored copy participants see before they begin, so keep it warm and clear.
{% endhint %}

### Step 3 — Topics & Questions

Define the structured checklist the Interview Agent walks through. Each **topic** groups a set of **questions**, and the agent covers them one by one, asking natural follow-ups as needed.

* **Add topics and questions** manually, reorder them with the up/down controls, and remove any you don't need.
* **Topic description** (optional) gives the agent extra context about what to keep in mind while exploring that area.
* **Templates** — click **Templates** to scaffold a starter set of topics and questions. Some templates include a few quick fields to fill in (for example, a product or company name) that are substituted into the generated questions. Picking a template replaces your current topics, so you'll be asked to confirm if you've already added some.
* **Start blank** — write everything yourself instead of using a template.

At least one topic with at least one question is **required to publish**.

{% hint style="info" %}
The wizard flags steps that still need content with an amber **"Required to publish"** marker, so you can see what's blocking publish at a glance — without having to click Publish first.
{% endhint %}

***

## Publishing & Inviting Participants

### Publishing

Click **Publish** (in the header or from the final wizard step). Publishing generates a public link and confirms the access password. The **Interview published** dialog gives you:

* the **public link** participants follow,
* the **access password**,
* a ready-to-send **invitation message** that bundles both, and
* an **Invite a participant** button that opens the invite dialog.

### Sending Invites by Email

Click **Send Invites** (or **Invite a participant**) to open the invite dialog. Paste one or more email addresses — separated by commas, spaces, or new lines — and each recipient receives a branded email containing the public link and password. The interview must be **published** before you can send invites.

### Status & Lifecycle

| Status        | Meaning                                                                  |
| ------------- | ------------------------------------------------------------------------ |
| **Draft**     | Being configured; not yet joinable. The public link doesn't work yet.    |
| **Published** | Live and accepting participants.                                         |
| **Closed**    | No longer accepting new participants. You can **Republish** at any time. |

Use **Unpublish** in the header to close a live interview. In-progress sessions can still finish, and you can republish later.

***

## The Participant Experience

Participants never see the project, the host UI, or your internal interview name — just a clean, branded interview page.

{% stepper %}
{% step %}
**Open the link** The participant follows the public link.
{% endstep %}

{% step %}
**Enter details** They provide their name, email, and the access password to join. Each participant can join **once**.
{% endstep %}

{% step %}
**Choose a mode** They pick **Text** (type answers in a chat) or **Voice** (talk to the agent out loud). They can switch modes mid-interview, though switching restarts the conversation.
{% endstep %}

{% step %}
**Have the conversation** The Interview Agent greets them with your welcome message and works through your topics. A progress panel shows which topics have been covered as the conversation unfolds.
{% endstep %}

{% step %}
**Finish** The agent wraps up when it has covered everything, or the participant can end early. They see a simple "Thank you!" confirmation.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
Voice responses are transcribed to text, so results are captured consistently regardless of which mode the participant chooses. Suggest participants set aside \~15–30 minutes of uninterrupted time.
{% endhint %}

***

## Sessions & Discovery Documents

The **Sessions** tab on the interview detail page shows every participant who has joined.

### Tracking Sessions

* **Search** participants by name or email.
* **Status** is shown as a pill: **Not started**, **In progress**, or **Completed**, along with start/completion times and the session duration.

### Discovery Documents

When a session completes, the interview generates a **discovery document** — a structured artifact summarizing the participant's answers, organized around your topics and questions. From the Sessions tab you can open the document in a side panel to **read, edit, and refine** it. Because discovery documents are standard artifacts, they can be reused anywhere artifacts are used across the project.

***

## Best Practices

| Practice                        | Recommendation                                                                                            |
| ------------------------------- | --------------------------------------------------------------------------------------------------------- |
| **Keep topics focused**         | A handful of clear topics with 2–4 questions each beats one long, sprawling checklist.                    |
| **Write a welcoming greeting**  | The welcome message sets the tone — explain the purpose and how long it will take.                        |
| **Start from a template**       | Templates give you a well-structured baseline you can refine, instead of a blank page.                    |
| **Enable Project Knowledge**    | Turn it on when participants may ask about your product or project so the agent can respond with context. |
| **Test the link yourself**      | Open the public link in a new tab and run through the join flow before sending invites.                   |
| **Review discovery docs early** | Read the first few completed sessions to confirm the topics are eliciting the answers you need.           |
| **Close when you're done**      | Unpublish the interview once you've collected enough responses; republish later if you reopen it.         |

{% hint style="success" %}
**Pro Tip**: Pair Interviews with the rest of the project. Run discovery interviews during the sales or scoping phase, then use the generated discovery documents as context when you generate the project [Definition & Specs](/organize/projects/definition-and-specs) — your requirements are grounded in what participants actually told you.
{% endhint %}

## Next Steps

| Goal                                       | Documentation                                                 |
| ------------------------------------------ | ------------------------------------------------------------- |
| Set up the project that hosts interviews   | [Projects](/organize/projects)                                |
| Turn discovery into requirements           | [Definition & Specs](/organize/projects/definition-and-specs) |
| Learn about the agents that run interviews | [Agents](/core-features/agents)                               |
| Configure knowledge bases for context      | [Knowledge Bases](/additional-features/knowledge-bases)       |


# Project Portal

Share curated project content with your end-customers through a secure, branded, per-project portal

The **Project Portal** turns any project into a secure, customer-facing collaboration site. Instead of emailing status updates, exporting specs, or chasing feedback across inboxes, you publish exactly what you want your customer to see — and they log in to a branded portal to follow progress, comment, upload documents, and request changes.

The portal is **per-project**, fully **curated** (nothing is visible until you choose to share it), and **password-protected** for invited external users. You manage everything from the **Project Portal** tab on the project; your customers access it through a separate public link.

{% hint style="success" %}
**Engagement in action**: A delivery lead enables the portal on the "Acme Corp Cloud Migration" project, shares the project overview and three approved specs, invites two stakeholders at Acme, and turns on customer comments. Acme logs in, reviews the specs, requests a change on one of them, and uploads a network diagram — all without a single email thread, and the delivery team is notified automatically.
{% endhint %}

## Who Is This For?

| Audience                                   | Role in the Portal                                                                                           |
| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------ |
| **Internal team** (project owners/editors) | Enable the portal, curate what's visible, invite customers, review uploads, send updates, and audit activity |
| **External end-customers** (portal users)  | Log in with email + password to view shared content, comment, upload documents, and request changes          |

## Key Benefits

| Benefit                   | Description                                                                           | Business Impact                                    |
| ------------------------- | ------------------------------------------------------------------------------------- | -------------------------------------------------- |
| **Curated by default**    | Nothing is shared until you explicitly enable it — overview, specs, threads, and more | You control exactly what the customer sees         |
| **Branded & secure**      | A dedicated portal URL with per-project, password-protected access                    | A professional, trustworthy customer experience    |
| **Two-way collaboration** | Customers comment on threads, request changes, and upload documents for review        | Feedback and assets land in one place              |
| **Stay in the loop**      | Your team is notified on comments, uploads, and change requests                       | Nothing from the customer slips through            |
| **Controlled uploads**    | Customer files land in a review queue before being added to the knowledge base        | Vet incoming content before it's indexed           |
| **Audit & compliance**    | Every portal action is logged, with export and data-management controls               | Transparency and accountability for the engagement |

## How the Portal Works

```mermaid
graph LR
    A["Enable<br/>Portal"] --> B["Curate<br/>Content"]
    B --> C["Invite<br/>Customers"]
    C --> D["Customer<br/>Collaborates"]
    D --> E["Team<br/>Notified"]
```

| Stage                     | What Happens                                                                                          |
| ------------------------- | ----------------------------------------------------------------------------------------------------- |
| **Enable Portal**         | An editor turns on the portal for the project, which generates a unique, shareable portal link        |
| **Curate Content**        | Choose what to share — project overview, specs, discussion threads, sidebar details, links, and app   |
| **Invite Customers**      | Add external users by name and email; they receive an invite with the portal link and a temp password |
| **Customer Collaborates** | Customers log in to view content, comment, upload documents, and request changes                      |
| **Team Notified**         | Comments, uploads, and change requests notify project owners and admins via email (and mobile push)   |

***

## Enabling the Portal

The portal is managed from the **Project Portal** tab on the project detail page. The tab is available to project **editors and owners** when your plan includes the Customer Portal feature.

{% stepper %}
{% step %}
**Open the Project Portal tab** From the project, open the **Project Portal** tab.
{% endstep %}

{% step %}
**Enable the portal** Click **Enable Project Portal**. DarcyIQ generates a unique portal link for the project and sets the portal to **Active**.
{% endstep %}

{% step %}
**Curate what's visible** Use the **Settings** sub-tab to choose which parts of the project to share (see below). Changes save automatically.
{% endstep %}

{% step %}
**Invite your customers** Add external users by name and email. Each receives an invite email containing the portal link and a temporary password.
{% endstep %}
{% endstepper %}

You can **pause** the portal at any time — paused portals block customer logins with a friendly message — and **resume** it later. Use the copy/open link controls to grab the portal URL to share manually.

{% hint style="info" %}
**Nothing is shared until you say so.** When you first enable the portal, customers see only the project name and description. Every other section — specs, threads, sidebar details, links, and the app — stays hidden until you turn it on.
{% endhint %}

***

## Curating What Customers See

The **Settings** sub-tab controls visibility. Each toggle maps to a specific part of the project:

| Setting                      | What It Shares                                                   |
| ---------------------------- | ---------------------------------------------------------------- |
| **Share Project Overview**   | The project definition (optionally limited to specific sections) |
| **Project Specs Curation**   | All specs, or hand-pick individual specs to publish              |
| **Share Discussion Threads** | Publish your team's discussion threads to the portal             |
| **Allow Customer Comments**  | Let portal users post comments and replies on shared threads     |
| **Share Project Details**    | Sidebar metadata such as client name and start/end dates         |
| **Share Project Links**      | The project's external links panel                               |
| **Share Project App**        | A read-only view of the linked project app                       |

### What stays private

Even with the portal enabled, the following is **never exposed** unless you explicitly share it:

* Internal team threads (unless **Share Discussion Threads** is on, or a customer is in their own thread)
* Other customers' change requests and private threads
* Tasks, meetings, development logs, and internal knowledge base files
* Internal file paths on uploads and full internal user profiles (staff appear by name or simply as "Staff")

***

## What Your Customers Can Do

Once logged in, portal users see a clean, branded view of the project organized into tabs:

| Tab               | What the Customer Can Do                                                                |
| ----------------- | --------------------------------------------------------------------------------------- |
| **Overview**      | Read the project description and shared definition; select text to **request a change** |
| **Project Specs** | Read shared specs and request changes on any of them                                    |
| **Threads**       | Read published threads and their own posts; comment and reply when comments are allowed |
| **Upload Docs**   | Upload documents (PDF, TXT, MD up to 10 MB) and track each file's review status         |
| **App**           | View a read-only version of the project app, when shared                                |

Customers can also open the **notification settings** (bell icon) to control which emails they receive and how often.

{% hint style="info" %}
**Change requests are private.** When a customer requests a change on the overview or a spec, it's captured as an internal request for your team — it isn't visible to other portal users.
{% endhint %}

***

## Inviting and Managing Portal Users

External users authenticate with **email and password**, scoped to a single project — they do **not** use your organization's staff login.

### Invite flow

1. From **Portal Management → Settings**, add a user by **name** and **email**.
2. DarcyIQ generates a **temporary password** and emails the user the portal link. The temporary password is sent in the email — never embedded in the URL.
3. On first login, the user enters the temporary password and chooses a new one. The temporary password expires after **24 hours**.
4. Passwords must be at least 8 characters with one uppercase letter and one number.

### Managing access

| Action             | Effect                                                      |
| ------------------ | ----------------------------------------------------------- |
| **Revoke access**  | Immediately blocks the user from logging in                 |
| **Reset password** | Issues a new temporary password and re-sends the invite     |
| **Pause portal**   | Blocks all customer logins for the project until you resume |

***

## Uploads & Review Queue

When customers upload documents, the files don't go straight into your project. They land in a **review queue** on the **Uploads** sub-tab, where your team can:

* **Accept** — adds the file to the project knowledge base so it's searchable in Darcy Chat
* **Decline** — removes the staged file

Uploads are limited to PDF, TXT, and Markdown files (up to 10 MB each, 10 files per request). Customers can see the status of their own uploads (pending, accepted, declined) and download files once accepted.

***

## Notifications

The portal keeps both sides informed without manual follow-up.

### Your team is notified when a customer:

| Event                    | Recipients                                         |
| ------------------------ | -------------------------------------------------- |
| Posts a comment or reply | Project owners and users with project admin access |
| Uploads documents        | Project owners and users with project admin access |
| Requests a change        | Project owners and users with project admin access |

Notifications are delivered by email (with a link to the project) and, when enabled, mobile push.

### Customers are notified about:

* Their **invite** and any **password reset**
* New **published thread posts and replies** they can see
* **Spec status changes** on specs they can see
* **Manual broadcasts** you send from the portal
* A **daily or weekly digest**, depending on their preference

A master switch lets a project owner disable all customer emails for the portal, and project owners can send a manual **"Notify portal users"** broadcast at any time. Every customer email includes a one-click unsubscribe.

***

## Audit & Compliance

The **Audit Logs** sub-tab records portal activity — logins, views, comments, uploads, change requests, and more — so you have a complete trail of what was shared and when. From here you can export logs, configure retention, and run data export or deletion for compliance needs.

***

## Best Practices

| Practice                              | Recommendation                                                                                        |
| ------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| **Share approved content only**       | Publish specs once they reach **Approved**, and review the project overview before sharing it         |
| **Start with comments off**           | Enable customer comments deliberately, once you're ready for two-way discussion                       |
| **Review uploads promptly**           | Keep the upload queue clear so customer files make it into the knowledge base quickly                 |
| **Use broadcasts for milestones**     | Send a manual notification when you publish a major update so customers know to log in                |
| **Re-check visibility after changes** | When you add new specs or threads, confirm your curation toggles still reflect what you intend        |
| **Pause between phases**              | Pause the portal during quiet periods or internal rework, then resume when there's something to share |

{% hint style="info" %}
**Pro Tip**: Pair the portal with the **Weekly Status Report** automation. Generate the report internally, refine it, then publish a clean summary thread to the portal so customers always have a current view of progress.
{% endhint %}

## Next Steps

| Goal                                           | Documentation                                                   |
| ---------------------------------------------- | --------------------------------------------------------------- |
| Create and refine the content you'll share     | [Definition & Specs](/organize/projects/definition-and-specs)   |
| Manage discussion threads                      | [Dashboard & Threads](/organize/projects/dashboard-and-threads) |
| Control who on your team can manage the portal | [Sharing and Permissions](/organize/projects)                   |
| Manage access with groups                      | [Groups & Access Control](/settings-and-configuration/groups)   |


# Blueprints

Transform your document templates into intelligent, fillable forms with DarcyIQ Blueprints. **Upload any document — PDF, Word, Excel, PowerPoint, or text — and let AI detect fillable fields, then create submissions to fill them out manually or with AI assistance.**

{% hint style="success" %}
**From Template to Completed Document in Minutes**: Upload a proposal template, let AI find the fields, fill them in with AI or by hand, and generate a completed document ready for download.
{% endhint %}

## Overview

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZAWfHaMLwFz29fKwv8d8%2Fuploads%2Fs4fASV3yVc7GMpNadvTd%2FBlueprintsMarketingVideo.mp4?alt=media&token=15fb678b-300c-4ee6-b079-74209b90790c>" fullWidth="false" %}

Blueprints turn static document templates into reusable, fillable workflows. Upload a template once, then create as many submissions as you need — each submission is an independent fill of the same template.

| Feature                     | Capability                                                 | Business Impact                              |
| --------------------------- | ---------------------------------------------------------- | -------------------------------------------- |
| **AI Field Detection**      | Automatically identifies fillable fields in your documents | No manual field mapping required             |
| **Multiple Document Types** | PDF, Word, Excel, PowerPoint, and text files               | Use your existing templates as-is            |
| **AI-Assisted Filling**     | Let Darcy fill fields using conversation context           | Complete documents in a fraction of the time |
| **Visual Field Editor**     | Drag-and-drop field placement on PDFs                      | Precise control over field positions         |
| **Document Generation**     | Generate completed documents for download                  | Professional output ready for clients        |
| **Reusable Templates**      | Create unlimited submissions per blueprint                 | One template, many uses                      |
| **Team Sharing**            | Share blueprints and submissions with permissions          | Collaborate on document completion           |

## Supported Document Types

| Format         | File Types                                | Field Detection Method                 |
| -------------- | ----------------------------------------- | -------------------------------------- |
| **PDF**        | `.pdf`                                    | Form fields and placeholder patterns   |
| **Word**       | `.docx`                                   | Content controls and placeholders      |
| **Excel**      | `.xlsx`                                   | Named ranges and data validation cells |
| **PowerPoint** | `.pptx`                                   | Placeholder shapes                     |
| **Text**       | `.txt`, `.md`, `.json`, `.yaml`, and more | Pattern-based detection                |

## Creating a Blueprint

### From the Blueprints Page

{% stepper %}
{% step %}
**Open Blueprints** Navigate to the **Blueprints** section from the sidebar.
{% endstep %}

{% step %}
**Upload a Document** Click **New Blueprint**, then drag and drop your template file or click to browse. Enter a name for the blueprint and an optional description.
{% endstep %}

{% step %}
**Wait for Field Extraction** DarcyIQ analyzes your document and automatically detects fillable fields. You'll see the extraction status progress from pending to completed.
{% endstep %}

{% step %}
**Review Detected Fields** Once extraction is complete, review the fields that were found. You can edit field names and add AI descriptions to help Darcy fill them more accurately.
{% endstep %}
{% endstepper %}

### From Chat

You can also create a Blueprint directly from a [Chat](/core-features/darcy-chat) conversation — no need to switch sections. Describe the template you want, attach an example file, or paste in a draft, and Darcy will set up a Blueprint with fields auto-detected.

Example prompts:

* "Turn this proposal into a Blueprint I can reuse for new clients"
* "Create a Blueprint from this SOW template with fields for client name, scope, and timeline"
* "Make a Blueprint of our weekly status report template"

The new Blueprint shows up in your Blueprints list, ready to take submissions. You can refine field names and AI descriptions afterwards from the Configuration tab if needed.

{% hint style="info" %}
**Pro Tip**: Chat-created Blueprints inherit your conversation context, so if you've already discussed the template's purpose and fields, Darcy will use that to set up better field names and descriptions on the first try.
{% endhint %}

## Blueprint Detail View

After creating a blueprint, click on it to open the detail view with three tabs:

### Submissions Tab

View and manage all submissions for this blueprint. Each submission is an independent fill of the template.

| Feature               | Description                                                     |
| --------------------- | --------------------------------------------------------------- |
| **Create Submission** | Start a new fill of the template with a custom name             |
| **Status Tracking**   | See whether each submission is Draft, In Progress, or Completed |
| **Progress Bar**      | Visual indicator of how many fields have been filled            |
| **Download**          | Download the generated document for completed submissions       |
| **Sort**              | By name, status, progress, or date                              |

### Configuration Tab

View and manage the blueprint's template and field settings.

| Feature                | Description                                                      |
| ---------------------- | ---------------------------------------------------------------- |
| **Document Preview**   | View the original template document                              |
| **Document Info**      | File type, size, number of detected fields, and submission count |
| **Detected Fields**    | Review all fields with their names and types                     |
| **Edit Fields**        | Modify field names and AI descriptions for better AI filling     |
| **Change File**        | Replace the template document (only when no submissions exist)   |
| **Edit Custom Fields** | Open the visual field editor for PDFs                            |

{% hint style="warning" %}
**Locked Configuration**: Once submissions exist for a blueprint, you cannot change the template file or modify field definitions. This ensures consistency across all submissions.
{% endhint %}

### Fill Tab

When you start or continue a submission, the Fill tab provides a purpose-built editor for completing fields.

| Feature               | Description                                                                           |
| --------------------- | ------------------------------------------------------------------------------------- |
| **Field List**        | All fields organized in a scrollable panel                                            |
| **Search & Filter**   | Find fields by name; filter by All, Empty, or Filled                                  |
| **Field Navigation**  | Move between fields with previous/next buttons                                        |
| **Input by Type**     | Appropriate input controls for each field type (text, date, checkbox, dropdown, etc.) |
| **Document Preview**  | Side-by-side preview of the document as you fill fields                               |
| **Fill with AI**      | Let Darcy fill fields through a chat conversation                                     |
| **Generate Document** | Create the completed document for download                                            |

## Field Types

Blueprints support the following field types:

| Field Type    | Input Control                  | Example Use                       |
| ------------- | ------------------------------ | --------------------------------- |
| **Text**      | Free-form text input           | Company name, project description |
| **Number**    | Numeric input                  | Budget amount, quantity           |
| **Email**     | Email-formatted input          | Contact email address             |
| **Phone**     | Phone-formatted input          | Contact phone number              |
| **Date**      | Date picker                    | Start date, due date              |
| **Checkbox**  | Toggle switch                  | Terms accepted, option selected   |
| **Dropdown**  | Select from predefined options | Status, category, priority        |
| **Signature** | Signature input                | Approval signature                |

## Visual Field Editor (PDF Only)

For PDF blueprints, the visual field editor lets you place and configure fields directly on the document.

{% stepper %}
{% step %}
**Open the Editor** From the Configuration tab, click **Edit Custom Fields** to launch the visual field editor.
{% endstep %}

{% step %}
**Drag Fields onto the Document** Select a field type from the toolbar (text, number, email, phone, date, checkbox, dropdown, or signature) and drag it onto the PDF page where you want it placed.
{% endstep %}

{% step %}
**Position and Resize** Move fields by dragging them and resize by pulling the edges. Fields snap to the document grid for clean alignment.
{% endstep %}

{% step %}
**Configure Field Properties** Click on a placed field to open its configuration panel where you can set:

* **Name** and **Key** for identification
* **Field Type** to change the input control
* **Required** toggle
* **Default Value**
* **Options** (for dropdowns)
* **AI Guidance** to help Darcy fill the field accurately
  {% endstep %}

{% step %}
**Save** Click **Save** to apply your custom fields to the blueprint.
{% endstep %}
{% endstepper %}

## Filling with AI

Blueprints integrate with DarcyIQ Chat to provide AI-assisted field filling.

1. Open a submission and go to the **Fill** tab
2. Click **Fill with AI**
3. A chat conversation opens with your blueprint context loaded
4. Describe the information you want filled in, or paste content for Darcy to extract from
5. Darcy identifies relevant fields and fills them with appropriate values
6. Review the AI-suggested values and confirm or edit them

{% hint style="info" %}
**Pro Tip**: Add **AI descriptions** to your blueprint fields (in the Configuration tab) to help Darcy understand what each field expects. For example, adding "The client's full legal company name" to a "Company Name" field produces more accurate fills.
{% endhint %}

## Generating Documents

Once all required fields are filled, generate a completed document:

1. Click **Generate Document** in the Fill tab
2. DarcyIQ creates a filled version of your template with all field values inserted
3. Download the completed document

The generated document maintains the formatting and layout of your original template with the field values filled in.

## Sharing & Permissions

Share blueprints and submissions with team members for collaborative document completion.

| Permission | Blueprint Access                           | Submission Access                  |
| ---------- | ------------------------------------------ | ---------------------------------- |
| **Owner**  | Full control — edit, share, delete         | Full control on all submissions    |
| **Write**  | Edit fields, create and fill submissions   | Edit and fill assigned submissions |
| **Read**   | View blueprint and submissions (read-only) | View only                          |

To share a blueprint, click the **Share** button on any blueprint you own and invite team members with the appropriate permission level.

## Managing Blueprints

From the Blueprints list page:

| Feature            | Description                                                   |
| ------------------ | ------------------------------------------------------------- |
| **Search**         | Find blueprints by name or description                        |
| **Filter by Type** | Show only PDF, Word, Excel, PowerPoint, or Text blueprints    |
| **Sort**           | By name, date, document type, file size, or extraction status |
| **Edit**           | Update the blueprint name and description                     |
| **Share**          | Invite team members with Owner, Write, or Read access         |
| **Delete**         | Permanently remove the blueprint and all its submissions      |

## Use Cases

### Proposals & SOWs

* Upload your proposal template as a blueprint
* Create a submission for each client
* Fill with AI using meeting notes and project context
* Generate a polished proposal document

### Contracts & Agreements

* Upload contract templates with standard legal language
* Fill client-specific fields (names, dates, terms)
* Maintain consistency across all contracts

### Compliance & Reporting

* Upload regulatory forms or compliance checklists
* Create submissions for each reporting period
* Track completion progress across the team

### Onboarding & Intake

* Upload intake forms or onboarding documents
* Share with team members to fill collaboratively
* Generate completed forms for record-keeping

### Technical Documentation

* Upload architecture document templates
* Fill technical details for each project
* Maintain standardized documentation across engagements

## Best Practices

### Template Preparation

1. **Use Clear Placeholders**: Name your form fields and placeholders descriptively
2. **Consistent Formatting**: Maintain clean, consistent formatting in your templates
3. **Test with a Small Document**: Start with a simple template to understand field detection before uploading complex documents

### Field Configuration

| Practice              | Recommendation                                                                         |
| --------------------- | -------------------------------------------------------------------------------------- |
| **Descriptive Names** | Use clear field names like "Client Company Name" instead of "Field1"                   |
| **AI Descriptions**   | Add context to help AI fill accurately ("The project start date in MM/DD/YYYY format") |
| **Required Fields**   | Mark critical fields as required so submissions aren't generated incomplete            |
| **Dropdown Options**  | Pre-define options for fields with known values to ensure consistency                  |

### Submission Workflow

1. **Name Submissions Clearly**: Use a naming convention like "\[Client Name] - \[Date]"
2. **Fill with AI First**: Let AI handle the bulk of filling, then review and adjust
3. **Review Before Generating**: Check all fields before generating the final document
4. **Download Promptly**: Download generated documents and save to your project

{% hint style="info" %}
**Pro Tip**: Pair Blueprints with Projects — upload your templates as blueprints, fill them using project context, and keep the generated documents organized within your project workspace.
{% endhint %}


# Lists

Structured data tables with AI-powered enrichment and processing

Lists are structured, AI-powered data tables that let you organize information in rows and columns and then process it at scale with your AI agents. **Build custom data grids, upload existing spreadsheets, and let AI enrich every row with research, analysis, and insights — automatically.**

{% hint style="success" %}
**From Spreadsheets to Smart Data**: Upload a CSV of 200 target companies, assign an AI agent, and have every row enriched with company overviews, decision-maker contacts, tech stack details, and qualification scores — all in minutes.
{% endhint %}

## Overview

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZAWfHaMLwFz29fKwv8d8%2Fuploads%2F0AUIjVIMSR12hp4PDUoU%2FListsVideo.mp4?alt=media&token=9b099b76-f1d5-421d-95ec-d7c573050d1e>" %}

Lists combine the familiarity of spreadsheets with the power of AI agents. Each list is a fully customizable data table where you define columns — including AI-enabled columns that are automatically populated by your agent when rows are processed.

| Feature                  | Capability                                            | Business Impact                               |
| ------------------------ | ----------------------------------------------------- | --------------------------------------------- |
| **Custom Columns**       | Define any columns with custom types and AI prompts   | Tailor data collection to your exact needs    |
| **AI Enrichment**        | AI agents research and fill columns automatically     | Eliminate hours of manual data entry          |
| **Templates**            | Start from pre-built templates or create your own     | Get started in seconds with proven structures |
| **Bulk Upload**          | Import CSV or Excel files up to 500 rows              | Bring existing data into the AI pipeline      |
| **Real-Time Processing** | Watch AI process rows live with status updates        | Full visibility into enrichment progress      |
| **Team Sharing**         | Share lists with Owner, Editor, or Viewer permissions | Collaborate on data across your organization  |
| **Export**               | Download enriched data as CSV or XLSX                 | Move results into your existing tools         |

## How Lists Work

```mermaid
graph LR
    A[Create List<br/>or Use Template] --> B[Define<br/>Columns]
    B --> C[Add Rows<br/>or Upload CSV]
    C --> D[Assign AI<br/>Agent]
    D --> E[Process<br/>Rows]
    E --> F[Review &<br/>Export]
```

| Step                | What Happens                                            | Your Action                                       |
| ------------------- | ------------------------------------------------------- | ------------------------------------------------- |
| **1. Create**       | Start a blank list or select a template                 | Name your list and choose a starting point        |
| **2. Columns**      | Define what data you want to collect and enrich         | Add columns, mark some as AI-enabled with prompts |
| **3. Add Data**     | Populate the list with rows manually or via file upload | Type entries or upload a CSV/Excel file           |
| **4. Assign Agent** | Select which AI agent will process the list             | Pick from your organization's agents              |
| **5. Process**      | AI researches and fills each AI-enabled column per row  | Click Process and monitor real-time progress      |
| **6. Review**       | Inspect enriched data, filter, and export               | Download results or continue refining             |

## Use Cases

### For Users

* **Sales Prospecting**: Upload a list of target companies and have AI research each one — generating overviews, identifying decision makers, and scoring fit
* **Vendor Evaluation**: Create a vendor comparison grid with AI-powered research on pricing, features, and market position
* **Market Research**: Build lists of companies in a target segment and let AI enrich them with firmographics, tech stack, and growth signals
* **Account Planning**: Maintain enriched account lists with up-to-date intelligence on customers and prospects
* **Competitive Analysis**: Track competitors with AI-populated columns for product updates, funding, and strategic moves

### For AI Agents

* **Lead Qualification**: Agents research each lead using web search, tech stack inspection, and CRM lookups to qualify or disqualify automatically
* **Data Enrichment**: Agents visit company websites, analyze public data, and fill structured columns with validated information
* **Opportunity Scoring**: Agents evaluate rows against custom criteria and produce qualification scores
* **CRM Synchronization**: Agents pull data from connected CRMs (Salesforce, HubSpot) to enrich rows with existing customer data
* **Bulk Submissions**: Agents process and submit enriched rows to external systems like AWS Partner Central

## Creating a List

{% stepper %}
{% step %}
**Navigate to Lists** Click **Lists** in the sidebar to open the Lists home page.
{% endstep %}

{% step %}
**Click "New List"** Choose to create a blank list or start from a template. Give your list a name and optional description.
{% endstep %}

{% step %}
**Define Your Columns** Add columns to define the structure of your data. Mark columns as AI-enabled and provide prompt templates to tell the agent what to research. [Learn more about columns →](/organize/lists/columns)
{% endstep %}

{% step %}
**Add Rows** Manually add rows one at a time or upload a CSV/Excel file with up to 500 rows and 5 MB of data.
{% endstep %}

{% step %}
**Assign an AI Agent** Select which agent should process the list. The agent's instructions, personality, and MCP integrations will be used during processing. [Learn more about changing agents →](/organize/lists/processing-rows#changing-the-ai-agent)
{% endstep %}

{% step %}
**Process and Review** Click **Process** to start AI enrichment. Monitor progress in real time, then review, filter, and export your enriched data.
{% endstep %}
{% endstepper %}

## Data Management

### Adding Rows

| Method           | Description                                                  | Best For                            |
| ---------------- | ------------------------------------------------------------ | ----------------------------------- |
| **Manual Entry** | Add rows one at a time through the table UI                  | Small lists or individual additions |
| **CSV Upload**   | Import a `.csv` file with headers mapped to your columns     | Migrating existing spreadsheet data |
| **Excel Upload** | Import `.xlsx` or `.xls` files                               | Bringing in formatted workbooks     |
| **AI Discovery** | Use the "Find Rows" chat to have AI discover and add entries | Discovering new prospects or data   |

### Row Operations

* **Edit**: Click any cell to edit its value directly in the table
* **View Details**: Open the row detail panel to see all columns in a structured view
* **Delete**: Remove individual rows or use bulk delete for multiple selections
* **Export**: Download all rows as CSV or XLSX

### Upload Limits

| Constraint        | Limit                                          |
| ----------------- | ---------------------------------------------- |
| **Max Rows**      | 500 per upload                                 |
| **Max File Size** | 5 MB                                           |
| **File Formats**  | `.csv`, `.xlsx`, `.xls`                        |
| **Replace Mode**  | Optionally replace all existing rows on upload |

## Sharing & Permissions

Control who can access and modify your lists:

| Permission | Capabilities                                  |
| ---------- | --------------------------------------------- |
| **Owner**  | Full control — edit, process, share, delete   |
| **Editor** | Add/edit rows, add/edit columns, process rows |
| **Viewer** | View list data, export                        |

Share lists with individual users or with [Groups](/settings-and-configuration/groups) for bulk access management.

## Integration with Other Features

### Agent Integration

* Lists use your configured [Agents](/core-features/agents) to process rows
* Agents bring their custom instructions, MCP tools, and integrations
* Switch agents at any time to change processing behavior

### MCP Integration

* Agents with MCP integrations can access external systems during row processing
* Connected CRMs, databases, and APIs are available as enrichment sources

### Chat Integration

* Use the **Find Rows** chat panel within a list to discover new entries with AI
* Chat leverages the list's assigned agent and calibration forms

## Best Practices

| Practice                    | Recommendation                                                                |
| --------------------------- | ----------------------------------------------------------------------------- |
| **Start with a template**   | Use built-in templates to get a proven column structure, then customize       |
| **Limit AI columns**        | 3–5 AI-enabled columns per list gives the best balance of speed and depth     |
| **Write clear prompts**     | Specific column prompts produce better AI results than vague instructions     |
| **Test with small batches** | Process 5–10 rows first to validate column prompts before running a full list |
| **Choose the right agent**  | Assign an agent whose instructions and tools match the list's purpose         |
| **Use upload for volume**   | CSV/Excel upload is faster than manual entry for anything over 10 rows        |

{% hint style="info" %}
**Pro Tip**: Combine AI-enabled columns with manual columns. Use manual columns for data you already have (company name, website) and AI columns for data you want the agent to research (company overview, tech stack, decision makers).
{% endhint %}

## Next Steps

| Goal                               | Documentation                                              |
| ---------------------------------- | ---------------------------------------------------------- |
| Learn about column types and setup | [Columns & Configuration](/organize/lists/columns)         |
| Process rows with AI agents        | [Processing Rows with AI](/organize/lists/processing-rows) |
| Use pre-built list templates       | [List Templates](/organize/lists/templates)                |
| Learn about AI agents              | [Agents](/core-features/agents)                            |


# Columns & Configuration

Define, configure, and manage columns for your lists

Columns define the structure of your list. Each column represents a data field — from simple text and numbers to AI-enabled fields that your agent fills automatically during processing.

{% hint style="success" %}
**Manual + AI Columns**: Combine columns you fill yourself (company name, website URL) with AI-enabled columns the agent researches (company overview, tech stack, decision makers) for a powerful hybrid workflow.
{% endhint %}

## Column Types

Every column has a type that determines what data it holds and how it's displayed:

| Type       | Description                   | Example Use                       |
| ---------- | ----------------------------- | --------------------------------- |
| **Text**   | Free-form text content        | Company overview, notes           |
| **Number** | Numeric values                | Employee count, revenue           |
| **Date**   | Date values                   | Founded date, last contact        |
| **Email**  | Email addresses               | Primary contact email             |
| **URL**    | Web links                     | Company website, LinkedIn profile |
| **Enum**   | Predefined options (dropdown) | Industry, company size tier       |

## AI-Enabled Columns

AI-enabled columns are the core of what makes Lists powerful. When a row is processed, the assigned AI agent uses its tools — web search, webpage visits, tech stack inspection, CRM lookups — to research and fill each AI-enabled column.

### How AI Columns Work

1. You create a column and toggle **AI Enabled** on
2. You write a **Prompt Template** that tells the agent what to research for that column
3. When rows are processed, the agent executes the prompt for each row and writes the result

### Writing Effective Prompt Templates

The prompt template is the instruction your AI agent follows when filling the column. Be specific about what you want and the expected format.

{% hint style="info" %}
**Pro Tip**: Reference other columns in your prompt to give context. For example: *"Research the company at {website} and provide a 2-3 sentence overview of their core business, target market, and key differentiators."*
{% endhint %}

**Good prompt examples:**

| Column Name         | Prompt Template                                                                                     |
| ------------------- | --------------------------------------------------------------------------------------------------- |
| Company Overview    | Research the company and provide a concise 2-3 sentence overview of their business model and market |
| Decision Makers     | Find the top 3 decision makers (C-level or VP) at this company with their name, title, and LinkedIn |
| Tech Stack          | Inspect the company's website and identify key technologies, frameworks, and cloud providers used   |
| Qualification Score | Based on all available data, rate this lead 1-10 for fit with our ideal customer profile            |

**Avoid vague prompts:**

| Bad Prompt             | Better Alternative                                                                           |
| ---------------------- | -------------------------------------------------------------------------------------------- |
| "Research the company" | "Provide a 2-3 sentence overview covering business model, founding year, and employee count" |
| "Find contacts"        | "List the top 3 C-level executives with name, title, and LinkedIn URL"                       |
| "Is this a good lead?" | "Score 1-10 based on: company size 50-500, B2B SaaS, and US-based. Explain your reasoning."  |

### Knowledge Base Integration

Some AI columns can be configured to reference your organization's knowledge base during processing. Toggle **Requires Knowledge Base** when the agent needs internal context — such as your product catalog, pricing tiers, or qualification criteria — to fill the column accurately.

## Creating Columns

{% stepper %}
{% step %}
**Open Your List** Navigate to the list where you want to add columns.
{% endstep %}

{% step %}
**Add a Column** Click the **+** button in the table header or use the column management panel. Provide a name and select a type.
{% endstep %}

{% step %}
**Configure AI (Optional)** Toggle **AI Enabled** and write a prompt template. Optionally enable **Requires Knowledge Base** if the agent needs internal data.
{% endstep %}

{% step %}
**Save** The column is added to your list immediately and will be included in future processing runs.
{% endstep %}
{% endstepper %}

## Column Library

DarcyIQ provides a reusable column library so you don't have to recreate common columns for every list.

### Library Levels

| Level              | Scope                                   | Who Can Create      |
| ------------------ | --------------------------------------- | ------------------- |
| **System Columns** | Pre-built columns available to everyone | DarcyIQ (read-only) |
| **Organization**   | Shared across your entire organization  | Admins and Owners   |
| **User**           | Personal columns only you can see       | Any user            |

### Using the Column Library

1. Open the **Column Selector** when editing your list
2. Browse available system, organization, and user columns
3. Select columns to add them to your list
4. Customize the prompt template or configuration for your specific use case

{% hint style="info" %}
**Pro Tip**: Create organization-level columns for standardized fields like "Company Overview" or "Qualification Score" so every team member uses the same enrichment prompts.
{% endhint %}

## Managing Columns

### Column Operations

| Action          | Description                                                  | Permission Required |
| --------------- | ------------------------------------------------------------ | ------------------- |
| **Add**         | Add a new column or select from the library                  | Editor              |
| **Edit**        | Update name, type, prompt template, or configuration         | Editor              |
| **Reorder**     | Drag columns to change their display order                   | Editor              |
| **Hide/Show**   | Toggle column visibility without removing data               | Editor              |
| **Remove**      | Remove a column from the list                                | Editor              |
| **Detach Data** | Remove the column's data while keeping the column definition | Editor              |

### Column Visibility

Use the **Column Visibility Selector** to show or hide columns in your table view. Hidden columns retain their data and will still be processed by AI — they're just not displayed in the table.

## Column Configuration Fields

| Field               | Description                                                 | Required |
| ------------------- | ----------------------------------------------------------- | -------- |
| **Name**            | Display name shown in the table header                      | Yes      |
| **Type**            | Data type (text, number, date, email, URL, enum)            | Yes      |
| **AI Enabled**      | Whether the agent should fill this column during processing | No       |
| **Prompt Template** | Instructions for the AI agent when populating the column    | If AI    |
| **Requires KB**     | Whether the agent should reference the knowledge base       | No       |
| **Description**     | Help text or notes about the column's purpose               | No       |
| **Mandatory**       | Whether the column must have a value                        | No       |
| **Visible**         | Whether the column is shown in the table by default         | No       |

## Best Practices

1. **Name columns descriptively**: "Primary Decision Maker" is better than "Contact"
2. **Limit AI columns to 3–5**: More AI columns means longer processing time per row
3. **Order matters**: Place identifying columns (name, website) first, AI columns after
4. **Use the library**: Save time by reusing organization-level columns across lists
5. **Test prompts early**: Process a few rows to validate your prompt templates before running the full list
6. **Combine manual and AI**: Let AI handle research while you provide the seed data


# Processing Rows with AI

Process list rows with AI agents for automated enrichment

Processing is where Lists come alive. When you process a list, your assigned AI agent researches each row — using web search, website visits, tech stack inspection, CRM lookups, and more — and fills every AI-enabled column with structured results.

{% hint style="success" %}
**Hands-Off Enrichment**: Click Process, then watch your agent work through hundreds of rows in real time. Each row is researched, qualified, and enriched automatically.
{% endhint %}

## How Processing Works

When you start processing, the system:

1. Identifies all AI-enabled columns and their prompt templates
2. Fetches rows that need processing (pending, failed, or paused)
3. Sends rows to the AI agent in optimized batches
4. The agent researches each row using its available tools
5. Results are written directly into the list columns
6. Progress updates stream to your browser in real time via WebSocket

```mermaid
graph LR
    A[Start Processing] --> B[Load AI Columns<br/>& Prompts]
    B --> C[Fetch Pending<br/>Rows]
    C --> D[Process Each<br/>Row with Agent]
    D --> E[Write Results<br/>to Columns]
    E --> F[Complete /<br/>Failed / Disqualified]
    F --> G[Next Row<br/>or Done]
```

## Starting Processing

{% stepper %}
{% step %}
**Open Your List** Navigate to the list you want to process.
{% endstep %}

{% step %}
**Verify Your Setup** Ensure you have:

* At least one AI-enabled column with a prompt template
* Rows with seed data (company name, website, etc.)
* An AI agent assigned to the list
  {% endstep %}

{% step %}
**Click Process** Click the **Process** button in the toolbar. You can process all rows or select specific rows to process.
{% endstep %}

{% step %}
**Monitor Progress** Watch the real-time progress bar and row status updates. Each row transitions through statuses as the agent works.
{% endstep %}
{% endstepper %}

## Row Statuses

Each row has a status that indicates where it is in the processing pipeline:

| Status           | Icon | Description                                         |
| ---------------- | ---- | --------------------------------------------------- |
| **Pending**      | ⏳    | Not yet processed — waiting in the queue            |
| **Processing**   | 🔄   | Currently being researched by the AI agent          |
| **Complete**     | ✅    | Successfully enriched — all AI columns filled       |
| **Failed**       | ❌    | Processing encountered an error (see error details) |
| **Disqualified** | 🚫   | Agent determined the row doesn't meet criteria      |
| **Submitted**    | 📤   | Row data was submitted to an external system        |

{% hint style="info" %}
**Failed rows can be retried.** Fix any issues with the seed data and reprocess the row. The agent will attempt enrichment again.
{% endhint %}

## Processing Controls

Manage processing runs with these controls:

| Control     | Action                                                                  |
| ----------- | ----------------------------------------------------------------------- |
| **Process** | Start processing all pending rows or selected rows                      |
| **Pause**   | Pause the current processing run — resume later without losing progress |
| **Resume**  | Continue processing from where you paused                               |
| **Status**  | View current processing status, progress, and queue size                |

## What the AI Agent Does

During processing, the agent has access to powerful research tools depending on its configuration:

| Tool                      | Capability                                                    |
| ------------------------- | ------------------------------------------------------------- |
| **Web Search**            | Search the internet for company information, news, and data   |
| **Visit Webpage**         | Read and analyze specific web pages and company websites      |
| **Tech Stack Inspection** | Identify technologies, frameworks, and cloud providers in use |
| **CRM Lookup**            | Pull existing data from connected CRMs (Salesforce, etc.)     |
| **Knowledge Base**        | Reference your organization's internal documents and data     |
| **MCP Integrations**      | Access any MCP tools configured on the agent                  |

The agent follows each AI column's prompt template, researches the information, and writes structured results into the appropriate column.

### Smart Disqualification

The agent can automatically disqualify rows that don't meet your criteria. For example, if you're building a list of active B2B SaaS companies and the agent discovers a row is a defunct company or a B2C business, it marks the row as **Disqualified** with a reason.

## Changing the AI Agent

The AI agent assigned to a list determines how rows are processed — what personality the agent uses, what tools it has access to, and how it interprets your column prompts.

### Why Change Agents

* **Different expertise**: Switch to an agent with specialized knowledge for the list's domain
* **Different tools**: Use an agent with specific MCP integrations (CRM, database, API access)
* **Different instructions**: Agents with tailored system prompts produce different enrichment styles
* **Template alignment**: Match the agent to the list template's intended workflow

### How to Change the Agent

{% stepper %}
{% step %}
**Open List Settings** Click the **Settings** icon or gear menu on your list to open the Edit List Settings dialog.
{% endstep %}

{% step %}
**Select a New Agent** Use the Agent Picker to browse available agents from your organization. You can search by name to find the right one.
{% endstep %}

{% step %}
**Save** Click Save to apply the change. The new agent will be used for all future processing runs.
{% endstep %}
{% endstepper %}

{% hint style="warning" %}
**Changing the agent does not reprocess existing rows.** Previously completed rows retain their results. Only new processing runs will use the updated agent. To re-enrich rows with the new agent, select the rows and process them again.
{% endhint %}

### What the Agent Brings

When you assign an agent to a list, the agent contributes:

| Agent Property         | Effect on Processing                                              |
| ---------------------- | ----------------------------------------------------------------- |
| **System Prompt**      | Shapes how the agent interprets column prompts and writes results |
| **MCP Integrations**   | Determines what external tools and data sources are available     |
| **Personality & Tone** | Influences the writing style of enriched text columns             |
| **Calibration Form**   | Used by the Find Rows chat to collect discovery criteria          |

## Real-Time Updates

Processing provides live feedback through WebSocket connections. You'll see:

| Event                   | What You See                                           |
| ----------------------- | ------------------------------------------------------ |
| **Row Start**           | Row status changes to Processing                       |
| **Column Update**       | Individual columns populate as the agent fills them    |
| **Row Complete**        | Row status changes to Complete with all columns filled |
| **Row Failed**          | Row status changes to Failed with error details        |
| **Row Disqualified**    | Row marked as Disqualified with the agent's reasoning  |
| **Progress Update**     | Overall progress bar and count update                  |
| **Processing Complete** | Summary of results when all rows are done              |

## Completion Notifications

When processing finishes, you can receive an email notification with a summary of results — how many rows were completed, failed, or disqualified.

## Best Practices

| Practice                       | Recommendation                                                                  |
| ------------------------------ | ------------------------------------------------------------------------------- |
| **Test with a small batch**    | Process 5–10 rows first to validate your column prompts                         |
| **Provide good seed data**     | Rows with a company name and website URL produce much better results            |
| **Match agent to purpose**     | Use a sales-focused agent for lead lists, a technical agent for vendor research |
| **Monitor the first few rows** | Watch early results to catch prompt issues before processing hundreds           |
| **Retry failed rows**          | Fix seed data and reprocess — transient errors often resolve on retry           |
| **Use pause strategically**    | Pause to review mid-run results and adjust prompts if needed                    |

{% hint style="info" %}
**Pro Tip**: Create dedicated agents for different list types. A "Lead Researcher" agent with CRM integrations is ideal for sales lists, while a "Technical Analyst" agent with web inspection tools excels at vendor evaluation grids.
{% endhint %}


# List Templates

Pre-built and custom list templates for common workflows

Templates give you a head start by providing pre-configured column structures, AI prompts, and processing workflows for common use cases. **Pick a template, add your data, and start processing — no column setup required.**

{% hint style="success" %}
**Ready-Made Intelligence**: The Lead List template comes with AI columns for company overview, decision makers, tech stack, and qualification scoring — all pre-configured with optimized prompts.
{% endhint %}

## System Templates

DarcyIQ includes built-in templates designed for the most common list workflows:

### Lead List

Build your sales pipeline with AI-powered prospect research and qualification.

| Column              | AI Enabled | Purpose                                             |
| ------------------- | ---------- | --------------------------------------------------- |
| Company Name        | No         | Seed data — the company to research                 |
| Website             | No         | Seed data — company website for AI inspection       |
| Company Overview    | Yes        | AI-generated summary of the company's business      |
| Decision Makers     | Yes        | Key contacts with titles and LinkedIn profiles      |
| Tech Stack          | Yes        | Technologies and cloud providers identified on site |
| Pain Points         | Yes        | Likely challenges based on company profile          |
| Qualification Score | Yes        | Fit score based on your ideal customer criteria     |

**Agent tools**: Web search, webpage visits, tech stack inspection, lead disqualification

### Opportunity Grid

Manage and enrich sales opportunities with CRM integration and AWS partner validation.

| Column           | AI Enabled | Purpose                                           |
| ---------------- | ---------- | ------------------------------------------------- |
| Company Name     | No         | Account name from your CRM                        |
| Opportunity Name | No         | Specific deal or engagement                       |
| Industry         | Yes        | Validated industry classification                 |
| AWS Solutions    | Yes        | Relevant AWS solutions and services               |
| Estimated Value  | Yes        | Projected deal value based on enrichment          |
| Next Steps       | Yes        | Recommended actions based on opportunity analysis |

**Agent tools**: Web search, CRM lookup, AWS solution validation, opportunity enrichment

### Vendor List

Evaluate and compare vendors with structured AI research.

| Column           | AI Enabled | Purpose                                 |
| ---------------- | ---------- | --------------------------------------- |
| Vendor Name      | No         | Company to evaluate                     |
| Website          | No         | Vendor website for research             |
| Product Overview | Yes        | What the vendor offers and key features |
| Pricing Model    | Yes        | Pricing structure and tiers             |
| Strengths        | Yes        | Key advantages and differentiators      |
| Weaknesses       | Yes        | Limitations and concerns                |

**Agent tools**: Web search, webpage visits, data submission

## Using a Template

{% stepper %}
{% step %}
**Create a New List** Click **New List** from the Lists home page.
{% endstep %}

{% step %}
**Select a Template** Browse available templates and click the one that matches your use case. You'll see a preview of the included columns.
{% endstep %}

{% step %}
**Name Your List** Give the list a descriptive name and optional description.
{% endstep %}

{% step %}
**Customize (Optional)** After creation, you can add, remove, or modify columns. The template gives you a starting point — you're not locked in.
{% endstep %}

{% step %}
**Add Data and Process** Upload a CSV or add rows manually, then start processing.
{% endstep %}
{% endstepper %}

## Custom Templates

Create your own templates to standardize list structures across your team.

### Creating a Custom Template

1. Navigate to the Lists section
2. Open the template management panel
3. Click **New Template**
4. Define the template name, description, and column structure
5. Configure AI prompts and column types
6. Save the template for reuse

### Template Configuration

| Field                | Description                                                  |
| -------------------- | ------------------------------------------------------------ |
| **Name**             | Template display name                                        |
| **Description**      | What this template is designed for                           |
| **Columns**          | Pre-defined column structure with types and AI configuration |
| **Default Prompts**  | AI prompt templates for each AI-enabled column               |
| **Calibration Form** | Optional form fields used by the Find Rows discovery chat    |

### Sharing Templates

| Level            | Visibility                                |
| ---------------- | ----------------------------------------- |
| **System**       | Available to all DarcyIQ users (built-in) |
| **Organization** | Shared with everyone in your organization |
| **User**         | Only visible to you                       |

### Favorites

Mark frequently used templates as favorites for quick access. Favorited templates appear at the top of the template list when creating new lists.

## Best Practices

1. **Start with system templates**: They include optimized AI prompts tested across many use cases
2. **Customize after creation**: Use a template as a starting point, then add or modify columns for your specific needs
3. **Create org templates for standards**: If your team frequently builds similar lists, create a shared template
4. **Include calibration forms**: Add discovery forms to templates so the Find Rows chat collects the right criteria
5. **Document your templates**: Use clear descriptions so team members know when to use each one

{% hint style="info" %}
**Pro Tip**: When your team settles on a proven list structure with well-tuned AI prompts, save it as an organization template. This ensures consistent data quality across all team members' lists.
{% endhint %}


# Artifact Vault

The Artifact Vault is a centralized workspace for all of your **saved and shared** artifacts in DarcyIQ. Browse, search, organize, and take action on every artifact your team has created — all from a single, persistent page.

{% hint style="success" %}
**Your Artifact Home Base**: The Vault gives every artifact a permanent home — browse, organize, and share anything you've created from a single page.
{% endhint %}

## Overview

| Feature                 | Capability                                                        | Business Impact                              |
| ----------------------- | ----------------------------------------------------------------- | -------------------------------------------- |
| **Centralized Library** | All artifacts in one browsable workspace                          | No more hunting through conversations        |
| **Folder Organization** | Create folders and nest artifacts into a tree structure           | Keep projects tidy and navigable             |
| **Search & Filter**     | Full-text search with type, project, date, and visibility filters | Find any artifact instantly                  |
| **Bulk Actions**        | Checkbox selection with move and delete operations                | Manage artifacts at scale                    |
| **Inline Editing**      | Edit artifact content directly in the Vault                       | Quick updates without leaving the page       |
| **Public Sharing**      | Publish artifacts with optional password protection and expiry    | Share work with stakeholders securely        |
| **Project Assignment**  | Assign artifacts to one or more projects                          | Keep artifacts tied to the work they support |

## Navigating the Vault

The Vault uses a two-panel layout: a collapsible **file tree** on the left and a **content viewer** on the right. The file tree displays your artifacts organized into folders, while the content viewer renders the selected artifact for reading or editing.

### File Tree

The file tree is the primary way to browse your artifacts.

| Action                         | How                                                      |
| ------------------------------ | -------------------------------------------------------- |
| **Open an artifact**           | Click any file in the tree                               |
| **Expand / collapse a folder** | Click the folder row or the chevron                      |
| **Create a file or folder**    | Use the **+** button at the top of the tree              |
| **Rename**                     | Right-click a file or folder and choose **Rename**       |
| **Move**                       | Right-click and choose **Move to…**, or use bulk actions |
| **Delete**                     | Right-click and choose **Delete**                        |
| **Sort**                       | Toggle between **Recent** and **A–Z** ordering           |
| **Collapse sidebar**           | Click the sidebar toggle to maximize the content area    |

### Search

Type into the search bar at the top of the file tree to filter artifacts by name. Results update as you type, making it easy to locate a specific artifact across your entire Vault.

## Filtering Artifacts

Use the filter controls to narrow down what's visible in the Vault.

| Filter          | Options                                          | Description                                     |
| --------------- | ------------------------------------------------ | ----------------------------------------------- |
| **Type**        | Markdown, React, Python, Mermaid, HTML, Code Run | Show only artifacts of a specific type          |
| **Project**     | Any project in your workspace                    | Show artifacts assigned to a particular project |
| **Date Range**  | Custom start and end dates                       | Show artifacts created within a window          |
| **Public Only** | Toggle                                           | Show only published artifacts                   |
| **Apps Only**   | Toggle                                           | Show only interactive app artifacts             |

Active filters appear as dismissible chips, so you always know what's applied.

## Bulk Actions

Select multiple artifacts using checkboxes to act on them in batch.

{% stepper %}
{% step %}
**Select Artifacts** Click the checkbox on each artifact you want to include. Hold **Shift** and click to select a range.
{% endstep %}

{% step %}
**Choose an Action** The toolbar updates to show available bulk actions — **Move** or **Delete**.
{% endstep %}

{% step %}
**Confirm** Move the selected artifacts into a target folder, or confirm deletion. Changes apply immediately.
{% endstep %}
{% endstepper %}

## Editing Artifacts

Click any artifact in the Vault to open it in the content viewer. Depending on the artifact type you'll see either:

* **Note editor** — for plain-text and markdown notes, with inline editing
* **Artifact viewer** — for rich artifacts like React apps, diagrams, code runs, and presentations

Changes made in the editor are saved back to the artifact directly.

## Sharing & Publishing

Artifacts can be published to generate a public URL that anyone can access — no DarcyIQ account required.

| Option                  | Description                                                  |
| ----------------------- | ------------------------------------------------------------ |
| **Publish**             | Toggle an artifact to published and receive a shareable link |
| **Password Protection** | Optionally require a password to view the published artifact |
| **Expiry**              | Set an expiration date after which the link stops working    |
| **Unpublish**           | Revoke public access at any time                             |

Published artifacts display a globe icon in the file tree so you can see at a glance which items are shared.

## Darcy Chat Integration

Open **Darcy Chat** directly from the Vault to ask questions about your artifacts, generate new content, or refine existing work without leaving the page.

## Getting Started

1. Navigate to **Artifact Vault** from the main navigation
2. Your existing artifacts are automatically available in the Vault
3. Create folders to organize artifacts by client, project, or topic
4. Use search and filters to quickly locate what you need
5. Select artifacts in bulk to move or clean up in batch

{% hint style="info" %}
**Pro Tip**: Combine folder organization with project assignment for maximum flexibility. Folders give you a visual hierarchy in the Vault, while project assignment links artifacts to the broader project context across DarcyIQ.
{% endhint %}


# Customer Intelligence

AI-powered account management that turns your CRM, projects, and the open web into living customer health, intelligence, and revenue opportunities

For services businesses, the easiest accounts to grow are the ones you already have — yet they're usually the most overlooked. Customer context is scattered across your CRM, delivery projects, meeting notes, and the news, and nobody has time to keep a current, evidence-backed picture of every relationship.

**DarcyIQ Customer Intelligence gives every customer account a living, AI-maintained profile.** An Account Management Agent researches each account — pulling from your CRM, linked delivery projects, existing intelligence, and the open web — and continuously surfaces what matters: a relationship **health score**, customer **sentiment**, fresh **signals**, risk **alerts**, delivery **milestones**, and concrete **revenue opportunities**. Your account team gets a portfolio they can act on instead of a CRM they have to maintain.

{% hint style="success" %}
**From CRM to action**: Connect your CRM (Salesforce, HubSpot, or Microsoft Dynamics) and your customers sync into a portfolio roster. Run the Account Management Agent on "Acme Corp" — it reads the linked migration project, finds a recent funding announcement, records an expansion opportunity, scores the relationship at 82/100, and emails the account team a digest. When a rep moves the opportunity to *Accepted*, the team is notified automatically.
{% endhint %}

## Who Is This For?

Customer Intelligence is built for teams responsible for growing and retaining existing customers:

* **Account Managers & Account Executives** — keep a current, prioritized view of every account you own
* **Customer Success Managers** — catch risk signals early and track relationship health over time
* **Services & Delivery Leaders** — connect delivery reality to the commercial relationship
* **Sales Leadership** — see portfolio-wide health, pipeline, and at-risk accounts at a glance
* **Partner & Alliance Teams** — track expansion and cross-sell across a book of accounts

## Key Benefits

| Benefit                       | Description                                                                                   | Business Impact                                       |
| ----------------------------- | --------------------------------------------------------------------------------------------- | ----------------------------------------------------- |
| **Living Account Profiles**   | An AI agent keeps each account's overview, health, and intelligence current                   | No more stale CRM notes or "starting from scratch"    |
| **Relationship Health Score** | A configurable 0-100 score blending sentiment, alerts, milestones, delivery, and pipeline     | Spot at-risk accounts before they churn               |
| **Customer Sentiment**        | An agent-assessed read of how satisfied the customer is, with rationale                       | Separate "are they happy" from "is the account busy"  |
| **Evidence-Backed Signals**   | Signals, alerts, and milestones recorded with sources                                         | Decisions grounded in facts, not hunches              |
| **Revenue Opportunities**     | Cross-sell, upsell, renewal, and expansion opportunities with priority and value              | A proactive expansion pipeline per account            |
| **CRM Sync**                  | Accounts, contacts, and opportunities flow in from Salesforce, HubSpot, or Microsoft Dynamics | One source of truth, no double entry                  |
| **Project-Aware**             | Linked delivery projects feed the agent's research                                            | Commercial intelligence informed by delivery reality  |
| **Automatic Notifications**   | Account digests and opportunity status emails to the account team                             | The right people stay informed without manual updates |

## How Customer Intelligence Works

The portfolio runs on a continuous loop: data flows in from your CRM and delivery projects, the Account Management Agent synthesizes it (augmented with web research), and the result is structured intelligence your team acts on.

```mermaid
graph LR
    A["CRM &<br/>Projects"] --> B["Account<br/>Management Agent"]
    W["Web<br/>Research"] --> B
    B --> C["Health &<br/>Sentiment"]
    B --> D["Intelligence Feed<br/>(signals/alerts/milestones)"]
    B --> E["Opportunities"]
    C --> F["Act &<br/>Notify"]
    D --> F
    E --> F
```

| Stage          | What Happens                                                                                                |
| -------------- | ----------------------------------------------------------------------------------------------------------- |
| **Sync**       | CRM accounts, contacts, and opportunities sync in as customers, connections, and pipeline                   |
| **Research**   | The Account Management Agent reads linked projects, existing intelligence, and the open web                 |
| **Synthesize** | The agent records signals, alerts, milestones, contacts, an account overview, sentiment, and a health score |
| **Prioritize** | Opportunities are scored and tiered; accounts are flagged healthy / watch / at-risk                         |
| **Act**        | The team works the roster, advances opportunities, and receives digests and status notifications            |

## Customer Intelligence vs. Projects

Customer Intelligence and [Projects](/organize/projects) are complementary:

|                   | Projects                         | Customer Intelligence                          |
| ----------------- | -------------------------------- | ---------------------------------------------- |
| **Focus**         | Delivering a specific engagement | Growing and retaining the overall relationship |
| **Scope**         | One body of work                 | The whole account, across engagements          |
| **Primary users** | Delivery teams                   | Account managers, CSMs, sales                  |

A customer can have many linked projects. The Account Management Agent reads those projects as delivery evidence when it assesses account health and finds opportunities. See [The Account Management Agent](/grow/customer-intelligence/account-management-agent) for how project context is used.

## Getting Started

{% stepper %}
{% step %}
**Connect your CRM** Connect Salesforce, HubSpot, or Microsoft Dynamics so your accounts, contacts, and opportunities sync into the portfolio. See [CRM Sync](/grow/customer-intelligence/crm-sync).
{% endstep %}

{% step %}
**Open the Customers roster** Review portfolio health, sentiment, and pipeline across all accounts. See [Customers & Portfolio Health](/grow/customer-intelligence/customers-and-health).
{% endstep %}

{% step %}
**Assign account teams** Add team members to each customer so they appear in "My customers" and receive notifications.
{% endstep %}

{% step %}
**Run the Account Management Agent** On a customer, run the agent to generate its overview, health, sentiment, signals, and opportunities. See [The Account Management Agent](/grow/customer-intelligence/account-management-agent).
{% endstep %}

{% step %}
**Tune scoring (optional)** Adjust deal sizing, priority tiers, and health weights to match how your business thinks about accounts. See [Health Score & Scoring Settings](/grow/customer-intelligence/settings-and-scoring).
{% endstep %}
{% endstepper %}

## Next Steps

| Goal                                                  | Documentation                                                                        |
| ----------------------------------------------------- | ------------------------------------------------------------------------------------ |
| Work the portfolio roster and read account health     | [Customers & Portfolio Health](/grow/customer-intelligence/customers-and-health)     |
| Understand signals, alerts, milestones, and sentiment | [Intelligence Feed](/grow/customer-intelligence/intelligence-feed)                   |
| Manage the expansion and renewal pipeline             | [Opportunities](/grow/customer-intelligence/opportunities)                           |
| Run AI-powered account research                       | [The Account Management Agent](/grow/customer-intelligence/account-management-agent) |
| Configure health scoring and pipeline settings        | [Health Score & Scoring Settings](/grow/customer-intelligence/settings-and-scoring)  |
| Sync accounts and pipeline from your CRM              | [CRM Sync](/grow/customer-intelligence/crm-sync)                                     |
| Keep the account team informed automatically          | [Notifications & Digests](/grow/customer-intelligence/notifications)                 |
| Learn about AI agents in DarcyIQ                      | [Agents](/core-features/agents)                                                      |


# Customers & Portfolio Health

The customer roster — portfolio health, sentiment, pipeline, filters, and the account detail view your team works from every day

The **Customers** page is your account portfolio. It rolls every customer up into a single roster with relationship health, sentiment, and pipeline at a glance, and lets you drill into any account for the full picture.

{% hint style="success" %}
**Your book of business, prioritized**: Open Customers, filter to **My customers**, sort by health, and immediately see which accounts are thriving, which need attention, and where the open pipeline is — without opening a single record.
{% endhint %}

## The Portfolio Roster

The roster lists every customer your organization tracks, with summary charts above and a sortable table below.

| Column            | What It Shows                                                                          |
| ----------------- | -------------------------------------------------------------------------------------- |
| **Customer**      | Account name (and CRM linkage where synced)                                            |
| **Health**        | The relationship health score (0-100) with a healthy / watch / at-risk tone            |
| **Sentiment**     | Agent-assessed customer satisfaction, shown in words (e.g. Positive, Neutral, At risk) |
| **Opportunities** | Count of open opportunities on the account                                             |
| **Pipeline**      | Confidence-weighted value of open opportunities                                        |
| **Team**          | The account team assigned to the customer                                              |

Portfolio summary charts at the top of the page visualize the distribution of accounts across health and pipeline so leaders can read the whole book at once.

## Finding the Right Accounts

| Control          | Purpose                                               |
| ---------------- | ----------------------------------------------------- |
| **Search**       | Find an account by name                               |
| **My customers** | Show only accounts where you are on the account team  |
| **Archived**     | Show archived accounts (hidden from the default view) |

{% hint style="info" %}
**My customers** filters the roster to accounts where you are a member of the account team. It's the fastest way for an account manager to focus on just their book of business.
{% endhint %}

## Creating Customers

Customers can be added two ways:

* **From your CRM** — when Salesforce, HubSpot, or Microsoft Dynamics is connected, accounts sync in automatically as customers. See [CRM Sync](/grow/customer-intelligence/crm-sync).
* **Manually** — create a customer directly when you want to track an account that isn't in (or hasn't yet synced from) your CRM.

## The Account Team

Each customer has an **account team** — the users responsible for the relationship. Team membership matters in two places:

* It powers the **My customers** filter.
* It determines **who receives notifications** — account digests and opportunity status emails go to the account team. See [Notifications & Digests](/grow/customer-intelligence/notifications).

## Archiving Customers

When an account is no longer active, **archive** it to remove it from the default roster while preserving its history. Archiving asks for confirmation first to prevent accidental removal, and archived accounts remain available via the **Archived** filter.

## The Customer Detail View

Opening a customer shows its detail page. The **Overview** tab presents four tiles:

| Tile              | What It Shows                                                                  |
| ----------------- | ------------------------------------------------------------------------------ |
| **Health**        | The current health score, with an explanation of what's driving it             |
| **Sentiment**     | Customer sentiment with the agent's rationale (click to read the full insight) |
| **Opportunities** | A snapshot of the open pipeline on the account                                 |
| **Connections**   | Key contacts and relationships on the account                                  |

The Health and Sentiment tiles are interactive — open them to understand *why* the score is what it is, not just the number.

Beyond Overview, the detail page has dedicated tabs for the [Intelligence Feed](/grow/customer-intelligence/intelligence-feed) and [Opportunities](/grow/customer-intelligence/opportunities).

## Understanding Health vs. Sentiment

Health and sentiment are related but distinct, and it's important not to conflate them:

|                         | Health Score                                                      | Sentiment                                                 |
| ----------------------- | ----------------------------------------------------------------- | --------------------------------------------------------- |
| **Question it answers** | How strong is this relationship overall?                          | How satisfied is the customer right now?                  |
| **Inputs**              | Sentiment + alerts + milestones + active delivery + open pipeline | The agent's read of customer satisfaction, with rationale |
| **Scale**               | 0-100, configurable weights                                       | 0-100 (50 = neutral), shown in words                      |

Sentiment is one *input* into the health score. How much it counts — along with every other factor — is configurable. See [Health Score & Scoring Settings](/grow/customer-intelligence/settings-and-scoring).

## Next Steps

| Goal                                      | Documentation                                                                        |
| ----------------------------------------- | ------------------------------------------------------------------------------------ |
| Understand the signals behind an account  | [Intelligence Feed](/grow/customer-intelligence/intelligence-feed)                   |
| Work the pipeline on an account           | [Opportunities](/grow/customer-intelligence/opportunities)                           |
| Generate and refresh account intelligence | [The Account Management Agent](/grow/customer-intelligence/account-management-agent) |
| Configure how health is scored            | [Health Score & Scoring Settings](/grow/customer-intelligence/settings-and-scoring)  |


# Intelligence Feed

The chronological record of what's happening on an account — evidence-backed signals, risk alerts, and delivery milestones, plus customer sentiment

The **Intelligence** tab on a customer is the account's running record of what matters: every **signal**, **alert**, and **milestone**, captured with evidence and a timestamp. It's how the relationship's story stays current instead of living in scattered notes and inboxes.

{% hint style="success" %}
**One timeline, every signal**: A funding announcement, a renewal-risk alert, and a go-live milestone all land on the same account timeline — each with a source — so anyone on the team can catch up on the relationship in a minute.
{% endhint %}

## Entry Types

Every feed entry is one of three types:

| Type          | What It Captures                                      | Examples                                                                                    |
| ------------- | ----------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| **Signal**    | A noteworthy, evidence-backed fact about the customer | Funding round, leadership change, product launch, hiring surge, expansion into a new market |
| **Alert**     | A risk or issue that warrants attention               | Renewal risk, stalled engagement, budget freeze, negative feedback                          |
| **Milestone** | A positive delivery or relationship achievement       | Go-live, successful POC, contract signed, QBR completed                                     |

Each entry typically includes a title, a short body, a confidence indicator, and a source reference so findings can be traced back to where they came from.

## The Activity Timeline

The Intelligence tab visualizes feed activity over time, so you can see when an account has been active or quiet at a glance. Signals and milestones are color-coded to keep the timeline readable.

## Filtering the Feed

Use the compact filter pills to focus the feed:

| Filter     | Purpose                                                               |
| ---------- | --------------------------------------------------------------------- |
| **Type**   | Narrow to Signals, Alerts, or Milestones                              |
| **Source** | Filter by where the entry came from (e.g. the agent vs. manual entry) |

## How Entries Are Created

Feed entries come from two places:

* **The Account Management Agent** — most entries are recorded automatically when the agent researches an account, each backed by a source. See [The Account Management Agent](/grow/customer-intelligence/account-management-agent).
* **Manual entry** — team members can add entries directly to capture something they know that the agent hasn't found.

## Customer Sentiment

Alongside the feed, each account carries a **customer sentiment** read: the agent's assessment of how satisfied the customer is, expressed as a 0-100 score (50 = neutral) with a written rationale.

{% hint style="info" %}
**Sentiment is about satisfaction, not activity.** It answers "is the customer happy with us?" — deliberately scoped to customer satisfaction, separate from operational risk or momentum (which surface as alerts and signals). This keeps sentiment from double-counting the same factors the health score already weighs.
{% endhint %}

Sentiment is surfaced on the customer detail Overview tab (click the Sentiment tile to read the full rationale) and in the roster. It also feeds the health score — see [Health Score & Scoring Settings](/grow/customer-intelligence/settings-and-scoring).

## Next Steps

| Goal                                    | Documentation                                                                        |
| --------------------------------------- | ------------------------------------------------------------------------------------ |
| Turn intelligence into pipeline         | [Opportunities](/grow/customer-intelligence/opportunities)                           |
| See how the feed is generated           | [The Account Management Agent](/grow/customer-intelligence/account-management-agent) |
| Understand how sentiment affects health | [Health Score & Scoring Settings](/grow/customer-intelligence/settings-and-scoring)  |
| Read account health in the portfolio    | [Customers & Portfolio Health](/grow/customer-intelligence/customers-and-health)     |


# Opportunities

The expansion, renewal, cross-sell, and upsell pipeline on each account — scored, prioritized, and moved through a clear review-to-accept lifecycle

Opportunities are the revenue moments on an account: a renewal coming up, a new product to cross-sell, room to expand a successful engagement. Customer Intelligence captures them, scores them, and gives your team a clear lifecycle to work them — so expansion is proactive, not accidental.

{% hint style="success" %}
**A proactive expansion pipeline**: The agent spots that a customer's successful POC could expand into a paid rollout, records it as an opportunity with an estimated value and a recommended next step, and the account manager reviews it, accepts it, and works it — all without leaving the account.
{% endhint %}

## Anatomy of an Opportunity

| Field                  | Description                                                                                        |
| ---------------------- | -------------------------------------------------------------------------------------------------- |
| **Title**              | Short description of the opportunity                                                               |
| **Type**               | Cross-sell, Upsell, Renewal, Expansion, or New service                                             |
| **Estimated value**    | A T-shirt size — Small, Medium, Large, or Extra large — mapped to a dollar value for pipeline math |
| **Confidence**         | The agent's confidence (0-100) that the opportunity is real                                        |
| **Recommended action** | The concrete next step to advance it                                                               |
| **Priority**           | A computed 0-100 priority score and a High / Medium / Low tier                                     |
| **Status**             | Where it sits in the lifecycle (see below)                                                         |
| **Stale flag**         | Marks opportunities with no recent movement so nothing falls through the cracks                    |

Priority, weighted value, and the stale flag are all derived from your organization's settings — see [Health Score & Scoring Settings](/grow/customer-intelligence/settings-and-scoring).

## The Opportunity Lifecycle

Opportunities move forward through **New -> Reviewed -> Accepted**, and can be **Promoted** to your CRM or **Dismissed** at any point.

```mermaid
stateDiagram-v2
    [*] --> New
    New --> Reviewed
    Reviewed --> Accepted
    New --> Dismissed
    Reviewed --> Dismissed
    Accepted --> Promoted
    Accepted --> Dismissed
    Promoted --> [*]
    Dismissed --> [*]
```

| Status        | Meaning                                                                                              |
| ------------- | ---------------------------------------------------------------------------------------------------- |
| **New**       | Freshly surfaced (usually by the agent); not yet reviewed                                            |
| **Reviewed**  | An account team member has looked at it and it's ready for a decision — *not* a commitment to pursue |
| **Accepted**  | The team has committed to pursuing it                                                                |
| **Promoted**  | Pushed forward as a real deal (e.g. to your CRM)                                                     |
| **Dismissed** | Set aside, with a reason captured for the feedback loop                                              |

{% hint style="info" %}
**Reviewed means "ready for your review," not "moving forward."** It signals the opportunity is worth a decision; the team still moves it to Accepted to commit. Moving an opportunity to Reviewed or Accepted notifies the account team — see [Notifications & Digests](/grow/customer-intelligence/notifications).
{% endhint %}

## Managing Opportunities

The **Opportunities** tab on a customer is where the pipeline is worked:

* **Filter** by Stage, Priority, and Source using compact dropdown pills
* **Advance** an opportunity to the next status, or **Dismiss** / **Promote** it
* **Bulk update** status across multiple opportunities at once

## CRM Deal Linkage

When your CRM (Salesforce, HubSpot, or Microsoft Dynamics) is connected, opportunities can be linked to CRM deals via a deal reference, and CRM deal stages map into Customer Intelligence statuses on sync.

{% hint style="info" %}
**Closed-lost deals become Dismissed.** By default, a synced CRM opportunity whose stage indicates *closed lost* is mapped to **Dismissed** in Customer Intelligence (matched flexibly, so appended stage text like "Closed Lost - Budget" still resolves). See [CRM Sync](/grow/customer-intelligence/crm-sync).
{% endhint %}

## Next Steps

| Goal                                            | Documentation                                                                        |
| ----------------------------------------------- | ------------------------------------------------------------------------------------ |
| See where opportunities come from               | [The Account Management Agent](/grow/customer-intelligence/account-management-agent) |
| Tune deal sizing, priority tiers, and staleness | [Health Score & Scoring Settings](/grow/customer-intelligence/settings-and-scoring)  |
| Sync deals from your CRM                        | [CRM Sync](/grow/customer-intelligence/crm-sync)                                     |
| Get notified on status changes                  | [Notifications & Digests](/grow/customer-intelligence/notifications)                 |


# The Account Management Agent

The AI agent that researches each customer account and keeps its overview, health, sentiment, intelligence feed, and opportunities current

The **Account Management Agent** is the engine behind Customer Intelligence. Run it on a customer and it researches the account end to end — reading your CRM context, linked delivery projects, and existing intelligence, then augmenting with live web research — and writes back a refreshed account overview, health score, sentiment, signals, alerts, milestones, contacts, and revenue opportunities.

{% hint style="success" %}
**Account research on demand**: Instead of an account manager spending an afternoon piecing together the state of "Acme Corp," they click run. Minutes later the account has a current overview, a health score with rationale, three new evidence-backed signals, and two scored expansion opportunities — each citing its source.
{% endhint %}

## What the Agent Does

The agent treats each customer as an **account of your organization** and reasons about retention and growth from that perspective. In a single run it:

* Reviews the account's linked **projects** for delivery reality (status, meetings, tasks, documents)
* Reads **existing intelligence** already on file so it doesn't repeat itself
* Researches the company on the **open web** for recent, public signals (news, funding, leadership, hiring, product)
* Records **signals, alerts, and milestones** — each backed by a source
* Captures relevant **contacts** it discovers
* Writes an updated **account overview**
* Assesses **customer sentiment** (0-100 with rationale)
* Computes a **health score**
* Surfaces **revenue opportunities** with type, value, confidence, and a recommended action

## Running the Agent

The agent runs **per customer**, on demand. When triggered, it kicks off as a background task so the request returns immediately — the run continues server-side and results appear on the account as they're written.

{% hint style="info" %}
**Runs are asynchronous.** A run does real research and tool use, so it takes time. You don't need to wait on the page — refresh the account to see updated intelligence, and the account team receives a digest when the run completes (see [Notifications & Digests](/grow/customer-intelligence/notifications)).
{% endhint %}

## What the Agent Gathers

| Source                    | What It Provides                                                                              |
| ------------------------- | --------------------------------------------------------------------------------------------- |
| **Linked projects**       | Delivery status, meetings, tasks, documents — the engagement reality behind the relationship  |
| **Existing intelligence** | Prior signals and opportunities, so findings build on what's known                            |
| **CRM context**           | Account, contact, and pipeline data synced from your CRM                                      |
| **Web research**          | Recent public information about the company                                                   |
| **Assigned integrations** | Any integrations assigned to the customer become part of the agent's tool surface for the run |

### Project-Aware Research

If a customer has linked [Projects](/organize/projects), the agent can search them as first-class delivery evidence. When an account has **multiple** linked projects, the agent can search **every** linked project — selecting which project to look in as it researches — so delivery context across the whole relationship informs the account picture.

### Integration Scoping

Integrations assigned to a customer become available to the agent during the run, scoped to what the triggering user is authorized to use. This lets a run reach systems like CRM or collaboration tools where relevant, without ever exceeding the user's own permissions.

## What the Agent Produces

| Output                            | Where It Appears                                                   |
| --------------------------------- | ------------------------------------------------------------------ |
| **Account overview**              | Customer detail Overview tab                                       |
| **Health score**                  | Overview tile and the portfolio roster                             |
| **Customer sentiment**            | Overview tile (with rationale) and the roster                      |
| **Signals / Alerts / Milestones** | [Intelligence Feed](/grow/customer-intelligence/intelligence-feed) |
| **Contacts**                      | Connections on the account                                         |
| **Opportunities**                 | [Opportunities](/grow/customer-intelligence/opportunities) tab     |

How health is calculated from these outputs — and how much sentiment, alerts, milestones, delivery, and pipeline each count — is configurable. See [Health Score & Scoring Settings](/grow/customer-intelligence/settings-and-scoring).

## Next Steps

| Goal                            | Documentation                                                                       |
| ------------------------------- | ----------------------------------------------------------------------------------- |
| Read what the agent records     | [Intelligence Feed](/grow/customer-intelligence/intelligence-feed)                  |
| Work the opportunities it finds | [Opportunities](/grow/customer-intelligence/opportunities)                          |
| Configure how health is scored  | [Health Score & Scoring Settings](/grow/customer-intelligence/settings-and-scoring) |
| Learn about AI agents generally | [Agents](/core-features/agents)                                                     |


# Health Score & Scoring Settings

Org-wide configuration for how opportunities are sized and prioritized and how account health is scored, with live preview and CRM connection status

Customer Intelligence ships with sensible defaults, but every business thinks about accounts differently. The **Customer Intelligence** settings panel lets you tune how opportunities are sized and prioritized, and how account health is scored — organization-wide.

{% hint style="success" %}
**Scoring that matches your business**: A delivery-heavy services firm weights active projects and risk more; a growth-focused team weights pipeline and sentiment. Pick a preset, watch the live preview update against example accounts, and save — every account scores by your rules.
{% endhint %}

{% hint style="info" %}
**Where to find it**: Settings -> Customer Intelligence. These settings apply across your whole organization and require manage permission to edit. They do not change *what* the Account Management Agent does — only how its findings are scored.
{% endhint %}

## Deal Sizing

Each opportunity carries a T-shirt size; deal sizing maps each size to a representative dollar value used for the confidence-weighted pipeline.

| Size                 | Default value |
| -------------------- | ------------- |
| **Small (S)**        | $5,000        |
| **Medium (M)**       | $50,000       |
| **Large (L)**        | $100,000      |
| **Extra large (XL)** | $250,000      |

## Priority Tiers

Every opportunity gets a 0-100 priority score. These cutoffs decide what reads as High / Medium / Low.

| Setting                | Default | Meaning                                        |
| ---------------------- | ------- | ---------------------------------------------- |
| **High at or above**   | 55      | Score at or above this is High priority        |
| **Medium at or above** | 35      | Score at or above this is Medium; below is Low |

## Stale & At-Risk

| Setting           | Default | Meaning                                                        |
| ----------------- | ------- | -------------------------------------------------------------- |
| **Stale after**   | 21 days | An opportunity with no movement for this long is flagged stale |
| **At-risk below** | 50      | An account with a health score below this is flagged at-risk   |

## Health Score

Health starts at a **baseline** and adjusts for recent events. Each factor contributes a bonus or penalty per item, capped at a maximum impact — plus customer sentiment, which shifts the score up or down.

| Factor                 | Default per item | Default max impact | Effect                                               |
| ---------------------- | ---------------- | ------------------ | ---------------------------------------------------- |
| **Baseline**           | —                | —                  | Neutral starting score (default 60)                  |
| **Alerts**             | -4               | 16                 | Recent risk alerts lower health                      |
| **Milestones**         | +5               | 20                 | Recent achievements raise health                     |
| **Active projects**    | +4               | 12                 | Active delivery raises health                        |
| **Open opportunities** | +2               | 8                  | Open pipeline raises health                          |
| **Customer sentiment** | —                | ±30                | Sentiment shifts health linearly around neutral (50) |

Sentiment maps linearly around neutral: a sentiment of 50 is no change, 100 adds the full positive impact, and 0 subtracts the full negative impact. Setting the sentiment max impact to 0 disables its contribution.

{% hint style="info" %}
**Why alerts are capped modestly**: Alerts flag risk but don't carry a magnitude, so the defaults deliberately keep their impact bounded and give sentiment a leading role — preventing a flurry of minor alerts from dominating an otherwise healthy relationship.
{% endhint %}

### Presets

Three presets adjust the health weights in one click:

| Preset                | Emphasis                                            |
| --------------------- | --------------------------------------------------- |
| **Balanced**          | Even weighting with sentiment leading (the default) |
| **Delivery-weighted** | Active delivery and risk matter most                |
| **Growth-weighted**   | Momentum, pipeline, and sentiment matter most       |

### Live Preview

As you adjust weights, a **live preview** scores a set of example accounts (e.g. a struggling, a steady, and a thriving account) so you can see how your settings play out before saving.

## CRM Connection

The settings panel also surfaces your organization's **CRM connection** status (your connected CRM — Salesforce, HubSpot, or Microsoft Dynamics — shown as Connected or Not connected), with a shortcut to connect or manage it. This makes it easy to confirm the data source powering Customer Intelligence right where you tune it. See [CRM Sync](/grow/customer-intelligence/crm-sync).

## When Changes Take Effect

{% hint style="info" %}
Changing these values **recomputes priority and pipeline immediately**. **Health scores update on each account's next agent run** — historical numbers are not retroactively changed.
{% endhint %}

## Next Steps

| Goal                                     | Documentation                                                                        |
| ---------------------------------------- | ------------------------------------------------------------------------------------ |
| See how opportunities use these settings | [Opportunities](/grow/customer-intelligence/opportunities)                           |
| Understand health vs. sentiment          | [Customers & Portfolio Health](/grow/customer-intelligence/customers-and-health)     |
| Connect the CRM that feeds the portfolio | [CRM Sync](/grow/customer-intelligence/crm-sync)                                     |
| Learn what the agent records             | [The Account Management Agent](/grow/customer-intelligence/account-management-agent) |


# CRM Sync

How your CRM flows into Customer Intelligence — syncing accounts, contacts, and opportunities, with closed-lost handling and current scope

Customer Intelligence is most powerful when it's grounded in your CRM. Connecting your CRM brings your accounts, contacts, and opportunities into the portfolio automatically — so the Account Management Agent reasons about real accounts and your team works one source of truth.

DarcyIQ supports **Salesforce**, **HubSpot**, and **Microsoft Dynamics**.

{% hint style="success" %}
**No double entry**: Connect your CRM once and your accounts appear as customers, their contacts as connections, and their open deals as opportunities — ready for the agent to research and your team to work.
{% endhint %}

## Connecting Your CRM

Org-wide CRM is configured under **Settings -> Integrations** at the organization scope. An administrator connects the CRM there; once connected, sync populates the Customer Intelligence portfolio.

| CRM                    | Setup guide                                                                             |
| ---------------------- | --------------------------------------------------------------------------------------- |
| **Salesforce**         | [Salesforce Integration](/build/integration-overview/enterprise/salesforce-integration) |
| **HubSpot**            | [HubSpot](/build/integration-overview/enterprise/hubspot)                               |
| **Microsoft Dynamics** | Connected from Settings -> Integrations                                                 |

You can also confirm connection status directly from the [Customer Intelligence settings panel](/grow/customer-intelligence/settings-and-scoring#crm-connection).

## What Syncs

| CRM object             | Becomes in Customer Intelligence      |
| ---------------------- | ------------------------------------- |
| **Account**            | Customer (portfolio account)          |
| **Contact**            | Connection on the account             |
| **Opportunity / Deal** | Opportunity in the account's pipeline |

Synced data feeds the portfolio in two ways: it gives the [Account Management Agent](/grow/customer-intelligence/account-management-agent) real account context to research, and it populates the [Opportunities](/grow/customer-intelligence/opportunities) pipeline and pipeline value used across the roster.

## Opportunity Stage Mapping

CRM opportunity stages map into Customer Intelligence statuses on sync.

{% hint style="info" %}
**Closed-lost becomes Dismissed.** By default, a CRM opportunity whose stage indicates *closed lost* is mapped to **Dismissed**. The match is flexible — it looks for "closed lost" within the stage name — so organizations that append text (e.g. "Closed Lost - No Budget") still map correctly. This default is designed to be extensible toward richer stage mapping in the future.
{% endhint %}

## Notes & Caveats

{% hint style="info" %}
**Setup varies by CRM.** Salesforce, HubSpot, and Microsoft Dynamics are all supported as the organization CRM; the connection steps (credentials, tokens, OAuth) differ per provider — follow the relevant setup guide above. Standard CRM activity logs (tasks, events, emails) are available to the agent's tools but are not bulk-synced into the intelligence feed.
{% endhint %}

## Next Steps

| Goal                                    | Documentation                                                                           |
| --------------------------------------- | --------------------------------------------------------------------------------------- |
| Connect and manage Salesforce           | [Salesforce Integration](/build/integration-overview/enterprise/salesforce-integration) |
| Connect and manage HubSpot              | [HubSpot](/build/integration-overview/enterprise/hubspot)                               |
| Confirm CRM status while tuning scoring | [Health Score & Scoring Settings](/grow/customer-intelligence/settings-and-scoring)     |
| Work the synced pipeline                | [Opportunities](/grow/customer-intelligence/opportunities)                              |
| See how the agent uses CRM context      | [The Account Management Agent](/grow/customer-intelligence/account-management-agent)    |


# Notifications & Digests

How Customer Intelligence keeps the account team informed — agent-run account digests and opportunity status notifications

Customer Intelligence keeps the right people informed without anyone sending manual updates. Two kinds of email go to the **account team** — a digest after each agent run, and a notification when an opportunity advances.

{% hint style="success" %}
**The team stays in the loop automatically**: After the agent researches an account, the account team gets a digest of what's new. When a rep moves an opportunity to *Accepted*, the team is notified with a link — no status meeting required.
{% endhint %}

## Who Receives Notifications

Both notification types are sent to the customer's **account team** — the members assigned to that customer. Recipients are resolved from team membership, so keeping account teams current (see [Customers & Portfolio Health](/grow/customer-intelligence/customers-and-health)) ensures the right people are notified.

## Account Digest

After the [Account Management Agent](/grow/customer-intelligence/account-management-agent) finishes a run, it emails the account team a digest summarizing the latest intelligence for that account.

| Includes               | Detail                                                       |
| ---------------------- | ------------------------------------------------------------ |
| **Account overview**   | The agent's refreshed summary of the relationship            |
| **Health score**       | The current score with a healthy / watch / at-risk indicator |
| **New this run**       | Signals, alerts, and milestones recorded in this run         |
| **Open opportunities** | The current open pipeline on the account                     |
| **Link**               | A button to open the account in DarcyIQ                      |

{% hint style="info" %}
**Per-customer control**: The account digest can be turned off for a given customer. When disabled, a run still updates the account — it just doesn't send the digest email.
{% endhint %}

## Opportunity Status Notifications

When an opportunity advances to **Reviewed** or **Accepted**, the account team is emailed so the next owner can act.

| Trigger               | Message                                                                             |
| --------------------- | ----------------------------------------------------------------------------------- |
| **Moved to Reviewed** | "Ready for your review" — the opportunity is worth a decision, not yet a commitment |
| **Moved to Accepted** | The opportunity has been accepted and is ready to action                            |

Each email includes the opportunity's key details — type, estimated value, confidence, and the recommended next step — plus a link to the account. See the [Opportunities](/grow/customer-intelligence/opportunities) lifecycle for how statuses progress.

{% hint style="info" %}
**Reviewed is a prompt, not a promise.** The wording is intentional: a Reviewed notification asks the team to review and decide, while an Accepted notification confirms commitment.
{% endhint %}

## Next Steps

| Goal                                 | Documentation                                                                        |
| ------------------------------------ | ------------------------------------------------------------------------------------ |
| Manage account team membership       | [Customers & Portfolio Health](/grow/customer-intelligence/customers-and-health)     |
| Understand the opportunity lifecycle | [Opportunities](/grow/customer-intelligence/opportunities)                           |
| See what triggers a digest           | [The Account Management Agent](/grow/customer-intelligence/account-management-agent) |


# Lead Lists

Build your sales pipeline with **AI-powered lead discovery and enrichment**. Let AI find ideal prospects and automatically enrich them with detailed insights for outreach.

{% hint style="success" %}
**No More Manual Research**: Describe your ideal customer and AI will find them, or upload existing lists for automatic enrichment.
{% endhint %}

## Two Ways to Build Lists

<figure><img src="/files/kBAxCj81LhWb6Zqls4sh" alt=""><figcaption></figcaption></figure>

### 🤖 AI Discovery

Ask AI to find prospects: *"Find 50 SaaS companies in Austin with 10-100 employees"*

{% columns %}
{% column width="50%" %}

<div data-full-width="false"><figure><img src="/files/VGtBAWt1ZXFhelfvEMRc" alt="" width="344"><figcaption></figcaption></figure></div>
{% endcolumn %}

{% column width="50%" %}

<figure><img src="/files/3XWahm7v8Nyw47rghjGA" alt="" width="375"><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

<figure><img src="/files/jqL2TsrpFHIIglS1IHT2" alt=""><figcaption></figcaption></figure>

### 📊 CSV Upload

Upload existing prospect lists for AI enrichment and contact discovery.

## How It Works

{% columns %}
{% column %}

1. **Create Lead List** - Name your list and choose AI discovery or CSV upload
2. **Configure AI Enrichment Columns** - Select what information AI should research (company overview, decision makers, pain points, etc.)
3. **Start Processing** - AI researches each lead in real-time
4. **Review Results** - View enriched data and export to your CRM
   {% endcolumn %}

{% column %}

<figure><img src="/files/HOfNNDuq3WIIJBOMBG05" alt="" width="178"><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

## AI Discovery Options

Use the "Find Leads" dialog to specify:

* **Company Type**: Startups, SMBs, Enterprise, SaaS, E-commerce, Agencies
* **Industry**: Technology, Healthcare, Finance, Manufacturing, Legal, etc.
* **Company Size**: 1-10, 11-50, 51-200, 201-1000, 1000+ employees
* **Location**: Cities, regions, countries, or remote companies
* **Advanced Criteria**: Funding status, growth signals, technology needs

## Key Features

### Real-Time Processing

Watch AI research leads live with progress bars and status updates. Processing typically takes 20-30 seconds per lead.

### Smart Disqualification

AI automatically filters out poor-fit prospects (out of business, wrong industry, size mismatch) to improve pipeline quality.

## Management & Collaboration

### Lead Management

* **Search & Filter**: Find leads by status, company name, or custom criteria
* **Bulk Operations**: Delete, export, or process multiple leads at once
* **Lead Detail View**: Tabbed interface showing all AI-generated content
* **Export Options**: CSV

### Team Sharing

Share lists with **Owner**, **Write**, or **Read** permissions for team collaboration.

## Best Practices

* **Start Specific**: Define clear ideal customer profile for better results
* **Test Small**: Try small batches before large lists to validate approach
* **Choose 3-5 Columns**: Select key enrichment columns for speed and quality
* **Regular Cleanup**: Remove outdated leads and refine criteria based on results

{% hint style="info" %}
**Pro Tip**: Use AI discovery for new market segments and CSV upload for existing databases. Focus on 3-5 key enrichment columns for optimal speed and quality.
{% endhint %}


# Scoping & Estimates

AI-powered project scoping and estimation with self-learning capabilities

DarcyIQ's Scoping & Estimates feature transforms how consultants and solution architects create project scopes and Level of Effort (LOE) estimates. Build professional scoping documents faster with AI assistance that learns from your organization's approved work.

{% hint style="success" %}
**Self-Learning Intelligence**: Every approved scope automatically enters your organization's custom knowledge engine, making future estimates more accurate and consistent over time.
{% endhint %}

## Overview

Create detailed project scopes, LOE estimates, and pricing calculations with intelligent assistance from DarcyIQ. The platform learns from your approved scopes to provide contextual suggestions, historical data, and pricing guidance for future projects.

<figure><img src="/files/msjpyVpIeXoQG1lPI06o" alt=""><figcaption></figcaption></figure>

## Key Benefits

| Benefit                    | Description                                                                     |
| -------------------------- | ------------------------------------------------------------------------------- |
| ⚡ **Faster Creation**      | Build scopes in minutes instead of hours with AI-powered assistance             |
| 🧠 **Self-Learning**       | Approved scopes automatically build your organization's custom knowledge engine |
| 💰 **Accurate Pricing**    | Automated calculations with ROM ranges, FTE metrics, and margin analysis        |
| 👥 **Team Collaboration**  | Built-in review workflow with sharing and permissions                           |
| 📊 **Historical Insights** | Leverage past successful projects for better estimates                          |
| 🔄 **CRM Integration**     | One-click export to Salesforce for seamless workflow                            |

## How It Works

DarcyIQ's Scoping & Estimates follows a three-phase approach to help you create better proposals faster:

### 1. **Build & Capture** 📝

Start with a scoping template tailored to your organization's needs. Use DarcyIQ's integrated AI chat to:

* Generate task breakdowns from project descriptions
* Search your knowledge engine for similar past projects
* Get AI suggestions for scope items, dependencies, and risks
* Fill in custom fields with contextual assistance

<figure><img src="/files/s5GFImJrv4bIu0ZfVO3u" alt=""><figcaption></figcaption></figure>

### 2. **Review & Collaborate** 🔍

Move scopes through your team's review process:

* **Draft** → **In Review** → **Approved** status workflow
* Drag-and-drop Kanban board for visual management
* Share estimates with team members (Read, Write, Owner permissions)
* Track complete history of all changes
* Get peer feedback before client submission

### 3. **Learn & Improve** 🚀

When a scope is approved, the magic happens:

* Scope automatically enters your organization's knowledge engine
* Future scopes leverage this historical data for suggestions
* DarcyIQ gets smarter with every project you complete
* Build institutional knowledge that doesn't leave with team members

<figure><img src="/files/f0F0d3uNQ7QeauO8AVS9" alt=""><figcaption></figcaption></figure>

## Core Features

### AI-Powered Assistance

Get intelligent help at every step of the scoping process:

* **Contextual Chat**: Ask Darcy to help fill out any section of your scope
* **Knowledge Engine**: Find similar past projects with one click
* **Content Enhancement**: Improve scope descriptions, requirements, and deliverables
* **Task Generation**: Generate detailed task breakdowns from high-level descriptions
* **Smart Suggestions**: Get recommendations based on your organization's historical data

### Flexible Templates

Customize scoping templates to match your organization's methodology:

* **Custom Fields**: Add metadata fields for any project information you track
* **Configurable LOE Tables**: Define columns for hours/quantity, roles, task types
* **Rate Card Integration**: Link pricing automatically to your rate cards
* **Multiple Templates**: Create different templates for different service offerings
* **Default Templates**: Set organization-wide defaults for consistency

Learn more: [Templates Configuration](/settings-and-configuration/scoping-configuration/templates)

### Smart Pricing & Calculations

Automated pricing calculations with professional presentation:

* **Rate Card Pricing**: Automatic calculation based on roles and hours
* **ROM Ranges**: Rough Order of Magnitude ranges with configurable buffers
* **FTE Calculations**: Full-Time Equivalent metrics for resource planning
* **Margin Analysis**: Built-in cost rate tracking for profitability
* **Calculated Fields**: Support for percentage-based and step-function pricing
* **Timeline Visualization**: See resource allocation over project duration

### Collaboration & Workflow

Built for team-based work:

* **Kanban Workflow**: Visual board with Draft, In Review, and Approved columns
* **Permission Levels**: Owner, Write, and Read access control
* **Shared Estimates**: Collaborate with team members in real-time
* **Change History**: Complete audit trail of all modifications
* **Status Management**: Track scope lifecycle from creation to approval

### Historical Insights

Learn from your organization's past projects:

* **Pattern Recognition**: AI identifies common themes across your scopes
* **Industry Analysis**: Automatic categorization by industry and use case
* **Skill Demand**: Track which skills are needed most in which industries
* **Use Case Trends**: Understand project types and service offerings
* **Correlation Matrices**: See relationships between skills, industries, and use cases
* **Time-Based Analysis**: Filter by date range to identify trends

Learn more: [Historical Insights](/settings-and-configuration/scoping-configuration/historical-insights)

### Integrations

Seamlessly connect with your existing workflow:

* **Salesforce Export**: One-click export to Salesforce Opportunities
* **Knowledge Engine**: Automatic indexing of approved scopes
* **CRM Mapping**: Configure field mappings for your CRM objects
* **Document Export**: Generate PDFs and Word documents

## Use Cases

### For Consultants

**Challenge**: Creating consistent, accurate client proposals under tight deadlines.

**Solution**: Use scoping templates with rate cards to quickly build professional estimates. Share with team leads for review, then export directly to Salesforce. Approved scopes automatically train the AI for future proposals.

**Result**: Reduce proposal time from days to hours while improving accuracy and win rates.

***

### For Solution Architects

**Challenge**: Estimating complex technical implementations without repeating past research.

**Solution**: Search your knowledge engine for similar past projects while building new scopes. Use AI chat to break down technical requirements into detailed tasks. Leverage historical data for more accurate effort estimates.

**Result**: Better technical estimates backed by organizational knowledge, not just individual experience.

***

### For Services Teams

**Challenge**: Maintaining consistency across multiple team members creating scopes.

**Solution**: Create standardized templates with required fields and rate cards. Use review workflow to ensure quality before client submission. Build shared knowledge of successful project patterns.

**Result**: Consistent quality regardless of who creates the scope, with institutional knowledge that grows over time.

***

### For Leadership

**Challenge**: Understanding team capacity, pricing trends, and project complexity across the organization.

**Solution**: Use historical analysis to see patterns in project types, sizes, and resource allocation. Track scoping velocity and quality metrics. Identify which service offerings are most common.

**Result**: Data-driven insights for resource planning, pricing strategy, and service portfolio decisions.

## Getting Started

### Step 1: Set Up Your Rate Card

Configure your organization's pricing structure:

1. Navigate to **Settings** → **Scoping Configuration** → **Rate Cards**
2. Click **Create Rate Card**
3. Add rate items for your roles, products, or services
4. Set billing rates and optional cost rates for margin tracking
5. Mark as default for automatic use in new templates

[Learn more about Rate Cards →](/settings-and-configuration/scoping-configuration/rate-cards)

### Step 2: Create a Template

Build a reusable scoping template:

1. Navigate to **Settings** → **Scoping Configuration** → **Templates**
2. Click **Create Template**
3. Add custom fields for your overview section (customer, industry, etc.)
4. Configure LOE table columns (hours vs. quantity, role options, task types)
5. Link your rate card for automatic pricing
6. Set as default for easy access

[Learn more about Templates →](/settings-and-configuration/scoping-configuration/templates)

### Step 3: Create Your First Scope

Start building scoping estimates:

1. Navigate to **Scoping & Estimates**
2. Click **New Estimate**
3. Select your template
4. Fill in project overview and scope details
5. Add tasks and LOE estimates
6. Use AI chat for assistance at any step
7. Calculate pricing when ready

### Step 4: Collaborate & Review

Get team input before finalizing:

1. Click **Share** to add team members
2. Set permission levels (Read, Write, Owner)
3. Move to **In Review** status when ready
4. Team members can view, edit, or comment
5. Track all changes in the History tab

### Step 5: Approve & Learn

Complete the lifecycle:

1. Make final adjustments based on feedback
2. Move to **Approved** status
3. Scope automatically enters knowledge engine
4. Export to Salesforce or download as needed
5. Use historical analysis to see patterns

## Best Practices

### Template Design

* Keep templates focused on specific service offerings
* Use descriptive labels for custom fields
* Link rate cards for consistent pricing
* Set realistic default buffers (15-25% is common)

### Scoping Process

* Start with AI chat to generate initial task lists
* Search knowledge engine before building from scratch
* Break down complex tasks into measurable subtasks
* Use Notes field for assumptions and dependencies
* Review pricing before sharing with stakeholders

### Team Collaboration

* Use Draft status for work-in-progress estimates
* Share with Write permission for collaborative editing
* Move to In Review when ready for feedback
* Only Owners should move to Approved status
* Document decisions in custom fields

### Knowledge Engine Growth

* Approve scopes only when finalized and accurate
* Use consistent naming for customers and projects
* Fill in all custom fields for better AI learning
* Regularly review historical analysis for insights
* Update templates based on patterns you observe

## Tips & Tricks

💡 **Quick Task Generation**: Type a high-level description in the chat and ask Darcy to "generate tasks for this scope" to get a starter task list.

💡 **Find Similar Projects**: Use the knowledge engine search with customer name, industry, or technology keywords to find relevant past scopes.

💡 **ROM Confidence**: Adjust buffer percentage based on project uncertainty. Use 15% for well-defined scopes, 25%+ for exploratory work.

💡 **FTE Planning**: Use the timeline visualization to ensure you're not over-allocating resources during any given week.

💡 **Historical Insights**: Review the historical analysis regularly to identify your most common project patterns and optimize your templates.

## Frequently Asked Questions

**Q: What happens when I approve a scope?**\
A: The complete scope (overview, tasks, LOE, and all metadata) is automatically added to your organization's custom knowledge engine. Future scopes can reference this data for suggestions and historical comparisons.

**Q: Can I have multiple templates?**\
A: Yes! Create as many templates as you need for different service offerings. Set one as default for easy access.

**Q: How does pricing work without a rate card?**\
A: You can manually enter rates in templates or leave them blank for effort-only estimates. Rate cards are recommended for consistent pricing.

**Q: Can I export scopes to other systems?**\
A: Currently supports Salesforce export with configurable field mappings. Additional integrations are planned.

**Q: Who can see my scoping estimates?**\
A: By default, only you (as Owner). Use the Share feature to grant Read, Write, or Owner access to team members.

**Q: What's the difference between Hours and Quantity mode?**\
A: Hours is for time-based estimates (consulting, professional services). Quantity is for count-based estimates (licenses, products, units).

## Related Documentation

* [Templates Configuration](/settings-and-configuration/scoping-configuration/templates) - Customize scoping templates
* [Rate Cards Management](/settings-and-configuration/scoping-configuration/rate-cards) - Set up organizational pricing
* [Historical Insights](/settings-and-configuration/scoping-configuration/historical-insights) - Analyze patterns and trends
* [Knowledge Bases](/additional-features/knowledge-bases) - Understand the knowledge engine system
* [DarcyIQ Chat](/core-features/darcy-chat) - Learn about AI assistance features

***

**Ready to create your first scope?** Navigate to **Scoping & Estimates** in DarcyIQ and click **New Estimate** to get started.


# Research Reports

Research Reports allow you to instantly generate comprehensive business intelligence about any company. **DarcyIQ automatically analyzes websites, LinkedIn profiles, and news sources** to deliver actionable insights in seconds rather than hours.

<figure><img src="/files/R4u2SZImUqQtDMPyeQKJ" alt=""><figcaption></figcaption></figure>

## Overview

Research Reports transform how you gather information about companies, customers, and competitors. Instead of spending hours manually researching across multiple platforms, Darcy can:

* Generate well-structured business overviews in seconds
* Identify and analyze key executives from LinkedIn
* Collect and summarize recent news about the company
* Present all findings in a unified, easy-to-navigate interface
* Allow for custom follow-up analysis through Darcy Chat

This feature is particularly valuable for sales teams, business development professionals, consultants, and anyone who needs to quickly understand an organization before meetings or strategic decisions.

## How Research Reports Work

### Automated Research Process

| Step | Process                | Description                                                             |
| ---- | ---------------------- | ----------------------------------------------------------------------- |
| 1    | **URL Analysis**       | Enter a company's website URL to initiate the research process          |
| 2    | **Content Extraction** | Darcy analyzes the website content to understand the company's business |
| 3    | **AI Analysis**        | Advanced AI generates a comprehensive business overview                 |
| 4    | **LinkedIn Research**  | Identifies and collects information about key executives                |
| 5    | **News Collection**    | Gathers recent news articles about the company                          |
| 6    | **Report Generation**  | Organizes all findings into a structured, easy-to-read report           |

The entire process typically takes less than a minute, depending on the complexity of the company and available information.

### Data Sources

Darcy leverages multiple data sources to create a well-rounded view of any company:

| Source              | Information Gathered                                   | Value                                                       |
| ------------------- | ------------------------------------------------------ | ----------------------------------------------------------- |
| **Company Website** | Products, services, value proposition, company mission | Provides foundation for understanding the core business     |
| **LinkedIn**        | Executive profiles, roles, background                  | Identifies key decision-makers and organizational structure |
| **News Sources**    | Recent articles, press releases, industry coverage     | Highlights current events, challenges, and developments     |

## Working with Reports

### Creating a New Report

To create a new research report:

1. Navigate to the Research Reports section in Darcy
2. Enter the company's website URL in the input field
3. Click "Generate Report" to start the automated research
4. Watch as Darcy gathers and analyzes information in real-time
5. Review the completed report when the process finishes

You can generate multiple reports simultaneously, allowing for efficient batch research of several companies at once.

## Analyzing Report Content

### Using Darcy Chat with Reports

One of the most powerful features of Research Reports is the seamless integration with Darcy Chat:

<figure><img src="/files/gkhvt7A7S1Mn54qAe1II" alt=""><figcaption></figcaption></figure>

The "**Darcy Chat**" button in any report opens a specialized chat interface where you can:

* Ask specific questions about the company
* Request deeper analysis on particular aspects
* Generate customer-specific materials based on the research
* Create summaries, comparisons, or specialized viewpoints

Darcy Chat has full context of the report's content, allowing for intelligent, detailed responses specific to the company you're researching.

### Creating Custom Analyses

Beyond simple questions, you can use Darcy Chat with your reports to create:

* SWOT analyses
* Competitive comparisons
* Market positioning assessments
* Pitch ideas and approaches
* Meeting preparation notes
* Executive summaries

Simply describe what you need, and Darcy will generate it using all available information from the report.

## Use Cases

Research Reports are versatile and valuable across different business scenarios:

| Role                      | Use Case                      | Value                                                       |
| ------------------------- | ----------------------------- | ----------------------------------------------------------- |
| **Sales Representatives** | Pre-meeting research          | Understand prospect's business before initial calls         |
| **Business Development**  | Market opportunity assessment | Quickly evaluate potential partners or acquisition targets  |
| **Consultants**           | Client preparation            | Gain industry and company context before engagements        |
| **Executives**            | Competitive intelligence      | Stay informed about competitors' activities and positioning |
| **Recruiters**            | Company background research   | Understand organizations before pursuing candidates         |
| **Investors**             | Initial company screening     | Get quick overview of companies for preliminary evaluation  |

##


# Workflows

Darcy's AI Workflows **transform complex business processes into repeatable, automated sequences** that dramatically improve productivity, consistency, and quality. By encoding your best practices into intelligent workflows, you can scale your organization's capabilities without proportional increases in headcount or resources.

**AI Workflows are powered by 1 or Many AI Agents, assigned to help solve or complete a task.**

<figure><img src="/files/yJzeDLEMikWfxKWJG1nH" alt=""><figcaption></figcaption></figure>

## Key Features

### DocumentVault

The DocumentVault is a novel approach to enabling AI Agents to work across complex files and content.

| Feature                  | Capability                                  | Business Impact                          |
| ------------------------ | ------------------------------------------- | ---------------------------------------- |
| **Massive File Support** | Upload dozens of files simultaneously       | No more limiting choices to just 5 files |
| **Enhanced File Size**   | Up to 50MB per file (10x industry standard) | Process complete, detailed documentation |
| **Folder Upload**        | Drag and drop entire folders                | Streamline document organization         |

While other AI systems force you to work within strict limitations, DocumentVault removes these barriers entirely, allowing you to process your documentation needs at enterprise scale.

### Tasks + Goals

<figure><img src="/files/6140JvDa9vZWRJ64IcQK" alt="" width="563"><figcaption></figcaption></figure>

Drawing inspiration from leading AI Agent systems such as CrewAI, SmolAgents, and Anthropic's MCP - Tasks are configured using a Goal framework to keep Agents on-task for your needs.

| Enhancement                            | Description                                         | Value                          |
| -------------------------------------- | --------------------------------------------------- | ------------------------------ |
| **Task and Goal Framework**            | Structured approach to workflow setup               | Clear path to workflow success |
| **Simplified Agent Creation**          | Intuitive interface for single or multi-agent setup | Flexible agent orchestration   |
| **Natural Language Workflow Creation** | Create workflows using plain English commands       | Reduced technical barriers     |
| **Real-time Agent Visibility**         | Live view of agent activities and progress          | Transparent workflow execution |

### Agents

Users can configure one or many agents to solve a Task (maximum of 5). We recommend starting with One Agent and then expanding into multiple depending on complexity of the task.

Agents have a Role, as well as access to Tools.

* **Role:** A persona given to an agent to help guide its output. IE "You are a AWS Solution Architect with 10 years of experience"
* **Tools:** Tools are APIs and integrations that Agents can use to help solve tasks. For example, a Tool an Agent can use is Internet Search, or leveraging a Knowledge Base
  * **Coming Soon: Support for custom integrations**

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td>Create one or many agents</td><td><a href="/files/rManE1WLhzj6t1CiraoH">/files/rManE1WLhzj6t1CiraoH</a></td></tr><tr><td>Give an Agent a persona as well as tools</td><td><a href="/files/jTwUACtKrqlwztMD8ws9">/files/jTwUACtKrqlwztMD8ws9</a></td></tr></tbody></table>

## Use Cases

### Document Generation

Transform raw inputs into polished, professional documents in minutes instead of hours or days:

| Workflow Type              | Input                                 | Output Format                                           | Business Value                                                                      |
| -------------------------- | ------------------------------------- | ------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| **Statement of Work**      | Customer requirements, project scope  | MS Word document with TOC, sections, and terms          | Reduce creation time from days to minutes; ensure consistent quality and compliance |
| **Technical Proposal**     | RFP, customer environment details     | Word document with embedded diagrams and specifications | Accelerate response time; standardize solution descriptions                         |
| **Executive Presentation** | Solution details, customer challenges | PowerPoint deck with branded templates                  | Create compelling presentations without design resources                            |
| **Legal Contracts**        | Deal parameters, terms                | Formatted legal documents with proper clauses           | Reduce legal review cycles; ensure term consistency                                 |
| **Implementation Plan**    | Solution design, requirements         | Excel/Word project plan with timeline                   | Set clear customer expectations; standardize delivery approach                      |

### Customer Research and Intelligence

Gather and synthesize actionable intelligence about prospects and customers:

| Workflow Type            | Output Value                                               | Time Saved |
| ------------------------ | ---------------------------------------------------------- | ---------- |
| **Competitive Analysis** | SWOT analysis, market position, strengths to exploit       | 5-8 hours  |
| **Industry Research**    | Market trends, regulatory impacts, growth opportunities    | 4-6 hours  |
| **Customer Profiling**   | Business model, leadership insights, strategic initiatives | 3-4 hours  |
| **Pain Point Analysis**  | Key challenges, priorities, and business drivers           | 2-3 hours  |

### Proposal Development

Create winning proposals that perfectly align with customer needs:

| Workflow Type             | Output Value                                      | Business Impact                                    |
| ------------------------- | ------------------------------------------------- | -------------------------------------------------- |
| **RFP Response**          | Complete response with all required sections      | Meet tight deadlines; increase win rates           |
| **Solution Architecture** | Technical design with diagrams and specifications | Reduce technical SME time; ensure solution quality |
| **Pricing Model**         | Optimized pricing with options and comparisons    | Improve margin management; speed quote delivery    |
| **Business Case**         | ROI analysis and value justification              | Stronger customer business case; faster approvals  |

### Sales Enablement

Accelerate sales cycles with intelligence and personalized materials:

| Workflow Type            | Business Problem Solved                       | Output Value                                                    |
| ------------------------ | --------------------------------------------- | --------------------------------------------------------------- |
| **Prospecting Research** | Generic outreach with low response rates      | Personalized messages based on company-specific insights        |
| **Meeting Preparation**  | Unprepared sales reps; inconsistent discovery | Briefing document with industry context and strategic questions |
| **Follow-up Content**    | Slow, generic follow-up                       | Tailored responses addressing specific customer questions       |
| **Case Studies**         | Limited relevant references                   | Customized success stories highlighting similar challenges      |

### Strategic Analysis

Address complex business challenges with sophisticated analytical workflows:

| Workflow Type               | Strategic Value                         | Business Outcome                                    |
| --------------------------- | --------------------------------------- | --------------------------------------------------- |
| **Win/Loss Analysis**       | Identify patterns across won/lost deals | Improved sales approach; higher win rates           |
| **Product-Market Fit**      | Evaluate offerings against market needs | Better product decisions; stronger positioning      |
| **Account Growth Strategy** | Develop account expansion roadmap       | Increased customer lifetime value; higher retention |
| **Competitive Response**    | Rapidly counter competitive threats     | Preserved deals; effective differentiation          |


# Creating Efficient Workflows

DarcyIQ's AI Workflows provide a powerful way to automate complex processes. By understanding the core concepts and following best practices, you can build highly efficient and accurate agent systems.

## Core Workflow Concepts

At the heart of DarcyIQ Workflows are **Tasks** and **Agents**.

### Tasks: Defining the Work

A **Task** represents a specific piece of work you want to accomplish. Each task has two crucial components:

1. **Goal**: This is a clear statement of what you want the AI to achieve. It should be specific and unambiguous.
   * *Example*: "Analyze the Q3 financial report and summarize key performance indicators."
2. **Expected Output Format**: This defines the structure and format of the result the task should produce. This is critical for ensuring accuracy and mitigating hallucinations, as the system uses this to validate the agent's output.
   * *Example*: "A JSON object with keys: 'revenue', 'profit\_margin', and 'key\_achievements'."

<figure><img src="/files/6140JvDa9vZWRJ64IcQK" alt="" width="563"><figcaption></figcaption></figure>

Tasks can produce various outputs, including:

| Output Type         | Example / Description                     |
| ------------------- | ----------------------------------------- |
| Plain Text          | Summaries, analyses, generated content    |
| Formatted Documents | Word, PDF, presentations                  |
| Structured Data     | JSON, CSV for data processing/integration |
| Diagrams            | Flowcharts, architecture diagrams         |

### Agents: The AI Workforce

**Agents** are the AI entities that perform the work defined in a task. The core principle of DarcyIQ Workflows is:

**1 Task = Many Agents**

This means you can assign one or multiple agents to a single task. These agents can work collaboratively to achieve the task's goal.

* Each agent can have specialized skills or access to different tools (e.g., browser, calculator, knowledge bases).

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td>Create one or many agents</td><td><a href="/files/rManE1WLhzj6t1CiraoH">/files/rManE1WLhzj6t1CiraoH</a></td></tr><tr><td>Give an Agent a persona as well as tools</td><td><a href="/files/jTwUACtKrqlwztMD8ws9">/files/jTwUACtKrqlwztMD8ws9</a></td></tr></tbody></table>

### DocumentVault: Providing Context and Knowledge

The **DocumentVault** is a powerful feature integrated within AI Workflows that significantly enhances an agent's ability to access and utilize information. It allows you to provide a rich set of documents that agents can use to solve tasks.

<figure><img src="/files/oUUFKJPL7tjtms5PyRHg" alt=""><figcaption></figcaption></figure>

Key features of the DocumentVault:

| Feature                   | Description                                                                  |
| ------------------------- | ---------------------------------------------------------------------------- |
| **Large Volume of Files** | Upload dozens of files, far exceeding typical individual file upload limits. |
| **Increased File Size**   | Each file can be up to 50MB, allowing for comprehensive documents.           |
| **Flexible Access**       | Agents pick files or parts of files from the vault *at will* during task.    |
| **Contextual Knowledge**  | Provides a dedicated repository for agents to draw upon for accuracy.        |

## Best Practices for Workflow Design

### Designing Effective Tasks

1. **Be Specific with Goals**: The clearer the goal, the better the AI can understand and execute the task. Avoid vague or overly broad goals.
2. **Define Expected Output Precisely**: Specify the desired format, structure, and any constraints (e.g., word count, specific fields for JSON). This helps the AI deliver what you need and allows DarcyIQ to validate the output.
   * *Good Example*: "Generate a three-paragraph summary of the provided market research report, focusing on competitive threats. Output as plain text."
   * *Less Effective Example*: "Summarize the report."
3. **Know When to Split Tasks**:

   | Approach           | Description                                                           | Best Used When...                                                                                                                                                                                                                        |
   | ------------------ | --------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
   | **Single Task**    | Use for straightforward objectives with a single, coherent output.    | <p>- The goal is clear and concise.<br>- Multiple agents might contribute, but to one unified outcome.<br>- The process doesn't have distinct, separable stages.</p>                                                                     |
   | **Multiple Tasks** | Break down a complex goal into a sequence of smaller, distinct tasks. | <p>- Different stages require vastly different analysis or output types.<br>- Intermediate outputs are needed for review or as inputs to other processes.<br>- The overall process is too complex for a single clear goal statement.</p> |

### Assigning Agents Strategically

When deciding how many agents to assign to a task, consider the following:

| Approach         | Suitable For                                                                                                                                                                                                  | Example                                                                                                                                                                          |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Single Agent** | <p>- Simple, well-defined tasks aligning with one agent's skills.<br>- Tasks not needing diverse expertise or parallel work.</p>                                                                              | Rewriting a paragraph in a different tone.                                                                                                                                       |
| **Multi-Agent**  | <p>- Complex tasks needing multiple steps, reasoning types, or data sources.<br>- Tasks requiring diverse, specialized skills.<br>- Collaborative problem-solving where agents build on or critique work.</p> | <p>For "Create a market analysis report":<br>- Agent 1: Researches competitors.<br>- Agent 2: Analyzes market trends (knowledge base).<br>- Agent 3: Synthesizes and writes.</p> |

**Agent Configuration**: Ensure each agent assigned to a task has the necessary tools and skills enabled (e.g., internet access for research, knowledge base access for internal data).

### Structuring Your Workflow

1. **Start Simple, Iterate**: Begin with a basic version of your workflow and gradually add complexity. Test each task and agent configuration.
2. **Logical Flow**: If using multiple tasks in a sequence, ensure the output of one task logically feeds into the input requirements or context of the next.
3. **Modularity**: Design tasks to be as self-contained as possible. This makes the workflow easier to manage, debug, and update.
4. **Resource Management**: Be mindful of the complexity and number of agents, as this can impact processing time and cost. Use the minimum number of agents required to effectively solve the task.


# Events & Scheduling Agents

Automate actions with event-driven triggers and recurring schedules

Build powerful automations that react to events across DarcyIQ or run on a recurring schedule. **Define triggers, set conditions, choose actions, and let DarcyIQ handle the rest — so your team can focus on high-value work instead of repetitive tasks.**

{% hint style="success" %}
**From Manual to Automatic**: Create an automation that runs your Sales Analyst agent every time an external meeting completes — with the transcript, sentiment analysis, and a follow-up email drafted before you close the tab.
{% endhint %}

## Overview

Automations combine **triggers**, **conditions**, and **actions** into a single rule. When the trigger fires and the conditions pass, the action executes automatically in the background.

| Feature               | Capability                                                                 | Business Impact                                     |
| --------------------- | -------------------------------------------------------------------------- | --------------------------------------------------- |
| **Event Triggers**    | React to meetings, to-do's, and lists being created, completed, or deleted | Instant, zero-lag response to business events       |
| **Schedule Triggers** | Run on a recurring cron-based cadence (minutes to months)                  | Hands-off reporting, monitoring, and task execution |
| **Conditions**        | Filter events by field values, sentiment, audience, and more               | Only act when it matters — reduce noise             |
| **Multiple Actions**  | Start an agent, kick off a workflow, send an email, or add to a project    | Flexible response for any use case                  |
| **Execution History** | Full run log with status, duration, and result links                       | Audit trail and debugging at a glance               |
| **Quick Templates**   | One-click presets for common event and schedule automations                | Go from idea to running automation in seconds       |

```mermaid
graph LR
    A[Trigger] --> B{Conditions<br/>Pass?}
    B -- Yes --> C[Execute Action]
    B -- No --> D[Skip]
    C --> E[Record Run]
```

***

## How Automations Work

Every automation has three parts:

1. **Trigger** — *what* starts it (an event or a schedule).
2. **Conditions** — *whether* it should run (optional filters on the event data).
3. **Action** — *what* it does (start an agent, send an email, etc.).

When a trigger fires, DarcyIQ finds all enabled automations that match the event, evaluates their conditions, and executes the action for each one that passes. Each execution is recorded so you can review history, debug failures, and link to results.

***

## Trigger Types

### Event Triggers

Event triggers fire when something happens inside DarcyIQ. Choose a **resource** and an **event** to define the trigger.

| Resource     | Available Events                       | Description                                                                       |
| ------------ | -------------------------------------- | --------------------------------------------------------------------------------- |
| **Meetings** | Scheduled, Completed                   | Fire when a meeting is added to the calendar or finishes recording and processing |
| **To Do's**  | Created, Deleted                       | Fire when a task is created from a meeting or manually, or when one is removed    |
| **Lists**    | Created, Processing Completed, Deleted | Fire when a list is created, finishes AI processing, or is deleted                |

{% hint style="info" %}
**Pro Tip**: The most popular event trigger is **Meetings → Completed** — it gives your agent access to the full transcript, summary, and sentiment so it can draft follow-ups, flag risks, or update your CRM automatically.
{% endhint %}

### Schedule Triggers

Schedule triggers run on a recurring cadence using cron expressions. Use the built-in schedule picker to configure frequency without writing cron syntax.

**Interval options:**

| Frequency        | Description                          |
| ---------------- | ------------------------------------ |
| Every 15 minutes | High-frequency monitoring or polling |
| Every 30 minutes | Regular check-ins                    |
| Every hour       | Hourly updates                       |
| Every 2 hours    | Moderate-frequency tasks             |
| Every 6 hours    | Periodic summaries                   |
| Every 12 hours   | Twice-daily reports                  |

**Time-based options:**

| Frequency | Configuration                             |
| --------- | ----------------------------------------- |
| Daily     | Pick a specific time of day               |
| Weekly    | Pick a day of the week and a time         |
| Monthly   | Pick a day of the month (1–28) and a time |

All schedules run in your local timezone.

***

## Conditions

Conditions let you filter events so the automation only runs when specific criteria are met. Conditions are optional — if you don't add any, the automation runs every time the trigger fires.

Each condition has a **field**, an **operator**, and a **value**. Multiple conditions can be combined with **AND** / **OR** logic.

### Condition Fields by Resource

#### Meetings — Scheduled

| Field                | Operators                    | Description                          |
| -------------------- | ---------------------------- | ------------------------------------ |
| **Meeting Title**    | equals, not equals, contains | Match against the meeting's title    |
| **Meeting Audience** | equals                       | Internal Only or Internal + External |

#### Meetings — Completed

| Field                  | Operators                    | Description                                             |
| ---------------------- | ---------------------------- | ------------------------------------------------------- |
| **Meeting Title**      | equals, not equals, contains | Match against the meeting's title                       |
| **Meeting Summary**    | equals, not equals, contains | Match against the AI-generated summary                  |
| **Meeting Transcript** | contains                     | Search the full transcript text                         |
| **Meeting Audience**   | equals                       | Internal Only or Internal + External                    |
| **Sentiment**          | =, >, <                      | Compare overall sentiment (Negative, Neutral, Positive) |

{% hint style="info" %}
**Sentiment ranking**: Negative < Neutral < Positive. Using the `>` operator with "Neutral" matches only Positive meetings; using `<` with "Neutral" matches only Negative ones.
{% endhint %}

#### To Do's

| Field                | Operators                    | Events           |
| -------------------- | ---------------------------- | ---------------- |
| **Task Title**       | equals, not equals, contains | Created, Deleted |
| **Task Description** | contains                     | Created          |

#### Lists

| Field         | Operators                    | Events                                 |
| ------------- | ---------------------------- | -------------------------------------- |
| **List Name** | equals, not equals, contains | Created, Processing Completed, Deleted |

### Combining Conditions

When you add more than one condition, each additional condition specifies a **logic** of `AND` or `OR`:

* **AND** — both this condition and the previous result must be true.
* **OR** — either this condition or the previous result must be true.

Conditions are evaluated left to right. An empty condition list always passes.

***

## Actions

Actions define what happens when the trigger fires and conditions pass.

| Action             | Description                                                                       | Supported Triggers |
| ------------------ | --------------------------------------------------------------------------------- | ------------------ |
| **Start Agent**    | Run an AI agent with a task, optional meetings, project context, and integrations | Event, Schedule    |
| **Start Workflow** | Kick off an AI Workflow                                                           | Event, Schedule    |
| **Send Email**     | Send a notification email to one or more recipients                               | Event              |
| **Add to Project** | Link the triggering resource to a project (or add content to its knowledge base)  | Event              |

### Start Agent

The most common action. Configure:

| Setting          | Description                                                |
| ---------------- | ---------------------------------------------------------- |
| **Agent**        | Which agent to run (or use the Default agent)              |
| **Task**         | The prompt describing what the agent should do             |
| **Meetings**     | Attach meetings to give the agent access to transcripts    |
| **Project**      | Link a project for knowledge-base context                  |
| **Integrations** | Enable additional MCP tools, AWS, Atlassian, or Salesforce |

For **event triggers**, the event context (e.g., meeting transcript, task details) is automatically injected into the agent's task so the agent has full awareness of what triggered the automation.

### Add to Project

Links the triggering resource to a project:

* **To-do events**: Sets the project on the activity-log entry directly.
* **Other events**: Adds the event content as a document to the project's knowledge base.

### Email Notifications

Every automation supports an optional **Email on Completion** setting. Enable it and add recipient addresses to receive a notification when the automation finishes — whether it succeeds or fails.

***

## Creating an Automation

{% stepper %}
{% step %}
**Open the Automations Panel** Click the **Agents** icon in the sidebar, then open the **Schedules** tab where all automations are managed.
{% endstep %}

{% step %}
**Choose a Type** Select **Event Trigger** to react to something happening, or **Schedule** to run on a recurring basis. Optionally give your automation a name.
{% endstep %}

{% step %}
**Configure the Trigger**

* **Event**: Pick a resource (Meetings, To Do's, or Lists) and an event (Created, Completed, etc.).
* **Schedule**: Set the frequency and time using the schedule picker.
  {% endstep %}

{% step %}
**Add Conditions** *(Event triggers only)* Optionally add one or more conditions to filter when the automation should run. Choose a field, operator, and value for each condition.
{% endstep %}

{% step %}
**Choose an Action** Select what should happen — Start Agent, Start Workflow, Send Email, or Add to Project. Configure the action details (agent, task, project, etc.).
{% endstep %}

{% step %}
**Set Notifications** Optionally enable email notifications and add recipient addresses.
{% endstep %}

{% step %}
**Save** Click **Save** to create the automation. It will start running immediately if enabled.
{% endstep %}
{% endstepper %}

***

## Quick Templates

DarcyIQ includes one-click templates for common automation patterns. Templates pre-fill the trigger, conditions, action, and task so you can get started in seconds.

### Event Templates

#### Meetings

| Template                     | Trigger              | Description                                          |
| ---------------------------- | -------------------- | ---------------------------------------------------- |
| **Customer Follow-Up Draft** | Completed (External) | Draft a follow-up email to external attendees        |
| **Deal Risk Alert**          | Completed (External) | Flag risks and negative sentiment from the customer  |
| **Coaching Review**          | Completed            | Get feedback on communication and objection handling |
| **Competitive Intel**        | Completed            | Extract competitor mentions and market positioning   |
| **Meeting Prep Brief**       | Scheduled            | Prepare a pre-meeting brief with attendee context    |
| **Account Research**         | Scheduled (External) | Research the company's news, financials, and trends  |

#### To Do's

| Template               | Trigger | Description                                           |
| ---------------------- | ------- | ----------------------------------------------------- |
| **Do the Task**        | Created | Attempt to complete any task and report back          |
| **Follow-Up Draft**    | Created | Draft a follow-up when the title contains "follow up" |
| **Research & Report**  | Created | Research the topic when the title contains "explore"  |
| **Build Deliverable**  | Created | Create a first draft when the title contains "build"  |
| **Review & Summarize** | Created | Perform the review when the title contains "review"   |
| **Prepare Brief**      | Created | Prepare materials when the title contains "prepare"   |

#### Lists

| Template                   | Trigger              | Description                                            |
| -------------------------- | -------------------- | ------------------------------------------------------ |
| **Results Summary**        | Processing Completed | Summarize key findings from the processed list         |
| **Data Quality Check**     | Processing Completed | Review processed results for completeness and accuracy |
| **Account Prioritization** | Processing Completed | Rank entries by strategic value and opportunity        |
| **Generate Report**        | Processing Completed | Turn processed data into a shareable report            |

### Schedule Templates

| Template                        | Frequency            | Description                                                 |
| ------------------------------- | -------------------- | ----------------------------------------------------------- |
| **Morning Briefing**            | Weekdays 7:30 AM     | Summarize yesterday and today's agenda                      |
| **Daily Standup Prep**          | Weekdays 8:00 AM     | Prepare a standup summary of progress and blockers          |
| **End-of-Day Wrap-Up**          | Weekdays 5:00 PM     | Compile today's outcomes and tomorrow's follow-ups          |
| **Weekly Account Review**       | Monday 8:00 AM       | Review accounts for renewals, risks, and health signals     |
| **Pipeline Health Check**       | Friday 9:00 AM       | Analyze pipeline for stalled deals and forecast gaps        |
| **Weekly KPI Report**           | Friday 6:00 PM       | Assess business performance against key metrics             |
| **Monthly Performance Summary** | 1st of Month 9:00 AM | Generate a comprehensive monthly performance report         |
| **Weekly Project Digest**       | Friday 4:00 PM       | Compile meetings, decisions, and action items for a project |

{% hint style="info" %}
**Pro Tip**: Schedule templates with integrations or projects include interactive slot dropdowns — pick your CRM, data source, or project right inside the template prompt before confirming.
{% endhint %}

***

## Managing Automations

Open the **Schedules** tab in the Agents drawer to view and manage all automations.

| Feature               | Description                                                                                                            |
| --------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| **Search**            | Find automations by name, resource type, event type, or task description                                               |
| **Filter by type**    | Show only event automations, only schedules, or all                                                                    |
| **Enable / Disable**  | Toggle individual automations on or off without deleting them                                                          |
| **Edit**              | Modify any part of the automation through the wizard                                                                   |
| **Delete**            | Permanently remove an automation and its associated schedule job                                                       |
| **Execution History** | Click any automation to expand and view recent executions with time, status (Success / Failed / Running), and duration |

### Execution History

Every automation run is recorded with:

| Field             | Description                                              |
| ----------------- | -------------------------------------------------------- |
| **Start Time**    | When the execution began                                 |
| **Status**        | Success, Failed, or Running                              |
| **Duration**      | How long the execution took                              |
| **Result Links**  | Direct links to the agent conversation or project result |
| **Error Message** | Details if the run failed                                |

Click **Load older executions** to paginate through the full history.

***

## Use Cases

### Sales & Revenue

* **Post-Meeting Follow-Up**: Automatically draft follow-up emails after every external meeting completes
* **Deal Risk Monitoring**: Flag negative sentiment and risk signals from customer calls in real time
* **Pipeline Reports**: Schedule a daily pipeline health check with your CRM integration

### Operations & Monitoring

* **System Health Check**: Schedule infrastructure checks every 15 minutes
* **Compliance Audit**: Weekly automated audit of policy adherence
* **Cost Analysis**: Daily AWS spend summaries with anomaly detection

### Customer Success

* **Meeting Prep**: Auto-generate briefing docs when a new meeting is scheduled
* **Account Research**: Research attendees' companies before external meetings
* **Task Automation**: Automatically attempt to complete to-do items as they're created

### Content & Documentation

* **Meeting Intelligence**: Extract competitive intel from every completed meeting
* **List Processing Reports**: Generate shareable reports when list processing completes
* **Knowledge Base Updates**: Automatically add meeting content to project knowledge bases

***

## Integration with Other Features

### Agents

Automations are the execution layer for agents. Any agent you create can be used as the action in an automation — giving it the ability to run autonomously in response to events or on a schedule.

### Projects

Link automations to projects to provide knowledge-base context during agent runs, or use the **Add to Project** action to automatically organize event content into the right project.

### Meetings

Meeting events are the richest trigger source. Completed meetings provide transcripts, summaries, sentiment, and attendee information — all available as condition fields and agent context.

### Lists

When list processing completes, automations can summarize results, check data quality, or generate reports — turning raw data processing into actionable insights.

### MCP Integrations

Agent actions in automations have access to the same MCP tools available in chat. Enable integrations like Salesforce, Atlassian JIRA, or AWS to let your automated agents interact with external systems.

***

## Best Practices

### Designing Effective Automations

| Practice                        | Recommendation                                                                               |
| ------------------------------- | -------------------------------------------------------------------------------------------- |
| **Start with templates**        | Use quick templates as a starting point, then customize the task and conditions              |
| **Be specific with conditions** | Add conditions to avoid noisy automations — filter by audience, title keywords, or sentiment |
| **Write clear tasks**           | The agent performs exactly what you describe — be precise about expected output and format   |
| **Use the right action**        | Start Agent for complex analysis; Add to Project for simple organization; Email for alerts   |
| **Enable notifications**        | Always enable email notifications so you know when automations complete                      |

### Event Automation Tips

1. **Narrow your triggers**: Use conditions to avoid running on every single meeting or task
2. **Leverage sentiment**: For meeting automations, filter by sentiment to only flag concerning calls
3. **Combine audience + content**: Filter external meetings where the transcript contains a competitor name
4. **Test with one automation**: Create a single automation, review the results, then expand

### Schedule Automation Tips

1. **Start conservative**: Begin with daily or weekly schedules before increasing frequency
2. **Add context**: Attach meetings and projects to give the agent the information it needs
3. **Use integrations**: Enable CRM and project management tools so the agent can take real action
4. **Monitor execution history**: Review runs regularly to ensure quality and catch failures early

{% hint style="warning" %}
**Permissions**: Automations run with the permissions of the user who created them. Make sure you have access to the agents, projects, and integrations you configure in your automation.
{% endhint %}

***

## Related Documentation

| Topic                               | Link                                                           |
| ----------------------------------- | -------------------------------------------------------------- |
| Creating and managing AI agents     | [Agents](/core-features/agents)                                |
| Building AI Workflows               | [AI Workflows](/build/ai-workflows)                            |
| Meeting recording and transcription | [Meetings](/core-features/meeting-recording-and-transcription) |
| Working with Lists                  | [Lists](/organize/lists)                                       |
| Project management                  | [Projects](/organize/projects)                                 |
| MCP tool integrations               | [MCP Studio](/build/mcp-studio)                                |


# MCP Studio

MCP Studio is your all-in-one platform for building, deploying, and managing Model Context Protocol (MCP) integrations. Connect your AI agents to external systems like CRMs, databases, APIs, and more—without leaving DarcyIQ.

{% hint style="success" %}
**New Feature**: MCP Studio combines a visual builder, AI-assisted code generation, and a catalog of 50+ pre-built integrations to help you extend DarcyIQ's capabilities in minutes.
{% endhint %}

## What is MCP Studio?

<figure><img src="/files/sHCf2pHZWo0ve8LDLqn7" alt=""><figcaption></figcaption></figure>

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZAWfHaMLwFz29fKwv8d8%2Fuploads%2FWQlNxHavDl0B0bLrcqVF%2FMCPStudioVideo.mp4?alt=media&token=9a852240-2cca-45ea-9754-2446df451806>" %}

MCP Studio enables you to create powerful integrations that allow DarcyIQ's AI agents to interact with external systems. Whether you want to query a database, update a CRM, send notifications, or connect to any API—MCP Studio makes it possible.

| Capability                  | Description                                     | Benefit                                  |
| --------------------------- | ----------------------------------------------- | ---------------------------------------- |
| **Build Custom MCPs**       | Write Python or Node.js code with AI assistance | Complete flexibility for any integration |
| **Deploy from MCP Catalog** | Browse 50+ pre-built integrations               | Get started in minutes                   |
| **One-Click Deployment**    | Deploy to production with a single click        | No infrastructure management             |
| **Team Collaboration**      | Share integrations with your organization       | Standardized tooling across teams        |
| **Real-Time Monitoring**    | View logs and debug deployed integrations       | Troubleshoot issues quickly              |

## How MCP Studio Works

MCP Studio provides a complete workflow for creating and managing integrations:

```mermaid
graph LR
    A[Create<br/>Start] --> B[Build<br/>Code]
    B --> C[Deploy<br/>Production]
    C --> D[Connect<br/>Use]
    D --> E[Monitor<br/>Server]
```

| Step           | What Happens                                         | Your Action                                                   |
| -------------- | ---------------------------------------------------- | ------------------------------------------------------------- |
| **1. Create**  | Start a new MCP server or select from the catalog    | Choose a template, use AI generation, or pick a pre-built MCP |
| **2. Build**   | Write and validate your integration code             | Edit code, configure secrets, test your tools                 |
| **3. Deploy**  | Build and deploy to DarcyIQ's secure infrastructure  | Click deploy and monitor progress                             |
| **4. Connect** | Enable the integration for use in Chat and Workflows | Toggle on for Darcy or get manual connection details          |
| **5. Monitor** | Track usage and debug issues                         | View real-time logs                                           |

## Custom vs. Catalog MCPs

Choose the right approach for your needs:

| Feature           | Custom MCPs                                    | Catalog MCPs                     |
| ----------------- | ---------------------------------------------- | -------------------------------- |
| **Setup Time**    | 15-30 minutes                                  | 2-5 minutes                      |
| **Code Required** | Yes (Python or Node.js)                        | No (pre-built)                   |
| **Customization** | Full control                                   | Configuration only               |
| **AI Assistance** | Code generation available                      | Not applicable                   |
| **Best For**      | Unique integrations, proprietary systems       | Common tools, standard APIs      |
| **Examples**      | Custom CRM, internal database, proprietary API | Slack, GitHub, popular databases |

## Supported Runtimes

MCP Studio supports two runtime environments:

| Runtime     | Language              | Best For                                        |
| ----------- | --------------------- | ----------------------------------------------- |
| **Python**  | Python 3.11+          | Data processing, API integrations, automation   |
| **Node.js** | JavaScript/TypeScript | Web APIs, real-time applications, npm ecosystem |

{% hint style="info" %}
**Runtime Auto-Detection**: MCP Studio automatically detects your runtime based on your code. No manual configuration needed.
{% endhint %}

## Key Features

### AI-Assisted Code Generation

Describe what you want in plain English, and DarcyIQ will generate the code for you:

* **Natural Language Input**: "Create an integration that fetches customer data from Salesforce"
* **Template-Based Generation**: Start from proven patterns
* **Intelligent Suggestions**: Get recommendations as you build

### Visual Code Editor

A full-featured code editor built into the browser:

* Syntax highlighting for Python and JavaScript
* Real-time validation and error detection
* Auto-extraction of environment variables
* Integrated testing panel

### Secure Secrets Management

Keep your credentials safe:

* Environment variables stored securely
* Never exposed in code
* Encrypted at rest and in transit
* Easy configuration through the UI

### One-Click Deployment

Deploy without managing infrastructure:

* Automatic containerization
* Secure cloud hosting
* Instant availability
* Streaming deployment progress

### Team Sharing

Collaborate with your organization:

* **Owner**: Full control over the integration
* **Editor**: Can modify and deploy
* **Viewer**: Read-only access

## Getting Started

Ready to build your first integration? Here's how to get started:

{% stepper %}
{% step %}
**Navigate to MCP Studio**

From the DarcyIQ sidebar, click on **MCP Studio** to open the builder.
{% endstep %}

{% step %}
**Choose Your Path**

Select either:

* **My MCPs** to create a custom integration
* **MCP Catalog** to browse pre-built integrations
  {% endstep %}

{% step %}
**Follow the Guide**

See [MCP Catalog](/build/mcp-studio/mcp-catalog) for pre-built integrations or [Building Custom MCPs](/build/mcp-studio/building-custom-mcps) for custom development.
{% endstep %}
{% endstepper %}

## Integration with DarcyIQ

Once deployed, your MCP integrations are available throughout DarcyIQ:

| Feature              | How It Works                                                               |
| -------------------- | -------------------------------------------------------------------------- |
| **Chat**             | Integrations are automatically available as tools for the AI               |
| **Workflows**        | Select integrations as steps in your automated workflows                   |
| **External Access**  | Connect from external applications using the provided endpoint and API key |
| Grids and Lead Lists | Enable agents in bulk to leverage your MCP                                 |

## Next Steps

| Goal                               | Documentation                                                  |
| ---------------------------------- | -------------------------------------------------------------- |
| Deploy a pre-built integration     | [MCP Catalog](/build/mcp-studio/mcp-catalog)                   |
| Build a custom integration         | [Building Custom MCPs](/build/mcp-studio/building-custom-mcps) |
| Learn about deployment and sharing | [Deploying & Managing](/build/mcp-studio/deploying-mcps)       |
| View code examples                 | [Code Samples](/build/mcp-studio/mcp-studio-samples)           |
| Troubleshoot issues                | [Troubleshooting](/build/mcp-studio/troubleshooting)           |


# MCP Framework

Model Context Protocol (MCP) enables you to bring your own integrations to DarcyIQ, offering flexibility at both organizational and user levels.

## Integration Levels

| Level                  | Features                                                                                            | Benefits                                                                                                    |
| ---------------------- | --------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| **Organizational MCP** | <p>- Standardized integration deployment<br>- Centralized management<br>- Company-wide policies</p> | <p>- Consistent AI experience<br>- Simplified compliance<br>- Shared resources<br>- Central control</p>     |
| **User MCP**           | <p>- Personal integration selection<br>- Custom integrations</p>                                    | <p>- Workflow flexibility<br>- Task optimization<br>- Experimentation freedom<br>- Personal preferences</p> |

## Setup Process

| Step                      | Actions                                                                                | Requirements                                                    |
| ------------------------- | -------------------------------------------------------------------------------------- | --------------------------------------------------------------- |
| **1. Server Setup**       | <p>- Configure MCP server<br>- Set up authentication<br>- Deploy models</p>            | <p>- MCP-compliant server<br>- Authentication system</p>        |
| **2. DarcyIQ Connection** | <p>- Access integration settings<br>- Configure MCP details<br>- Test connectivity</p> | <p>- Admin access<br>- Server details<br>- Test credentials</p> |
| **3. Configuration**      | <p>- Set default models<br>- Configure routing<br>- Define fallbacks</p>               | <p>- Model preferences<br>- Routing rules<br>- Backup plans</p> |

## MCP Authentication

DarcyIQ accepts the following requirements for an MCP server:

* A remote SSE endpoint
* One of Four Authentication requirements
  * No Auth (not recommended)
  * Basic User Auth (username/password)
  * Bearer Token Auth (provide a single token for DarcyIQ to use)
  * API Key (Access key / Secret key configuration)
  * OAuth (coming soon)

{% hint style="info" %}
The Authentication you select much match the requirements of the MCP server you are connecting to.
{% endhint %}

## Learn More

For detailed technical specifications and implementation guides, visit:

* [MCP Protocol Specification](https://modelcontextprotocol.io)
* [Implementation Examples](https://modelcontextprotocol.io/examples)
* [Best Practices Guide](https://modelcontextprotocol.io/best-practices)


# MCP Catalog

The MCP Catalog is your gateway to 50+ pre-built integrations that can be deployed to DarcyIQ in minutes. Browse official and community integrations, configure your credentials, and start using powerful tools without writing any code.

{% hint style="success" %}
**Quick Setup**: Most catalog integrations can be deployed in under 5 minutes—just add your credentials and click deploy.
{% endhint %}

## Overview

<figure><img src="/files/9NkWGvE4ufDcLgheiVBO" alt=""><figcaption></figcaption></figure>

The MCP Catalog provides ready-to-use integrations from Docker Hub's MCP ecosystem. Each integration comes pre-built and tested, so you can focus on configuration rather than development.

| Feature                      | Description                                                       |
| ---------------------------- | ----------------------------------------------------------------- |
| **50+ Integrations**         | Growing library of pre-built MCPs                                 |
| **Official**                 | Verified official images with enterprise Docker security baked in |
| **Organization Recommended** | Your team's favorite integrations highlighted at the top          |
| **One-Click Setup**          | Create a deployment draft with a single click                     |
| **No Code Required**         | Just configure your credentials and deploy                        |

## Browsing the Catalog

### Accessing the MCP Catalog

{% stepper %}
{% step %}
**Open MCP Studio**

From the DarcyIQ sidebar, navigate to **MCP Studio**.
{% endstep %}

{% step %}
**Select MCP Catalog**

Click on the **MCP Catalog** tab to view available integrations.
{% endstep %}

{% step %}
**Browse or Search**

Use the search bar to find specific integrations, or browse by scrolling through the catalog.
{% endstep %}
{% endstepper %}

### Search and Sort Options

Find the right integration quickly:

| Option                  | Description                      |
| ----------------------- | -------------------------------- |
| **Search**              | Filter by name or description    |
| **Sort by Downloads**   | Most popular integrations first  |
| **Sort by Stars**       | Highest-rated integrations first |
| **Sort by Latest**      | Newest additions to the catalog  |
| **Sort Alphabetically** | A-Z listing                      |

## Understanding Integration Badges

Each integration displays badges that help you assess quality and trust:

| Badge          | Meaning                                     | What It Indicates                   |
| -------------- | ------------------------------------------- | ----------------------------------- |
| **Official**   | Published by Docker in the `mcp/` namespace | Verified, maintained, and supported |
| **SBOM**       | Software Bill of Materials available        | Transparent dependency information  |
| **Provenance** | Build provenance verified                   | Traceable build process             |
| **Signed**     | Cryptographically signed                    | Verified publisher identity         |

{% hint style="info" %}
**Recommendation**: Start with Official integrations when available. They receive regular updates and have verified security practices.
{% endhint %}

## Organization Recommended

Your organization can mark certain integrations as "recommended" to help team members find approved tools quickly.

| Feature                  | Description                                               |
| ------------------------ | --------------------------------------------------------- |
| **Highlighted Section**  | Recommended integrations appear at the top of the catalog |
| **Custom Display Names** | Admins can set friendly names for recommended MCPs        |
| **Team Alignment**       | Ensures everyone uses approved integrations               |

### Managing Recommendations (Admin)

If you have the `MCP BUILDER MANAGE` permission, you can:

1. Click the **star icon** on any integration to add it to recommendations
2. Set a custom display name for your organization
3. Remove integrations from recommendations by clicking the star again

## Setting Up a Catalog Integration

Follow these steps to deploy a pre-built integration:

{% stepper %}
{% step %}
**Find Your Integration**

Browse or search the MCP Catalog for the integration you need.
{% endstep %}

{% step %}
**Click "Set Up"**

Click the **Set Up** button on the integration card. This creates a draft MCP server pre-configured with the catalog code.
{% endstep %}

{% step %}
**Configure Secrets**

On the **Build** tab, scroll to the **Secrets** section. Enter the required credentials for the integration.

| Field Type    | Description                              | Example                            |
| ------------- | ---------------------------------------- | ---------------------------------- |
| **Required**  | Must be provided before deployment       | API Key, Database URL              |
| **Optional**  | Enhances functionality but not mandatory | Timeout settings, custom endpoints |
| {% endstep %} |                                          |                                    |

{% step %}
**Deploy**

Navigate to the **Deploy** tab and click **Deploy**. The deployment process will:

1. Build the container image
2. Deploy to secure infrastructure
3. Create the API endpoint

Watch the streaming progress to see each step complete.
{% endstep %}

{% step %}
**Enable for DarcyIQ**

On the **Connect** tab, toggle **Enable for Darcy** to make the integration available in Chat and Workflows.
{% endstep %}

{% step %}
**Start Using**

Return to DarcyIQ Chat or create a Workflow. Your new integration is now available as a tool!
{% endstep %}
{% endstepper %}

## Popular Catalog Categories

The MCP Catalog includes integrations across many categories:

### Communication & Collaboration

| Integration         | Description                     | Common Use Cases                    |
| ------------------- | ------------------------------- | ----------------------------------- |
| **Slack**           | Send messages and notifications | Alert teams, share updates          |
| **Microsoft Teams** | Teams messaging integration     | Team notifications, channel updates |
| **Email (SMTP)**    | Send emails programmatically    | Notifications, reports, alerts      |

### Databases

| Integration    | Description                | Common Use Cases          |
| -------------- | -------------------------- | ------------------------- |
| **PostgreSQL** | Query PostgreSQL databases | Data retrieval, reporting |
| **MySQL**      | MySQL database integration | Customer data, analytics  |
| **MongoDB**    | NoSQL document database    | Flexible data queries     |
| **Redis**      | In-memory data store       | Caching, session data     |

### Developer Tools

| Integration | Description                     | Common Use Cases              |
| ----------- | ------------------------------- | ----------------------------- |
| **GitHub**  | Repository and issue management | Code reviews, issue tracking  |
| **GitLab**  | GitLab integration              | CI/CD, project management     |
| **Jira**    | Issue and project tracking      | Sprint planning, bug tracking |

### Cloud Services

| Integration      | Description                     | Common Use Cases                  |
| ---------------- | ------------------------------- | --------------------------------- |
| **AWS**          | Amazon Web Services integration | Infrastructure queries, S3 access |
| **Google Cloud** | GCP service integration         | Cloud resources, BigQuery         |
| **Azure**        | Microsoft Azure services        | Azure resources, storage          |

### File & Document

| Integration      | Description               | Common Use Cases                    |
| ---------------- | ------------------------- | ----------------------------------- |
| **Google Drive** | Access Google Drive files | Document retrieval, file management |
| **Dropbox**      | Dropbox file integration  | File sharing, backup                |
| **Box**          | Box enterprise content    | Secure file access                  |

### CRM & Sales

| Integration    | Description                | Common Use Cases                |
| -------------- | -------------------------- | ------------------------------- |
| **Salesforce** | Salesforce CRM integration | Lead data, opportunity tracking |
| **HubSpot**    | HubSpot CRM and marketing  | Contact management, campaigns   |
| **Pipedrive**  | Sales pipeline management  | Deal tracking, contacts         |

## Secrets and Credentials

### Understanding Required Secrets

Each catalog integration specifies which credentials it needs:

| Secret Type                   | Description                   | Example                               |
| ----------------------------- | ----------------------------- | ------------------------------------- |
| **API Key**                   | Single key for authentication | `sk-abc123...`                        |
| **Username/Password**         | Basic authentication          | Database credentials                  |
| **OAuth Token (coming soon)** | Token-based authentication    | Service access tokens                 |
| **Connection String**         | Full connection details       | `postgresql://user:pass@host:5432/db` |

### Security Best Practices

{% hint style="warning" %}
**Security Notice**: Never share your API keys or credentials. MCP Studio stores secrets securely and never exposes them in code or logs.
{% endhint %}

| Practice                | Description                                      |
| ----------------------- | ------------------------------------------------ |
| **Use Dedicated Keys**  | Create API keys specifically for DarcyIQ         |
| **Minimum Permissions** | Grant only the permissions the integration needs |
| **Rotate Regularly**    | Update credentials periodically                  |
| **Monitor Usage**       | Check for unexpected activity                    |

## After Deployment

Once your catalog integration is deployed:

### Using in Chat

Your integration's tools are automatically available in DarcyIQ Chat. Simply ask the AI to use them:

* "Use Slack to send a message to the #general channel"
* "Query the PostgreSQL database for all customers from last month"
* "Create a new GitHub issue for this bug"

### Using in Workflows

1. Open the Workflow editor
2. Add a new step
3. Select your integration from the available tools
4. Configure the step parameters
5. Save the workflow

### Managing Your Integration

From the **My MCPs** tab, you can:

| Action        | Description                           |
| ------------- | ------------------------------------- |
| **Edit**      | Update secrets or configuration       |
| **Stop**      | Temporarily disable the integration   |
| **Share**     | Give team members access              |
| **Duplicate** | Create a copy with different settings |
| **Delete**    | Remove the integration entirely       |

## Troubleshooting Catalog Integrations

### Common Issues

| Issue                    | Cause                      | Solution                                            |
| ------------------------ | -------------------------- | --------------------------------------------------- |
| **Deployment fails**     | Missing required secrets   | Check the Build tab and fill in all required fields |
| **Authentication error** | Invalid credentials        | Verify your API key or credentials are correct      |
| **Connection timeout**   | Network or firewall issues | Ensure the external service is accessible           |
| **Tool not appearing**   | Integration not enabled    | Go to Connect tab and toggle "Enable for Darcy"     |

### Getting Help

If you encounter issues with a catalog integration:

1. Check the [Troubleshooting Guide](/build/mcp-studio/troubleshooting) for common solutions
2. Review the integration's documentation on Docker Hub
3. Contact DarcyIQ support for additional assistance

## Next Steps

| Goal                           | Documentation                                                  |
| ------------------------------ | -------------------------------------------------------------- |
| Build a custom integration     | [Building Custom MCPs](/build/mcp-studio/building-custom-mcps) |
| Learn about deployment options | [Deploying & Managing](/build/mcp-studio/deploying-mcps)       |
| View code examples             | [Code Samples](/build/mcp-studio/mcp-studio-samples)           |
| Troubleshoot issues            | [Troubleshooting](/build/mcp-studio/troubleshooting)           |


# Building Custom MCPs

Build powerful custom integrations with MCP Studio's visual builder. Write Python or Node.js code with AI assistance, validate your integration, and deploy to production—all from your browser.

{% hint style="success" %}
**AI-Powered Development**: Describe what you want in plain English, and DarcyIQ will generate the code for you. Edit, test, and deploy without leaving the browser.
{% endhint %}

## Overview

The MCP Builder provides a complete development environment for creating custom integrations. Whether you're connecting to a proprietary API, building a custom database connector, or creating specialized tools, the builder has everything you need.

| Feature                  | Description                                   |
| ------------------------ | --------------------------------------------- |
| **AI Code Generation**   | Describe your goal in natural language        |
| **Visual Code Editor**   | Full-featured editor with syntax highlighting |
| **Real-Time Validation** | Catch errors before deployment                |
| **Integrated Testing**   | Test your tools without deploying             |
| **Secrets Management**   | Secure credential storage                     |
| **Auto-Save**            | Never lose your work                          |

<figure><img src="/files/wuAximEEIq9HBDX0VvTV" alt=""><figcaption></figcaption></figure>

## The 5-Tab Workflow

MCP Studio guides you through building an integration with five tabs:

```mermaid
graph LR
    A[Create<br/>Start] --> B[Build<br/>Code]
    B --> C[Deploy<br/>Production]
    C --> D[Connect<br/>Use]
    D --> E[Monitor<br/>Infrastructure]
```

| Tab         | Purpose                | Key Actions                                  |
| ----------- | ---------------------- | -------------------------------------------- |
| **Start**   | Begin your integration | AI generation, templates, or blank canvas    |
| **Build**   | Write and test code    | Edit code, configure secrets, validate, test |
| **Deploy**  | Deploy to production   | Validate and deploy with streaming progress  |
| **Connect** | Enable the integration | Toggle for Darcy, get connection details     |
| **Monitor** | Debug and troubleshoot | View real-time logs                          |

## Creating a New MCP Server

{% stepper %}
{% step %}
**Navigate to MCP Studio**

From the DarcyIQ sidebar, click **MCP Studio**, then select the **My MCPs** tab.
{% endstep %}

{% step %}
**Click Create MCP**

Click the **Create MCP** button in the top right corner.
{% endstep %}

{% step %}
**Name Your Integration**

Enter a descriptive name for your integration (e.g., "Customer Database Connector" or "Slack Notifier").
{% endstep %}

{% step %}
**Choose Your Starting Point**

You'll be taken to the **Start** tab where you can choose how to begin.
{% endstep %}
{% endstepper %}

## Start Tab: Choose Your Approach

The Start tab offers three ways to begin building:

### Option 1: AI Code Generation (Recommended)

Let DarcyIQ write the code for you:

1. **Describe Your Goal**: In the text area, describe what you want your integration to do
2. **Click Generate**: DarcyIQ analyzes your request and generates complete code
3. **Review and Edit**: The generated code appears in the Build tab for review

**Example Prompts:**

| Goal                     | Prompt Example                                                                                       |
| ------------------------ | ---------------------------------------------------------------------------------------------------- |
| **Database Query**       | "Create an integration that connects to PostgreSQL and allows querying customer data by email or ID" |
| **API Integration**      | "Build an integration for the Stripe API that can retrieve payment history and customer details"     |
| **Notification Service** | "Create a Slack integration that can send messages to any channel with formatting support"           |
| **File Processing**      | "Build an integration that reads CSV files and returns the data as structured JSON"                  |

### Option 2: Start from a Template

Choose from pre-built templates:

| Template             | Description                         | Best For               |
| -------------------- | ----------------------------------- | ---------------------- |
| **Basic Python**     | Minimal Python MCP server           | Simple integrations    |
| **Python with Auth** | Python template with authentication | Secure API connections |
| **Basic Node.js**    | Minimal Node.js MCP server          | JavaScript developers  |
| **REST API Wrapper** | Template for wrapping REST APIs     | API integrations       |

### Option 3: Blank Canvas

Start with an empty editor and write everything from scratch. Recommended only for experienced MCP developers or importing existing MCPs into MCP Studio.

## Build Tab: Code Editor

The Build tab is where you write, edit, and test your integration code.

### Code Editor Features

| Feature                 | Description                                 |
| ----------------------- | ------------------------------------------- |
| **Syntax Highlighting** | Full color coding for Python and JavaScript |
| **Error Detection**     | Real-time validation as you type            |
| **Auto-Detection**      | Runtime automatically detected from code    |
| **Line Numbers**        | Easy navigation and debugging               |
| **Auto-Save**           | Changes saved automatically every 3 seconds |

### Writing MCP Server Code

Your MCP server code defines the tools that will be available to DarcyIQ. Here's the basic structure:

**Python Example:**

```python
from mcp.server import Server
from mcp.types import TextContent
import os

# Create the server
app = Server("my-integration")

# Define a tool
@app.tool()
async def get_customer(customer_id: str) -> list[TextContent]:
    """
    Retrieve customer information by ID.
    
    Args:
        customer_id: The unique identifier for the customer
    
    Returns:
        Customer details including name, email, and account status
    """
    # Your integration logic here
    api_key = os.environ.get("API_KEY")
    
    # Fetch customer data
    customer = await fetch_customer_from_api(customer_id, api_key)
    
    return [TextContent(
        type="text",
        text=f"Customer: {customer['name']}, Email: {customer['email']}"
    )]

# Run the server
if __name__ == "__main__":
    app.run()
```

**Node.js Example:**

```javascript
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { TextContent } from "@modelcontextprotocol/sdk/types.js";

const server = new Server({
  name: "my-integration",
  version: "1.0.0"
});

server.setRequestHandler("tools/call", async (request) => {
  const { name, arguments: args } = request.params;
  
  if (name === "get_customer") {
    const apiKey = process.env.API_KEY;
    const customer = await fetchCustomer(args.customer_id, apiKey);
    
    return {
      content: [{
        type: "text",
        text: `Customer: ${customer.name}, Email: ${customer.email}`
      }]
    };
  }
});

server.run();
```

### Tool Documentation

{% hint style="info" %}
**Best Practice**: Write clear docstrings for your tools. The AI uses these descriptions to understand when and how to use each tool.
{% endhint %}

Good documentation includes:

| Element               | Purpose                                | Example                                                      |
| --------------------- | -------------------------------------- | ------------------------------------------------------------ |
| **Brief Description** | One-line summary of what the tool does | "Retrieve customer information by ID"                        |
| **Args Section**      | Document each parameter                | "customer\_id: The unique identifier for the customer"       |
| **Returns Section**   | Describe the output                    | "Customer details including name, email, and account status" |

### Validation

Click the **Validate** button to check your code for errors:

| Validation Type       | What It Checks                       |
| --------------------- | ------------------------------------ |
| **Syntax Errors**     | Code compiles without errors         |
| **Import Validation** | All imports are available            |
| **Tool Detection**    | At least one tool is defined         |
| **Secret Detection**  | Environment variables are identified |

Validation results appear inline with your code:

| Status         | Meaning                         |
| -------------- | ------------------------------- |
| ✅ **Valid**    | Code passes all checks          |
| ⚠️ **Warning** | Non-critical issues to review   |
| ❌ **Error**    | Must be fixed before deployment |

### Secrets Management

The Secrets section lets you configure environment variables securely:

{% stepper %}
{% step %}
**Auto-Detection**

MCP Studio automatically detects environment variables used in your code (e.g., `os.environ.get("API_KEY")`).
{% endstep %}

{% step %}
**Configure Secrets**

For each detected secret, provide:

* **Name**: The environment variable name (auto-filled)
* **Display Name**: A friendly label for the UI
* **Description**: What this credential is for
* **Required**: Whether deployment requires this value
  {% endstep %}

{% step %}
**Enter Values**

Enter the actual secret values. These are stored securely and never exposed in code or logs.
{% endstep %}
{% endstepper %}

### Testing Your Tools

The Test Panel lets you test tools before deployment:

{% stepper %}
{% step %}
**Open Test Panel**

Click **Test** in the Build tab toolbar to open the test panel.
{% endstep %}

{% step %}
**Select a Tool**

Choose which tool to test from the dropdown.
{% endstep %}

{% step %}
**Enter Parameters**

Fill in the required parameters for the tool.
{% endstep %}

{% step %}
**Run Test**

Click **Run** to execute the tool. Results appear in the panel.
{% endstep %}
{% endstepper %}

## Runtime Support

MCP Studio supports two runtimes:

### Python

| Aspect               | Details                          |
| -------------------- | -------------------------------- |
| **Version**          | Python 3.11+                     |
| **Package Manager**  | pip with requirements.txt        |
| **MCP SDK**          | `mcp` package                    |
| **Common Libraries** | requests, httpx, asyncio, pandas |

**Specifying Dependencies:**

Add a comment block at the top of your file:

```python
# requirements:
# requests>=2.28.0
# pandas>=2.0.0
# httpx>=0.24.0

from mcp.server import Server
# ... rest of your code
```

### Node.js

| Aspect               | Details                     |
| -------------------- | --------------------------- |
| **Version**          | Node.js 18+                 |
| **Package Manager**  | npm with package.json       |
| **MCP SDK**          | `@modelcontextprotocol/sdk` |
| **Common Libraries** | axios, node-fetch, lodash   |

**Specifying Dependencies:**

Dependencies are auto-detected from import statements, or you can include a package.json comment:

```javascript
/* package.json:
{
  "dependencies": {
    "axios": "^1.4.0",
    "lodash": "^4.17.21"
  }
}
*/

import { Server } from "@modelcontextprotocol/sdk/server/index.js";
// ... rest of your code
```

## Best Practices for Custom MCPs

### Code Organization

| Practice                  | Description                                        |
| ------------------------- | -------------------------------------------------- |
| **Single Responsibility** | Each tool should do one thing well                 |
| **Clear Naming**          | Use descriptive tool and parameter names           |
| **Error Handling**        | Always handle potential errors gracefully          |
| **Logging**               | Add logging for debugging (visible in Monitor tab) |

### Error Handling

```python
@app.tool()
async def safe_api_call(endpoint: str) -> list[TextContent]:
    """Make a safe API call with error handling."""
    try:
        response = await make_request(endpoint)
        return [TextContent(type="text", text=response)]
    except ConnectionError:
        return [TextContent(type="text", text="Error: Could not connect to the API")]
    except AuthenticationError:
        return [TextContent(type="text", text="Error: Invalid API credentials")]
    except Exception as e:
        return [TextContent(type="text", text=f"Error: {str(e)}")]
```

### Security Considerations

| Practice                      | Description                              |
| ----------------------------- | ---------------------------------------- |
| **Use Environment Variables** | Never hardcode credentials               |
| **Validate Input**            | Check parameters before using them       |
| **Limit Scope**               | Only request permissions you need        |
| **Sanitize Output**           | Don't expose sensitive data in responses |

## Common Patterns

### REST API Wrapper

```python
@app.tool()
async def api_request(
    method: str,
    endpoint: str,
    body: str = None
) -> list[TextContent]:
    """
    Make a request to the external API.
    
    Args:
        method: HTTP method (GET, POST, PUT, DELETE)
        endpoint: API endpoint path
        body: Optional JSON body for POST/PUT requests
    """
    base_url = os.environ.get("API_BASE_URL")
    api_key = os.environ.get("API_KEY")
    
    headers = {"Authorization": f"Bearer {api_key}"}
    url = f"{base_url}{endpoint}"
    
    async with httpx.AsyncClient() as client:
        response = await client.request(
            method=method,
            url=url,
            headers=headers,
            json=json.loads(body) if body else None
        )
        return [TextContent(type="text", text=response.text)]
```

### Database Query

```python
@app.tool()
async def query_database(sql: str) -> list[TextContent]:
    """
    Execute a read-only SQL query.
    
    Args:
        sql: The SQL query to execute (SELECT only)
    """
    if not sql.strip().upper().startswith("SELECT"):
        return [TextContent(type="text", text="Error: Only SELECT queries allowed")]
    
    connection_string = os.environ.get("DATABASE_URL")
    
    async with asyncpg.connect(connection_string) as conn:
        rows = await conn.fetch(sql)
        result = [dict(row) for row in rows]
        return [TextContent(type="text", text=json.dumps(result, indent=2))]
```

## Next Steps

Once your code is ready, proceed to deployment:

| Goal                    | Documentation                                            |
| ----------------------- | -------------------------------------------------------- |
| Deploy your integration | [Deploying & Managing](/build/mcp-studio/deploying-mcps) |
| View more code examples | [Code Samples](/build/mcp-studio/mcp-studio-samples)     |
| Troubleshoot issues     | [Troubleshooting](/build/mcp-studio/troubleshooting)     |


# MCP Apps & Interactive UI

MCP Apps let you build interactive micro-applications that run directly inside DarcyIQ. Create dashboards, forms, data visualizations, and fully interactive experiences—all powered by your MCP integration.

{% hint style="success" %}
**Beyond Text Responses**: While standard MCP tools return text, MCP Apps return rich HTML interfaces that users can interact with directly in Chat or the Artifact panel.
{% endhint %}

## What are MCP Apps?

<figure><img src="/files/KZVxJptD05nxOLj5mJqE" alt=""><figcaption></figcaption></figure>

MCP Apps extend the standard MCP tool pattern by returning interactive user interfaces instead of (or alongside) text responses. When your tool returns a UI resource, DarcyIQ renders it as a fully interactive web application within a secure sandbox.

| Feature              | Standard MCP Tool      | MCP App                                   |
| -------------------- | ---------------------- | ----------------------------------------- |
| **Output**           | Text/JSON data         | Interactive HTML/JavaScript UI            |
| **User Interaction** | None (read-only)       | Buttons, forms, charts, navigation        |
| **Visual Richness**  | Plain text or markdown | Full HTML/CSS styling                     |
| **Callbacks**        | N/A                    | UI can trigger other tools                |
| **State**            | Stateless              | Can maintain state and update dynamically |

## Use Cases for MCP Apps

<figure><img src="/files/8Dyk6s2C8wT3su1S75oS" alt=""><figcaption></figcaption></figure>

MCP Apps are ideal for scenarios where visual interaction enhances the user experience:

| Use Case                 | Example                          | Why MCP App?                              |
| ------------------------ | -------------------------------- | ----------------------------------------- |
| **Dashboards**           | Sales metrics, system status     | Real-time data visualization with charts  |
| **Data Browsers**        | Customer lists, product catalogs | Sortable tables, filters, pagination      |
| **Configuration Panels** | Settings, preferences            | Forms with validation and save buttons    |
| **Wizards**              | Multi-step workflows             | Guided step-by-step interfaces            |
| **Reports**              | Financial summaries, analytics   | Formatted tables, charts, export options  |
| **Interactive Forms**    | Data entry, surveys              | Input validation, dropdowns, date pickers |
| **Approval Workflows**   | Review and approve items         | Action buttons, status indicators         |

## How MCP Apps Work

### Architecture Overview

```mermaid
graph TB
    subgraph DarcyIQ[DarcyIQ Chat]
        subgraph MCPApp[MCP App - Sandboxed Iframe]
            HTMLApp[Your HTML/CSS/JavaScript Application<br/>Charts, Tables, Forms<br/>User interactions<br/>postMessage to invoke tools]
        end
        
        HTMLApp -->|postMessage| CallbackHandler[MCP-UI Callback Handler<br/>Validates tool request<br/>Routes to MCP server<br/>Returns result to iframe]
    end
    
    CallbackHandler -->|Tool Invocation| MCPServer[Your MCP Server<br/>Python/Node.js]
    MCPServer -->|Response| CallbackHandler
```

### The UI Resource Format

MCP Apps return a special `UIResource` object that tells DarcyIQ to render interactive content:

```python
{
    "ui": {
        "uri": "app://my-dashboard",           # Unique identifier
        "name": "Sales Dashboard",              # Display name
        "mimeType": "text/html",               # Content type
        "content": "<html>...</html>",         # Your HTML/JS/CSS
        "description": "Interactive sales metrics"  # Optional description
    }
}
```

| Field         | Required | Description                             |
| ------------- | -------- | --------------------------------------- |
| `uri`         | Yes      | Unique identifier for the UI resource   |
| `name`        | Yes      | Display name shown in the UI header     |
| `mimeType`    | Yes      | Must be `text/html` for interactive UIs |
| `content`     | Yes      | Your HTML, CSS, and JavaScript code     |
| `description` | No       | Brief description of the UI             |

## Building Your First MCP App

### Step 1: Create the MCP Server

Start with a standard MCP server and add a tool that returns a UI resource:

```python
from mcp.server import Server
from mcp.types import TextContent
import json

app = Server("my-dashboard-app")

@app.tool()
async def show_dashboard() -> list[TextContent]:
    """
    Display an interactive dashboard with sales metrics.
    
    Returns:
        Interactive dashboard UI
    """
    # Your dashboard HTML
    html_content = '''
    <!DOCTYPE html>
    <html>
    <head>
        <style>
            body { 
                font-family: -apple-system, BlinkMacSystemFont, sans-serif;
                padding: 20px;
                background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
                min-height: 100vh;
                margin: 0;
            }
            .card {
                background: white;
                border-radius: 12px;
                padding: 24px;
                margin-bottom: 16px;
                box-shadow: 0 4px 6px rgba(0,0,0,0.1);
            }
            .metric {
                font-size: 36px;
                font-weight: bold;
                color: #1a1a2e;
            }
            .label {
                color: #666;
                font-size: 14px;
                margin-bottom: 8px;
            }
            .grid {
                display: grid;
                grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
                gap: 16px;
            }
            button {
                background: #667eea;
                color: white;
                border: none;
                padding: 12px 24px;
                border-radius: 8px;
                cursor: pointer;
                font-size: 14px;
                transition: transform 0.2s;
            }
            button:hover {
                transform: translateY(-2px);
            }
        </style>
    </head>
    <body>
        <div class="card">
            <h2 style="margin-top:0">Sales Dashboard</h2>
            <div class="grid">
                <div>
                    <div class="label">Total Revenue</div>
                    <div class="metric">$124,500</div>
                </div>
                <div>
                    <div class="label">New Customers</div>
                    <div class="metric">48</div>
                </div>
                <div>
                    <div class="label">Conversion Rate</div>
                    <div class="metric">3.2%</div>
                </div>
            </div>
        </div>
        <div class="card">
            <button onclick="refreshData()">Refresh Data</button>
            <button onclick="exportReport()">Export Report</button>
        </div>
        
        <script>
            function refreshData() {
                // Call another tool on the MCP server
                window.parent.postMessage({
                    type: 'tool',
                    payload: {
                        toolName: 'get_latest_metrics',
                        params: {}
                    }
                }, '*');
            }
            
            function exportReport() {
                window.parent.postMessage({
                    type: 'tool',
                    payload: {
                        toolName: 'export_sales_report',
                        params: { format: 'pdf' }
                    }
                }, '*');
            }
        </script>
    </body>
    </html>
    '''
    
    # Return both UI and data
    result = {
        "ui": {
            "uri": "app://sales-dashboard",
            "name": "Sales Dashboard",
            "mimeType": "text/html",
            "content": html_content,
            "description": "Interactive sales metrics dashboard"
        },
        "data": {
            "revenue": 124500,
            "customers": 48,
            "conversion": 3.2
        }
    }
    
    return [TextContent(type="text", text=json.dumps(result))]

if __name__ == "__main__":
    app.run()
```

### Step 2: Add Callback Tools

Create additional tools that the UI can invoke:

```python
@app.tool()
async def get_latest_metrics() -> list[TextContent]:
    """
    Fetch the latest metrics from the database.
    Called by the dashboard UI refresh button.
    """
    # Fetch real data from your database
    metrics = await fetch_metrics_from_db()
    
    # Return updated UI with new data
    updated_html = generate_dashboard_html(metrics)
    
    result = {
        "ui": {
            "uri": "app://sales-dashboard",
            "name": "Sales Dashboard (Updated)",
            "mimeType": "text/html",
            "content": updated_html
        }
    }
    
    return [TextContent(type="text", text=json.dumps(result))]


@app.tool()
async def export_sales_report(format: str = "pdf") -> list[TextContent]:
    """
    Export the sales report in the specified format.
    
    Args:
        format: Export format (pdf, csv, xlsx)
    """
    # Generate and return the report
    report_url = await generate_report(format)
    
    return [TextContent(
        type="text",
        text=f"Report generated: {report_url}"
    )]
```

### Step 3: Deploy and Test

1. Deploy your MCP server using MCP Studio
2. Open DarcyIQ Chat
3. Ask the AI to "show me the sales dashboard"
4. Interact with the dashboard—buttons will call back to your tools!

## MCP-UI Callbacks

The most powerful feature of MCP Apps is the ability to call back to your MCP server from the UI.

### How Callbacks Work

1. User clicks a button or triggers an action in your UI
2. Your JavaScript sends a `postMessage` to the parent window
3. DarcyIQ intercepts the message and validates it
4. The tool is invoked on your MCP server
5. The result is sent back to your iframe
6. Your UI updates based on the result

### Callback Message Format

```javascript
window.parent.postMessage({
    type: 'tool',                    // Must be 'tool' for tool invocations
    payload: {
        toolName: 'my_tool_name',    // Name of the tool to call
        params: {                     // Parameters to pass
            key: 'value',
            another: 123
        }
    }
}, '*');
```

### Receiving Callback Results

Your UI can listen for results:

```javascript
// Listen for tool results
window.addEventListener('message', function(event) {
    // Check if this is a tool result
    if (event.data && event.data.success !== undefined) {
        if (event.data.success) {
            console.log('Tool result:', event.data.result);
            
            // If the tool returned new UI, it will automatically render
            // But you can also update your current UI based on result data
            updateDashboard(event.data.result);
        } else {
            console.error('Tool error:', event.data.error);
            showError(event.data.error);
        }
    }
});

function updateDashboard(data) {
    document.getElementById('revenue').textContent = '$' + data.revenue;
    document.getElementById('customers').textContent = data.customers;
}

function showError(message) {
    alert('Error: ' + message);
}
```

### Dynamic UI Updates

When a callback tool returns a new `ui` resource, DarcyIQ automatically replaces the current UI:

```python
@app.tool()
async def navigate_to_details(customer_id: str) -> list[TextContent]:
    """Navigate to customer details view."""
    customer = await get_customer(customer_id)
    
    details_html = f'''
    <html>
    <body>
        <h1>{customer['name']}</h1>
        <p>Email: {customer['email']}</p>
        <button onclick="goBack()">Back to List</button>
        
        <script>
            function goBack() {{
                window.parent.postMessage({{
                    type: 'tool',
                    payload: {{ toolName: 'show_customer_list', params: {{}} }}
                }}, '*');
            }}
        </script>
    </body>
    </html>
    '''
    
    return [TextContent(type="text", text=json.dumps({
        "ui": {
            "uri": f"app://customer/{customer_id}",
            "name": f"Customer: {customer['name']}",
            "mimeType": "text/html",
            "content": details_html
        }
    }))]
```

## Best Practices

### Security

| Practice                         | Why                                  |
| -------------------------------- | ------------------------------------ |
| **Sanitize inputs**              | Prevent XSS attacks in your HTML     |
| **Validate callback params**     | Don't trust data from the UI blindly |
| **Use HTTPS resources**          | External assets must be HTTPS        |
| **Avoid sensitive data in HTML** | UI content may be cached             |

{% hint style="warning" %}
**Sandbox Security**: MCP Apps run in a sandboxed iframe with restricted permissions. Some browser APIs may not be available.
{% endhint %}

### Performance

| Practice                 | Description                                |
| ------------------------ | ------------------------------------------ |
| **Inline CSS/JS**        | Avoid external dependencies when possible  |
| **Minimize HTML size**   | Large UIs take longer to render            |
| **Lazy load data**       | Fetch data via callbacks, not initial load |
| **Cache static content** | Reuse UI components across calls           |

### User Experience

| Practice               | Description                                 |
| ---------------------- | ------------------------------------------- |
| **Loading states**     | Show spinners during callback operations    |
| **Error handling**     | Display friendly error messages             |
| **Responsive design**  | UIs should work at different sizes          |
| **Fullscreen support** | Design for both inline and fullscreen modes |

### Example: Loading State

```javascript
async function fetchData() {
    // Show loading
    document.getElementById('content').innerHTML = '<p>Loading...</p>';
    
    // Make the callback
    window.parent.postMessage({
        type: 'tool',
        payload: { toolName: 'get_data', params: {} }
    }, '*');
}

// Handle result
window.addEventListener('message', function(event) {
    if (event.data && event.data.success !== undefined) {
        if (event.data.success) {
            document.getElementById('content').innerHTML = 
                formatData(event.data.result);
        } else {
            document.getElementById('content').innerHTML = 
                '<p class="error">Error: ' + event.data.error + '</p>';
        }
    }
});
```

## Example MCP Apps

### Interactive Data Table

```python
@app.tool()
async def show_customer_table() -> list[TextContent]:
    """Display an interactive customer data table."""
    
    customers = await fetch_customers()
    
    rows_html = "".join([
        f'''<tr>
            <td>{c['name']}</td>
            <td>{c['email']}</td>
            <td>{c['status']}</td>
            <td>
                <button onclick="viewCustomer('{c['id']}')">View</button>
                <button onclick="editCustomer('{c['id']}')">Edit</button>
            </td>
        </tr>'''
        for c in customers
    ])
    
    html = f'''
    <html>
    <head>
        <style>
            table {{ width: 100%; border-collapse: collapse; }}
            th, td {{ padding: 12px; text-align: left; border-bottom: 1px solid #ddd; }}
            th {{ background: #f5f5f5; }}
            button {{ margin-right: 8px; }}
        </style>
    </head>
    <body>
        <h2>Customer List</h2>
        <table>
            <thead>
                <tr>
                    <th>Name</th>
                    <th>Email</th>
                    <th>Status</th>
                    <th>Actions</th>
                </tr>
            </thead>
            <tbody>{rows_html}</tbody>
        </table>
        
        <script>
            function viewCustomer(id) {{
                window.parent.postMessage({{
                    type: 'tool',
                    payload: {{ toolName: 'view_customer', params: {{ customer_id: id }} }}
                }}, '*');
            }}
            
            function editCustomer(id) {{
                window.parent.postMessage({{
                    type: 'tool',
                    payload: {{ toolName: 'edit_customer_form', params: {{ customer_id: id }} }}
                }}, '*');
            }}
        </script>
    </body>
    </html>
    '''
    
    return [TextContent(type="text", text=json.dumps({
        "ui": {
            "uri": "app://customers",
            "name": "Customer List",
            "mimeType": "text/html",
            "content": html
        }
    }))]
```

### Form with Validation

```python
@app.tool()
async def show_contact_form() -> list[TextContent]:
    """Display a contact form with client-side validation."""
    
    html = '''
    <html>
    <head>
        <style>
            form { max-width: 400px; }
            label { display: block; margin-top: 16px; font-weight: 500; }
            input, textarea { 
                width: 100%; padding: 8px; margin-top: 4px;
                border: 1px solid #ddd; border-radius: 4px;
            }
            input:invalid { border-color: #e74c3c; }
            button { 
                margin-top: 20px; padding: 12px 24px;
                background: #3498db; color: white; border: none;
                border-radius: 4px; cursor: pointer;
            }
            .error { color: #e74c3c; font-size: 12px; }
        </style>
    </head>
    <body>
        <h2>Contact Us</h2>
        <form id="contactForm" onsubmit="submitForm(event)">
            <label>Name *</label>
            <input type="text" id="name" required>
            
            <label>Email *</label>
            <input type="email" id="email" required>
            
            <label>Message *</label>
            <textarea id="message" rows="4" required></textarea>
            
            <button type="submit">Send Message</button>
        </form>
        
        <div id="status"></div>
        
        <script>
            function submitForm(e) {
                e.preventDefault();
                
                const data = {
                    name: document.getElementById('name').value,
                    email: document.getElementById('email').value,
                    message: document.getElementById('message').value
                };
                
                document.getElementById('status').textContent = 'Sending...';
                
                window.parent.postMessage({
                    type: 'tool',
                    payload: { 
                        toolName: 'submit_contact_form', 
                        params: data 
                    }
                }, '*');
            }
            
            window.addEventListener('message', function(event) {
                if (event.data && event.data.success !== undefined) {
                    if (event.data.success) {
                        document.getElementById('status').innerHTML = 
                            '<p style="color:green">Message sent successfully!</p>';
                        document.getElementById('contactForm').reset();
                    } else {
                        document.getElementById('status').innerHTML = 
                            '<p class="error">Error: ' + event.data.error + '</p>';
                    }
                }
            });
        </script>
    </body>
    </html>
    '''
    
    return [TextContent(type="text", text=json.dumps({
        "ui": {
            "uri": "app://contact-form",
            "name": "Contact Form",
            "mimeType": "text/html",
            "content": html
        }
    }))]
```

## Displaying MCP Apps

MCP Apps can be displayed in multiple contexts within DarcyIQ:

| Context            | Description                                | Size                |
| ------------------ | ------------------------------------------ | ------------------- |
| **Chat Inline**    | Embedded directly in the chat conversation | Compact, expandable |
| **Artifact Panel** | Full artifact view alongside chat          | Large, side panel   |
| **Fullscreen**     | Maximized view (click expand button)       | Full browser window |

### Fullscreen Mode

Users can click the expand button to view your MCP App in fullscreen mode. Design your UI to take advantage of the extra space:

```css
/* Responsive design for fullscreen */
@media (min-height: 600px) {
    .dashboard {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 24px;
    }
}

@media (max-height: 599px) {
    .dashboard {
        display: block;
    }
}
```

## Limitations

| Limitation                     | Details                                    |
| ------------------------------ | ------------------------------------------ |
| **No localStorage**            | Sandbox prevents persistent storage        |
| **No cookies**                 | Third-party cookies blocked                |
| **Limited APIs**               | Some browser APIs restricted in sandbox    |
| **Same-origin callbacks only** | Can only call tools on the same MCP server |
| **No external fetch**          | Cannot make HTTP requests from iframe      |

{% hint style="info" %}
**Working Around Limitations**: Use tool callbacks to fetch external data. Your MCP server can make HTTP requests and return the data to your UI.
{% endhint %}

## Next Steps

| Goal                   | Documentation                                                  |
| ---------------------- | -------------------------------------------------------------- |
| Build custom MCPs      | [Building Custom MCPs](/build/mcp-studio/building-custom-mcps) |
| View more code samples | [Code Samples](/build/mcp-studio/mcp-studio-samples)           |
| Deploy your app        | [Deploying & Managing](/build/mcp-studio/deploying-mcps)       |
| Troubleshoot issues    | [Troubleshooting](/build/mcp-studio/troubleshooting)           |


# Deploying & Managing

Deploy your MCP integrations to production, share them with your team, and monitor their performance—all from within MCP Studio.

{% hint style="success" %}
**One-Click Deployment**: MCP Studio handles containerization, infrastructure, and scaling automatically. Just click deploy and watch your integration go live.
{% endhint %}

## Deployment Overview

When you deploy an MCP server, MCP Studio:

1. **Validates** your code for errors and security issues
2. **Builds** a container image with your code and dependencies
3. **Deploys** the container to cloud infrastructure
4. **Creates** an API endpoint for accessing your integration
5. **Generates** an API key for authentication

| Aspect             | Details                                   |
| ------------------ | ----------------------------------------- |
| **Infrastructure** | AWS-powered secure cloud hosting          |
| **Scaling**        | Automatic scaling based on demand         |
| **Availability**   | High availability with redundancy         |
| **Security**       | Encrypted connections, isolated execution |

{% hint style="info" %}
**Deploy to Your Own AWS Account**: You can optionally deploy MCP servers into your own AWS account for data residency, compliance, or to use existing AWS credits. See [Deploy to Your AWS Account](/build/mcp-studio/aws-account-deployment) for setup instructions.
{% endhint %}

## Deployment Status Lifecycle

Your MCP server progresses through these statuses:

```
┌─────────┐   ┌────────────┐   ┌──────────┐   ┌───────────┐   ┌──────────┐
│  Draft  │ → │ Validating │ → │ Building │ → │ Deploying │ → │ Deployed │
└─────────┘   └────────────┘   └──────────┘   └───────────┘   └──────────┘
                                                    │
                                                    ↓
                                              ┌─────────┐
                                              │  Error  │
                                              └─────────┘
```

| Status         | Description          | What's Happening                               |
| -------------- | -------------------- | ---------------------------------------------- |
| **Draft**      | Initial state        | Code has not been deployed                     |
| **Validating** | Code validation      | Checking syntax, imports, and tool definitions |
| **Building**   | Container build      | Creating Docker image with dependencies        |
| **Deploying**  | Infrastructure setup | Launching container and configuring endpoints  |
| **Deployed**   | Live and ready       | Integration is available for use               |
| **Error**      | Deployment failed    | Something went wrong (see logs for details)    |
| **Archived**   | Deactivated          | Integration has been stopped                   |

## Deploy Tab: Deploying Your Integration

{% stepper %}
{% step %}
**Navigate to Deploy Tab**

From the MCP Builder, click the **Deploy** tab.
{% endstep %}

{% step %}
**Review Pre-Deployment Checklist**

Before deployment, ensure:

| Requirement           | Description                      |
| --------------------- | -------------------------------- |
| ✅ Code validates      | Run validation on the Build tab  |
| ✅ Secrets configured  | All required secrets have values |
| ✅ Tools defined       | At least one tool is defined     |
| ✅ Documentation added | Tools have clear descriptions    |
| {% endstep %}         |                                  |

{% step %}
**Click Deploy**

Click the **Deploy** button to start the deployment process.

{% hint style="info" %}
**Catalog MCPs**: If you're deploying from the MCP Catalog, validation is skipped since the code is pre-validated.
{% endhint %}
{% endstep %}

{% step %}
**Monitor Progress**

Watch the streaming deployment progress:

```
[12:34:56] Starting deployment...
[12:34:57] Validating code... ✓
[12:34:59] Building container image...
[12:35:15] Pushing image to registry... ✓
[12:35:22] Deploying to infrastructure...
[12:35:45] Creating API endpoint... ✓
[12:35:47] Deployment complete! ✓
```

{% endstep %}

{% step %}
**Verify Deployment**

Once complete, the status changes to **Deployed** and you can proceed to the Connect tab.
{% endstep %}
{% endstepper %}

### Handling Deployment Errors

If deployment fails:

1. **Check the Error Message**: The deployment log shows what went wrong
2. **Review Your Code**: Common issues include syntax errors or missing dependencies
3. **Verify Secrets**: Ensure all required credentials are provided
4. **Try Again**: Fix the issue and click Deploy again

| Common Error       | Cause                   | Solution                           |
| ------------------ | ----------------------- | ---------------------------------- |
| Validation failed  | Code has errors         | Fix errors shown in Build tab      |
| Build failed       | Dependency issues       | Check package versions and imports |
| Deployment timeout | Infrastructure issue    | Wait and retry, or contact support |
| Missing secrets    | Required values not set | Configure all required secrets     |

## Connect Tab: Enabling Your Integration

After deployment, use the Connect tab to enable your integration and get connection details.

### Enable for Darcy

Toggle **Enable for Darcy** to make your integration available in:

| Feature          | How It Works                                 |
| ---------------- | -------------------------------------------- |
| **DarcyIQ Chat** | Tools appear automatically for the AI to use |
| **AI Workflows** | Integration available as a workflow step     |

{% hint style="success" %}
**Instant Availability**: Once enabled, your integration's tools are immediately available. No restart required.
{% endhint %}

### Manual Connection Details

For connecting from external applications, the Connect tab provides:

| Detail           | Description                             | Example                             |
| ---------------- | --------------------------------------- | ----------------------------------- |
| **Endpoint URL** | The HTTPS endpoint for your integration | `https://mcp.darcyiq.com/v1/abc123` |
| **API Key**      | Authentication key for requests         | `mcp_key_xxxxx...`                  |

### Code Examples for External Connections

The Connect tab provides ready-to-use code examples:

**Python (httpx):**

```python
import httpx

endpoint = "https://mcp.darcyiq.com/v1/abc123"
api_key = "mcp_key_xxxxx"

async with httpx.AsyncClient() as client:
    response = await client.post(
        f"{endpoint}/tools/call",
        headers={"Authorization": f"Bearer {api_key}"},
        json={
            "name": "get_customer",
            "arguments": {"customer_id": "12345"}
        }
    )
    result = response.json()
    print(result)
```

**JavaScript (fetch):**

```javascript
const endpoint = "https://mcp.darcyiq.com/v1/abc123";
const apiKey = "mcp_key_xxxxx";

const response = await fetch(`${endpoint}/tools/call`, {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    name: "get_customer",
    arguments: { customer_id: "12345" }
  })
});

const result = await response.json();
console.log(result);
```

**cURL:**

```bash
curl -X POST "https://mcp.darcyiq.com/v1/abc123/tools/call" \
  -H "Authorization: Bearer mcp_key_xxxxx" \
  -H "Content-Type: application/json" \
  -d '{"name": "get_customer", "arguments": {"customer_id": "12345"}}'
```

**MCP Client Configuration:**

```json
{
  "mcpServers": {
    "my-integration": {
      "url": "https://mcp.darcyiq.com/v1/abc123",
      "apiKey": "mcp_key_xxxxx"
    }
  }
}
```

## Monitor Tab: Viewing Logs

The Monitor tab shows real-time logs from your deployed integration.

### Log Information

| Field          | Description                   |
| -------------- | ----------------------------- |
| **Timestamp**  | When the event occurred       |
| **Level**      | INFO, WARNING, ERROR, DEBUG   |
| **Message**    | Log message content           |
| **Request ID** | Unique identifier for tracing |

### Using Logs for Debugging

Logs help you understand:

* **Tool Invocations**: When and how tools are called
* **Errors**: Stack traces and error messages
* **Performance**: Response times and bottlenecks
* **Usage Patterns**: How the integration is being used

### Log Controls

| Control          | Function                         |
| ---------------- | -------------------------------- |
| **Refresh**      | Load latest logs                 |
| **Auto-refresh** | Continuously update (toggle)     |
| **Filter**       | Filter by level or search text   |
| **Pagination**   | Navigate through historical logs |

## Sharing Integrations

Share your integrations with team members to enable collaboration.

### Permission Levels

| Level      | Capabilities                               |
| ---------- | ------------------------------------------ |
| **Owner**  | Full control: edit, deploy, share, delete  |
| **Editor** | Can modify code, configure secrets, deploy |
| **Viewer** | Read-only: can view code and logs          |

### Sharing an Integration

{% stepper %}
{% step %}
**Open Share Dialog**

From the MCP server list or builder, click the **Share** button.
{% endstep %}

{% step %}
**Add Team Members**

Enter email addresses or select from your organization's members.
{% endstep %}

{% step %}
**Set Permissions**

Choose the permission level for each person:

* **Owner**: For co-maintainers
* **Editor**: For contributors
* **Viewer**: For reviewers or users
  {% endstep %}

{% step %}
**Send Invitations**

Click **Share** to grant access. Team members can now see the integration in their MCP Studio.
{% endstep %}
{% endstepper %}

### Managing Shared Access

To modify or revoke access:

1. Open the Share dialog
2. Find the user in the list
3. Change their permission level or click **Remove**

## Managing Deployed Integrations

From the **My MCPs** list, you can manage all your integrations:

### Available Actions

| Action        | Description        | When to Use                               |
| ------------- | ------------------ | ----------------------------------------- |
| **Edit**      | Open in builder    | Modify code or settings                   |
| **Duplicate** | Create a copy      | Test changes without affecting production |
| **Deploy**    | Deploy or redeploy | Push updates to production                |
| **Stop**      | Undeploy           | Temporarily disable the integration       |
| **Share**     | Manage access      | Grant or revoke team access               |
| **Favorite**  | Add to favorites   | Quick access from your list               |
| **Delete**    | Remove entirely    | Permanently delete the integration        |

### Updating a Deployed Integration

To update a live integration:

{% stepper %}
{% step %}
**Make Changes**

Edit your code on the Build tab.
{% endstep %}

{% step %}
**Test Locally**

Use the Test panel to verify changes work correctly.
{% endstep %}

{% step %}
**Redeploy**

Go to the Deploy tab and click **Deploy** again. The new version replaces the current deployment.

{% hint style="warning" %}
**Downtime**: There may be a brief interruption (a few seconds) while the new version deploys.
{% endhint %}
{% endstep %}
{% endstepper %}

### Stopping an Integration

To temporarily disable an integration without deleting it:

1. Click **Stop** from the actions menu
2. The status changes to **Archived**
3. The integration is no longer available in Chat or Workflows
4. You can redeploy later to restore it

### Deleting an Integration

{% hint style="warning" %}
**Permanent Action**: Deleting an integration removes all code, configuration, and history. This cannot be undone.
{% endhint %}

1. Click **Delete** from the actions menu
2. Confirm the deletion
3. The integration is permanently removed

## Organization Favorites

Mark integrations as organization favorites to highlight them for your team:

### Adding to Favorites

1. Click the **star icon** on any integration
2. Optionally set a custom display name
3. The integration appears in the "Organization Recommended" section

### Benefits of Favorites

| Benefit             | Description                                     |
| ------------------- | ----------------------------------------------- |
| **Visibility**      | Appear at the top of the MCP Catalog            |
| **Standardization** | Guide team members to approved integrations     |
| **Custom Naming**   | Use names that make sense for your organization |

## Deployment Best Practices

### Before Deployment

| Practice              | Description                                 |
| --------------------- | ------------------------------------------- |
| **Test Thoroughly**   | Use the Test panel to verify all tools work |
| **Validate Code**     | Run validation to catch errors              |
| **Document Tools**    | Add clear descriptions for AI understanding |
| **Configure Secrets** | Ensure all credentials are set              |

### After Deployment

| Practice             | Description                             |
| -------------------- | --------------------------------------- |
| **Monitor Logs**     | Check for errors or unexpected behavior |
| **Test in Chat**     | Verify tools work in real conversations |
| **Share Carefully**  | Only give necessary permissions         |
| **Update Regularly** | Keep dependencies and code current      |

### Security Considerations

| Practice                | Description                              |
| ----------------------- | ---------------------------------------- |
| **Rotate API Keys**     | Change keys if they may be compromised   |
| **Minimum Permissions** | Share with appropriate access levels     |
| **Monitor Usage**       | Watch logs for unexpected activity       |
| **Secure Secrets**      | Never expose credentials in code or logs |

## Next Steps

| Goal                      | Documentation                                                  |
| ------------------------- | -------------------------------------------------------------- |
| View code examples        | [Code Samples](/build/mcp-studio/mcp-studio-samples)           |
| Troubleshoot issues       | [Troubleshooting](/build/mcp-studio/troubleshooting)           |
| Browse the MCP Catalog    | [MCP Catalog](/build/mcp-studio/mcp-catalog)                   |
| Build custom integrations | [Building Custom MCPs](/build/mcp-studio/building-custom-mcps) |


# Deploy to Your AWS Account

Deploy MCP servers into your own AWS account for full control over resources, security, billing, and data residency. DarcyIQ handles the build and deployment pipeline while your infrastructure stays in your AWS environment.

{% hint style="success" %}
**Your Infrastructure, Our Pipeline**: MCP servers are built and deployed directly into your AWS account. You maintain ownership of all resources and data.
{% endhint %}

## Overview

By default, MCP servers deploy to DarcyIQ's managed cloud infrastructure. If your organization has data residency requirements, compliance needs, or wants to use existing AWS credits, you can configure DarcyIQ to deploy MCPs into your own AWS account instead.

| Deployment Mode               | Infrastructure                    | Best For                                         |
| ----------------------------- | --------------------------------- | ------------------------------------------------ |
| **DarcyIQ Managed** (default) | DarcyIQ handles everything        | Quick setup, no AWS experience needed            |
| **Your AWS Account** (opt-in) | Resources run in your AWS account | Data residency, compliance, existing AWS credits |

Once configured, the deployment experience is the same — click **Deploy** in MCP Studio and your integration goes live. The only difference is where it runs.

## Prerequisites

Before setting up your AWS account, ensure you have:

| Requirement            | Details                                                                |
| ---------------------- | ---------------------------------------------------------------------- |
| **AWS Account**        | An active AWS account with permissions to deploy CloudFormation stacks |
| **IAM Permissions**    | Ability to create IAM roles and ECR repositories                       |
| **Organization Admin** | You must be an organization admin in DarcyIQ                           |
| **Supported Region**   | Your AWS account must use one of the supported regions (see below)     |

### Supported Regions

| Region         | Location              |
| -------------- | --------------------- |
| us-east-1      | US East (N. Virginia) |
| us-west-2      | US West (Oregon)      |
| eu-west-1      | Europe (Ireland)      |
| ap-northeast-1 | Asia Pacific (Tokyo)  |

## Setting Up Your AWS Account

{% stepper %}
{% step %}
**Navigate to AWS Settings** Open **MCP Studio** and go to the AWS Account Configuration section. Click **Configure AWS Account**.
{% endstep %}

{% step %}
**Select Your Region** Choose the AWS region where you want MCP servers to be deployed.
{% endstep %}

{% step %}
**Deploy the CloudFormation Stack** DarcyIQ generates a pre-configured CloudFormation template URL. Click **Open AWS CloudFormation Console** to launch the stack creation wizard in your AWS account with all parameters pre-filled.

In the AWS Console:

1. Review the template parameters
2. Acknowledge the IAM capabilities checkbox
3. Click **Create stack**
4. Wait for the status to show **CREATE\_COMPLETE**
   {% endstep %}

{% step %}
**Copy the Stack Outputs** Once the CloudFormation stack completes, go to the **Outputs** tab and copy the following values:

| Output                           | Description                                            |
| -------------------------------- | ------------------------------------------------------ |
| **AWS Account ID**               | Your 12-digit AWS account ID                           |
| **ECR Repository URI**           | The container registry where MCP images are stored     |
| **AgentCore Execution Role ARN** | IAM role for running MCP servers                       |
| **Deployment Role ARN**          | IAM role that DarcyIQ uses to deploy into your account |
| **Gateway Lambda Role ARN**      | IAM role for invoking MCP servers                      |
| {% endstep %}                    |                                                        |

{% step %}
**Complete the Configuration** Back in DarcyIQ, click **I've Deployed the Stack** and paste each of the CloudFormation output values into the form. Click **Complete Setup**.

DarcyIQ validates the connection to your AWS account by confirming it can assume the deployment role and access the ECR repository. If validation succeeds, your account is marked as **Active**.
{% endstep %}
{% endstepper %}

## What Gets Created in Your AWS Account

The CloudFormation stack provisions the following resources:

| Resource                     | Purpose                                                                                                 |
| ---------------------------- | ------------------------------------------------------------------------------------------------------- |
| **ECR Repository**           | Container image registry for your MCP server images, with a lifecycle policy to manage image retention  |
| **AgentCore Execution Role** | IAM role used at runtime when MCP servers execute                                                       |
| **Deployment Role**          | IAM role that allows DarcyIQ to build and push container images, and manage deployments in your account |
| **Gateway Lambda Role**      | IAM role used to invoke MCP servers on your behalf                                                      |

All roles follow the principle of least privilege, with separate permissions for deployment and runtime invocation.

## Deploying MCPs to Your Account

Once your AWS account is configured and active, the deployment process is seamless:

1. Build or edit your MCP in **MCP Studio** as usual
2. Click **Deploy** on the Deploy tab
3. DarcyIQ automatically builds the container image, pushes it to your ECR repository, and deploys the MCP server in your AWS account
4. The integration goes live and is available in Chat, Workflows, and other features

No additional steps are required — the system routes deployments to your account automatically.

## Managing Your Configuration

### Checking Status

Your AWS configuration shows one of these statuses:

| Status            | Meaning                                                              |
| ----------------- | -------------------------------------------------------------------- |
| **Pending Setup** | CloudFormation stack deployed, but outputs not yet submitted         |
| **Validating**    | DarcyIQ is validating the connection to your AWS account             |
| **Active**        | Configuration is complete and deployments will route to your account |
| **Error**         | Something went wrong — check the error message for details           |

### Validating the Connection

Click **Refresh Status** at any time to re-validate the connection to your AWS account. DarcyIQ confirms it can still assume the deployment role and access your ECR repository.

### Removing the Configuration

To disconnect your AWS account:

1. Click **Remove Configuration** in the AWS Account Configuration section
2. Confirm the deletion

{% hint style="warning" %}
**Important**: After removing the configuration from DarcyIQ, you must manually delete the CloudFormation stack in your AWS account to clean up the provisioned resources. DarcyIQ provides the stack name and a direct link to the AWS Console for convenience.
{% endhint %}

After disconnecting, any MCP servers that were deployed to your account will need to be redeployed to DarcyIQ's managed infrastructure.

## Security

| Security Feature                | Description                                                                                        |
| ------------------------------- | -------------------------------------------------------------------------------------------------- |
| **Least-Privilege Roles**       | Each IAM role has only the permissions it needs — deployment and invocation are separated          |
| **Secure Cross-Account Access** | DarcyIQ uses secure cross-account role assumption with protections against confused deputy attacks |
| **Your Resources**              | All container images and runtime resources stay in your AWS account                                |
| **Encryption**                  | ECR repositories support optional KMS encryption                                                   |

## Troubleshooting

### CloudFormation Stack Failed

If the stack creation fails in AWS:

1. Check the **Events** tab in CloudFormation for the specific error
2. Common issues: insufficient IAM permissions, service limits reached
3. Delete the failed stack and try again after resolving the issue

### Validation Failed

If DarcyIQ cannot validate the connection:

1. Verify all output values were copied correctly (no extra spaces or missing characters)
2. Ensure the CloudFormation stack completed successfully (status: CREATE\_COMPLETE)
3. Confirm the IAM roles have not been modified outside of CloudFormation
4. Click **Refresh Status** to retry validation

### Deployment Errors After Setup

If deployments fail after configuration:

1. Click **Refresh Status** to re-validate the connection
2. Check that your ECR repository exists and is accessible
3. Verify the IAM roles have not been deleted or modified
4. Review the deployment logs in MCP Studio for specific error messages

## Next Steps

| Goal                          | Documentation                                                  |
| ----------------------------- | -------------------------------------------------------------- |
| Deploy your first MCP         | [Deploying & Managing](/build/mcp-studio/deploying-mcps)       |
| Build a custom MCP            | [Building Custom MCPs](/build/mcp-studio/building-custom-mcps) |
| Browse pre-built integrations | [MCP Catalog](/build/mcp-studio/mcp-catalog)                   |


# Code Samples

Explore comprehensive code examples for building MCP integrations. These samples cover common integration patterns and can be used as starting points for your own custom integrations.

{% hint style="info" %}
**Copy and Customize**: These samples are designed to be copied into MCP Studio and customized for your specific needs. Replace placeholder values with your actual credentials and endpoints.
{% endhint %}

## Sample Overview

| Sample                                      | Category      | Description                              |
| ------------------------------------------- | ------------- | ---------------------------------------- |
| [CRM Integration](#crm-integration)         | Sales         | Connect to CRM systems for customer data |
| [Database Query](#database-query)           | Data          | Query SQL databases securely             |
| [REST API Wrapper](#rest-api-wrapper)       | Integration   | Connect to any REST API                  |
| [Slack Notifications](#slack-notifications) | Communication | Send messages to Slack channels          |
| [File Processing](#file-processing)         | Documents     | Parse and transform files                |
| [Web Scraping](#web-scraping)               | Research      | Extract data from websites               |

***

## CRM Integration

A complete CRM integration example that demonstrates fetching contacts, searching records, and creating new entries.

### Use Cases

* Retrieve customer information during conversations
* Look up account details and history
* Create new leads or contacts from chat
* Update CRM records based on meeting outcomes

### Python Code

```python
from mcp.server import Server
from mcp.types import TextContent
import httpx
import os
import json

# Create the server
app = Server("crm-integration")

# Configuration from environment
CRM_BASE_URL = os.environ.get("CRM_BASE_URL", "https://api.yourcrm.com/v1")
CRM_API_KEY = os.environ.get("CRM_API_KEY")


async def make_crm_request(method: str, endpoint: str, data: dict = None) -> dict:
    """Helper function to make authenticated CRM API requests."""
    headers = {
        "Authorization": f"Bearer {CRM_API_KEY}",
        "Content-Type": "application/json"
    }
    
    async with httpx.AsyncClient() as client:
        response = await client.request(
            method=method,
            url=f"{CRM_BASE_URL}{endpoint}",
            headers=headers,
            json=data,
            timeout=30.0
        )
        response.raise_for_status()
        return response.json()


@app.tool()
async def get_contact(contact_id: str) -> list[TextContent]:
    """
    Retrieve a contact by their unique ID.
    
    Args:
        contact_id: The unique identifier for the contact
    
    Returns:
        Contact details including name, email, phone, and company
    """
    try:
        contact = await make_crm_request("GET", f"/contacts/{contact_id}")
        
        result = f"""
**Contact: {contact.get('name', 'Unknown')}**
- Email: {contact.get('email', 'N/A')}
- Phone: {contact.get('phone', 'N/A')}
- Company: {contact.get('company', 'N/A')}
- Title: {contact.get('title', 'N/A')}
- Last Contact: {contact.get('last_contact_date', 'Never')}
- Status: {contact.get('status', 'Unknown')}
"""
        return [TextContent(type="text", text=result)]
    
    except httpx.HTTPStatusError as e:
        if e.response.status_code == 404:
            return [TextContent(type="text", text=f"Contact not found: {contact_id}")]
        return [TextContent(type="text", text=f"Error retrieving contact: {str(e)}")]
    except Exception as e:
        return [TextContent(type="text", text=f"Error: {str(e)}")]


@app.tool()
async def search_contacts(
    query: str,
    field: str = "name",
    limit: int = 10
) -> list[TextContent]:
    """
    Search for contacts in the CRM.
    
    Args:
        query: The search term
        field: Field to search (name, email, company). Default: name
        limit: Maximum number of results. Default: 10
    
    Returns:
        List of matching contacts with basic details
    """
    try:
        params = {"q": query, "field": field, "limit": min(limit, 50)}
        results = await make_crm_request("GET", f"/contacts/search?{httpx.QueryParams(params)}")
        
        if not results.get("contacts"):
            return [TextContent(type="text", text=f"No contacts found matching '{query}'")]
        
        output = f"**Found {len(results['contacts'])} contacts:**\n\n"
        for contact in results["contacts"]:
            output += f"- **{contact['name']}** ({contact.get('email', 'No email')})\n"
            output += f"  Company: {contact.get('company', 'N/A')} | ID: {contact['id']}\n\n"
        
        return [TextContent(type="text", text=output)]
    
    except Exception as e:
        return [TextContent(type="text", text=f"Search error: {str(e)}")]


@app.tool()
async def create_contact(
    name: str,
    email: str,
    company: str = None,
    phone: str = None,
    title: str = None,
    notes: str = None
) -> list[TextContent]:
    """
    Create a new contact in the CRM.
    
    Args:
        name: Contact's full name (required)
        email: Contact's email address (required)
        company: Company name
        phone: Phone number
        title: Job title
        notes: Additional notes about the contact
    
    Returns:
        Confirmation with the new contact's ID
    """
    try:
        contact_data = {
            "name": name,
            "email": email,
            "company": company,
            "phone": phone,
            "title": title,
            "notes": notes,
            "source": "DarcyIQ MCP Integration"
        }
        # Remove None values
        contact_data = {k: v for k, v in contact_data.items() if v is not None}
        
        result = await make_crm_request("POST", "/contacts", contact_data)
        
        return [TextContent(
            type="text",
            text=f"✓ Contact created successfully!\n\nID: {result['id']}\nName: {name}\nEmail: {email}"
        )]
    
    except httpx.HTTPStatusError as e:
        if e.response.status_code == 409:
            return [TextContent(type="text", text=f"A contact with email {email} already exists")]
        return [TextContent(type="text", text=f"Error creating contact: {str(e)}")]
    except Exception as e:
        return [TextContent(type="text", text=f"Error: {str(e)}")]


@app.tool()
async def get_recent_activities(
    contact_id: str,
    limit: int = 5
) -> list[TextContent]:
    """
    Get recent activities for a contact.
    
    Args:
        contact_id: The contact's unique ID
        limit: Number of activities to retrieve. Default: 5
    
    Returns:
        List of recent activities (calls, emails, meetings)
    """
    try:
        activities = await make_crm_request(
            "GET", 
            f"/contacts/{contact_id}/activities?limit={limit}"
        )
        
        if not activities.get("items"):
            return [TextContent(type="text", text="No recent activities found for this contact")]
        
        output = f"**Recent Activities ({len(activities['items'])} items):**\n\n"
        for activity in activities["items"]:
            output += f"- **{activity['type']}** on {activity['date']}\n"
            output += f"  {activity.get('description', 'No description')}\n\n"
        
        return [TextContent(type="text", text=output)]
    
    except Exception as e:
        return [TextContent(type="text", text=f"Error: {str(e)}")]


if __name__ == "__main__":
    app.run()
```

### Required Secrets

| Secret         | Description                |
| -------------- | -------------------------- |
| `CRM_BASE_URL` | Base URL for your CRM API  |
| `CRM_API_KEY`  | API key for authentication |

***

## Database Query

A secure database query integration that allows read-only access to your PostgreSQL or MySQL database.

### Use Cases

* Query customer data during conversations
* Generate reports on demand
* Look up product information
* Analyze historical data

### Python Code

```python
from mcp.server import Server
from mcp.types import TextContent
import asyncpg
import os
import json

app = Server("database-query")

DATABASE_URL = os.environ.get("DATABASE_URL")
MAX_ROWS = 100  # Safety limit


async def get_connection():
    """Create a database connection."""
    return await asyncpg.connect(DATABASE_URL)


def is_safe_query(sql: str) -> tuple[bool, str]:
    """Validate that the query is read-only."""
    sql_upper = sql.strip().upper()
    
    # Only allow SELECT statements
    if not sql_upper.startswith("SELECT"):
        return False, "Only SELECT queries are allowed"
    
    # Block dangerous keywords
    dangerous = ["INSERT", "UPDATE", "DELETE", "DROP", "ALTER", "CREATE", "TRUNCATE", "EXEC"]
    for keyword in dangerous:
        if keyword in sql_upper:
            return False, f"Query contains forbidden keyword: {keyword}"
    
    return True, "OK"


@app.tool()
async def query_database(sql: str) -> list[TextContent]:
    """
    Execute a read-only SQL query against the database.
    
    Args:
        sql: A SELECT query to execute. Only read operations are allowed.
    
    Returns:
        Query results as a formatted table
    """
    # Validate query safety
    is_safe, message = is_safe_query(sql)
    if not is_safe:
        return [TextContent(type="text", text=f"Query rejected: {message}")]
    
    try:
        conn = await get_connection()
        try:
            # Add LIMIT if not present
            if "LIMIT" not in sql.upper():
                sql = f"{sql.rstrip(';')} LIMIT {MAX_ROWS}"
            
            rows = await conn.fetch(sql)
            
            if not rows:
                return [TextContent(type="text", text="Query returned no results")]
            
            # Format as table
            columns = list(rows[0].keys())
            output = "| " + " | ".join(columns) + " |\n"
            output += "| " + " | ".join(["---"] * len(columns)) + " |\n"
            
            for row in rows:
                values = [str(row[col]) if row[col] is not None else "NULL" for col in columns]
                output += "| " + " | ".join(values) + " |\n"
            
            output += f"\n*{len(rows)} row(s) returned*"
            
            return [TextContent(type="text", text=output)]
        
        finally:
            await conn.close()
    
    except asyncpg.PostgresError as e:
        return [TextContent(type="text", text=f"Database error: {str(e)}")]
    except Exception as e:
        return [TextContent(type="text", text=f"Error: {str(e)}")]


@app.tool()
async def list_tables() -> list[TextContent]:
    """
    List all available tables in the database.
    
    Returns:
        List of table names with row counts
    """
    try:
        conn = await get_connection()
        try:
            query = """
                SELECT table_name, 
                       pg_stat_user_tables.n_live_tup as row_count
                FROM information_schema.tables
                LEFT JOIN pg_stat_user_tables 
                    ON table_name = relname
                WHERE table_schema = 'public'
                ORDER BY table_name
            """
            rows = await conn.fetch(query)
            
            output = "**Available Tables:**\n\n"
            output += "| Table | Approximate Rows |\n"
            output += "| --- | --- |\n"
            
            for row in rows:
                output += f"| {row['table_name']} | {row['row_count'] or 'Unknown'} |\n"
            
            return [TextContent(type="text", text=output)]
        
        finally:
            await conn.close()
    
    except Exception as e:
        return [TextContent(type="text", text=f"Error: {str(e)}")]


@app.tool()
async def describe_table(table_name: str) -> list[TextContent]:
    """
    Get the schema/structure of a specific table.
    
    Args:
        table_name: Name of the table to describe
    
    Returns:
        Column names, types, and constraints
    """
    # Sanitize table name
    if not table_name.replace("_", "").isalnum():
        return [TextContent(type="text", text="Invalid table name")]
    
    try:
        conn = await get_connection()
        try:
            query = """
                SELECT column_name, data_type, is_nullable, column_default
                FROM information_schema.columns
                WHERE table_name = $1 AND table_schema = 'public'
                ORDER BY ordinal_position
            """
            rows = await conn.fetch(query, table_name)
            
            if not rows:
                return [TextContent(type="text", text=f"Table '{table_name}' not found")]
            
            output = f"**Table: {table_name}**\n\n"
            output += "| Column | Type | Nullable | Default |\n"
            output += "| --- | --- | --- | --- |\n"
            
            for row in rows:
                output += f"| {row['column_name']} | {row['data_type']} | "
                output += f"{row['is_nullable']} | {row['column_default'] or 'None'} |\n"
            
            return [TextContent(type="text", text=output)]
        
        finally:
            await conn.close()
    
    except Exception as e:
        return [TextContent(type="text", text=f"Error: {str(e)}")]


if __name__ == "__main__":
    app.run()
```

### Required Secrets

| Secret         | Description                  | Example                                   |
| -------------- | ---------------------------- | ----------------------------------------- |
| `DATABASE_URL` | PostgreSQL connection string | `postgresql://user:pass@host:5432/dbname` |

{% hint style="warning" %}
**Security Note**: This integration enforces read-only access, but you should also use a database user with read-only permissions for defense in depth.
{% endhint %}

***

## REST API Wrapper

A flexible REST API wrapper that can connect to any HTTP API.

### Use Cases

* Connect to internal APIs
* Integrate third-party services
* Access webhooks and endpoints
* Retrieve data from any HTTP source

### Python Code

````python
from mcp.server import Server
from mcp.types import TextContent
import httpx
import os
import json
from typing import Optional

app = Server("rest-api-wrapper")

API_BASE_URL = os.environ.get("API_BASE_URL")
API_KEY = os.environ.get("API_KEY")
AUTH_TYPE = os.environ.get("AUTH_TYPE", "bearer")  # bearer, api-key, basic


def get_auth_headers() -> dict:
    """Build authentication headers based on configured auth type."""
    if AUTH_TYPE == "bearer":
        return {"Authorization": f"Bearer {API_KEY}"}
    elif AUTH_TYPE == "api-key":
        return {"X-API-Key": API_KEY}
    elif AUTH_TYPE == "basic":
        import base64
        # API_KEY should be in format "username:password"
        encoded = base64.b64encode(API_KEY.encode()).decode()
        return {"Authorization": f"Basic {encoded}"}
    return {}


@app.tool()
async def api_get(
    endpoint: str,
    params: Optional[str] = None
) -> list[TextContent]:
    """
    Make a GET request to the API.
    
    Args:
        endpoint: API endpoint path (e.g., /users/123)
        params: Optional query parameters as JSON string (e.g., {"page": 1})
    
    Returns:
        API response data
    """
    try:
        headers = get_auth_headers()
        headers["Content-Type"] = "application/json"
        
        query_params = json.loads(params) if params else None
        
        async with httpx.AsyncClient() as client:
            response = await client.get(
                f"{API_BASE_URL}{endpoint}",
                headers=headers,
                params=query_params,
                timeout=30.0
            )
            
            # Format response
            status = f"Status: {response.status_code}"
            
            try:
                data = response.json()
                body = json.dumps(data, indent=2)
            except:
                body = response.text
            
            return [TextContent(type="text", text=f"{status}\n\n```json\n{body}\n```")]
    
    except httpx.TimeoutException:
        return [TextContent(type="text", text="Error: Request timed out")]
    except Exception as e:
        return [TextContent(type="text", text=f"Error: {str(e)}")]


@app.tool()
async def api_post(
    endpoint: str,
    body: str
) -> list[TextContent]:
    """
    Make a POST request to the API.
    
    Args:
        endpoint: API endpoint path
        body: Request body as JSON string
    
    Returns:
        API response data
    """
    try:
        headers = get_auth_headers()
        headers["Content-Type"] = "application/json"
        
        data = json.loads(body)
        
        async with httpx.AsyncClient() as client:
            response = await client.post(
                f"{API_BASE_URL}{endpoint}",
                headers=headers,
                json=data,
                timeout=30.0
            )
            
            status = f"Status: {response.status_code}"
            
            try:
                result = response.json()
                result_body = json.dumps(result, indent=2)
            except:
                result_body = response.text
            
            return [TextContent(type="text", text=f"{status}\n\n```json\n{result_body}\n```")]
    
    except json.JSONDecodeError:
        return [TextContent(type="text", text="Error: Invalid JSON in request body")]
    except Exception as e:
        return [TextContent(type="text", text=f"Error: {str(e)}")]


@app.tool()
async def api_put(
    endpoint: str,
    body: str
) -> list[TextContent]:
    """
    Make a PUT request to the API.
    
    Args:
        endpoint: API endpoint path
        body: Request body as JSON string
    
    Returns:
        API response data
    """
    try:
        headers = get_auth_headers()
        headers["Content-Type"] = "application/json"
        
        data = json.loads(body)
        
        async with httpx.AsyncClient() as client:
            response = await client.put(
                f"{API_BASE_URL}{endpoint}",
                headers=headers,
                json=data,
                timeout=30.0
            )
            
            status = f"Status: {response.status_code}"
            
            try:
                result = response.json()
                result_body = json.dumps(result, indent=2)
            except:
                result_body = response.text
            
            return [TextContent(type="text", text=f"{status}\n\n```json\n{result_body}\n```")]
    
    except json.JSONDecodeError:
        return [TextContent(type="text", text="Error: Invalid JSON in request body")]
    except Exception as e:
        return [TextContent(type="text", text=f"Error: {str(e)}")]


@app.tool()
async def api_delete(endpoint: str) -> list[TextContent]:
    """
    Make a DELETE request to the API.
    
    Args:
        endpoint: API endpoint path
    
    Returns:
        API response confirmation
    """
    try:
        headers = get_auth_headers()
        
        async with httpx.AsyncClient() as client:
            response = await client.delete(
                f"{API_BASE_URL}{endpoint}",
                headers=headers,
                timeout=30.0
            )
            
            return [TextContent(
                type="text",
                text=f"Status: {response.status_code}\n\n{response.text or 'Success'}"
            )]
    
    except Exception as e:
        return [TextContent(type="text", text=f"Error: {str(e)}")]


if __name__ == "__main__":
    app.run()
````

### Required Secrets

| Secret         | Description               | Example                         |
| -------------- | ------------------------- | ------------------------------- |
| `API_BASE_URL` | Base URL for the API      | `https://api.example.com/v1`    |
| `API_KEY`      | Authentication credential | `sk_live_xxx...`                |
| `AUTH_TYPE`    | Authentication type       | `bearer`, `api-key`, or `basic` |

***

## Slack Notifications

Send messages and notifications to Slack channels.

### Use Cases

* Alert teams about important events
* Share meeting summaries
* Post workflow results
* Send reminders and notifications

### Python Code

```python
from mcp.server import Server
from mcp.types import TextContent
import httpx
import os
import json

app = Server("slack-notifications")

SLACK_BOT_TOKEN = os.environ.get("SLACK_BOT_TOKEN")
SLACK_API_URL = "https://slack.com/api"


async def slack_request(method: str, data: dict) -> dict:
    """Make a request to the Slack API."""
    headers = {
        "Authorization": f"Bearer {SLACK_BOT_TOKEN}",
        "Content-Type": "application/json"
    }
    
    async with httpx.AsyncClient() as client:
        response = await client.post(
            f"{SLACK_API_URL}/{method}",
            headers=headers,
            json=data,
            timeout=30.0
        )
        return response.json()


@app.tool()
async def send_message(
    channel: str,
    message: str,
    thread_ts: str = None
) -> list[TextContent]:
    """
    Send a message to a Slack channel.
    
    Args:
        channel: Channel name (e.g., #general) or channel ID
        message: The message text to send (supports Slack markdown)
        thread_ts: Optional thread timestamp to reply in a thread
    
    Returns:
        Confirmation of message sent
    """
    try:
        # Remove # if present
        channel = channel.lstrip("#")
        
        data = {
            "channel": channel,
            "text": message,
            "mrkdwn": True
        }
        
        if thread_ts:
            data["thread_ts"] = thread_ts
        
        result = await slack_request("chat.postMessage", data)
        
        if result.get("ok"):
            return [TextContent(
                type="text",
                text=f"✓ Message sent to #{channel}\nTimestamp: {result.get('ts')}"
            )]
        else:
            return [TextContent(
                type="text",
                text=f"Failed to send message: {result.get('error')}"
            )]
    
    except Exception as e:
        return [TextContent(type="text", text=f"Error: {str(e)}")]


@app.tool()
async def send_rich_message(
    channel: str,
    title: str,
    message: str,
    color: str = "good",
    fields: str = None
) -> list[TextContent]:
    """
    Send a rich formatted message with attachments.
    
    Args:
        channel: Channel name or ID
        title: Bold title for the message
        message: Main message text
        color: Attachment color (good=green, warning=yellow, danger=red, or hex)
        fields: Optional JSON array of fields [{"title": "...", "value": "...", "short": true}]
    
    Returns:
        Confirmation of message sent
    """
    try:
        channel = channel.lstrip("#")
        
        attachment = {
            "color": color,
            "title": title,
            "text": message,
            "mrkdwn_in": ["text", "fields"]
        }
        
        if fields:
            attachment["fields"] = json.loads(fields)
        
        data = {
            "channel": channel,
            "attachments": [attachment]
        }
        
        result = await slack_request("chat.postMessage", data)
        
        if result.get("ok"):
            return [TextContent(type="text", text=f"✓ Rich message sent to #{channel}")]
        else:
            return [TextContent(type="text", text=f"Failed: {result.get('error')}")]
    
    except json.JSONDecodeError:
        return [TextContent(type="text", text="Error: Invalid JSON in fields parameter")]
    except Exception as e:
        return [TextContent(type="text", text=f"Error: {str(e)}")]


@app.tool()
async def list_channels() -> list[TextContent]:
    """
    List all public channels the bot has access to.
    
    Returns:
        List of channel names and IDs
    """
    try:
        data = {"types": "public_channel", "limit": 100}
        result = await slack_request("conversations.list", data)
        
        if not result.get("ok"):
            return [TextContent(type="text", text=f"Error: {result.get('error')}")]
        
        channels = result.get("channels", [])
        
        if not channels:
            return [TextContent(type="text", text="No accessible channels found")]
        
        output = "**Available Channels:**\n\n"
        for ch in channels:
            output += f"- #{ch['name']} (ID: {ch['id']})\n"
        
        return [TextContent(type="text", text=output)]
    
    except Exception as e:
        return [TextContent(type="text", text=f"Error: {str(e)}")]


@app.tool()
async def get_channel_history(
    channel: str,
    limit: int = 10
) -> list[TextContent]:
    """
    Get recent messages from a channel.
    
    Args:
        channel: Channel name or ID
        limit: Number of messages to retrieve (max 100)
    
    Returns:
        Recent messages from the channel
    """
    try:
        channel = channel.lstrip("#")
        
        # First, get channel ID if name was provided
        if not channel.startswith("C"):
            channels_result = await slack_request(
                "conversations.list",
                {"types": "public_channel", "limit": 200}
            )
            channel_map = {c["name"]: c["id"] for c in channels_result.get("channels", [])}
            channel = channel_map.get(channel, channel)
        
        data = {"channel": channel, "limit": min(limit, 100)}
        result = await slack_request("conversations.history", data)
        
        if not result.get("ok"):
            return [TextContent(type="text", text=f"Error: {result.get('error')}")]
        
        messages = result.get("messages", [])
        
        if not messages:
            return [TextContent(type="text", text="No messages found")]
        
        output = f"**Recent Messages ({len(messages)}):**\n\n"
        for msg in reversed(messages):  # Oldest first
            user = msg.get("user", "Unknown")
            text = msg.get("text", "")[:200]  # Truncate long messages
            output += f"**{user}**: {text}\n\n"
        
        return [TextContent(type="text", text=output)]
    
    except Exception as e:
        return [TextContent(type="text", text=f"Error: {str(e)}")]


if __name__ == "__main__":
    app.run()
```

### Required Secrets

| Secret            | Description                                      |
| ----------------- | ------------------------------------------------ |
| `SLACK_BOT_TOKEN` | Slack Bot User OAuth Token (starts with `xoxb-`) |

{% hint style="info" %}
**Slack App Setup**: Create a Slack App at api.slack.com/apps, add the `chat:write`, `channels:read`, and `channels:history` scopes, and install to your workspace.
{% endhint %}

***

## Web Scraping

Extract data from web pages (use responsibly and respect robots.txt).

### Use Cases

* Research competitor websites
* Extract product information
* Gather public data
* Monitor web content

### Python Code

```python
from mcp.server import Server
from mcp.types import TextContent
import httpx
from bs4 import BeautifulSoup
import json
import re

app = Server("web-scraping")


async def fetch_page(url: str) -> tuple[str, int]:
    """Fetch a web page and return content and status code."""
    headers = {
        "User-Agent": "Mozilla/5.0 (compatible; DarcyIQ-MCP/1.0)"
    }
    
    async with httpx.AsyncClient(follow_redirects=True) as client:
        response = await client.get(url, headers=headers, timeout=30.0)
        return response.text, response.status_code


@app.tool()
async def get_page_text(url: str) -> list[TextContent]:
    """
    Extract the main text content from a web page.
    
    Args:
        url: The URL to fetch
    
    Returns:
        The text content of the page
    """
    try:
        html, status = await fetch_page(url)
        
        if status != 200:
            return [TextContent(type="text", text=f"Error: HTTP {status}")]
        
        soup = BeautifulSoup(html, "html.parser")
        
        # Remove script and style elements
        for element in soup(["script", "style", "nav", "footer", "header"]):
            element.decompose()
        
        # Get text
        text = soup.get_text(separator="\n", strip=True)
        
        # Clean up whitespace
        lines = [line.strip() for line in text.splitlines() if line.strip()]
        cleaned_text = "\n".join(lines)
        
        # Truncate if too long
        if len(cleaned_text) > 10000:
            cleaned_text = cleaned_text[:10000] + "\n\n*[Content truncated]*"
        
        return [TextContent(type="text", text=f"**Content from {url}:**\n\n{cleaned_text}")]
    
    except httpx.TimeoutException:
        return [TextContent(type="text", text="Error: Request timed out")]
    except Exception as e:
        return [TextContent(type="text", text=f"Error: {str(e)}")]


@app.tool()
async def get_page_links(url: str) -> list[TextContent]:
    """
    Extract all links from a web page.
    
    Args:
        url: The URL to analyze
    
    Returns:
        List of links found on the page
    """
    try:
        html, status = await fetch_page(url)
        
        if status != 200:
            return [TextContent(type="text", text=f"Error: HTTP {status}")]
        
        soup = BeautifulSoup(html, "html.parser")
        
        links = []
        for link in soup.find_all("a", href=True):
            href = link["href"]
            text = link.get_text(strip=True)[:50]  # Truncate link text
            
            # Make relative URLs absolute
            if href.startswith("/"):
                from urllib.parse import urljoin
                href = urljoin(url, href)
            
            if href.startswith("http"):
                links.append({"text": text or "[No text]", "url": href})
        
        # Remove duplicates
        seen = set()
        unique_links = []
        for link in links:
            if link["url"] not in seen:
                seen.add(link["url"])
                unique_links.append(link)
        
        output = f"**Found {len(unique_links)} links:**\n\n"
        for link in unique_links[:50]:  # Limit output
            output += f"- [{link['text']}]({link['url']})\n"
        
        if len(unique_links) > 50:
            output += f"\n*Showing 50 of {len(unique_links)} links*"
        
        return [TextContent(type="text", text=output)]
    
    except Exception as e:
        return [TextContent(type="text", text=f"Error: {str(e)}")]


@app.tool()
async def get_page_metadata(url: str) -> list[TextContent]:
    """
    Extract metadata (title, description, etc.) from a web page.
    
    Args:
        url: The URL to analyze
    
    Returns:
        Page metadata including title, description, and Open Graph data
    """
    try:
        html, status = await fetch_page(url)
        
        if status != 200:
            return [TextContent(type="text", text=f"Error: HTTP {status}")]
        
        soup = BeautifulSoup(html, "html.parser")
        
        metadata = {}
        
        # Title
        title_tag = soup.find("title")
        metadata["title"] = title_tag.string if title_tag else "Not found"
        
        # Meta description
        desc_tag = soup.find("meta", attrs={"name": "description"})
        metadata["description"] = desc_tag["content"] if desc_tag else "Not found"
        
        # Open Graph data
        og_tags = soup.find_all("meta", attrs={"property": re.compile(r"^og:")})
        for tag in og_tags:
            prop = tag.get("property", "").replace("og:", "og_")
            metadata[prop] = tag.get("content", "")
        
        # Twitter Card data
        twitter_tags = soup.find_all("meta", attrs={"name": re.compile(r"^twitter:")})
        for tag in twitter_tags:
            prop = tag.get("name", "").replace("twitter:", "twitter_")
            metadata[prop] = tag.get("content", "")
        
        output = f"**Metadata for {url}:**\n\n"
        output += "| Property | Value |\n"
        output += "| --- | --- |\n"
        
        for key, value in metadata.items():
            value_str = str(value)[:100]  # Truncate long values
            output += f"| {key} | {value_str} |\n"
        
        return [TextContent(type="text", text=output)]
    
    except Exception as e:
        return [TextContent(type="text", text=f"Error: {str(e)}")]


if __name__ == "__main__":
    app.run()
```

### Required Secrets

This integration does not require secrets, but you may want to add:

| Secret       | Description               | Optional |
| ------------ | ------------------------- | -------- |
| `USER_AGENT` | Custom User-Agent string  | Yes      |
| `PROXY_URL`  | Proxy server for requests | Yes      |

{% hint style="warning" %}
**Responsible Use**: Always respect website terms of service and robots.txt. Do not scrape sites that prohibit it, and implement appropriate rate limiting.
{% endhint %}

***

## Template Structure Reference

All MCP servers follow this basic structure:

### Python Template

```python
from mcp.server import Server
from mcp.types import TextContent
import os

# Create the server with a unique name
app = Server("my-integration-name")

# Read configuration from environment variables
API_KEY = os.environ.get("API_KEY")


@app.tool()
async def my_tool_name(
    required_param: str,
    optional_param: str = "default"
) -> list[TextContent]:
    """
    Clear description of what the tool does.
    
    Args:
        required_param: Description of this parameter
        optional_param: Description with default value
    
    Returns:
        What the tool returns
    """
    # Your implementation here
    result = f"Processed {required_param}"
    
    return [TextContent(type="text", text=result)]


# Entry point
if __name__ == "__main__":
    app.run()
```

### Key Elements

| Element               | Purpose                                 |
| --------------------- | --------------------------------------- |
| `Server()`            | Creates the MCP server instance         |
| `@app.tool()`         | Decorator to register a tool            |
| `async def`           | Tools should be async for performance   |
| Docstring             | Describes the tool for the AI           |
| `TextContent`         | Standard return type for text responses |
| Environment variables | Secure way to access secrets            |

## Next Steps

| Goal                    | Documentation                                                  |
| ----------------------- | -------------------------------------------------------------- |
| Start building          | [Building Custom MCPs](/build/mcp-studio/building-custom-mcps) |
| Deploy your integration | [Deploying & Managing](/build/mcp-studio/deploying-mcps)       |
| Troubleshoot issues     | [Troubleshooting](/build/mcp-studio/troubleshooting)           |


# Troubleshooting

Find solutions to common MCP Studio issues and answers to frequently asked questions.

{% hint style="info" %}
**Need More Help?** If you can't find the answer here, contact DarcyIQ support through the help menu in the application.
{% endhint %}

## Common Issues

### Deployment Issues

#### Deployment Fails During Validation

**Symptoms:**

* Deployment stops at "Validating" status
* Error message about code validation

**Causes & Solutions:**

| Cause                   | Solution                                                    |
| ----------------------- | ----------------------------------------------------------- |
| Syntax errors in code   | Fix errors highlighted in the Build tab editor              |
| Missing imports         | Add required import statements                              |
| No tools defined        | Ensure at least one `@app.tool()` decorated function exists |
| Invalid tool signatures | Check function parameters and return types                  |

**Example Fix:**

```python
# Before (Error: Invalid return type)
@app.tool()
async def my_tool(param: str):
    return "Hello"

# After (Correct)
@app.tool()
async def my_tool(param: str) -> list[TextContent]:
    return [TextContent(type="text", text="Hello")]
```

***

#### Deployment Fails During Build

**Symptoms:**

* Deployment stops at "Building" status
* Error message about dependencies or container build

**Causes & Solutions:**

| Cause                      | Solution                                                 |
| -------------------------- | -------------------------------------------------------- |
| Invalid dependency version | Use valid package versions (e.g., `requests>=2.28.0`)    |
| Package doesn't exist      | Verify package name on PyPI or npm                       |
| Conflicting dependencies   | Check for version conflicts between packages             |
| Missing runtime detection  | Ensure code structure matches Python or Node.js patterns |

**Specifying Dependencies (Python):**

```python
# requirements:
# requests>=2.28.0
# httpx>=0.24.0
# pandas>=2.0.0

from mcp.server import Server
# ... rest of code
```

***

#### Deployment Fails During Deploy

**Symptoms:**

* Deployment stops at "Deploying" status
* Timeout or infrastructure errors

**Causes & Solutions:**

| Cause                          | Solution                               |
| ------------------------------ | -------------------------------------- |
| Temporary infrastructure issue | Wait a few minutes and retry           |
| Resource limits exceeded       | Simplify your code or contact support  |
| Network timeout                | Check for extremely large dependencies |

{% hint style="info" %}
**Retry**: Most "Deploying" failures are temporary. Click Deploy again after a few minutes.
{% endhint %}

***

#### Missing Required Secrets

**Symptoms:**

* Deployment fails with "Missing required secrets" error
* Error lists specific environment variable names

**Solution:**

1. Navigate to the **Build** tab
2. Scroll to the **Secrets** section
3. Fill in values for all fields marked as "Required"
4. Retry deployment

***

### Connection Issues

#### Integration Not Appearing in Chat

**Symptoms:**

* Deployed integration not available as a tool in Chat
* AI doesn't recognize the integration

**Causes & Solutions:**

| Cause                   | Solution                                        |
| ----------------------- | ----------------------------------------------- |
| Integration not enabled | Go to Connect tab and toggle "Enable for Darcy" |
| Deployment not complete | Verify status shows "Deployed"                  |
| Cache delay             | Wait 1-2 minutes or refresh the page            |
| Permission issues       | Ensure you have access to the integration       |

***

#### API Key Authentication Errors

**Symptoms:**

* External connections return 401 or 403 errors
* "Unauthorized" or "Forbidden" messages

**Causes & Solutions:**

| Cause                      | Solution                                    |
| -------------------------- | ------------------------------------------- |
| Incorrect API key          | Copy the key again from the Connect tab     |
| Key not included in header | Use `Authorization: Bearer YOUR_KEY` header |
| Key expired or revoked     | Check if deployment was modified            |

**Correct Authentication Example:**

```python
import httpx

headers = {
    "Authorization": "Bearer mcp_key_xxxxx",  # Include "Bearer " prefix
    "Content-Type": "application/json"
}

response = await client.post(endpoint, headers=headers, json=data)
```

***

#### Connection Timeout Errors

**Symptoms:**

* Requests to external APIs time out
* "Connection timed out" errors in logs

**Causes & Solutions:**

| Cause                | Solution                               |
| -------------------- | -------------------------------------- |
| External API is slow | Increase timeout in your code          |
| Network restrictions | Verify the external API is accessible  |
| Firewall blocking    | Contact support for allowlist requests |

**Increasing Timeout:**

```python
async with httpx.AsyncClient(timeout=60.0) as client:  # 60 second timeout
    response = await client.get(url)
```

***

### Code Issues

#### Python Import Errors

**Symptoms:**

* Validation fails with import errors
* "Module not found" messages

**Causes & Solutions:**

| Cause                       | Solution                                             |
| --------------------------- | ---------------------------------------------------- |
| Package not in requirements | Add package to requirements comment block            |
| Typo in import              | Check package name spelling                          |
| Wrong package name          | Verify correct import name (e.g., `PIL` vs `Pillow`) |

**Common Package Import Names:**

| Package           | Import Name                     |
| ----------------- | ------------------------------- |
| `Pillow`          | `from PIL import Image`         |
| `beautifulsoup4`  | `from bs4 import BeautifulSoup` |
| `python-dateutil` | `from dateutil import parser`   |
| `PyYAML`          | `import yaml`                   |

***

#### Node.js Module Errors

**Symptoms:**

* Build fails with module resolution errors
* "Cannot find module" messages

**Causes & Solutions:**

| Cause                    | Solution                           |
| ------------------------ | ---------------------------------- |
| ESM vs CommonJS mismatch | Use consistent import style        |
| Missing package.json     | Add package.json comment block     |
| Package not available    | Check npm for correct package name |

**ESM Import Style (Recommended):**

```javascript
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import axios from "axios";
```

***

#### Runtime Not Detected

**Symptoms:**

* Editor shows "Unknown runtime"
* Deployment fails with runtime error

**Causes & Solutions:**

| Cause                        | Solution                               |
| ---------------------------- | -------------------------------------- |
| No clear language indicators | Add standard imports for your language |
| Mixed language code          | Use only one language per MCP          |
| Empty file                   | Add minimum required code structure    |

**Minimum Python Structure:**

```python
from mcp.server import Server
from mcp.types import TextContent

app = Server("my-server")

@app.tool()
async def hello() -> list[TextContent]:
    return [TextContent(type="text", text="Hello")]

if __name__ == "__main__":
    app.run()
```

***

### Tool Execution Issues

#### Tool Returns Errors

**Symptoms:**

* Tool invocation fails with exceptions
* Error messages in Chat or logs

**Debugging Steps:**

1. **Check Logs**: Go to Monitor tab and review recent logs
2. **Test Locally**: Use the Test panel in the Build tab
3. **Review Code**: Look for unhandled exceptions

**Adding Error Handling:**

```python
@app.tool()
async def safe_tool(param: str) -> list[TextContent]:
    try:
        result = await some_operation(param)
        return [TextContent(type="text", text=result)]
    except ValueError as e:
        return [TextContent(type="text", text=f"Invalid input: {str(e)}")]
    except Exception as e:
        return [TextContent(type="text", text=f"Error: {str(e)}")]
```

***

#### Tool Not Being Selected by AI

**Symptoms:**

* AI doesn't use your tool when it should
* Tool available but ignored in conversations

**Causes & Solutions:**

| Cause                  | Solution                               |
| ---------------------- | -------------------------------------- |
| Poor tool description  | Write clear, specific docstrings       |
| Ambiguous tool name    | Use descriptive, action-oriented names |
| Too many similar tools | Consolidate or differentiate tools     |

**Good Tool Documentation:**

```python
@app.tool()
async def search_customers_by_email(email: str) -> list[TextContent]:
    """
    Search for customers in the CRM using their email address.
    
    Use this tool when you need to find customer information and you have
    their email address. Returns customer details including name, company,
    and recent activity.
    
    Args:
        email: The customer's email address to search for
    
    Returns:
        Customer profile with contact information and history
    """
```

***

## Frequently Asked Questions

### General Questions

#### What programming languages does MCP Studio support?

MCP Studio supports two runtimes:

| Runtime     | Language              | Version |
| ----------- | --------------------- | ------- |
| **Python**  | Python                | 3.11+   |
| **Node.js** | JavaScript/TypeScript | 18+     |

***

#### How many MCPs can I deploy?

The number of deployable MCPs depends on your DarcyIQ plan. Contact your administrator or check your plan details for specific limits.

***

#### Can I share MCPs across organizations?

No, MCP integrations are scoped to a single organization. To use the same integration in multiple organizations, you would need to:

1. Export the code from one organization
2. Create a new MCP in the target organization
3. Import/paste the code

***

#### How do I update a deployed MCP?

To update a deployed integration:

1. Open the MCP in the builder
2. Make your changes in the Build tab
3. Test using the Test panel
4. Go to Deploy tab and click **Redeploy**

The new version will replace the current deployment. There may be a brief interruption (a few seconds) during the update.

***

#### What's the difference between Custom and Catalog MCPs?

| Aspect            | Custom MCPs        | Catalog MCPs              |
| ----------------- | ------------------ | ------------------------- |
| **Source**        | You write the code | Pre-built from Docker Hub |
| **Customization** | Full control       | Configuration only        |
| **Setup Time**    | 15-30 minutes      | 2-5 minutes               |
| **Code Required** | Yes                | No                        |
| **Validation**    | Required           | Skipped (pre-validated)   |

***

### Security Questions

#### How are secrets stored?

Secrets in MCP Studio are:

* Encrypted at rest using industry-standard encryption
* Never exposed in code or logs
* Stored separately from your integration code
* Accessible only during runtime execution
* Not visible to viewers (only owners and editors)

***

#### Can others see my integration code?

Code visibility depends on permission level:

| Permission | Can View Code | Can Edit Code |
| ---------- | ------------- | ------------- |
| **Owner**  | Yes           | Yes           |
| **Editor** | Yes           | Yes           |
| **Viewer** | Yes           | No            |

To completely hide your code, don't share the integration with Viewer permissions.

***

#### Are my API keys safe?

Yes. API keys and secrets are:

* Stored encrypted, separate from code
* Never logged or displayed after entry
* Injected as environment variables at runtime
* Not accessible via the API endpoint

{% hint style="warning" %}
**Best Practice**: Create dedicated API keys for DarcyIQ integrations with minimum required permissions. Rotate keys regularly.
{% endhint %}

***

### Technical Questions

#### Why does my integration timeout?

MCP tools have execution time limits. If your tool takes too long, it will timeout.

**Solutions:**

| Issue                 | Solution                                |
| --------------------- | --------------------------------------- |
| Slow external API     | Increase timeout, optimize queries      |
| Large data processing | Process data in chunks                  |
| Network latency       | Use connection pooling                  |
| Complex computations  | Simplify or offload to external service |

***

#### Can I use external packages?

Yes! You can use most Python (PyPI) and Node.js (npm) packages.

**Python**: Add dependencies to a comment block at the top of your file:

```python
# requirements:
# requests>=2.28.0
# pandas>=2.0.0
```

**Node.js**: Dependencies are auto-detected from imports, or specify in a comment:

```javascript
/* package.json:
{
  "dependencies": {
    "axios": "^1.4.0"
  }
}
*/
```

***

#### How do I debug my integration?

**Debugging Tools:**

| Method               | How To                                     |
| -------------------- | ------------------------------------------ |
| **Test Panel**       | Use Build tab test panel for quick testing |
| **Logs**             | View real-time logs in Monitor tab         |
| **Print Statements** | Add `print()` statements (appear in logs)  |
| **Try/Except**       | Wrap code in try/except to catch errors    |

**Example Debug Logging:**

```python
@app.tool()
async def my_tool(param: str) -> list[TextContent]:
    print(f"Tool called with param: {param}")  # Appears in logs
    
    try:
        result = await some_operation(param)
        print(f"Operation successful: {result}")
        return [TextContent(type="text", text=result)]
    except Exception as e:
        print(f"Error occurred: {str(e)}")  # Appears in logs
        return [TextContent(type="text", text=f"Error: {str(e)}")]
```

***

#### What happens if my integration crashes?

If an MCP tool crashes:

1. The error is logged (visible in Monitor tab)
2. An error message is returned to the user
3. The integration remains available for future calls
4. Other tools in the same MCP are unaffected

The integration does NOT need to be redeployed after a crash—it automatically recovers.

***

### Billing Questions

#### Does MCP Studio cost extra?

MCP Studio availability and limits depend on your DarcyIQ plan. Check with your administrator or account manager for plan-specific details.

***

#### Are there limits on tool invocations?

Tool invocation limits may apply depending on your plan. Monitor your usage in the DarcyIQ dashboard.

***

## Error Reference

### Validation Errors

| Error Code | Message             | Solution                                |
| ---------- | ------------------- | --------------------------------------- |
| `VAL001`   | No tools defined    | Add at least one `@app.tool()` function |
| `VAL002`   | Invalid return type | Return `list[TextContent]`              |
| `VAL003`   | Missing docstring   | Add docstring to tool function          |
| `VAL004`   | Syntax error        | Fix code syntax errors                  |
| `VAL005`   | Import error        | Add missing packages to requirements    |

### Deployment Errors

| Error Code | Message                 | Solution                           |
| ---------- | ----------------------- | ---------------------------------- |
| `DEP001`   | Build failed            | Check package versions and imports |
| `DEP002`   | Missing secrets         | Configure all required secrets     |
| `DEP003`   | Deployment timeout      | Retry after a few minutes          |
| `DEP004`   | Resource limit exceeded | Simplify code or contact support   |

### Runtime Errors

| Error Code | Message                | Solution                          |
| ---------- | ---------------------- | --------------------------------- |
| `RUN001`   | Tool execution failed  | Check logs for exception details  |
| `RUN002`   | Timeout exceeded       | Optimize tool or increase timeout |
| `RUN003`   | Authentication failed  | Verify secrets are correct        |
| `RUN004`   | External service error | Check external API status         |

***

## Getting More Help

If you can't resolve your issue:

1. **Check Logs**: Monitor tab shows detailed error information
2. **Review Documentation**: Other pages may have specific guidance
3. **Contact Support**: Use the help menu in DarcyIQ

| Resource                                                       | Best For                      |
| -------------------------------------------------------------- | ----------------------------- |
| [MCP Studio Overview](/build/mcp-studio)                       | General feature understanding |
| [Building Custom MCPs](/build/mcp-studio/building-custom-mcps) | Development guidance          |
| [Code Samples](/build/mcp-studio/mcp-studio-samples)           | Working examples              |
| [MCP Protocol Docs](https://modelcontextprotocol.io)           | Technical MCP specification   |


# Integrations

DarcyIQ offers powerful integration capabilities that enhance your workflow at both the organizational and individual user levels.

<figure><img src="/files/Dt4u9PSjXUS5cMCChvBD" alt=""><figcaption></figcaption></figure>

## Integration Types

### Organizational Integrations

Organizational integrations are configured at the company level and benefit all users within your organization.

| Integration     | Purpose                                          | Key Benefits                                                                                                       |
| --------------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ |
| **Salesforce**  | Link projects and work to Salesforce accounts    | <p>- Track work against customer accounts<br>- Maintain customer context<br>- Streamline reporting</p>             |
| **AWS ACE**     | Automate Partner Originated opportunity tracking | <p>- Automated PO detection<br>- Instant deal registration<br>- Streamlined AWS partnership management</p>         |
| **AWS Bedrock** | Use your organization's AWS Bedrock LLMs         | <p>- Control AI infrastructure costs<br>- Keep processing in your AWS account<br>- Customize model deployments</p> |

### User Integrations

User integrations are configured by individual users to customize their DarcyIQ experience.

| Integration                                                                          | Purpose                                | Key Benefits                                             |
| ------------------------------------------------------------------------------------ | -------------------------------------- | -------------------------------------------------------- |
| [**Model Context Protocol**](https://modelcontextprotocol.io/introduction) **(MCP)** | Bring your own AI-enabled integrations | - Custom integrations that are specific to your business |

## [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP)

MCP is available at both organizational and user levels, offering unique benefits for each:

### Organizational MCP

* Deploy custom MCPs across your organization
* Standardize integrations for all users
* Maintain organizational security policies

### User MCP

* Personal MCPs specific to you as a user, not shared with other users

## Tool Permissions

An MCP integration exposes a set of tools, and you can control each one individually. Open a connected integration's **Tool Permissions** tab to set every tool to **Enabled**, **Enabled + Requires Approval**, or **Disabled**.

Permissions are set on the integration itself, so they apply to everyone it's shared with. See [Tool Permissions](/build/integration-overview/tool-permissions) for the full details.

## Getting Started

1. **Access Integrations**
   * Navigate to User Configuration > Integrations
   * View available integration options
2. **Choose Integration Type**
   * Organizational: Contact your DarcyIQ administrator
   * User: Configure directly in your settings
3. **Configuration**
   * Follow integration-specific setup guides
   * Verify connections
   * Start using enhanced capabilities

For detailed setup instructions, see the specific integration guides:

* [Salesforce Integration](/build/integration-overview/enterprise/salesforce-integration)
* [AWS ACE Integration](/build/integration-overview/aws/aws-ace-integration)
* [AWS Bedrock Integration](/build/integration-overview/aws/aws-bedrock-integration)
* [AWS Bedrock Mantle](/build/integration-overview/aws/bedrock-mantle-integration)
* [Tool Permissions](/build/integration-overview/tool-permissions)
* [MCP Framework](/build/mcp-studio/mcp)


# Tool Permissions

Control which of an integration's tools Darcy can use, and which need your approval first

An MCP integration usually exposes a whole set of tools, and you rarely want Darcy to have equal freedom with all of them. Reading data is one thing; deleting a record or sending mail on your behalf is another. **Tool Permissions** lets you decide, tool by tool.

Open a connected integration and choose the **Tool Permissions** tab. Every tool the server reports is listed with its name, its description, and a three-way control.

## The Three Settings

| Setting                         | Icon           | What it means                              |
| ------------------------------- | -------------- | ------------------------------------------ |
| **Enabled**                     | Green check    | Darcy can use this tool freely             |
| **Enabled + Requires Approval** | Amber triangle | Darcy must ask you before each use in chat |
| **Disabled**                    | Red X          | Darcy can never use this tool              |

Every tool starts **Enabled**. Changes save the moment you make them — there's no save button.

**Disabled** is a hard stop, enforced in two places: the tool is never offered to the model in the first place, and it's refused if something tries to call it anyway. Darcy is told the tool was disabled by the integration's owner, so she reports the restriction rather than retrying.

{% hint style="warning" %}
**Requires Approval only applies where there's a human to ask.** It gates interactive chat, where Darcy can prompt you and wait. In scheduled automations, agent runs, and other background work there's nobody to answer, so approval-marked tools run normally.

If a tool must never run unattended, set it to **Disabled** rather than **Requires Approval**.
{% endhint %}

## Who These Apply To

Tool permissions belong to the integration, not to you. Whatever you set here applies to **everyone the integration is shared with** — there's no per-person variation.

| Your access | What you can do                                       |
| ----------- | ----------------------------------------------------- |
| **Owner**   | Change any tool's permission                          |
| **Write**   | Change any tool's permission                          |
| **Read**    | See the current setting as a label, but not change it |

{% hint style="info" %}
Granting someone Write access to an integration lets them change its tool permissions, including re-enabling something you disabled. If you want a restriction to hold, share with Read access instead.
{% endhint %}

## New Tools Are Enabled by Default

Only your explicit restrictions are stored. If the MCP server starts advertising a new tool later, it arrives **Enabled** rather than inheriting a restriction from a tool it has nothing to do with.

This keeps servers working as they evolve, but it does mean a server that adds a sensitive tool gets it enabled by default. If you're relying on tool permissions to contain what an integration can do, it's worth revisiting the tab after the server updates.

## Which Integrations Support This

Tool permissions apply to **MCP-backed integrations**, where the tool list is discovered from the server at connection time.

Built-in integrations such as Salesforce, Jira, Outlook, Google Workspace, SharePoint, and AWS ship a fixed set of tools. Their tab explains that those tools can't be configured individually.

You'll also see a message rather than a list when:

* **The integration isn't connected yet** — connect it and the tools appear
* **The server reported no tools** — test the connection, then try again

## Related

* [Integration Overview](/build/integration-overview) — connecting and sharing integrations
* [MCP Framework](/build/mcp-studio/mcp) — how MCP integrations work
* [Building Custom MCPs](/build/mcp-studio/building-custom-mcps) — the tools your own server exposes


# Meeting & Calendar Integrations

DarcyIQ integrates with Google, Microsoft, and Zoom to provide automatic meeting recording, transcription, and calendar synchronization. This page details the permissions and scopes required by each provider, which is useful for IT administrators and security reviewers evaluating DarcyIQ.

{% hint style="info" %}
**Read-Only by Design**: DarcyIQ requests the minimum permissions necessary. Calendar access is **read-only** — DarcyIQ never creates, modifies, or deletes calendar events.
{% endhint %}

## Overview

| Provider                              | Purpose                          | Access Type                          | Admin Consent Required   |
| ------------------------------------- | -------------------------------- | ------------------------------------ | ------------------------ |
| **Google (Gmail / Google Workspace)** | Calendar sync, user identity     | OAuth 2.0 (Delegated)                | No                       |
| **Microsoft (Outlook / Office 365)**  | Calendar sync, user identity     | OAuth 2.0 (Delegated)                | Organization-dependant   |
| **Zoom**                              | Meeting access, recording tokens | OAuth 2.0 (Server-to-Server or User) | Depends on scope variant |

***

## Google (Gmail / Google Workspace)

DarcyIQ uses Google OAuth 2.0 to authenticate users and read their calendar events for automatic meeting detection.

### Required Scopes

| Scope                           | Classification | Description                                   | Why DarcyIQ Needs It                                                                   |
| ------------------------------- | -------------- | --------------------------------------------- | -------------------------------------------------------------------------------------- |
| `auth/userinfo.email`           | Non-sensitive  | See your primary Google Account email address | Identify the user and match their DarcyIQ account                                      |
| `auth/calendar.events.readonly` | Sensitive      | View events on all your calendars             | Read upcoming meetings to detect Zoom, Teams, and Google Meet links for automatic join |

### Key Details

* **No restricted scopes** are requested — DarcyIQ does not access highly sensitive data categories
* The `calendar.events.readonly` scope is classified as **sensitive** by Google, meaning users see a consent screen explaining the access
* DarcyIQ **cannot** create, edit, or delete calendar events — access is strictly read-only
* Google Workspace admins can pre-approve the DarcyIQ application for their domain

### What DarcyIQ Reads from Your Calendar

| Data               | Used For                                                             |
| ------------------ | -------------------------------------------------------------------- |
| Event title        | Display in the meetings list and apply join rules                    |
| Start and end time | Schedule Darcy to join at the right time                             |
| Attendee list      | Apply filtering rules (internal vs external, host detection)         |
| Meeting links      | Detect Zoom, Teams, or Google Meet URLs to join the correct platform |
| Event status       | Determine if the meeting is confirmed, tentative, or cancelled       |

DarcyIQ does **not** read event descriptions, attachments, private notes, or other calendar metadata beyond what is listed above.

***

## Microsoft (Outlook / Office 365)

DarcyIQ uses Microsoft Graph API with delegated permissions to authenticate users and read their calendar.

### Configured Permissions

| Permission       | Type      | Description         | Admin Consent Required | Why DarcyIQ Needs It                                              |
| ---------------- | --------- | ------------------- | ---------------------- | ----------------------------------------------------------------- |
| `Calendars.Read` | Delegated | Read user calendars | No                     | Read upcoming meetings to detect meeting links for automatic join |

### Other Granted Permissions

These standard OAuth permissions are automatically included as part of the Microsoft sign-in flow:

| Permission       | Type      | Description                                         | Admin Consent Required | Why DarcyIQ Needs It                                                    |
| ---------------- | --------- | --------------------------------------------------- | ---------------------- | ----------------------------------------------------------------------- |
| `email`          | Delegated | View users' email address                           | No                     | Identify the user and match their DarcyIQ account                       |
| `offline_access` | Delegated | Maintain access to data you have given it access to | No                     | Keep the calendar connection active without requiring re-authentication |
| `openid`         | Delegated | Sign users in                                       | No                     | Standard OpenID Connect authentication                                  |

### Key Details

* All permissions are **delegated** (act on behalf of the signed-in user), not application-level
* **No admin consent** is required — users can connect their own calendars
* DarcyIQ **cannot** create, edit, or delete calendar events — `Calendars.Read` is read-only
* Azure AD / Entra ID admins can pre-approve the DarcyIQ application for their tenant or restrict access via conditional access policies
* DarcyIQ reads the same calendar data as described in the Google section above (event title, time, attendees, meeting links, status)

***

## Zoom

DarcyIQ integrates with Zoom to access meeting details and join meetings for recording and transcription. Zoom offers two scope variants depending on your account setup.

### User-Level Scopes

Used when individual users connect their Zoom account:

| Scope                                | Description                               | Why DarcyIQ Needs It                                        |
| ------------------------------------ | ----------------------------------------- | ----------------------------------------------------------- |
| `meeting:read:meeting`               | View a meeting                            | Read meeting details (topic, time, join URL)                |
| `meeting:read:local_recording_token` | View a meeting local recording join token | Obtain tokens to join meetings for recording                |
| `meeting:read:list_meetings`         | View a user's meetings                    | List upcoming meetings for automatic join scheduling        |
| `user:read:user`                     | View a user                               | Identify the connected user                                 |
| `user:read:zak`                      | View a user's Zoom Access Key             | Authenticate the bot to join meetings on behalf of the user |

### Admin-Level Scopes

Used when a Zoom account admin connects on behalf of the organization:

| Scope                                      | Description                               | Why DarcyIQ Needs It                                  |
| ------------------------------------------ | ----------------------------------------- | ----------------------------------------------------- |
| `meeting:read:meeting:admin`               | View a meeting                            | Read meeting details across the organization          |
| `meeting:read:local_recording_token:admin` | View a meeting local recording join token | Obtain tokens to join meetings for recording          |
| `meeting:read:list_meetings:admin`         | View a user's meetings                    | List meetings for users in the organization           |
| `user:read:user:admin`                     | View a user                               | Look up user details for meeting association          |
| `user:read:list_users:admin`               | View users                                | List users in the Zoom account for multi-user support |

### Key Details

* All Zoom scopes are **read-only** — DarcyIQ cannot create, modify, or delete meetings
* The admin-level scopes enable organization-wide meeting access; the user-level scopes are limited to the individual's meetings
* Your Zoom account admin can review and approve the DarcyIQ application from the Zoom Marketplace
* DarcyIQ uses the Zoom Access Key (ZAK) solely to authenticate the meeting bot — no other actions are performed with this token

***

## Security & Privacy

### Data Handling

| Aspect                  | Details                                                                                               |
| ----------------------- | ----------------------------------------------------------------------------------------------------- |
| **Authentication**      | Industry-standard OAuth 2.0 with all three providers                                                  |
| **Token Storage**       | Access and refresh tokens are encrypted at rest                                                       |
| **Minimal Permissions** | Only read-only scopes are requested — no write access to calendars or meetings                        |
| **User Consent**        | Each user must explicitly grant access via the provider's consent screen                              |
| **Revocation**          | Users can disconnect their calendar at any time from DarcyIQ settings, which revokes the OAuth tokens |

### Frequently Asked Questions

**Can DarcyIQ modify my calendar?** No. All calendar permissions are read-only. DarcyIQ cannot create, edit, or delete events.

**Does DarcyIQ access my email?** No. The `email` and `userinfo.email` scopes only read your email address for identification. DarcyIQ does not access your inbox, email content, or contacts.

**Can my admin control access?** Yes. Google Workspace admins, Azure AD / Entra ID admins, and Zoom account admins can pre-approve, restrict, or revoke the DarcyIQ application for their organization.

**What happens if I disconnect my calendar?** DarcyIQ immediately revokes the OAuth tokens and stops reading your calendar. Existing meeting recordings and transcriptions are not deleted.

**Does DarcyIQ store my calendar data?** DarcyIQ reads calendar events to schedule meeting joins. Event metadata (title, time, attendees, meeting links) is cached temporarily for scheduling purposes and is not stored long-term.

***

## Related Documentation

| Topic                                        | Link                                                                                  |
| -------------------------------------------- | ------------------------------------------------------------------------------------- |
| Meeting recording and transcription features | [Meetings](/core-features/meeting-recording-and-transcription)                        |
| Calendar settings and join rules             | [Calendar Settings](/settings-and-configuration/user-configuration/calendar-settings) |
| Platform integrations overview               | [Platform Integrations](/build/integration-overview/enterprise)                       |


# Platform Integrations

This section contains documentation for DarcyIQ's platform integrations that connect to popular business tools and applications.

## Available Integrations

### Meetings & Calendar

* [**Meeting & Calendar Integrations**](/build/integration-overview/meeting-calendar-integrations) - Google, Microsoft, and Zoom permissions and scopes

### Productivity & Collaboration

* [**Atlassian JIRA**](/build/integration-overview/enterprise/jira) - Complete ticket management and project tracking
* [**Slack (Coming Soon)**](/build/integration-overview/enterprise/slack-coming-soon) - Review conversation context and post team updates
* [**Zapier**](/build/integration-overview/enterprise/zapier) - Connect to 5,000+ applications

### Email, Files & Documents

* [**Gmail (Google)**](/build/integration-overview/enterprise/gmail) - Search, read, draft, and send email from chat
* [**Google Drive**](/build/integration-overview/enterprise/google-drive) - Search, read, create, and update Drive files
* [**Microsoft Outlook**](/build/integration-overview/enterprise/outlook) - Manage Outlook email and calendar
* [**Microsoft SharePoint**](/build/integration-overview/enterprise/sharepoint) - Search and manage files across document libraries

### Cloud Operations

* [**MontyCloud CloudOps**](/build/integration-overview/enterprise/montycloud) - Autonomous cloud operations and MSP management

### CRM & Sales

* [**HubSpot**](/build/integration-overview/enterprise/hubspot) - CRM, deals, contacts, and pipeline management
* [**Salesforce**](/build/integration-overview/enterprise/salesforce-integration) - Customer relationship management
* Microsoft Dynamics (Coming Soon)

## Key Features

All platform integrations support:

* Natural language commands through Darcy Chat
* Workflow automation integration
* Bi-directional data synchronization
* Enterprise-grade security
* Audit logging and compliance

## Getting Started

1. Review the specific integration documentation
2. Obtain necessary credentials from your admin
3. Configure in Settings → Integrations
4. Test with non-critical data first
5. Expand usage gradually

## Support

For integration support:

* Check individual integration docs for troubleshooting
* Contact your system administrator for credentials
* Reach out to DarcyIQ support for configuration help


# Salesforce Integration

DarcyIQ integrates with Salesforce to link projects and work directly to your customer accounts, enabling seamless customer context and activity tracking.

## Benefits

| Benefit                  | Description                                                    |
| ------------------------ | -------------------------------------------------------------- |
| **Customer Context**     | Automatically associate work with Salesforce accounts          |
| **Activity Tracking**    | Record key activities and insights directly to customer notes  |
| **Seamless Integration** | Work naturally while DarcyIQ manages the Salesforce connection |
| **Data Security**        | Minimal required permissions ensure security best practices    |

## OAuth Authentication

DarcyIQ uses secure OAuth authentication to connect to your Salesforce account:

1. **OAuth Authorization**
   * Secure, industry-standard authentication
   * No need to share passwords with DarcyIQ
   * Granular permission control
2. **Service Account Recommended**
   * Create a dedicated Salesforce user for DarcyIQ
   * Configure appropriate access levels
   * Easier permission management and auditing

## Access Requirements

| Access Type       | Level     | Purpose                               |
| ----------------- | --------- | ------------------------------------- |
| **Account Data**  | Read-only | View customer information and context |
| **Account Notes** | Write     | Update activity and insight tracking  |
| **Contacts**      | Read-only | Access customer contact information   |
| **Opportunities** | Read-only | View related opportunities            |

## Setup Steps

### Step 1: Create Connected App in Salesforce

A Salesforce administrator must first create a Connected App to enable OAuth integration:

{% hint style="info" %}
**Need additional help?** Follow Salesforce's official guide: [Create a Connected App](https://help.salesforce.com/s/articleView?id=sf.connected_app_create.htm\&type=5) for detailed screenshots and explanations.
{% endhint %}

{% stepper %}
{% step %}
**Navigate to Setup** Log into Salesforce as an administrator and go to Setup
{% endstep %}

{% step %}
**Access App Manager** In the Quick Find box, type "App Manager" and select it
{% endstep %}

{% step %}
**Create New Connected App** Click "New Connected App" and configure the basic information:

* **Connected App Name**: DarcyIQ
* **API Name**: DarcyIQ (auto-populated)
* **Contact Email**: Your admin email address
* **Description**: DarcyIQ accelerates your sales and solution architecture team to deliver proposals to profit in minutes not weeks.
  {% endstep %}

{% step %}
**Configure OAuth Settings** Under "API (Enable OAuth Settings)":

* ✅ Check "Enable OAuth Settings"
* **Callback URL**: Add these URLs:
  * `https://api.darcyiq.com/api/oauth/callback`
* **Selected OAuth Scopes**: Add these scopes:
  * "Manage user data via APIs (api)"
  * "Perform requests at any time (refresh\_token, offline\_access)"
    {% endstep %}

{% step %}
**Save and Note Credentials** After saving, you'll receive:

* **Consumer Key**: Used by DarcyIQ for OAuth
* **Consumer Secret**: Keep secure for OAuth flow
  {% endstep %}
  {% endstepper %}

### Step 2: User Authorization

Once the Connected App is configured, individual users can authorize DarcyIQ:

1. **Access DarcyIQ Integrations**
   * Go to <https://app.darcyiq.com/user-configuration#integrations>
   * Select "Salesforce Integration"
2. **OAuth Authorization**
   * Click "Authorize with Salesforce"
   * Log into your Salesforce account when prompted
   * Review and approve the requested permissions:
     * Access your basic information
     * Manage your data via APIs
     * Perform requests at any time
   * Complete the OAuth authorization process
3. **Verify Connection**
   * Confirm successful authorization in DarcyIQ
   * Test the integration with a sample query

### Step 3: Sandboxes and My Domain (Optional)

Most production orgs sign in through `login.salesforce.com` and need nothing extra. Two situations do require one more field:

* You're connecting a **sandbox**
* Your org's OAuth is **bound to a My Domain**, so Salesforce won't complete the exchange against the standard login host

For either, expand **Advanced (Testing)** on the Salesforce configuration form and fill in **Salesforce Login URL (My Domain)** with your org's login host:

| Org type                  | Example value                                 |
| ------------------------- | --------------------------------------------- |
| Production with My Domain | `https://acme.my.salesforce.com`              |
| Sandbox                   | `https://acme--dev.sandbox.my.salesforce.com` |

Leave it blank for a standard production connection.

{% hint style="info" %}
**Where to find your My Domain**: In Salesforce, go to **Setup → Company Settings → My Domain**. Use the login URL shown there, including the `https://` prefix.
{% endhint %}

## Automatic Account Association

Once configured, DarcyIQ will:

* Automatically detect customer context in your work
* Link activities to the correct Salesforce accounts
* Update account notes with relevant insights
* Maintain activity history for future reference

## Security Best Practices

### Connected App Security

1. **Consumer Key Protection**
   * Keep Consumer Key and Secret secure
   * Don't share credentials outside IT/Admin team
   * Regularly rotate Consumer Secret if needed
2. **OAuth Scope Management**
   * Grant only necessary OAuth scopes
   * Review scope requirements periodically
   * Remove unused permissions
3. **User Access Control**
   * Users authenticate with their own Salesforce credentials
   * No shared service accounts required
   * Individual permission control per user

## Troubleshooting

### Common Setup Issues

| Issue                              | Cause                                                                      | Solution                                                                                                            |
| ---------------------------------- | -------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| **"Invalid Client" Error**         | Incorrect Consumer Key                                                     | Verify Consumer Key in Connected App                                                                                |
| **"Invalid Grant" Error**          | Wrong callback URL                                                         | Check callback URLs match exactly                                                                                   |
| **"Insufficient Privileges"**      | User lacks permissions                                                     | Review user's Salesforce permissions                                                                                |
| **Authorization Fails**            | OAuth scopes missing                                                       | Add required scopes to Connected App                                                                                |
| **`unsupported_grant_type` Error** | Sandbox or My Domain-bound org authorizing against the standard login host | Set **Salesforce Login URL (My Domain)** under **Advanced (Testing)** to your org's login URL, then authorize again |

### Connected App Issues

| Issue                       | Solution                                                               |
| --------------------------- | ---------------------------------------------------------------------- |
| **App not appearing**       | Wait 2-10 minutes after creating Connected App                         |
| **Consumer Secret missing** | Click "Click to reveal" in Connected App settings                      |
| **Callback URL mismatch**   | Ensure both production and development URLs are added                  |
| **Scope errors**            | Verify "api" and "refresh\_token, offline\_access" scopes are selected |

### User Authorization Issues

| Issue                    | Solution                                               |
| ------------------------ | ------------------------------------------------------ |
| **Login loop**           | Clear browser cache and cookies                        |
| **Permission denied**    | Check user has necessary Salesforce object permissions |
| **Token expired**        | User needs to re-authorize in DarcyIQ                  |
| **Wrong Salesforce org** | Ensure user logs into correct Salesforce instance      |


# HubSpot

Seamlessly connect DarcyIQ with HubSpot to **manage contacts, track deals, log activities, and automate CRM workflows directly through natural conversation**. Keep your pipeline up to date, enrich customer records from meetings, and never let a follow-up slip through the cracks.

{% hint style="success" %}
**One-Click Setup**: HubSpot uses OAuth authentication — just click "Connect" and authorize. No API keys, no manual configuration.
{% endhint %}

## Overview

The HubSpot integration transforms how you manage customer relationships by bridging the gap between conversation and CRM action.

| Capability                   | Function                                                  | Business Impact               |
| ---------------------------- | --------------------------------------------------------- | ----------------------------- |
| **Natural Language Actions** | Create and update contacts, deals, and tasks through chat | 80% faster CRM updates        |
| **Automatic CRM Updates**    | Generate records from meetings and workflows              | Never miss a follow-up        |
| **Real-Time Sync**           | Bi-directional updates between systems                    | Always current information    |
| **Smart Field Mapping**      | AI understands HubSpot properties and pipelines           | Accurate record creation      |
| **Bulk Operations**          | Handle multiple records simultaneously                    | Efficient pipeline management |

## Key Features

### Contact Management

Complete HubSpot contact lifecycle management through DarcyIQ:

| Action        | Natural Language Example                       | Result                   |
| ------------- | ---------------------------------------------- | ------------------------ |
| **Create**    | "Add a new contact for Jane Doe at Acme Corp"  | New contact in HubSpot   |
| **Update**    | "Update Jane Doe's phone number to 555-1234"   | Contact property updated |
| **Enrich**    | "Add meeting notes to the Acme Corp contact"   | Activity logged          |
| **Associate** | "Link Jane Doe to the Acme Enterprise deal"    | Association created      |
| **Search**    | "Find all contacts at companies in healthcare" | Filtered contact list    |

### Deal Management

Track and manage your sales pipeline:

| Action     | Natural Language Example                              | Result               |
| ---------- | ----------------------------------------------------- | -------------------- |
| **Create** | "Create a deal for Acme Corp - Enterprise Plan, $50k" | New deal in pipeline |
| **Move**   | "Move the Acme deal to Proposal Sent"                 | Deal stage updated   |
| **Update** | "Set close date for Acme deal to end of quarter"      | Property updated     |
| **Note**   | "Log that Acme is evaluating two competitors"         | Note added to deal   |
| **Report** | "Show me all deals closing this month"                | Pipeline summary     |

### Automatic Record Creation

DarcyIQ automatically creates and updates HubSpot records from various sources:

| Source               | Trigger                             | Record Type        |
| -------------------- | ----------------------------------- | ------------------ |
| **Meetings**         | New attendees or discussed accounts | Contact or Company |
| **Chat Discussions** | Explicit request or AI detection    | Any record type    |
| **Workflows**        | Workflow completion with follow-ups | Task or Deal       |
| **Activity Log**     | Customer interaction detected       | Activity or Note   |
| **Research Reports** | Identified opportunities            | Deal or Company    |

### Pipeline Tracking

Monitor and manage your HubSpot pipelines:

| Query Type          | Example                                        | Information Returned            |
| ------------------- | ---------------------------------------------- | ------------------------------- |
| **Pipeline Status** | "Show my pipeline summary"                     | Stage distribution, total value |
| **Deal Forecast**   | "What's our forecast for this quarter?"        | Weighted pipeline value         |
| **Stale Deals**     | "Which deals haven't been updated in 2 weeks?" | Deals needing attention         |
| **Team Activity**   | "Show recent activities for the sales team"    | Activity feed                   |
| **Win/Loss**        | "What's our close rate this month?"            | Conversion metrics              |

## Setup and Configuration

### Prerequisites

| Requirement             | Description                                                          | How to Obtain                          |
| ----------------------- | -------------------------------------------------------------------- | -------------------------------------- |
| **HubSpot Account**     | Active HubSpot instance (Free, Starter, Professional, or Enterprise) | [hubspot.com](https://www.hubspot.com) |
| **HubSpot Permissions** | Ability to authorize third-party apps                                | Account admin or super admin role      |

### Configuration Steps

{% stepper %}
{% step %}
**Connect via OAuth**

1. Go to [DarcyIQ Integrations](https://app.darcyiq.com/user-configuration#integrations)
2. Find **HubSpot** in the integrations list
3. Click **Connect**
4. You'll be redirected to HubSpot to authorize DarcyIQ
5. Review the requested permissions and click **Grant Access**
6. You'll be redirected back to DarcyIQ — connection is now active
   {% endstep %}

{% step %}
**Verify Connection**

1. Confirm the HubSpot integration shows as "Connected"
2. Ask Darcy: "Show my HubSpot contacts" to verify data access
3. Try a test operation: "Create a test contact in HubSpot"
4. Confirm the record appears in your HubSpot instance
   {% endstep %}

{% step %}
**Configure Preferences (Optional)**

1. Set default pipeline for new deals
2. Set up notification preferences for deal stage changes
3. Map custom properties if needed
   {% endstep %}
   {% endstepper %}

{% hint style="info" %}
**No API keys required.** The OAuth flow handles all authentication securely. DarcyIQ requests only the permissions it needs to manage your CRM data.
{% endhint %}

## Using HubSpot Integration

### Through Darcy Chat

Natural language commands for HubSpot operations:

#### Managing Contacts

```
"Create a contact for Alex Rivera, alex@techstartup.io, VP of Engineering"
"Update the phone number for Sarah Chen to 415-555-0199"
"Show me all contacts I added this week"
"Find contacts at companies with more than 100 employees"
```

#### Managing Deals

```
"Create a deal: TechStartup Enterprise - $75,000 - Qualification stage"
"Move the TechStartup deal to Contract Sent"
"What deals are in my pipeline worth over $50k?"
"Set the Acme deal amount to $120,000"
```

#### Logging Activities

```
"Log a call with Alex Rivera - discussed timeline and budget"
"Add a note to the TechStartup deal: awaiting legal review"
"Schedule a follow-up task for Friday with Sarah Chen"
"Log an email sent to Acme about the proposal"
```

### From Meetings

Automatic CRM updates from meeting discussions:

| Meeting Context   | HubSpot Action             | Example                              |
| ----------------- | -------------------------- | ------------------------------------ |
| **New Contacts**  | Create contact records     | New attendee → Contact created       |
| **Deal Updates**  | Update deal stage or notes | "They're ready to sign" → Deal moved |
| **Action Items**  | Create tasks in HubSpot    | "Send proposal by Friday" → Task     |
| **Company Intel** | Update company properties  | "They just raised Series B" → Note   |

### In Workflows

Configure workflows to interact with HubSpot:

| Workflow Step    | HubSpot Action        | Use Case                   |
| ---------------- | --------------------- | -------------------------- |
| **Lead Capture** | Create contact + deal | New opportunity identified |
| **Follow-Up**    | Create task           | Ensure timely outreach     |
| **Stage Update** | Move deal in pipeline | Process milestone reached  |
| **Enrichment**   | Update properties     | New information discovered |
| **Notification** | Log activity          | Status updates for team    |

## Advanced Features

### Smart Deal Creation

AI-enhanced deal generation:

| Enhancement             | How It Works                               | Benefit               |
| ----------------------- | ------------------------------------------ | --------------------- |
| **Context Extraction**  | Pulls deal details from conversations      | Complete deal records |
| **Stage Suggestion**    | Recommends pipeline stage based on context | Accurate pipeline     |
| **Amount Estimation**   | Suggests deal value from discussion        | Faster entry          |
| **Contact Association** | Links relevant contacts automatically      | Proper relationships  |
| **Next Steps**          | Generates follow-up tasks                  | Nothing falls through |

### Bulk Operations

Handle multiple records efficiently:

| Operation          | Example Command                             | Result              |
| ------------------ | ------------------------------------------- | ------------------- |
| **Mass Update**    | "Move all stale deals to Lost"              | Bulk stage change   |
| **Batch Creation** | "Create contacts for all meeting attendees" | Multiple records    |
| **Group Task**     | "Create follow-up tasks for all open deals" | Batch task creation |
| **Bulk Enrich**    | "Add 'Q4 Campaign' tag to all new contacts" | Property updates    |

### HubSpot Search

Query your CRM data through DarcyIQ:

```
"Find all deals over $100k in the proposal stage"
"Show contacts who haven't been contacted in 30 days"
"List companies in the technology industry"
"What tasks are overdue this week?"
```

{% hint style="info" %}
**Pro Tip**: Start by enabling automatic contact creation from meetings — this ensures every person you meet with has a CRM record. Then expand to automatic deal creation and activity logging as your team gets comfortable.
{% endhint %}


# Atlassian JIRA

Seamlessly connect DarcyIQ with Atlassian JIRA to **create tickets, update issues, and track projects directly through natural conversation**. Transform meeting notes into tickets, workflow outputs into stories, and keep your entire team synchronized without leaving DarcyIQ.

{% hint style="success" %}
**Zero Context Switching**: Say "Create a JIRA ticket for the security issue we just discussed" and watch it appear in your project board instantly.
{% endhint %}

## Overview

The JIRA integration transforms how you manage projects by eliminating the friction between conversation and action.

| Capability                    | Function                                     | Business Impact              |
| ----------------------------- | -------------------------------------------- | ---------------------------- |
| **Natural Language Actions**  | Create and update tickets through chat       | 75% faster ticket creation   |
| **Automatic Ticket Creation** | Generate tickets from meetings and workflows | Never miss an action item    |
| **Real-Time Sync**            | Bi-directional updates between systems       | Always current information   |
| **Smart Field Mapping**       | AI understands JIRA fields and requirements  | Accurate ticket creation     |
| **Bulk Operations**           | Handle multiple tickets simultaneously       | Efficient project management |

## Key Features

### Ticket Management

Complete JIRA ticket lifecycle management through DarcyIQ:

| Action      | Natural Language Example                    | Result               |
| ----------- | ------------------------------------------- | -------------------- |
| **Create**  | "Create a bug ticket for the login issue"   | New ticket in JIRA   |
| **Update**  | "Update PROJ-123 status to In Progress"     | Status changed       |
| **Comment** | "Add comment to PROJ-456 with test results" | Comment added        |
| **Assign**  | "Assign PROJ-789 to John Smith"             | Assignee updated     |
| **Link**    | "Link PROJ-234 to PROJ-567"                 | Tickets linked       |
| **Search**  | "Show me all critical bugs this sprint"     | Filtered ticket list |

### Automatic Ticket Generation

DarcyIQ automatically creates tickets from various sources:

| Source               | Trigger                             | Ticket Type     |
| -------------------- | ----------------------------------- | --------------- |
| **Meetings**         | Action items identified             | Task or Story   |
| **Chat Discussions** | Explicit request or AI detection    | Any type        |
| **Workflows**        | Workflow completion with follow-ups | Configured type |
| **Activity Log**     | Task escalation                     | Task            |
| **Research Reports** | Identified opportunities            | Story or Epic   |

### Project Tracking

Monitor and manage your JIRA projects:

| Query Type           | Example                        | Information Returned               |
| -------------------- | ------------------------------ | ---------------------------------- |
| **Sprint Status**    | "Show current sprint progress" | Burndown, velocity, remaining work |
| **Team Workload**    | "Who has the most tickets?"    | Assignment distribution            |
| **Blockers**         | "List all blocked issues"      | Impediments requiring attention    |
| **Due Dates**        | "What's due this week?"        | Upcoming deadlines                 |
| **Release Planning** | "Show release 2.0 status"      | Version progress and issues        |

## Setup and Configuration

### Prerequisites

| Requirement        | Description                        | How to Obtain                 |
| ------------------ | ---------------------------------- | ----------------------------- |
| **JIRA Account**   | Active Atlassian JIRA instance     | Cloud or Server instance      |
| **API Token**      | Authentication credential          | Generate in Atlassian account |
| **Project Access** | Permissions to create/edit tickets | Admin configuration           |
| **User Account**   | JIRA user for integration          | Service account recommended   |

### Configuration Steps

{% stepper %}
{% step %}
**Generate API Token**

1. Log into your Atlassian account
2. Navigate to Account Settings → Security → API Tokens
3. Create new token with descriptive name
4. Copy token (shown only once)
   {% endstep %}

{% step %}
**Configure in DarcyIQ**

1. Go to Settings → Integrations → JIRA
2. Enter your JIRA instance URL
3. Provide username (email) and API token
4. Select default project
5. Map custom fields if needed
   {% endstep %}

{% step %}
**Test Connection**

1. Click "Test Connection"
2. Verify project list loads
3. Create test ticket
4. Confirm ticket appears in JIRA
   {% endstep %}

{% step %}
**Configure Automation**

1. Set rules for automatic ticket creation
2. Define field mappings
3. Configure notification preferences
4. Enable/disable features as needed
   {% endstep %}
   {% endstepper %}

## Using JIRA Integration

### Through Darcy Chat

Natural language commands for JIRA operations:

#### Creating Tickets

```
"Create a bug ticket: Login fails with SSO enabled"
"Make a story for implementing the new dashboard"
"Add a task to investigate the performance issue"
"Create an epic for Q4 product launch"
```

#### Updating Tickets

```
"Move PROJ-123 to In Review"
"Add 3 story points to PROJ-456"
"Set priority of PROJ-789 to Critical"
"Add Sarah as a watcher to PROJ-234"
```

#### Searching and Reporting

```
"Show me all my open tickets"
"List bugs found this week"
"What's the status of epic PROJ-100?"
"Find all tickets mentioning 'authentication'"
```

### From Meetings

Automatic ticket creation from meeting discussions:

| Meeting Context      | Ticket Generation        | Example                            |
| -------------------- | ------------------------ | ---------------------------------- |
| **Action Items**     | One ticket per action    | "John will review the code" → Task |
| **Bugs Discussed**   | Bug tickets with details | "Users report slow loading" → Bug  |
| **Feature Requests** | Story tickets            | "Customer wants dark mode" → Story |
| **Decisions**        | Documentation tickets    | "Decided to use AWS" → Task        |

### In Workflows

Configure workflows to interact with JIRA:

| Workflow Step    | JIRA Action            | Use Case           |
| ---------------- | ---------------------- | ------------------ |
| **Initiation**   | Create planning ticket | Project kickoff    |
| **Completion**   | Update ticket status   | Mark work complete |
| **Approval**     | Create review ticket   | Approval workflow  |
| **Exception**    | Create bug/issue       | Error handling     |
| **Notification** | Add comment            | Status updates     |

## Advanced Features

### Smart Ticket Creation

AI-enhanced ticket generation:

| Enhancement              | How It Works                            | Benefit            |
| ------------------------ | --------------------------------------- | ------------------ |
| **Context Extraction**   | Pulls relevant details from discussions | Complete tickets   |
| **Acceptance Criteria**  | Generates criteria from requirements    | Clear expectations |
| **Dependency Detection** | Identifies related tickets              | Proper linking     |
| **Effort Estimation**    | Suggests story points                   | Consistent sizing  |
| **Component Assignment** | Routes to right team                    | Efficient triage   |

### Bulk Operations

Handle multiple tickets efficiently:

| Operation            | Example Command                        | Result                 |
| -------------------- | -------------------------------------- | ---------------------- |
| **Mass Update**      | "Move all bugs to next sprint"         | Bulk sprint assignment |
| **Batch Creation**   | "Create tasks for each requirement"    | Multiple tickets       |
| **Group Transition** | "Close all completed stories"          | Status updates         |
| **Bulk Assignment**  | "Assign all UI tickets to design team" | Team distribution      |

### JQL Integration

Use JIRA Query Language through DarcyIQ:

```
"Run JQL: project = PROJ AND status = Open AND assignee = currentUser()"
"Find tickets matching: labels in (customer, priority) AND created >= -7d"
"Show: fixVersion = 2.0 AND type = Bug ORDER BY priority DESC"
```

{% hint style="info" %}
**Pro Tip**: Start by enabling automatic ticket creation from meetings - this alone will ensure no action item is ever lost. Then gradually expand to use natural language commands for daily ticket management.
{% endhint %}


# MontyCloud CloudOps

Connect DarcyIQ to MontyCloud's CloudOps MCP server for **autonomous cloud operations and intelligent MSP management**. Leverage MontyCloud's cloud expertise through natural conversation to optimize costs, manage security, and scale operations across multiple customer environments.

{% hint style="success" %}
**Autonomous CloudOps**: Ask Darcy "Which customers have high AWS spend but low engagement?" or "Create JIRA tickets for all cost anomalies" and watch intelligent automation handle complex multi-step operations.
{% endhint %}

## Overview

MontyCloud's CloudOps MCP server transforms cloud operations from reactive to autonomous, enabling MSPs and IT teams to deliver consistent, high-quality operations across multiple customer environments.

| Capability                      | Function                                       | Business Impact                            |
| ------------------------------- | ---------------------------------------------- | ------------------------------------------ |
| **Autonomous Operations**       | AI agents handle routine CloudOps tasks        | Scale teams without proportional headcount |
| **Cross-Platform Intelligence** | Unified insights across cloud providers        | Complete operational visibility            |
| **Intelligent Automation**      | Context-aware actions with built-in governance | Reduce errors, improve compliance          |
| **MSP Optimization**            | Multi-tenant operations for service providers  | Deliver consistent quality at scale        |
| **Natural Language Control**    | Manage cloud operations through conversation   | No specialized training required           |

## Key Features

### Intelligent Cloud Operations

MontyCloud's MCP server provides specialized CloudOps agents:

| Agent Type            | Function                       | Example Actions                         |
| --------------------- | ------------------------------ | --------------------------------------- |
| **CloudOps Analyst**  | Uncovers context-rich findings | "Analyze cost trends for all customers" |
| **CloudOps Advisor**  | Suggests optimizations         | "Recommend right-sizing opportunities"  |
| **CloudOps Operator** | Executes approved actions      | "Apply security group updates"          |

### Multi-Customer Management

Perfect for MSPs managing multiple client environments:

| Feature                  | Capability                             | MSP Value              |
| ------------------------ | -------------------------------------- | ---------------------- |
| **Tenant Isolation**     | Secure multi-customer operations       | Client data protection |
| **Unified Dashboards**   | Cross-customer insights                | Portfolio management   |
| **Automated Ticketing**  | Issues become tickets automatically    | Streamlined operations |
| **Account Intelligence** | Customer health and expansion insights | Revenue optimization   |

### Well-Architected Integration

Built-in AWS expertise with 500+ Well-Architected checks:

* **Security Posture**: Continuous security monitoring
* **Cost Optimization**: Automated cost reduction recommendations
* **Performance**: Resource utilization optimization
* **Reliability**: Infrastructure health monitoring
* **Operational Excellence**: Best practice compliance

## Setup Process

### Prerequisites

| Requirement            | Description                     | How to Obtain              |
| ---------------------- | ------------------------------- | -------------------------- |
| **MontyCloud Account** | Active MontyCloud DAY2 platform | Sign up at montycloud.com  |
| **MCP Server Access**  | CloudOps MCP server enabled     | Contact MontyCloud support |
| **Cloud Accounts**     | Connected AWS/Azure accounts    | Configure in MontyCloud    |

### Configuration Steps

{% hint style="info" %}
**MontyCloud Setup Required**: First configure your CloudOps MCP server in your MontyCloud DAY2 environment, then connect it to DarcyIQ using our [MCP Framework documentation](/build/mcp-studio/mcp).
{% endhint %}

#### 1. Enable CloudOps MCP in MontyCloud

1. **Access MontyCloud DAY2 Platform**
   * Log into your MontyCloud environment
   * Navigate to MCP Server settings
   * Enable CloudOps MCP server
2. **Configure Agent Permissions**
   * Set up CloudOps Analyst, Advisor, and Operator agents
   * Define governance guardrails and approval workflows
   * Test MCP server functionality

#### 2. Connect to DarcyIQ

Follow our [MCP Framework guide](/build/mcp-studio/mcp) to connect MontyCloud's MCP server:

1. Navigate to **Settings** → **Integrations** → **Custom MCP**
2. Add your MontyCloud CloudOps MCP server URL
3. Configure authentication (typically API Key)
4. Test the connection

## Use Cases

### MSP Operations

**Scenario**: Managing multiple customer environments

```
User: "Show me which customers have declining WAFR scores 
       and create improvement plans for each"

Darcy: "Analyzing Well-Architected scores across 15 customers:
        
        🔴 Acme Corp: Security score dropped 15%
        ✓ Generated remediation plan
        ✓ Created JIRA ticket SEC-2024-001
        
        🟡 TechStart Inc: Cost optimization needed  
        ✓ Right-sizing recommendations ready
        ✓ ServiceNow ticket created
        
        🟢 GlobalCorp: All scores improving
        ✓ No action needed
        
        All improvement plans generated and tickets created!"
```

### Cost Optimization

**Scenario**: Proactive cost management

```
User: "Find cost anomalies across all customers and 
       create optimization recommendations"

Darcy: "Cost analysis complete:
        
        💰 Detected 8 cost anomalies
        ✓ CloudTrail analysis: 3 unused resources
        ✓ EC2 right-sizing: 12 oversized instances  
        ✓ Storage optimization: 5 lifecycle opportunities
        
        📋 Created optimization tickets:
        ✓ JIRA: 8 tickets with detailed remediation
        ✓ Salesforce: Customer health scores updated
        ✓ Slack: #cloudops-alerts notified
        
        Estimated monthly savings: $24,500"
```

### Security Incident Response

**Scenario**: Automated security management

```
User: "Check security posture for all production workloads 
       and escalate any critical findings"

Darcy: "Security sweep completed:
        
        🔒 Scanned 847 resources across 12 accounts
        ✓ Found 3 critical security issues
        ✓ 15 medium-priority recommendations
        
        🚨 Critical escalations:
        ✓ ServiceNow: P1 ticket created
        ✓ PagerDuty: On-call team alerted  
        ✓ Slack: #security-incidents notified
        ✓ Email: Security team briefed
        
        All critical issues have response teams assigned!"
```

## Advanced Automation

### Multi-Step Workflows

Complex operations spanning multiple systems:

| Workflow Type           | Steps                                              | Business Value               |
| ----------------------- | -------------------------------------------------- | ---------------------------- |
| **Incident Response**   | Detect → Analyze → Ticket → Notify → Escalate      | Faster resolution            |
| **Cost Optimization**   | Monitor → Identify → Recommend → Approve → Execute | Reduced cloud spend          |
| **Security Compliance** | Scan → Report → Remediate → Verify → Document      | Improved security posture    |
| **Customer Health**     | Analyze → Score → Alert → Plan → Execute           | Proactive account management |

### Governance and Guardrails

MontyCloud's MCP server includes built-in safety:

| Safety Feature            | Function                               | Benefit                  |
| ------------------------- | -------------------------------------- | ------------------------ |
| **Approval Workflows**    | Human approval for critical actions    | Risk mitigation          |
| **Impact Assessment**     | Analyze change impact before execution | Prevent outages          |
| **Rollback Capabilities** | Automatic rollback on failure          | Quick recovery           |
| **Audit Logging**         | Complete action tracking               | Compliance and debugging |
| **Scope Limiting**        | Restrict agent access by environment   | Controlled automation    |

## Integration Benefits

### For MSPs

| Benefit                  | Description                             | Impact                         |
| ------------------------ | --------------------------------------- | ------------------------------ |
| **Scale Operations**     | Handle more customers with same team    | Increased profitability        |
| **Consistent Quality**   | Standardized operations across accounts | Improved customer satisfaction |
| **Proactive Management** | Identify issues before customers        | Reduced escalations            |
| **Revenue Optimization** | Identify expansion opportunities        | Higher customer lifetime value |

### For Enterprise IT

| Benefit                    | Description                             | Impact                         |
| -------------------------- | --------------------------------------- | ------------------------------ |
| **Operational Efficiency** | Automate routine CloudOps tasks         | Focus on strategic initiatives |
| **Cost Control**           | Continuous optimization recommendations | Reduced cloud spend            |
| **Security Posture**       | Automated compliance monitoring         | Improved security              |
| **Team Productivity**      | AI handles specialized tasks            | Democratize cloud expertise    |

## Technical Architecture

### System Integration

MontyCloud's MCP server connects three core systems:

| System                     | Function                                         | Value                          |
| -------------------------- | ------------------------------------------------ | ------------------------------ |
| **System of Record**       | CloudOps Insights with continuous data ingestion | Comprehensive cloud context    |
| **System of Intelligence** | AI agents for analysis and recommendations       | Intelligent automation         |
| **System of Engagement**   | Natural language and API interfaces              | Accessible to all team members |

### Agent Collaboration

Multiple specialized agents work together:

* **Analyst**: Discovers issues and patterns
* **Advisor**: Provides optimization recommendations
* **Operator**: Executes approved changes
* **Growth Agent**: Identifies expansion opportunities

## Best Practices

### Getting Started

1. **Start Small**: Begin with read-only operations and monitoring
2. **Define Guardrails**: Set clear approval requirements for actions
3. **Test Thoroughly**: Validate in non-production environments first
4. **Train Team**: Ensure team understands natural language commands
5. **Monitor Results**: Track automation success and adjust

### Operational Excellence

| Practice                | Implementation                       | Result                   |
| ----------------------- | ------------------------------------ | ------------------------ |
| **Governance First**    | Define approval workflows            | Safe automation          |
| **Context Rich**        | Provide detailed environment context | Better decisions         |
| **Continuous Learning** | Review and refine agent behavior     | Improved outcomes        |
| **Team Collaboration**  | Share insights across teams          | Organizational alignment |

## Security and Compliance

### Built-in Security

MontyCloud's MCP server includes enterprise-grade security:

* **SOC 2 Type 2 Certified**: Audited security controls
* **Role-Based Access**: Granular permission management
* **Audit Trails**: Complete action logging
* **Data Encryption**: End-to-end data protection
* **Compliance Ready**: GDPR, HIPAA, and other standards

### Governance Controls

* **Human Approval**: Required for high-impact changes
* **Impact Assessment**: Pre-execution risk analysis
* **Scope Limitations**: Environment and resource restrictions
* **Rollback Procedures**: Automatic failure recovery
* **Change Documentation**: Complete change tracking

## Getting Started

### Demo and Activation

Ready to experience autonomous CloudOps?

1. **Schedule a Demo**: Visit [montycloud.com](https://montycloud.com) to see the platform in action
2. **Activate MCP Server**: Enable in your MontyCloud DAY2 environment
3. **Connect to DarcyIQ**: Follow our [MCP setup guide](/build/mcp-studio/mcp)
4. **Start Automating**: Begin with monitoring and gradually expand

### Support Resources

* **MontyCloud Documentation**: Platform guides and best practices
* **DarcyIQ MCP Guide**: [Custom integrations via MCP](/build/mcp-studio/mcp)
* **Community Support**: MontyCloud partner network
* **Technical Support**: Direct access to CloudOps experts

{% hint style="info" %}
**Pro Tip**: Start by connecting MontyCloud for monitoring and insights, then gradually enable automation as your team becomes comfortable with AI-driven operations. The governance controls ensure safe experimentation.
{% endhint %}

***

*Learn more about MontyCloud's CloudOps MCP server:* [*Accelerating Autonomous CloudOps*](https://montycloud.com/accelerating-autonomous-cloudops-with-montyclouds-new-cloudops-mcp-model-context-protocol-server/)


# Zapier (5,000+ Apps)

Connect DarcyIQ to over 5,000 applications through Zapier's MCP integration. **Create powerful automations that span your entire tech stack** - from CRM updates to project management, accounting to marketing automation - all controlled through natural conversation with Darcy.

{% hint style="success" %}
**Endless Possibilities**: Ask Darcy to "Create a HubSpot contact and add them to our Monday.com board" or "Post this analysis to Slack and create a Notion page" - the combinations are limitless!
{% endhint %}

## Overview

The Zapier integration via MCP (Model Context Protocol) opens up unprecedented connectivity for DarcyIQ, enabling complex multi-app workflows through simple conversation.

| Capability                   | Function                               | Business Impact                 |
| ---------------------------- | -------------------------------------- | ------------------------------- |
| **5,000+ App Access**        | Connect to virtually any business tool | Complete automation coverage    |
| **Natural Language Control** | Trigger Zaps through conversation      | No technical knowledge required |
| **Multi-Step Workflows**     | Chain actions across multiple apps     | Complex automation made simple  |
| **Bi-Directional Sync**      | Read and write data across systems     | Real-time data consistency      |
| **Conditional Logic**        | Smart routing based on data            | Intelligent automation          |

## How It Works

### MCP-Zapier Architecture

The integration leverages Zapier's MCP server to enable natural language automation:

{% stepper %}
{% step %}
**MCP Configuration** Connect DarcyIQ to Zapier's MCP server using mcp.zapier.com
{% endstep %}

{% step %}
**Authentication** Securely authenticate with your Zapier account via OAuth
{% endstep %}

{% step %}
**Zap Discovery** DarcyIQ discovers your available Zaps and connected apps
{% endstep %}

{% step %}
**Natural Language Processing** Darcy interprets your requests and maps them to Zapier actions
{% endstep %}

{% step %}
**Execution** Zapier executes the automation and returns results to DarcyIQ
{% endstep %}
{% endstepper %}

## Setup Process

### Prerequisites

| Requirement        | Description                  | How to Obtain            |
| ------------------ | ---------------------------- | ------------------------ |
| **Zapier Account** | Active Zapier subscription   | Sign up at zapier.com    |
| **Connected Apps** | Apps connected in Zapier     | Configure in Zapier      |
| **MCP Server**     | Zapier MCP server configured | Set up at mcp.zapier.com |

### Step 1: Create Zapier MCP Integration

{% hint style="info" %}
**First, set up your Zapier MCP server**: Visit [mcp.zapier.com](https://mcp.zapier.com) to create and configure your Zapier MCP integration before proceeding with DarcyIQ setup.
{% endhint %}

1. **Go to mcp.zapier.com**
   * Log into your Zapier account
   * Create a new MCP server configuration
   * Connect the apps you want to use with DarcyIQ
   * Note the MCP server URL and authentication details
2. **Configure App Permissions**
   * Select which Zapier apps DarcyIQ can access
   * Set up authentication for each connected app
   * Test your MCP server configuration

### Step 2: Connect to DarcyIQ

Once your Zapier MCP server is configured, connect it to DarcyIQ using our MCP integration:

{% hint style="success" %}
**Use the MCP Framework**: Follow the complete setup guide in our [MCP Framework documentation](/build/mcp-studio/mcp) to connect your Zapier MCP server to DarcyIQ.
{% endhint %}

**Quick Reference:**

1. Navigate to **Settings** → **Integrations** → **Custom MCP**
2. Add your Zapier MCP server URL from mcp.zapier.com
3. Zapier does not require an Authentication key, as the MCP URL is a unique ID. Please keep it safe!

### Step 3: Verify Integration

Test your Zapier integration:

1. Ask Darcy: "What Zapier integrations are available?"
2. Test simple action: "Add a row to my Google Sheet"
3. Verify execution in your Zapier dashboard

## Popular App Integrations

### CRM & Sales

| App            | Common Actions         | Example Commands                         |
| -------------- | ---------------------- | ---------------------------------------- |
| **Salesforce** | Create/update records  | "Add this contact to Salesforce"         |
| **HubSpot**    | Manage contacts, deals | "Create a HubSpot deal worth $50k"       |
| **Pipedrive**  | Track sales pipeline   | "Move deal to negotiation stage"         |
| **Zoho CRM**   | Customer management    | "Update Zoho contact with meeting notes" |
| **Copper**     | G Suite CRM actions    | "Log email in Copper CRM"                |

### Project Management

| App            | Common Actions         | Example Commands                  |
| -------------- | ---------------------- | --------------------------------- |
| **Asana**      | Create tasks, projects | "Create Asana task for follow-up" |
| **Monday.com** | Update boards, items   | "Add item to Sprint board"        |
| **Trello**     | Card management        | "Move card to Done column"        |
| **ClickUp**    | Task and doc creation  | "Create ClickUp doc from report"  |
| **Notion**     | Page and database ops  | "Add meeting notes to Notion"     |

### Communication

| App                 | Common Actions                 | Example Commands                      |
| ------------------- | ------------------------------ | ------------------------------------- |
| **Slack**           | Send messages, create channels | "Post summary to #sales channel"      |
| **Microsoft Teams** | Messages and meetings          | "Schedule Teams meeting for tomorrow" |
| **Discord**         | Server management              | "Send update to Discord server"       |
| **Email**           | Send automated emails          | "Email report to stakeholders"        |
| **Twilio**          | SMS notifications              | "Text team about urgent issue"        |

### Marketing & Analytics

| App                  | Common Actions      | Example Commands                 |
| -------------------- | ------------------- | -------------------------------- |
| **Mailchimp**        | List management     | "Add contact to newsletter list" |
| **Google Analytics** | Pull reports        | "Get this week's traffic data"   |
| **Facebook Ads**     | Campaign management | "Pause underperforming ad"       |
| **LinkedIn**         | Post updates        | "Share article on LinkedIn"      |
| **Buffer**           | Social scheduling   | "Schedule posts for next week"   |

### Productivity & Storage

| App               | Common Actions    | Example Commands                    |
| ----------------- | ----------------- | ----------------------------------- |
| **Google Sheets** | Data manipulation | "Add row with today's metrics"      |
| **Dropbox**       | File management   | "Save report to Dropbox folder"     |
| **OneDrive**      | Document storage  | "Upload presentation to OneDrive"   |
| **Evernote**      | Note creation     | "Create Evernote note from meeting" |
| **Airtable**      | Database updates  | "Update Airtable record status"     |

## Use Cases

### Sales Automation

**Scenario**: After a successful sales call

```
User: "Create a HubSpot deal for Acme Corp worth $75k, 
       add John Smith as a contact, 
       create a Slack notification in #sales-wins, 
       and schedule a follow-up task in Asana for next week"

Darcy: "I'll handle all of that:
        ✓ HubSpot deal created: Acme Corp - $75,000
        ✓ Contact added: John Smith
        ✓ Slack notification sent to #sales-wins
        ✓ Asana task scheduled for next Tuesday
        All systems updated successfully!"
```

### Customer Onboarding

**Scenario**: New customer signup

```
User: "New customer GlobalTech just signed. 
       Add them to our Monday.com onboarding board,
       create a Slack channel #customer-globaltech,
       send a welcome email via SendGrid,
       and create a project folder in Google Drive"

Darcy: "Customer onboarding initiated:
        ✓ Monday.com: Added to onboarding pipeline
        ✓ Slack: #customer-globaltech channel created
        ✓ Email: Welcome message sent
        ✓ Google Drive: /Customers/GlobalTech folder created
        GlobalTech is all set up!"
```

### Content Distribution

**Scenario**: Publishing new content

```
User: "Publish my blog post about AI trends:
       Post to WordPress,
       share on LinkedIn and Twitter,
       add to Mailchimp newsletter,
       and create tracking link in Bitly"

Darcy: "Content distribution complete:
        ✓ WordPress: Blog post published
        ✓ LinkedIn: Shared with your network
        ✓ Twitter: Tweet posted
        ✓ Mailchimp: Added to next newsletter
        ✓ Bitly: Tracking link created (bit.ly/ai-trends)
        Your content is live everywhere!"
```

### Financial Workflows

**Scenario**: Invoice processing

```
User: "Create QuickBooks invoice for $10,000 for Acme Corp,
       log in Google Sheets accounting tracker,
       notify finance team in Slack,
       and create reminder in Todoist for payment follow-up"

Darcy: "Financial workflow executed:
        ✓ QuickBooks: Invoice #1234 created
        ✓ Google Sheets: Accounting log updated
        ✓ Slack: Finance team notified
        ✓ Todoist: Payment reminder set for 30 days
        Invoice process complete!"
```

## Advanced Workflows

### Multi-Step Automations

Create complex workflows spanning multiple apps:

```yaml
Workflow: Customer Feedback Loop
Triggers:
  - Meeting ends with NPS discussion
  
Actions:
  1. Typeform: Send NPS survey
  2. Wait: 24 hours
  3. If responded:
     - Airtable: Log response
     - If score < 7:
       - Slack: Alert customer success
       - Calendly: Send scheduling link
     - If score >= 9:
       - Trustpilot: Request review
       - HubSpot: Update contact property
  4. Google Sheets: Update metrics dashboard
  5. Looker: Refresh customer health score
```

### Conditional Logic

Use smart routing based on data:

| Condition        | Action              | Example                           |
| ---------------- | ------------------- | --------------------------------- |
| **Value-based**  | Route by deal size  | ">$50k → Enterprise pipeline"     |
| **Time-based**   | Schedule actions    | "If Friday → Weekly report"       |
| **Status-based** | Trigger on changes  | "If closed-won → Onboarding flow" |
| **User-based**   | Personalize actions | "If VIP → Priority support"       |
| **Data-based**   | Content routing     | "If contains 'bug' → Dev team"    |

### Batch Operations

Process multiple items efficiently:

```
User: "For all deals closing this month:
       Update Salesforce forecast,
       create project in Monday.com,
       send contracts via DocuSign,
       and add to revenue spreadsheet"

Darcy: "Processing 12 deals closing this month...
        ✓ Salesforce: Forecast updated (+$450k)
        ✓ Monday.com: 12 projects created
        ✓ DocuSign: Contracts sent to all
        ✓ Google Sheets: Revenue tracker updated
        Batch operation complete!"
```

## Best Practices

### Workflow Design

| Practice            | Implementation                 | Benefit            |
| ------------------- | ------------------------------ | ------------------ |
| **Start Simple**    | Begin with 2-3 app workflows   | Easier debugging   |
| **Test Thoroughly** | Run test data through flows    | Prevent errors     |
| **Error Handling**  | Build in failure notifications | Quick resolution   |
| **Documentation**   | Document complex workflows     | Team understanding |
| **Version Control** | Keep workflow backups          | Recovery options   |

### Performance Optimization

1. **Batch Similar Actions**: Group related updates
2. **Use Webhooks**: Real-time triggers vs polling
3. **Limit API Calls**: Respect rate limits
4. **Cache Data**: Store frequently used data
5. **Async Processing**: Don't wait for long operations

### Security Considerations

* **Minimal Permissions**: Only grant necessary access
* **Secure Storage**: Protect API credentials
* **Audit Logging**: Track all automations
* **Data Validation**: Verify data before processing
* **Access Reviews**: Regular permission audits

## Monitoring and Analytics

### Track Automation Success

| Metric              | Description                       | Optimization           |
| ------------------- | --------------------------------- | ---------------------- |
| **Execution Count** | Number of Zaps triggered          | Usage patterns         |
| **Success Rate**    | Percentage completed successfully | Reliability            |
| **Error Frequency** | Failed automation tracking        | Problem identification |
| **Response Time**   | Automation speed                  | Performance tuning     |
| **Cost per Action** | Zapier task usage                 | Budget management      |

### Zapier Dashboard Integration

Monitor directly through DarcyIQ:

```
User: "Show me this week's Zapier statistics"

Darcy: "Zapier Performance (Last 7 Days):
        • Total Automations: 342
        • Success Rate: 98.2%
        • Most Used: Slack (89 actions)
        • Errors: 6 (all resolved)
        • Tasks Remaining: 8,435/10,000
        Everything running smoothly!"
```

## Troubleshooting

### Common Issues

| Issue                  | Cause                   | Solution                 |
| ---------------------- | ----------------------- | ------------------------ |
| **Zap Not Triggering** | Authentication expired  | Reconnect app in Zapier  |
| **Partial Execution**  | API rate limits         | Add delays between steps |
| **Data Mismatch**      | Field mapping issues    | Review field mappings    |
| **Permission Errors**  | Insufficient access     | Update app permissions   |
| **Timeout Errors**     | Long-running operations | Use async processing     |

### Testing Commands

Test your integration with these commands:

```
"List my available Zapier integrations"
"Show recent Zapier activity"
"Test connection to [App Name]"
"What actions can I perform with [App Name]?"
"Check Zapier task usage"
```

## Cost Optimization

### Zapier Task Management

| Strategy            | Implementation        | Savings                  |
| ------------------- | --------------------- | ------------------------ |
| **Combine Steps**   | Multi-step Zaps       | Fewer tasks used         |
| **Filter Early**    | Add conditions        | Prevent unnecessary runs |
| **Batch Process**   | Group similar actions | Efficient task usage     |
| **Schedule Wisely** | Off-peak processing   | Better performance       |
| **Archive Unused**  | Disable inactive Zaps | Clean workspace          |

## Coming Soon

* **Pre-built Templates**: Industry-specific workflow templates
* **AI Optimization**: Darcy suggests workflow improvements
* **Visual Builder**: See workflow diagrams in DarcyIQ
* **Advanced Analytics**: Detailed automation insights
* **Custom Triggers**: Create DarcyIQ-specific triggers
* **Parallel Processing**: Run multiple Zaps simultaneously

{% hint style="info" %}
**Pro Tip**: Start by connecting your top 3 most-used apps and creating simple 2-step automations. Once comfortable, expand to multi-app workflows. The Zapier integration truly shines when orchestrating complex processes across your entire tech stack.
{% endhint %}


# Gmail (Google)

Connect Gmail so Darcy Chat and AI agents can search, read, draft, and send email on your behalf

The **Gmail** integration lets Darcy Chat and AI agents work directly with your Google mailbox — finding messages, reading threads, drafting replies, and sending email — all through natural conversation. It's a personal, user-level connection: you sign in to Google and grant DarcyIQ access, and the connection acts on **your** mailbox only.

{% hint style="success" %}
**Inbox, without the busywork**: Say *"Find the latest email from Acme about the renewal and draft a reply confirming the call,"* and Darcy searches your mailbox, reads the thread, and prepares a draft for you to review.
{% endhint %}

{% hint style="info" %}
**Beta**: Gmail is currently a Beta integration. In **Settings → Integrations** it appears under **Google Workspace** (the same connection also covers Google Calendar).
{% endhint %}

## Overview

| Capability           | Function                                     | Business Impact                  |
| -------------------- | -------------------------------------------- | -------------------------------- |
| **Natural Language** | Search and act on email through chat         | No switching to your inbox       |
| **Smart Search**     | Use Gmail's full search syntax               | Find the right message fast      |
| **Draft Assistance** | Generate replies and new messages for review | Faster, on-tone responses        |
| **Send on Request**  | Send email only when you explicitly ask      | Stay in control of what goes out |
| **Agent & Workflow** | Available to AI agents and AI Workflows      | Automate email steps end-to-end  |

## What You Can Do

| Action         | Natural Language Example                                    | Result                           |
| -------------- | ----------------------------------------------------------- | -------------------------------- |
| **Search**     | "Find unread emails from finance in the last week"          | A list of matching messages      |
| **Read**       | "Read the latest message from Jane about the proposal"      | The message contents, summarized |
| **Draft**      | "Draft a reply thanking them and proposing Tuesday at 10am" | A saved Gmail draft to review    |
| **Send**       | "Send an email to <alex@example.com> with the agenda"       | The email is sent                |
| **Send Draft** | "Send that draft now"                                       | The existing draft is delivered  |

Darcy understands Gmail search filters such as `from:`, `subject:`, `is:unread`, `has:attachment`, `newer_than:7d`, and date ranges — so you can be as specific as you like.

{% hint style="info" %}
Darcy prefers **drafts** when you ask it to "draft," "write," or "compose." It only sends when you clearly ask it to send, so nothing leaves your mailbox without your say-so.
{% endhint %}

## Connecting Gmail

Connecting is a one-time OAuth sign-in. DarcyIQ never sees your Google password — authentication happens on Google's own consent screen.

{% stepper %}
{% step %}
**Open Integrations** Go to **User Configuration → Integrations**.
{% endstep %}

{% step %}
**Find Google Workspace** Locate the **Google Workspace** integration (this is where Gmail lives) and click **Connect**.
{% endstep %}

{% step %}
**Sign in to Google** You're redirected to Google's sign-in and consent screen. Choose the account whose mailbox you want to use.
{% endstep %}

{% step %}
**Approve the DarcyIQ connection** Review the requested permissions and accept. You're returned to DarcyIQ with the integration marked **Connected**.
{% endstep %}
{% endstepper %}

To revoke access later, disconnect the integration in DarcyIQ and/or remove DarcyIQ from your Google account's third-party access settings.

## Using Gmail in Chat & Agents

Once connected, Gmail is available wherever Darcy can use tools:

* **Darcy Chat** — ask Darcy to find, read, draft, or send email in plain language.
* **AI Agents** — agents can include email steps as part of a larger task.
* **AI Workflows** — automate recurring email actions (for example, drafting follow-ups after a meeting).

## Permissions & Security

| Aspect          | Detail                                                                             |
| --------------- | ---------------------------------------------------------------------------------- |
| **Scope**       | Personal (user-level) — the connection only ever touches your own mailbox          |
| **Auth method** | OAuth — you sign in with Google and approve DarcyIQ; your password is never shared |
| **Sending**     | Email is sent only when you explicitly request it                                  |
| **Revoking**    | Disconnect any time from Settings → Integrations or your Google account settings   |


# Google Drive

Connect Google Drive so Darcy Chat and AI agents can search, read, create, and update your Drive files

The **Google Drive** integration lets Darcy Chat and AI agents find, read, create, and update files in your Google Drive through natural conversation. It's a personal, user-level connection: you sign in to Google and grant DarcyIQ access, and the connection works with **your** Drive only.

{% hint style="success" %}
**Your documents, in the conversation**: Say *"Find the latest proposal in my Drive and summarize the pricing section,"* and Darcy locates the file, reads it, and gives you the summary — then can save an updated version straight back to Drive.
{% endhint %}

{% hint style="info" %}
**Beta**: Google Drive is currently a Beta integration available under **Settings → Integrations**.
{% endhint %}

## Overview

| Capability           | Function                                            | Business Impact                     |
| -------------------- | --------------------------------------------------- | ----------------------------------- |
| **Natural Language** | Search and act on Drive files through chat          | Skip the file hunt                  |
| **Read & Summarize** | Open documents, including Google Docs/Sheets/Slides | Insights without opening Drive      |
| **Create & Update**  | Upload new files or replace existing ones           | Close the loop from chat to storage |
| **Agent & Workflow** | Available to AI agents and AI Workflows             | Automate document steps end-to-end  |

## What You Can Do

| Action      | Natural Language Example                             | Result                                  |
| ----------- | ---------------------------------------------------- | --------------------------------------- |
| **Search**  | "Find files in my Drive with 'proposal' in the name" | A list of matching files with links     |
| **Details** | "Show me details for that file"                      | File metadata (owner, modified, type)   |
| **Read**    | "Summarize the Q3 planning doc"                      | The document contents, summarized       |
| **Upload**  | "Save this summary to my Drive as a new doc"         | A new file created in Drive             |
| **Update**  | "Update that file with these edits"                  | The existing file's content is replaced |

Darcy supports Drive search syntax (name contains, MIME type, folder, recently modified) and can export Google-native files (Docs, Sheets, Slides) to readable text or Office formats when reading or downloading.

## Connecting Google Drive

Connecting is a one-time OAuth sign-in. DarcyIQ never sees your Google password — authentication happens on Google's own consent screen.

{% stepper %}
{% step %}
**Open Integrations** Go to **User Configuration → Integrations**.
{% endstep %}

{% step %}
**Find Google Drive** Locate the **Google Drive** integration and click **Connect**.
{% endstep %}

{% step %}
**Sign in to Google** You're redirected to Google's sign-in and consent screen. Choose the account whose Drive you want to use.
{% endstep %}

{% step %}
**Approve the DarcyIQ connection** Review the requested permissions and accept. You're returned to DarcyIQ with the integration marked **Connected**.
{% endstep %}
{% endstepper %}

To revoke access later, disconnect the integration in DarcyIQ and/or remove DarcyIQ from your Google account's third-party access settings.

## Using Google Drive in Chat & Agents

Once connected, Google Drive is available wherever Darcy can use tools:

* **Darcy Chat** — ask Darcy to find, read, create, or update files in plain language.
* **AI Agents** — agents can read source material from Drive or save generated files back to it.
* **AI Workflows** — automate document steps such as archiving outputs to a Drive folder.

## Permissions & Security

| Aspect          | Detail                                                                             |
| --------------- | ---------------------------------------------------------------------------------- |
| **Scope**       | Personal (user-level) — the connection only ever touches your own Drive            |
| **Auth method** | OAuth — you sign in with Google and approve DarcyIQ; your password is never shared |
| **Revoking**    | Disconnect any time from Settings → Integrations or your Google account settings   |


# Microsoft Outlook

Connect Microsoft Outlook so Darcy Chat and AI agents can manage your email and calendar

The **Microsoft Outlook** integration lets Darcy Chat and AI agents work with your Outlook email and calendar — listing and searching messages, reading threads, drafting and sending email, and scheduling events — through natural conversation. It's a personal, user-level connection: you sign in to Microsoft and grant DarcyIQ access, and the connection acts on **your** account only.

{% hint style="success" %}
**Email and calendar, hands-free**: Say *"Reply to the latest message from the client confirming Thursday, and add a 30-minute calendar hold,"* and Darcy drafts the reply and creates the event for you.
{% endhint %}

{% hint style="info" %}
**Beta**: Microsoft Outlook is currently a Beta integration available under **Settings → Integrations**.
{% endhint %}

## Overview

| Capability           | Function                                     | Business Impact                     |
| -------------------- | -------------------------------------------- | ----------------------------------- |
| **Natural Language** | Manage email and calendar through chat       | No switching to Outlook             |
| **Email Management** | List, read, search, reply, and send messages | Stay on top of your inbox           |
| **Draft Workflow**   | Create and edit drafts before sending        | Review before anything goes out     |
| **Calendar**         | List, view, and create events with attendees | Schedule without leaving the chat   |
| **Agent & Workflow** | Available to AI agents and AI Workflows      | Automate email and scheduling steps |

## What You Can Do

### Email

| Action     | Natural Language Example                         | Result                              |
| ---------- | ------------------------------------------------ | ----------------------------------- |
| **List**   | "Show my most recent inbox messages"             | A list of recent emails             |
| **Search** | "Find emails mentioning the SOW from last month" | Matching messages                   |
| **Read**   | "Read the message from Dana about onboarding"    | The email body and attachments info |
| **Draft**  | "Draft a follow-up to the client thread"         | A saved Outlook draft               |
| **Reply**  | "Reply to that thread confirming the date"       | A threaded reply (sent on request)  |
| **Send**   | "Send an email to the team with the notes"       | The email is sent                   |

### Calendar

| Action           | Natural Language Example                              | Result                       |
| ---------------- | ----------------------------------------------------- | ---------------------------- |
| **List events**  | "What's on my calendar next week?"                    | Upcoming events in the range |
| **Event detail** | "Show details for the kickoff meeting"                | Full event details           |
| **Create event** | "Schedule a 30-minute review Friday at 2pm with Alex" | A new event with invitations |

{% hint style="info" %}
Darcy uses a **draft-first** approach for email: creating and editing drafts requires no approval, but actually **sending** requires your explicit go-ahead. You can also attach files Darcy has generated.
{% endhint %}

## Connecting Microsoft Outlook

Connecting is a one-time OAuth sign-in. DarcyIQ never sees your Microsoft password — authentication happens on Microsoft's own consent screen.

{% stepper %}
{% step %}
**Open Integrations** Go to **User Configuration → Integrations**.
{% endstep %}

{% step %}
**Find Microsoft Outlook** Locate the **Microsoft Outlook** integration and click **Connect**.
{% endstep %}

{% step %}
**Sign in to Microsoft** You're redirected to Microsoft's sign-in and consent screen. Choose the account you want to use.
{% endstep %}

{% step %}
**Approve the DarcyIQ connection** Review the requested permissions and accept. You're returned to DarcyIQ with the integration marked **Connected**.
{% endstep %}
{% endstepper %}

To revoke access later, disconnect the integration in DarcyIQ and/or remove DarcyIQ from your Microsoft account's app permissions.

## Using Outlook in Chat & Agents

Once connected, Outlook is available wherever Darcy can use tools:

* **Darcy Chat** — manage email and calendar in plain language.
* **AI Agents** — agents can include email and scheduling steps in a larger task.
* **AI Workflows** — automate recurring actions such as drafting follow-ups or holding time after a meeting.

## Permissions & Security

| Aspect          | Detail                                                                                     |
| --------------- | ------------------------------------------------------------------------------------------ |
| **Scope**       | Personal (user-level) — the connection only ever touches your own mailbox and calendar     |
| **Auth method** | OAuth — you sign in with Microsoft and approve DarcyIQ; your password is never shared      |
| **Sending**     | Email is sent only when you explicitly request it                                          |
| **Revoking**    | Disconnect any time from Settings → Integrations or your Microsoft account app permissions |


# Microsoft SharePoint

Connect Microsoft SharePoint so Darcy Chat and AI agents can search, read, and manage files across your document libraries

The **Microsoft SharePoint** integration lets Darcy Chat and AI agents work with files across your SharePoint sites and document libraries — searching, reading, creating, updating, organizing, and sharing — through natural conversation. It's a personal, user-level connection: you sign in to Microsoft and grant DarcyIQ access, and the connection works with the sites and libraries **you** can already access.

{% hint style="success" %}
**Find it across every site, in one ask**: Say *"Search SharePoint for the latest security policy and share me an edit link,"* and Darcy runs a tenant-wide search, reads the document, and generates a sharing link.
{% endhint %}

{% hint style="info" %}
**Beta**: Microsoft SharePoint is currently a Beta integration available under **Settings → Integrations**.
{% endhint %}

## Overview

| Capability             | Function                                                    | Business Impact                     |
| ---------------------- | ----------------------------------------------------------- | ----------------------------------- |
| **Tenant-wide Search** | Full-text search across all sites and libraries in one call | Find documents fast, anywhere       |
| **Browse**             | List sites, document libraries, folders, and files          | Navigate without opening SharePoint |
| **Read**               | Read text-based file contents                               | Insights without leaving chat       |
| **Create & Organize**  | Upload, update, copy, move files, and create folders        | Keep libraries tidy from chat       |
| **Share**              | Generate view or edit sharing links                         | Distribute documents quickly        |

## What You Can Do

| Action       | Natural Language Example                                     | Result                           |
| ------------ | ------------------------------------------------------------ | -------------------------------- |
| **Search**   | "Search SharePoint for the onboarding checklist"             | Matching files across the tenant |
| **Browse**   | "List the document libraries in the Marketing site"          | Sites, drives, and folders       |
| **Read**     | "Read the latest version of the runbook"                     | The file's text contents         |
| **Upload**   | "Upload these notes to the Project folder"                   | A new file in the library        |
| **Update**   | "Replace the contents of that file with the revised version" | The existing file is updated     |
| **Organize** | "Create a 2026 folder and move the closed deals into it"     | A new folder with files moved in |
| **Share**    | "Generate an edit link for that document"                    | A shareable view/edit link       |

{% hint style="info" %}
Reading file **contents** works for text-based files (txt, csv, json, md, xml, html, and similar); metadata is always available. Deleting a file requires your explicit approval.
{% endhint %}

## Connecting Microsoft SharePoint

Connecting is a one-time OAuth sign-in. DarcyIQ never sees your Microsoft password — authentication happens on Microsoft's own consent screen.

{% stepper %}
{% step %}
**Open Integrations** Go to **User Configuration → Integrations**.
{% endstep %}

{% step %}
**Find Microsoft SharePoint** Locate the **Microsoft SharePoint** integration and click **Connect**.
{% endstep %}

{% step %}
**Sign in to Microsoft** You're redirected to Microsoft's sign-in and consent screen. Choose the account you want to use.
{% endstep %}

{% step %}
**Approve the DarcyIQ connection** Review the requested permissions and accept. You're returned to DarcyIQ with the integration marked **Connected**.
{% endstep %}
{% endstepper %}

To revoke access later, disconnect the integration in DarcyIQ and/or remove DarcyIQ from your Microsoft account's app permissions.

## Using SharePoint in Chat & Agents

Once connected, SharePoint is available wherever Darcy can use tools:

* **Darcy Chat** — search, read, create, organize, and share files in plain language.
* **AI Agents** — agents can pull source documents from SharePoint or write outputs back to it.
* **AI Workflows** — automate steps such as filing generated documents into the right library.

## Permissions & Security

| Aspect                  | Detail                                                                                         |
| ----------------------- | ---------------------------------------------------------------------------------------------- |
| **Scope**               | Personal (user-level) — the connection respects the sites and libraries you can already access |
| **Auth method**         | OAuth — you sign in with Microsoft and approve DarcyIQ; your password is never shared          |
| **Destructive actions** | Deleting files requires your explicit approval                                                 |
| **Revoking**            | Disconnect any time from Settings → Integrations or your Microsoft account app permissions     |


# Slack (Coming Soon)

Connect Slack so Darcy Chat and AI agents can search and manage your company communication

The **Slack** integration is designed to let Darcy Chat and AI agents work with your Slack workspace — listing channels, reviewing recent conversations, finding the right discussion context, posting updates, and replying in threads through natural conversation.

{% hint style="success" %}
**Bring Slack context into the task**: Say *"Check the latest discussion in #customer-success and post a summary with next steps,"* and Darcy can review the conversation, synthesize the context, and send the update back to Slack.
{% endhint %}

{% hint style="info" %}
**Coming soon**: Slack is planned for release under **User Configuration → Integrations**.
{% endhint %}

## Overview

| Capability            | Function                                     | Business Impact                    |
| --------------------- | -------------------------------------------- | ---------------------------------- |
| **Natural Language**  | Work with Slack through chat                 | Fewer context switches             |
| **Channel Context**   | List channels and review recent conversation | Find the right thread faster       |
| **Posting & Replies** | Post messages and reply in threads           | Keep teams aligned from DarcyIQ    |
| **Agent & Workflow**  | Available to AI agents and AI Workflows      | Automate updates and notifications |

## What You Can Do

| Action              | Natural Language Example                         | Result                        |
| ------------------- | ------------------------------------------------ | ----------------------------- |
| **List channels**   | "Show the Slack channels I can use"              | Accessible channels           |
| **Read messages**   | "Show the latest messages in #sales"             | Recent channel history        |
| **Find context**    | "Find the Slack discussion about the QBR deck"   | Relevant conversation context |
| **Post update**     | "Post this launch summary to #marketing"         | A new channel message         |
| **Reply in thread** | "Reply to that thread with the revised timeline" | A threaded response           |

{% hint style="info" %}
Slack access follows the channels and threads the connected Slack app can access. If the app cannot see a channel, Darcy cannot read or post there.
{% endhint %}

## Connecting Slack

Connection will use a standard Slack OAuth flow. DarcyIQ will never see your Slack password — authentication happens on Slack's own consent screen.

{% stepper %}
{% step %}
**Open Integrations** Go to **User Configuration → Integrations**.
{% endstep %}

{% step %}
**Find Slack** Locate the **Slack** integration and click **Connect**.
{% endstep %}

{% step %}
**Sign in to Slack** You're redirected to Slack's sign-in and consent screen. Choose the workspace you want to connect.
{% endstep %}

{% step %}
**Approve the DarcyIQ connection** Review the requested access and approve the app. Depending on your Slack settings, a workspace admin may need to approve the installation.
{% endstep %}
{% endstepper %}

To revoke access later, disconnect the integration in DarcyIQ and/or remove the DarcyIQ app from your Slack workspace.

## Using Slack in Chat & Agents

Once available and connected, Slack will be available wherever Darcy can use tools:

* **Darcy Chat** — review channel context, summarize discussions, and post updates in plain language.
* **AI Agents** — agents can gather discussion context or notify a team as part of a larger task.
* **AI Workflows** — automate recurring updates such as posting summaries, reminders, or status changes to Slack.

## Permissions & Security

| Aspect                | Detail                                                                        |
| --------------------- | ----------------------------------------------------------------------------- |
| **Scope**             | Channels and threads the connected Slack app is allowed to access             |
| **Auth method**       | OAuth — you approve DarcyIQ in Slack; your password is never shared           |
| **Posting**           | Messages are posted only when you explicitly ask Darcy to post or reply       |
| **Workspace control** | Slack admins can review, approve, or restrict the app                         |
| **Revoking**          | Disconnect any time from Settings → Integrations or your Slack admin settings |


# AWS Ecosystem

Complete integration suite for AWS partners and cloud-focused organizations, enabling deep AWS service integration and partner program management.

## Available Integrations

### Infrastructure & Operations

* [**AWS Accounts Integration**](/build/integration-overview/aws/aws-api) - Direct access to your AWS accounts for real-time cloud intelligence

### Partner Programs

* [**AWS ACE Integration**](/build/integration-overview/aws/aws-ace-integration) - Partner opportunity management and tracking
* [**AWS Bedrock LLM**](/build/integration-overview/aws/aws-bedrock-integration) - Use your own AI models

## Key Capabilities

### Cloud Intelligence

* Query infrastructure using natural language
* Real-time cost analysis and optimization
* Security and compliance monitoring
* Resource discovery across regions
* Trusted Advisor recommendations

### Partner Success

* Automated opportunity registration
* Funding program recommendations
* Pipeline management
* Deal registration automation

## Security Architecture

All AWS integrations use:

* **Cross-account IAM roles** with assume role permissions
* **External ID protection** against confused deputy attacks
* **Read-only access** by default
* **Temporary credentials** with automatic rotation
* **CloudTrail logging** for complete audit trail

## Prerequisites

Before configuring AWS integrations:

1. Active AWS account(s)
2. IAM permissions to create roles
3. Understanding of your AWS organization structure
4. Clear security policies for third-party access

## Best Practices

### Initial Setup

1. Start with a single AWS account
2. Use read-only permissions only
3. Test with non-production accounts first
4. Document role ARNs and External IDs
5. Review CloudTrail logs regularly

### Ongoing Management

* Rotate External IDs quarterly
* Review permissions annually
* Monitor API usage for anomalies
* Keep integration documentation updated

## Compliance

AWS integrations support:

* SOC 2 Type II compliance
* HIPAA compliance (with BAA)
* GDPR data protection
* PCI DSS standards
* FedRAMP authorization (in progress)

## Support

For AWS integration assistance:

* Review AWS IAM documentation
* Contact your AWS TAM for partner programs
* Reach out to DarcyIQ support for configuration
* Check CloudTrail for troubleshooting


# AWS Accounts Integration

Connect DarcyIQ directly to your AWS accounts for real-time cloud intelligence. **Query your infrastructure, analyze costs, and get Trusted Advisor recommendations** by asking natural language questions about your actual AWS environment.

{% hint style="success" %}
**Your Cloud, Your Data**: Ask "What's our monthly AWS spend by service?" or "Show me all unencrypted S3 buckets" and get instant, accurate answers from your live AWS environment.
{% endhint %}

## Overview

The AWS Accounts Integration transforms DarcyIQ into your intelligent cloud assistant with direct access to your AWS accounts.

| Capability               | Function                           | Business Value                     |
| ------------------------ | ---------------------------------- | ---------------------------------- |
| **Multi-Account Access** | Query across all your AWS accounts | Complete infrastructure visibility |
| **Real-Time Data**       | Live information from AWS APIs     | Always current insights            |
| **Cost Analysis**        | Detailed spend breakdowns          | Optimize cloud costs               |
| **Security Insights**    | Identify compliance issues         | Reduce security risks              |
| **Resource Discovery**   | Find resources across regions      | Complete asset inventory           |

## Key Features

### Infrastructure Intelligence

Query your AWS environment using natural language:

| Query Type             | Example Questions                             | Value                               |
| ---------------------- | --------------------------------------------- | ----------------------------------- |
| **Cost Analysis**      | "What's our highest cost service this month?" | Identify optimization opportunities |
| **Resource Inventory** | "List all EC2 instances in us-east-1"         | Asset management                    |
| **Security Audit**     | "Show me S3 buckets without encryption"       | Compliance verification             |
| **Performance Review** | "Which RDS instances are over 80% CPU?"       | Performance optimization            |
| **Unused Resources**   | "Find unattached EBS volumes"                 | Cost reduction                      |

### Supported AWS Services

Comprehensive coverage of AWS services:

| Service Category | Supported Services             | Common Queries                         |
| ---------------- | ------------------------------ | -------------------------------------- |
| **Compute**      | EC2, Lambda, ECS, EKS          | Instance types, utilization, scaling   |
| **Storage**      | S3, EBS, EFS, Glacier          | Bucket policies, encryption, lifecycle |
| **Database**     | RDS, DynamoDB, ElastiCache     | Performance, backups, capacity         |
| **Networking**   | VPC, ELB, CloudFront, Route53  | Configuration, traffic, DNS            |
| **Security**     | IAM, KMS, Security Groups      | Permissions, keys, access rules        |
| **Monitoring**   | CloudWatch, CloudTrail, Config | Metrics, logs, compliance              |
| **Analytics**    | Athena, EMR, Kinesis           | Data processing, streaming             |
| **Management**   | Organizations, Cost Explorer   | Account structure, billing             |

## Security Architecture

### Cross-Account IAM Roles

Security-first design using AWS best practices:

{% stepper %}
{% step %}
**Create IAM Role** Set up a cross-account role in your AWS account with read-only permissions.
{% endstep %}

{% step %}
**Configure Trust Policy** Establish trust relationship with DarcyIQ's AWS account using External ID.
{% endstep %}

{% step %}
**Define Permissions** Grant specific read permissions for services you want to query.
{% endstep %}

{% step %}
**External ID Protection** Use mandatory External ID to prevent confused deputy attacks.
{% endstep %}

{% step %}
**Assume Role Access** DarcyIQ assumes your role only when you make queries.
{% endstep %}
{% endstepper %}

### Security Features

| Security Control     | Implementation                    | Benefit                      |
| -------------------- | --------------------------------- | ---------------------------- |
| **Read-Only Access** | No write permissions granted      | Zero modification risk       |
| **External ID**      | Required unique identifier        | Prevents unauthorized access |
| **Session Limits**   | Temporary credentials with expiry | Minimized exposure           |
| **Audit Logging**    | CloudTrail tracks all API calls   | Complete audit trail         |
| **Encryption**       | TLS for all API communications    | Data protection in transit   |
| **Least Privilege**  | Only necessary permissions        | Minimal access scope         |

## Setup Process

### Prerequisites

Before setting up the integration:

| Requirement         | Description                       | How to Verify         |
| ------------------- | --------------------------------- | --------------------- |
| **AWS Account**     | Active AWS account with resources | Log into AWS Console  |
| **IAM Permissions** | Ability to create IAM roles       | Check IAM dashboard   |
| **External ID**     | Unique identifier from DarcyIQ    | Provided during setup |
| **Trust Account**   | DarcyIQ's AWS account ID          | Provided during setup |

### Step-by-Step Configuration

#### 1. Create IAM Role

```json
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::DARCYIQ_ACCOUNT:root"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "sts:ExternalId": "YOUR_EXTERNAL_ID"
        }
      }
    }
  ]
}
```

#### 2. Attach Permissions Policy

```json
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:Describe*",
        "s3:List*",
        "s3:GetBucketPolicy",
        "s3:GetBucketEncryption",
        "rds:Describe*",
        "cloudwatch:GetMetric*",
        "ce:GetCostAndUsage",
        "organizations:List*",
        "support:DescribeTrustedAdvisor*"
      ],
      "Resource": "*"
    }
  ]
}
```

#### 3. Configure in DarcyIQ

1. Navigate to **Settings** → **Integrations** → **AWS API**
2. Enter your IAM Role ARN
3. Provide the External ID
4. Select AWS regions to query
5. Test the connection
6. Save configuration

### Multi-Account Setup

Configure access to multiple AWS accounts:

| Setup Type           | Configuration                      | Use Case                |
| -------------------- | ---------------------------------- | ----------------------- |
| **Single Role**      | One role with cross-account access | AWS Organizations setup |
| **Multiple Roles**   | Separate role per account          | Independent accounts    |
| **Delegated Access** | Organization-wide permissions      | Enterprise deployment   |

## Using AWS Integration

### Natural Language Queries

Ask questions about your AWS environment naturally:

#### Cost Queries

* "What's our total AWS spend this month?"
* "Show me the top 5 most expensive services"
* "Compare this month's costs to last month"
* "What's the daily average for EC2 costs?"
* "Show cost breakdown by tags"

#### Security Queries

* "List all public S3 buckets"
* "Show security groups with 0.0.0.0/0 access"
* "Find IAM users without MFA"
* "Which KMS keys are scheduled for deletion?"
* "Show unencrypted RDS instances"

#### Resource Queries

* "How many EC2 instances are running?"
* "List all Lambda functions in us-west-2"
* "Show EBS volumes over 1TB"
* "Find unused Elastic IPs"
* "What's the total S3 storage usage?"

#### Performance Queries

* "Which RDS instances have high CPU?"
* "Show Lambda functions with errors"
* "List EC2 instances with low utilization"
* "What's the CloudFront cache hit ratio?"
* "Show ELBs with unhealthy targets"

### Query Results

DarcyIQ presents AWS data in multiple formats:

| Format              | Use Case                 | Features                   |
| ------------------- | ------------------------ | -------------------------- |
| **Tables**          | Resource lists           | Sortable, filterable       |
| **Charts**          | Cost trends              | Interactive visualizations |
| **Summaries**       | Quick insights           | Key metrics highlighted    |
| **Recommendations** | Optimization suggestions | Actionable advice          |
| **Exports**         | Further analysis         | CSV, JSON formats          |

## Use Cases

### Cost Optimization

| Scenario               | Query Examples                          | Business Impact             |
| ---------------------- | --------------------------------------- | --------------------------- |
| **Monthly Review**     | "Show cost trends over 6 months"        | Identify spending patterns  |
| **Service Analysis**   | "Which service increased most in cost?" | Target optimization efforts |
| **Unused Resources**   | "Find resources with zero usage"        | Immediate cost savings      |
| **Reserved Instances** | "Show RI utilization rates"             | Maximize reservations       |
| **Tag Analysis**       | "Costs by department tag"               | Chargeback accuracy         |

### Security Compliance

| Scenario              | Query Examples                    | Business Impact        |
| --------------------- | --------------------------------- | ---------------------- |
| **Audit Preparation** | "List non-compliant resources"    | Faster audit readiness |
| **Access Review**     | "Show overly permissive policies" | Reduce attack surface  |
| **Encryption Audit**  | "Find unencrypted data stores"    | Data protection        |
| **Key Management**    | "List expiring certificates"      | Prevent outages        |
| **Network Security**  | "Review security group rules"     | Network hardening      |

### Capacity Planning

| Scenario               | Query Examples                  | Business Impact            |
| ---------------------- | ------------------------------- | -------------------------- |
| **Growth Analysis**    | "Show resource growth rate"     | Accurate forecasting       |
| **Utilization Review** | "Find underutilized instances"  | Right-sizing opportunities |
| **Scaling Patterns**   | "Peak usage times for services" | Optimize auto-scaling      |
| **Storage Planning**   | "S3 growth projection"          | Budget planning            |
| **Database Capacity**  | "RDS storage trending full"     | Prevent outages            |

### Operational Excellence

| Scenario                | Query Examples                     | Business Impact            |
| ----------------------- | ---------------------------------- | -------------------------- |
| **Health Check**        | "Show all unhealthy resources"     | Rapid issue identification |
| **Backup Verification** | "List resources without backups"   | Data protection            |
| **Update Status**       | "Find outdated AMIs"               | Security maintenance       |
| **Configuration Drift** | "Resources not matching standards" | Maintain consistency       |
| **Service Limits**      | "Services approaching limits"      | Prevent throttling         |

## Trusted Advisor Integration

Access AWS Trusted Advisor recommendations directly:

| Check Category        | Examples                       | Value                |
| --------------------- | ------------------------------ | -------------------- |
| **Cost Optimization** | Idle resources, unused volumes | Reduce waste         |
| **Performance**       | Provisioned IOPS usage         | Improve efficiency   |
| **Security**          | Security group rules, IAM use  | Enhance security     |
| **Fault Tolerance**   | Backup configuration, multi-AZ | Increase reliability |
| **Service Limits**    | Approaching limits             | Prevent issues       |

## Best Practices

### Query Optimization

| Practice            | Implementation             | Benefit              |
| ------------------- | -------------------------- | -------------------- |
| **Be Specific**     | Include service and region | Faster results       |
| **Use Filters**     | Add tag or date filters    | Relevant data        |
| **Regular Queries** | Schedule recurring checks  | Proactive management |
| **Save Queries**    | Create query library       | Consistency          |
| **Combine Queries** | Ask multi-part questions   | Comprehensive view   |

### Security Best Practices

1. **Minimal Permissions**: Only grant read access to needed services
2. **Regular Audits**: Review IAM role permissions quarterly
3. **Rotate External ID**: Change External ID periodically
4. **Monitor Access**: Use CloudTrail to track API calls
5. **Remove Unused Roles**: Delete roles for terminated integrations

### Cost Management

* **Daily Reviews**: Quick daily cost check queries
* **Anomaly Detection**: Set up alerts for unusual spending
* **Tag Everything**: Ensure resources are tagged for analysis
* **Regular Optimization**: Weekly unused resource checks
* **Forecast Regularly**: Monthly projection queries

## Limitations and Considerations

| Limitation           | Description                    | Workaround                          |
| -------------------- | ------------------------------ | ----------------------------------- |
| **API Rate Limits**  | AWS API throttling             | Cached results for repeated queries |
| **Cross-Region**     | Must query each region         | Use "all regions" option            |
| **Real-Time Data**   | Some metrics have delay        | Understand data freshness           |
| **Service Coverage** | Not all AWS services supported | Request additional services         |
| **Query Complexity** | Complex queries may take time  | Break into smaller queries          |

## Coming Soon

* **Automated Recommendations**: Proactive optimization suggestions
* **Custom Dashboards**: Save and share AWS dashboards
* **Alerting**: Notifications for AWS events and thresholds
* **Cost Predictions**: AI-powered spend forecasting
* **Remediation Actions**: One-click fixes for common issues
* **Multi-Cloud Support**: Extend to Azure and GCP

{% hint style="info" %}
**Pro Tip**: Start with read-only access to a single account, then expand to multiple accounts once you're comfortable with the integration. Use tags extensively to enable powerful cost allocation queries.
{% endhint %}


# AWS ACE Integration

DarcyIQ integrates with AWS ACE (AWS Customer Engagement) to automatically submit and track Partner Originated (PO) opportunities.

## Benefits

| Benefit                   | Description                                                 |
| ------------------------- | ----------------------------------------------------------- |
| **Automated Submissions** | Automatically detect and submit PO opportunities to AWS ACE |
| **Time Savings**          | Reduce PO submission time from minutes to seconds           |
| **Accuracy**              | Ensure all required information is properly submitted       |
| **Visibility**            | Track all submissions directly in your AWS ACE dashboard    |

## Required Credentials

To enable the AWS ACE integration, you'll need to provide:

1. **IAM User ID**
   * The user ID of your AWS IAM account with ACE access
2. **Access Key ID**
   * AWS Access Key ID for API authentication
3. **Secret Key**
   * AWS Secret Key for API authentication

## Setup Steps

1. **Create AWS ACE Credentials**
   * Log into your AWS Console
   * Navigate to IAM
   * Create or select a user with ACE access
   * Generate Access Key ID and Secret Key
2. **Configure in DarcyIQ**
   * Go to <https://app.darcyiq.com/user-configuration#integrations>
   * Select "AWS ACE Integration"
   * Enter your:
     * IAM User ID
     * Access Key ID
     * Secret Key
   * Save your configuration

## Automatic PO Detection

Once configured, DarcyIQ will:

* Monitor your activities for potential PO opportunities
* Automatically prepare submissions when opportunities are identified
* Submit to AWS ACE using your credentials
* Track submission status and notify you of updates


# AWS Bedrock LLM

Route Darcy's inference through your own AWS account using IAM credentials

DarcyIQ supports using your organization's AWS Bedrock credentials, giving you control over your AI infrastructure and costs.

{% hint style="info" %}
**Consider Bedrock Mantle instead.** [AWS Bedrock Mantle](/build/integration-overview/aws/bedrock-mantle-integration) is the newer way to bring your own models. It uses a scoped Bedrock API key rather than long-lived IAM credentials, and it lets you choose which model powers each of Darcy's workload tiers. Only one routing option can be active at a time.
{% endhint %}

## Benefits

| Benefit             | Description                                                                              |
| ------------------- | ---------------------------------------------------------------------------------------- |
| **Cost Control**    | All LLM consumption happens on your AWS account, providing direct visibility and control |
| **Load Management** | Scale your AI workloads independently based on your organization's needs                 |
| **Security**        | Keep all AI processing within your AWS security boundary                                 |

## How It Works

{% stepper %}
{% step %}
**Create IAM credentials** In your AWS account, create an access key pair with permission to invoke Bedrock models.
{% endstep %}

{% step %}
**Enable model access** In the AWS Console, request access to the Anthropic Claude models under **Amazon Bedrock → Model access** in the region you plan to use.
{% endstep %}

{% step %}
**Configure it in Darcy** Go to **Settings → Organization → Model Routing**, choose **AWS Bedrock**, and enter your access key, secret key, and region.
{% endstep %}

{% step %}
**Save** Darcy begins routing inference through your account. If a call to your account fails, Darcy falls back to its own managed models so your work isn't interrupted.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
Model routing is limited to organization administrators and owners, and it lives under the **Organization** settings tab rather than the integrations directory.
{% endhint %}

## Security Considerations

* All AI processing runs on your AWS infrastructure
* Data remains within your security boundary
* Compliance with your existing AWS security policies
* Full audit trail through AWS CloudTrail

## Related

* [AWS Bedrock Mantle](/build/integration-overview/aws/bedrock-mantle-integration) — bring your own models with per-tier model selection
* [Organization Management](/settings-and-configuration/organization-management) — the rest of your organization's settings


# AWS Bedrock Mantle

Run Darcy's inference on your own AWS account and pick the models behind each tier

Bedrock Mantle is Amazon's OpenAI/Anthropic-compatible inference engine. Connecting it points DarcyIQ at a Bedrock project in **your** AWS account, so every model call Darcy makes on your behalf is billed to you — and you choose which models do the work.

{% hint style="success" %}
This is the recommended way to bring your own models to DarcyIQ. Unlike the older [AWS Bedrock](/build/integration-overview/aws/aws-bedrock-integration) option, Mantle lets you pick a specific model for each of Darcy's three workload tiers.
{% endhint %}

## Before You Start

| Requirement     | Detail                                                               |
| --------------- | -------------------------------------------------------------------- |
| **Permissions** | Organization admin or owner                                          |
| **AWS region**  | `us-east-1`, `us-east-2`, or `us-west-2`                             |
| **AWS access**  | Rights to deploy a CloudFormation stack and create a Bedrock API key |

## Setup

{% stepper %}
{% step %}
**Deploy the CloudFormation template** In Darcy, go to **Settings → Organization → Model Routing**, choose **AWS Bedrock Mantle**, and click **Launch CloudFormation template**. The stack creates a Bedrock project in your account, tagged with DarcyIQ's AWS Partner ID so usage is attributed correctly.

Deploy it into one of the three supported regions above.
{% endstep %}

{% step %}
**Copy the Project ID** When the stack finishes, copy the **ProjectId** output. It looks like `proj_xxxxxxxx`.
{% endstep %}

{% step %}
**Create a Bedrock API key** In the AWS Console, go to **Amazon Bedrock → API keys** and create a key scoped to the project you just created.
{% endstep %}

{% step %}
**Connect it in Darcy** Back in **Model Routing → AWS Bedrock Mantle**, fill in the three fields and click **Connect**.

| Field                  | Value                                   |
| ---------------------- | --------------------------------------- |
| **Bedrock API Key**    | The bearer token you just created       |
| **AWS Region**         | The region hosting your project         |
| **Bedrock Project ID** | The `proj_` value from the stack output |
| {% endstep %}          |                                         |

{% step %}
**Choose your models** Under **Model selection**, pick a model for each tier and click **Save models**. Your choices apply to the whole organization.
{% endstep %}
{% endstepper %}

## Choosing Models for Each Tier

Darcy routes work to one of three tiers depending on what she's doing. You decide which model backs each one.

| Tier           | Used for                                           | Default              |
| -------------- | -------------------------------------------------- | -------------------- |
| **Smart**      | General chat, agents, and most everyday reasoning  | OpenAI GPT-5.6 Terra |
| **Fast**       | Quick tasks like titles, summaries, and enrichment | OpenAI GPT-5.6 Luna  |
| **Analytical** | Heavy analysis such as scoping and deep reasoning  | OpenAI GPT-5.6 Sol   |

### Available Models

| Model                          | Suited to         | Regions                  |
| ------------------------------ | ----------------- | ------------------------ |
| **OpenAI GPT-5.6 Sol**         | Analytical, Smart | `us-east-1`, `us-east-2` |
| **OpenAI GPT-5.6 Terra**       | Smart, Analytical | All supported regions    |
| **OpenAI GPT-5.6 Luna**        | Fast, Smart       | All supported regions    |
| **OpenAI GPT-5.5**             | Smart, Analytical | All supported regions    |
| **Anthropic Claude Opus 5**    | Analytical, Smart | All supported regions    |
| **Anthropic Claude Sonnet 5**  | Smart, Analytical | All supported regions    |
| **Anthropic Claude Haiku 4.5** | Fast, Smart       | All supported regions    |

{% hint style="info" %}
The dropdown for each tier only lists models that suit that workload and are available in your region. GPT-5.6 Sol, for example, won't appear if your project is in `us-west-2`.
{% endhint %}

Darcy handles the plumbing behind each choice — OpenAI models are called through Mantle's OpenAI-compatible endpoint and Claude models through its Anthropic-compatible one. You pick a model by name; there's nothing else to configure.

## What Changes Once You Connect

* **Inference is billed to your AWS account**, through your Bedrock project.
* **Darcy behaves the same.** Chat, agents, and every other feature work as before.
* **Your model choices apply organization-wide**, not per user.

{% hint style="warning" %}
**There is no fallback to DarcyIQ's models while Mantle is connected.** If your credentials expire, your key is revoked, or a model errors, the request fails rather than quietly running on our infrastructure. Bringing your own models means Darcy honors that boundary. If you need to fall back, disconnect the integration.
{% endhint %}

## One Routing Option at a Time

Mantle and the older [AWS Bedrock](/build/integration-overview/aws/aws-bedrock-integration) integration can't both be active. If Mantle is connected, the AWS Bedrock card shows as **Unavailable** with a note to disconnect Mantle first.

Disconnecting either one returns your organization to DarcyIQ's managed models.

## Troubleshooting

| Problem                                       | Cause and fix                                                                                                                                                                            |
| --------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Bedrock Mantle is not available in ...`      | Your project is in a region Darcy doesn't support. The CloudFormation template offers more regions than the integration accepts — redeploy into `us-east-1`, `us-east-2`, or `us-west-2` |
| **Model Routing isn't in my settings**        | It's limited to organization admins and owners                                                                                                                                           |
| **A model disappeared from the dropdown**     | It isn't offered in your project's region, or it isn't suited to that tier. Darcy falls back to the tier default                                                                         |
| **Requests started failing after connecting** | Check that your API key is valid and scoped to the project you entered. There's no automatic fallback while Mantle is active                                                             |
| **Can't find it in Integrations**             | Model routing lives under **Settings → Organization → Model Routing**, not the integrations directory                                                                                    |

## Related

* [AWS Bedrock](/build/integration-overview/aws/aws-bedrock-integration) — the earlier IAM-credential integration
* [Organization Management](/settings-and-configuration/organization-management) — the rest of your organization's settings


# PartnerAI

DarcyIQ's PartnerAI capabilities streamline and automate critical partnership processes, helping services companies maximize the value of their strategic partnerships.

{% hint style="success" %}
**Automate Partner Programs**: PartnerAI monitors your meetings, workflows, and project data to automatically identify and act on AWS partnership opportunities — so you never miss qualifying deals.
{% endhint %}

## Overview

PartnerAI sits at the intersection of your daily consulting work and AWS partner programs. Instead of manually reviewing every customer interaction to determine if it qualifies for partner programs, PartnerAI does this automatically using AI analysis.

| Feature                     | Capability                                                                                  | Business Impact                     |
| --------------------------- | ------------------------------------------------------------------------------------------- | ----------------------------------- |
| **Automated PO Detection**  | Intelligent analysis of meetings and workflows to identify Partner Originated opportunities | Never miss a qualifying opportunity |
| **ACE Auto-Submission**     | Direct submission to AWS ACE platform                                                       | Ensure timely deal registration     |
| **Funding Recommendations** | Identifies applicable AWS funding programs                                                  | Maximize available partner benefits |
| **Marketplace Management**  | Manage AWS Marketplace listings and offers                                                  | Streamlined product operations      |

## AWS Partnership Automation

Transform your AWS partnership management with automated opportunity identification and registration.

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td></td><td><a href="/files/Nj6hvejB4D41PdY22X2t">/files/Nj6hvejB4D41PdY22X2t</a></td></tr><tr><td></td><td><a href="/files/JQDqq6hSpzOMywgzC2sM">/files/JQDqq6hSpzOMywgzC2sM</a></td></tr></tbody></table>

### How PO Detection Works

{% stepper %}
{% step %}
**Intelligent Monitoring** PartnerAI continuously analyzes meeting transcripts, chat conversations, and workflow content for signals that indicate a Partner Originated opportunity.
{% endstep %}

{% step %}
**Criteria Matching** Identified opportunities are evaluated against AWS partnership criteria — including new workload migrations, service adoption, and customer commitment signals.
{% endstep %}

{% step %}
**Recommendation & Review** PartnerAI surfaces qualified opportunities with a confidence score and supporting evidence so you can review before submission.
{% endstep %}

{% step %}
**Streamlined Submission** Automatically prepares deal registration documentation and submits directly to the AWS ACE platform, validating requirements before processing.
{% endstep %}
{% endstepper %}

### What PartnerAI Looks For

| Signal Type                  | Examples                                   | Detection Method              |
| ---------------------------- | ------------------------------------------ | ----------------------------- |
| **Migration Intent**         | "Moving to AWS", "cloud migration project" | Meeting transcript analysis   |
| **New Workloads**            | "Deploying new application on AWS"         | Workflow and chat analysis    |
| **Service Adoption**         | Discussions of specific AWS services       | Keyword and context matching  |
| **Customer Commitment**      | Budget approvals, timeline discussions     | Sentiment and intent analysis |
| **Competitive Displacement** | Moving off competing platforms             | Contextual understanding      |

## PartnerAI Features

### ACE Dashboard

Manage your entire AWS ACE pipeline directly within DarcyIQ. Track opportunities, monitor win rates, and batch update deal stages from a unified dashboard.

| Capability           | Description                                                 |
| -------------------- | ----------------------------------------------------------- |
| **Pipeline View**    | All ACE opportunities in one place with real-time metrics   |
| **Smart Search**     | Find opportunities by stage, value, service, or custom tags |
| **Batch Operations** | Update multiple opportunities simultaneously                |
| **Automated Sync**   | Bidirectional sync with the AWS ACE platform                |

For full details, see [ACE Dashboard](/partner/ace-dashboard).

### AWS Funding Programs

DarcyIQ automatically reviews your projects and recommends applicable AWS funding programs — including MAP, Database Freedom, PoC credits, and more.

| Capability                 | Description                                        |
| -------------------------- | -------------------------------------------------- |
| **Automatic Analysis**     | AI reviews opportunities for funding eligibility   |
| **Program Matching**       | Identifies best-fit programs ranked by confidence  |
| **Application Assistance** | Generates funding justifications and documentation |
| **Tracking Dashboard**     | Monitor funding status and utilization             |

For full details, see [AWS Funding Programs](/partner/aws-funding).

### AWS Marketplace (Beta)

Manage your AWS Marketplace product listings and offers directly from DarcyIQ. Create, update, and monitor SaaS products, professional services, and more.

| Capability                | Description                                                      |
| ------------------------- | ---------------------------------------------------------------- |
| **Product Management**    | View and manage all marketplace listings across AWS accounts     |
| **Offer Creation**        | Create private and public offers for your products               |
| **AI Assistance**         | Use Darcy Chat for marketplace strategy and listing optimization |
| **Multi-Account Support** | Switch between AWS accounts seamlessly                           |

For full details, see [AWS Marketplace](/partner/aws-marketplace).

## Getting Started

### Prerequisites

| Requirement          | Details                                                                       |
| -------------------- | ----------------------------------------------------------------------------- |
| **AWS Integration**  | Connect your AWS account(s) under [Integrations](/build/integration-overview) |
| **ACE Access**       | Ensure your AWS partner account has ACE platform access                       |
| **Meetings Enabled** | Enable meeting recording for automatic PO detection                           |

### Enabling PartnerAI

1. Navigate to **Integrations** and connect your AWS account
2. Ensure the **AWS ACE Integration** is configured
3. PartnerAI will begin monitoring your meetings and workflows automatically
4. Review detected opportunities in the **ACE Dashboard**

## Best Practices

| Practice                              | Why It Matters                                                              |
| ------------------------------------- | --------------------------------------------------------------------------- |
| **Record all customer meetings**      | More data means more PO opportunities detected                              |
| **Keep ACE pipeline updated**         | Accurate data improves AI recommendations                                   |
| **Review PO suggestions promptly**    | Timely registration maximizes partner credit                                |
| **Use funding recommendations early** | Applying at qualification stage increases approval rates by 40%             |
| **Leverage Darcy Chat**               | Ask questions about your pipeline, funding options, or marketplace strategy |

{% hint style="info" %}
**Pro Tip**: PartnerAI works best when you have both meeting recording and AWS integrations enabled. The combination of real-time conversation analysis and pipeline data gives PartnerAI the most complete picture of your partnership opportunities.
{% endhint %}


# AWS Funding

DarcyIQ provides an AI-powered AWS Funding Recommendation system that helps partners identify, stack, and calculate eligible AWS funding across programs. The engine is **data-driven and configuration-based** — new programs can be added without requiring a new DarcyIQ deployment.

{% hint style="success" %}
**Smart Program Matching**: Enter your customer's project details (or paste an AWS Calculator URL) and DarcyIQ will identify which programs apply, calculate funding across credits and cash, and recommend an optimized engagement pathway.
{% endhint %}

## Overview

The funding engine analyzes your customer projects against available AWS funding programs and returns ranked recommendations with calculated amounts and AI-generated reasoning.

| Feature                        | Capability                                                                                   | Business Impact                                   |
| ------------------------------ | -------------------------------------------------------------------------------------------- | ------------------------------------------------- |
| **Program Stacking**           | Identify which programs can be combined for a given opportunity, with dependency enforcement | Maximize total funding per deal                   |
| **Funding Calculation**        | Compute total eligible funding across credits and cash, with multi-formula support           | Accurate, detailed funding estimates              |
| **Discretionary Funding**      | Surface discretionary funding opportunities beyond standard program amounts                  | Unlock additional funding potential               |
| **SPI Add-On Funding**         | Calculate SPI uplift amounts per applicable program                                          | Capture bonus funding on top of base amounts      |
| **AWS Calculator Integration** | Paste a calculator.aws URL and auto-extract services and spend                               | Streamline data entry and improve accuracy        |
| **Program Matching**           | Hybrid matching using AWS API + configured rules                                             | Up-to-date, organization-specific recommendations |
| **AI Reasoning**               | LLM-powered explanations for each recommendation                                             | Clear rationale for program fit                   |
| **Application Tracking**       | Monitor submission status across programs                                                    | Keep applications on track                        |

## Supported Programs

The funding engine supports a broad catalog of AWS partner funding programs. Your organization's available programs depend on your AWS partner tier and what has been enabled by your admin.

{% hint style="info" %}
The program catalog is configuration-driven. New programs can be added to the engine without a platform update. To see which programs are available for your organization, run a funding analysis or contact your DarcyIQ admin.
{% endhint %}

## How It Works

### Funding Eligibility Engine

The engine uses a hybrid approach that combines real-time AWS Partner Central data with organization-specific eligibility rules.

{% stepper %}
{% step %}
**Enter Project Details** Provide customer information including segment, project type, estimated AWS spend/ARR, and technologies involved. Alternatively, paste an **AWS Calculator URL** and the engine will automatically extract services, costs, and annual spend.
{% endstep %}

{% step %}
**Program Discovery** DarcyIQ queries the AWS Partner Central Benefits API to discover currently available funding programs, then matches them to your organization's configured program rules.
{% endstep %}

{% step %}
**Eligibility & Stacking** Eligible programs are evaluated for stacking compatibility. The engine enforces dependency rules (e.g., Assess must precede Mobilize) and identifies which programs can be combined for maximum funding.
{% endstep %}

{% step %}
**Funding Calculation** For each eligible program, the engine calculates funding amounts broken down by **cash** and **credits**, including discretionary and SPI add-on funding where applicable.
{% endstep %}

{% step %}
**AI-Powered Recommendations** An LLM analyzes the matches and generates clear explanations for why each program fits your project, along with a recommended engagement pathway.
{% endstep %}
{% endstepper %}

### Input Criteria

| Criteria             | Options                                                            | How It's Used                                      |
| -------------------- | ------------------------------------------------------------------ | -------------------------------------------------- |
| **Customer Segment** | SMB, Enterprise, Greenfield, Partner, Startup                      | Filters programs by eligible segments              |
| **Project Type**     | Migration, Build, Modernize, General (can select multiple)         | Matches to program paths                           |
| **AWS Spend / ARR**  | Annual dollar amount (auto-extracted from Calculator URL)          | Applies spend threshold rules and funding formulas |
| **Technologies**     | List of technologies involved (auto-extracted from Calculator URL) | Matches technology-specific programs               |
| **Calculator URL**   | A calculator.aws estimate link                                     | Auto-extracts services, costs, and ARR             |

### What You Get Back

Each recommendation includes:

| Field                     | Description                                                                        |
| ------------------------- | ---------------------------------------------------------------------------------- |
| **Program Name**          | The AWS funding program (e.g., MAP Assess, POC, Well Architected Framework Review) |
| **Calculated Funding**    | Funding amount broken down by cash and credits                                     |
| **Discretionary Funding** | Whether additional discretionary funding may be available                          |
| **SPI Bonuses**           | Any SPI uplift amounts applicable to the program                                   |
| **Recommended Sequence**  | Optimal order to apply for stacked programs, with dependency enforcement           |
| **Engagement Pathway**    | Grouped program families with submission order and execution steps                 |
| **AI Reasoning**          | LLM-generated explanation of why this program matches                              |
| **Contract Requirements** | What's needed before applying                                                      |

### AWS Calculator Integration

If your customer has an AWS Calculator estimate, paste the URL directly into the funding engine. DarcyIQ will:

1. **Extract all AWS services** listed in the estimate
2. **Pull monthly and annual cost figures** to determine ARR
3. **Identify technologies** from the services for program matching
4. **Pre-fill the funding analysis** so you can run recommendations with a single click

This eliminates manual data entry and ensures the funding engine works with the same numbers your customer is planning around.

## Opportunity Funding Recommendations

When viewing an ACE opportunity, DarcyIQ can analyze the deal and recommend applicable funding programs based on the opportunity details.

| Feature                    | Description                                                                  |
| -------------------------- | ---------------------------------------------------------------------------- |
| **Automatic Analysis**     | Extracts segment, project type, spend, and technologies from the opportunity |
| **Segment Override**       | Manually adjust the segment if the auto-detection needs correction           |
| **Apply from Opportunity** | Jump directly into the application flow from a recommendation                |

## Application Tracking

The benefits dashboard lets you track the status of funding applications you've submitted.

| Status                 | Description                               |
| ---------------------- | ----------------------------------------- |
| **Draft**              | Application started but not yet submitted |
| **Pending Submission** | Ready to submit to AWS                    |
| **Submitted**          | Application sent to AWS Partner Central   |
| **Under Review**       | AWS is reviewing the application          |
| **Approved**           | Funding confirmed                         |
| **Action Required**    | Additional information needed             |
| **Rejected**           | Application was not approved              |

### Dashboard Features

| Feature              | Description                                           |
| -------------------- | ----------------------------------------------------- |
| **Application List** | View all benefit applications with status and details |
| **Search & Filter**  | Find applications by status or search term            |
| **Status Sync**      | Sync latest status from AWS Partner Central           |
| **Detail View**      | Click into any application for full details           |

## Getting Started

### Prerequisites

| Requirement                | Details                                                                                                                        |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| **AWS Integration**        | Connect your AWS account under [Integrations](/build/integration-overview)                                                     |
| **ACE Integration**        | Configure the [AWS ACE Integration](/build/integration-overview/aws/aws-ace-integration) for opportunity-level recommendations |
| **Partner Central Access** | Your AWS partner account must have Benefits API access                                                                         |

### Using the Funding Engine

1. Navigate to **AWS Funding** from the Partner navigation
2. Enter your customer's project details (segment, project type, ARR, technologies)
3. Click **Analyze** to get funding program recommendations
4. Review the matched programs, estimated funding, and AI reasoning
5. Apply for recommended programs through AWS Partner Central

### Getting Recommendations for an Opportunity

1. Open an opportunity in the **ACE Dashboard**
2. Navigate to the funding recommendations section
3. DarcyIQ will analyze the opportunity and suggest applicable programs
4. Optionally override the detected segment for more accurate results
5. Click **Apply** on any recommendation to begin the application

## Best Practices

| Practice                                | Why It Matters                                                                                                                |
| --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| **Paste the AWS Calculator URL**        | Auto-extracts services and spend — no manual data entry and more accurate results                                             |
| **Provide accurate spend estimates**    | Funding amounts are calculated based on ARR — accurate inputs yield better recommendations                                    |
| **Select all applicable project types** | Some projects qualify for multiple paths (e.g., Migration + Modernize) which unlocks more programs and stacking opportunities |
| **Review stacking recommendations**     | Combined programs often yield significantly more funding than individual applications                                         |
| **Check for discretionary funding**     | Programs marked with discretionary funding may offer additional amounts beyond the standard calculation                       |
| **Check recommendations early**         | Apply at the qualification stage for the best chance of approval                                                              |
| **Review AI reasoning**                 | The explanations help you understand and communicate why a program fits                                                       |

{% hint style="info" %}
**Pro Tip**: The funding engine supports program stacking with dependency enforcement. If your project qualifies for an Assess phase, completing it first may unlock Mobilize and Migrate programs with substantially higher funding — the engine handles this sequencing automatically.
{% endhint %}


# AWS ACE

Manage your AWS ACE (AWS Customer Engagement) pipeline directly within DarcyIQ. **Track opportunities, monitor win rates, and batch update deal stages** — all from a unified dashboard that syncs with AWS Partner Central.

{% hint style="success" %}
**Complete Pipeline Visibility**: See total opportunities, pipeline value, win rates, and close times at a glance while managing your AWS partner opportunities in one place.
{% endhint %}

## Overview

| Feature                     | Capability                                                      | Business Impact               |
| --------------------------- | --------------------------------------------------------------- | ----------------------------- |
| **Pipeline Metrics**        | Total opportunities, pipeline value, win rate, avg close time   | Data-driven decisions         |
| **Visual Analytics**        | Pipeline stage, revenue projection, industry & geography charts | Understand your portfolio     |
| **Opportunity Table**       | Search, filter, paginate, and manage all ACE opportunities      | Efficient pipeline management |
| **Batch Stage Updates**     | Update multiple opportunity stages at once                      | Faster pipeline reviews       |
| **Funding Recommendations** | AI-powered funding program matching per opportunity             | Maximize partner benefits     |
| **Darcy Chat**              | AI analysis of your dashboard data                              | Quick insights and reports    |

## Key Metrics

Four summary cards at the top of the dashboard:

| Metric                  | Description                              |
| ----------------------- | ---------------------------------------- |
| **Total Opportunities** | Number of opportunities in your pipeline |
| **Pipeline Value**      | Total dollar value of open opportunities |
| **Avg. Close Time**     | Average number of days to close a deal   |
| **Win Rate**            | Percentage of opportunities won          |

## Analytics Charts

### Pipeline by Stage

A bar chart showing the distribution of opportunities across pipeline stages and their associated values.

### Monthly Revenue Projection

A dual-series chart comparing:

* **Projected** — Revenue from Committed/Launched opportunities
* **Pipeline** — Revenue from opportunities in earlier stages

### Industry Distribution

Breakdown of opportunities by customer industry, showing count and value per industry.

### Geographic Distribution

Opportunities grouped by location, showing pipeline value, win rate, close rate, and opportunity count per region.

## Opportunities Table

### Columns

| Column             | Information                          |
| ------------------ | ------------------------------------ |
| **Customer**       | Company name and website             |
| **Industry**       | Customer industry                    |
| **Location**       | City and state/region                |
| **Stage**          | Current pipeline stage               |
| **Review Status**  | AWS review status                    |
| **Expected Spend** | Monthly/annual customer spend amount |
| **Close Date**     | Target close date                    |

### Search and Filters

| Filter            | Options                                                                                          |
| ----------------- | ------------------------------------------------------------------------------------------------ |
| **Search**        | Free-text search across opportunity name, customer, website, and industry                        |
| **Stage**         | Prospect, Qualified, Technical Validation, Business Validation, Committed, Launched, Closed Lost |
| **Review Status** | Pending Submission, Submitted, In review, Approved, Rejected, Action Required                    |
| **Date Range**    | Filter metrics by custom date range using the date picker                                        |

### Pagination

The table is paginated (25 opportunities per page) with navigation controls to browse through large pipelines.

## Batch Stage Updates

Select multiple opportunities and update their stage in bulk — useful during pipeline reviews.

{% stepper %}
{% step %}
**Select Opportunities** Use checkboxes to select one or more opportunities, or use "Select All" for the current page.
{% endstep %}

{% step %}
**Choose New Stage** From the batch actions menu, select the target stage (Prospect, Qualified, Technical Validation, Business Validation, Committed, Launched, or Closed Lost).
{% endstep %}

{% step %}
**Provide Required Details**

* For **Launched**: Optionally enter the customer's 12-digit AWS Account ID (can apply a common ID to all selected)
* For **Closed Lost**: Select a reason from the predefined list (e.g., Lost to Competitor, Price, Technical Limitations)
  {% endstep %}

{% step %}
**Confirm and Submit** Review the affected opportunities and confirm. Changes sync to AWS Partner Central.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
Batch stage updates require admin or owner permissions (create, update, and delete access on opportunities).
{% endhint %}

## Funding Recommendations

From the opportunities table, you can get AI-powered funding program recommendations for any opportunity.

| Feature                      | Description                                                      |
| ---------------------------- | ---------------------------------------------------------------- |
| **Per-Opportunity Analysis** | Click the funding icon on any opportunity to get recommendations |
| **Segment Override**         | Manually adjust the detected customer segment if needed          |
| **Apply from Table**         | Jump directly into a funding application from the recommendation |

For full details on the funding engine, see [AWS Funding Programs](/partner/aws-funding).

## Darcy Chat Integration

Click **Darcy Chat** to open an AI assistant with full context of your current dashboard — including metrics, pipeline distribution, industry data, geographic data, and revenue projections. Use it to ask questions about your pipeline or generate analysis.

| Example Question                                     | What You Get                                       |
| ---------------------------------------------------- | -------------------------------------------------- |
| "Summarize my pipeline health"                       | Overview of stage distribution and win rate trends |
| "Which industries have the highest pipeline value?"  | Breakdown from your industry distribution data     |
| "What opportunities should I focus on this quarter?" | Analysis based on close dates and deal values      |

## Getting Started

### Prerequisites

| Requirement                | Details                                                                                  |
| -------------------------- | ---------------------------------------------------------------------------------------- |
| **AWS ACE Integration**    | Configure the [AWS ACE Integration](/build/integration-overview/aws/aws-ace-integration) |
| **Partner Central Access** | Your AWS partner account must have Opportunities API access                              |

### Accessing the Dashboard

1. Navigate to the **Partner** section from the sidebar
2. Click **AWS ACE** to open the dashboard
3. The dashboard loads your pipeline metrics and opportunities automatically
4. Use the date range picker to adjust the time window for metrics

## Best Practices

| Practice                             | Why It Matters                                                                         |
| ------------------------------------ | -------------------------------------------------------------------------------------- |
| **Use batch updates during reviews** | Select all opportunities in a stage and move them together for faster pipeline hygiene |
| **Check funding recommendations**    | Opportunities may qualify for AWS funding programs — check before advancing deals      |
| **Filter by review status**          | Quickly find opportunities that need attention (Action Required, Rejected)             |
| **Use Darcy Chat for analysis**      | Get quick summaries instead of manually scanning charts and tables                     |

{% hint style="info" %}
**Pro Tip**: Use the date range picker to scope your metrics to the current quarter, then open Darcy Chat to get a quick pipeline health summary you can share with your team.
{% endhint %}


# AWS Marketplace (Beta)

{% hint style="warning" %}
**BETA**: AWS Marketplace management is currently in beta. Features and workflows may change as we refine the experience based on user feedback.
{% endhint %}

Manage your AWS Marketplace product listings and offers directly from DarcyIQ. **Create listings, generate offers, and monitor your marketplace portfolio** — all with AI assistance to optimize your go-to-market strategy.

## Overview

The AWS Marketplace page gives you a centralized view of all your marketplace products across connected AWS accounts, with tools to create, manage, and optimize listings without switching to the AWS Console.

| Feature                   | Capability                                 | Business Impact                  |
| ------------------------- | ------------------------------------------ | -------------------------------- |
| **Product Dashboard**     | View all listings with stats and filtering | Full portfolio visibility        |
| **Multi-Account Support** | Switch between AWS accounts                | Manage all accounts in one place |
| **Listing Creation**      | Create new marketplace products            | Faster time to market            |
| **Offer Management**      | Create private and public offers           | Streamlined deal flow            |
| **AI Chat Assistance**    | Darcy Chat for marketplace strategy        | Optimized listings and pricing   |

## Dashboard

### Statistics Panel

At-a-glance metrics for your marketplace portfolio:

| Metric                    | Description                             |
| ------------------------- | --------------------------------------- |
| **Total Products**        | Number of products across all types     |
| **Total Offers**          | Combined offers across all products     |
| **SaaS Products**         | Count of SaaS product listings          |
| **Professional Services** | Count of professional services products |

### Product Table

Browse and manage all marketplace entities with sortable columns:

| Column            | Information                              | Sortable |
| ----------------- | ---------------------------------------- | -------- |
| **Name**          | Product listing name                     | Yes      |
| **Type**          | Entity type (SaaS, AMI, Container, etc.) | Yes      |
| **Entity ID**     | Unique AWS Marketplace identifier        | Yes      |
| **Offers**        | Number of associated offers              | Yes      |
| **Visibility**    | Draft, Limited, or Public                | Yes      |
| **Last Modified** | Most recent update date                  | Yes      |

### Filtering and Search

| Filter          | Options                                               | Purpose                     |
| --------------- | ----------------------------------------------------- | --------------------------- |
| **AWS Account** | All connected accounts                                | Scope to a specific account |
| **Entity Type** | SaaS, AMI, Container, Data, ML, Professional Services | Filter by product category  |
| **Search**      | Free-text search                                      | Find by name, ID, or type   |

## Supported Product Types

| Type                              | Icon   | Description                      |
| --------------------------------- | ------ | -------------------------------- |
| **SaaS Product**                  | Blue   | Software-as-a-Service listings   |
| **AMI Product**                   | Green  | Amazon Machine Image products    |
| **Container Product**             | Purple | Container-based deployments      |
| **Data Product**                  | Orange | Data exchange products           |
| **Machine Learning Product**      | Pink   | ML model and algorithm listings  |
| **Professional Services Product** | Indigo | Consulting and services listings |

## Creating Listings

Create new AWS Marketplace product listings directly from DarcyIQ.

{% stepper %}
{% step %}
**Select Account** Choose the AWS account where you want to create the listing.
{% endstep %}

{% step %}
**Choose Product Type** Select the appropriate entity type (SaaS, AMI, Container, Professional Services, etc.).
{% endstep %}

{% step %}
**Configure Details** Fill in product name, description, and entity-specific configuration.
{% endstep %}

{% step %}
**Submit for Review** The listing is submitted to AWS Marketplace as a change set. New listings start in **Draft** visibility.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
New listings are created in **Draft** status. You must complete all required fields and submit for AWS review before the listing becomes publicly visible.
{% endhint %}

## Managing Offers

Create private or public offers for your published products.

| Offer Type        | Description                       | Use Case                         |
| ----------------- | --------------------------------- | -------------------------------- |
| **Public Offer**  | Available to all AWS customers    | General availability             |
| **Private Offer** | Targeted to specific AWS accounts | Custom pricing, enterprise deals |

### Creating an Offer

1. Find the product in the dashboard
2. Click the actions menu and select **Create Offer**
3. Configure offer terms, pricing, and buyer details
4. Submit the offer for processing

{% hint style="warning" %}
Offers can only be created for products that are **not** in Draft visibility. Publish your listing first before creating offers.
{% endhint %}

## AI Agent for Marketplace Management

DarcyIQ's AI Agent isn't just an advisor — it can directly manage your AWS Marketplace listings through natural conversation. Click **Darcy Chat** from the marketplace page or any listing detail view, and the agent has full context of the product you're viewing.

{% hint style="success" %}
**Talk, Don't Click**: Instead of navigating forms and fields, just tell the agent what you want. "Update the description to emphasize our SOC 2 compliance" or "Create a private offer for Acme Corp at $5,000/year" — and the agent executes it directly against the AWS Marketplace Catalog API.
{% endhint %}

### What the Agent Can Do

The marketplace agent is context-aware — when you open it from a listing detail page, it automatically knows which product you're working with.

| Capability               | What You Can Say                                             | What Happens                                                          |
| ------------------------ | ------------------------------------------------------------ | --------------------------------------------------------------------- |
| **Update Product Info**  | "Change the title to 'CloudMigrate Pro'"                     | Updates title, short/long descriptions, logo URL, or support info     |
| **Manage Categories**    | "Set categories to Data Analytics and Security"              | Updates AWS Marketplace categories (validates against official list)  |
| **Update Keywords**      | "Add keywords: migration, cloud, compliance, AWS"            | Sets search keywords for marketplace discoverability                  |
| **Edit Highlights**      | "Update highlights to focus on speed and security"           | Updates the product highlight bullets shown to buyers                 |
| **Configure Pricing**    | "Add a pricing dimension for 100 users at $500/month"        | Adds or updates pricing dimensions and terms                          |
| **Set Up Delivery**      | "Add a SaaS fulfillment URL"                                 | Configures delivery and fulfillment options                           |
| **Create Offers**        | "Create a private offer for account 123456789012 at $10,000" | Creates private offers with buyer details, pricing, and validity      |
| **Update Legal Terms**   | "Update the EULA for this offer"                             | Modifies legal terms on offers                                        |
| **Update Support Terms** | "Set support to 24/7 email with 4-hour response time"        | Configures support terms on offers                                    |
| **Configure Targeting**  | "Target this offer to specific AWS accounts"                 | Sets positive/negative targeting for offers                           |
| **Add Instance Types**   | "Add m5.large and c5.xlarge to the AMI product"              | Adds supported instance types (AMI products)                          |
| **Analyze Listing**      | "Analyze this listing and tell me what's missing"            | Runs a completeness audit with a score, issues, and recommendations   |
| **Check Change Status**  | "What's the status of my last update?"                       | Checks whether a change set succeeded, failed, or is still processing |
| **List Offers**          | "Show me all offers for this product"                        | Lists all associated offers with status and details                   |

### Example Workflows

**Preparing a new listing for publication:**

```
You: "Analyze this listing and tell me what I need to fix"
Agent: Shows missing fields, invalid categories, and a completeness score

You: "Write a compelling long description for a cloud migration SaaS tool"
Agent: Generates description and updates it directly

You: "Set categories to Migration and Security, add keywords for cloud migration"
Agent: Updates categories and keywords in one go

You: "Add 5 highlights focusing on speed, security, and compliance"
Agent: Creates and submits the highlights
```

**Creating a private offer for a customer:**

```
You: "Create a private offer for Acme Corp, account 987654321012, 
      at $25,000/year with a 60-day acceptance window"
Agent: Creates the offer and returns the change set ID

You: "Check the status of that change set"
Agent: Reports whether the offer is live or still processing
```

### Validation and Safety

The agent validates all inputs before submitting to AWS:

| Validation            | Rule                                                  |
| --------------------- | ----------------------------------------------------- |
| **Product Title**     | Max 120 characters, cannot be empty                   |
| **Short Description** | Max 200 characters                                    |
| **Long Description**  | Max 2,000 characters (supports Markdown)              |
| **Logo URL**          | Must be a public HTTPS URL                            |
| **Categories**        | 1–3 categories from the official AWS Marketplace list |
| **Keywords**          | At least 1 required                                   |
| **Highlights**        | At least 1 required                                   |

If something doesn't meet AWS requirements, the agent will tell you what to fix before submitting.

## Product Detail View

Click any product row to navigate to its detail page. The detail view is organized into tabs:

| Tab              | Capabilities                                                                                           |
| ---------------- | ------------------------------------------------------------------------------------------------------ |
| **Information**  | View and edit product title, descriptions, logo, categories, keywords, highlights, and support details |
| **Pricing**      | Configure pricing dimensions and terms                                                                 |
| **Fulfillment**  | Manage fulfillment URLs and delivery options                                                           |
| **Architecture** | Review and update architecture configuration                                                           |
| **Offers**       | View all offers associated with this product and create new ones                                       |

Darcy Chat is also available from the detail view with full context of the current listing.

## Multi-Account Management

If you have multiple AWS accounts connected, you can switch between them using the account selector at the top of the page. DarcyIQ remembers your last selected account.

| Feature                   | Behavior                                               |
| ------------------------- | ------------------------------------------------------ |
| **Account Selector**      | Dropdown showing all connected AWS accounts            |
| **Persistent Preference** | Your last selected account is remembered               |
| **Per-Account Data**      | Products and offers are scoped to the selected account |

## AWS Console Integration

For operations that require the full AWS Console, click **View in AWS Console** from any product's action menu to jump directly to that listing in the AWS Marketplace Management Portal.

## Getting Started

### Prerequisites

| Requirement                 | Details                                                                               |
| --------------------------- | ------------------------------------------------------------------------------------- |
| **AWS Account Integration** | Connect at least one AWS account under [Integrations](/build/integration-overview)    |
| **Marketplace Permissions** | Your AWS account must have AWS Marketplace Catalog API access                         |
| **IAM Permissions**         | Appropriate IAM role with `aws-marketplace:*` and `catalog-marketplace:*` permissions |

### Connecting Your Account

1. Navigate to **Integrations** > **AWS Ecosystem** > **AWS Accounts Integration**
2. Connect your AWS account with marketplace permissions
3. Visit the **AWS Marketplace** page from the Partner navigation
4. Select your account and start managing listings

## Best Practices

| Practice                        | Why It Matters                                                    |
| ------------------------------- | ----------------------------------------------------------------- |
| **Complete all listing fields** | Thorough listings get approved faster by AWS                      |
| **Use Darcy Chat for copy**     | AI-generated descriptions are optimized for marketplace search    |
| **Start with Draft**            | Perfect your listing before making it public                      |
| **Monitor change sets**         | Track submission status to catch issues early                     |
| **Create private offers first** | Test your pricing model with select customers before going public |

{% hint style="info" %}
**Pro Tip**: Use the Darcy Chat assistant to generate product descriptions and marketing copy. It has context on your full marketplace portfolio and can help you craft compelling, search-optimized listings.
{% endhint %}


# Activity Log

Never miss a critical follow-up or next step again. DarcyIQ's Activity Log **automatically identifies action items, milestones, and follow-ups from your meetings and workflows**, creating a intelligent task management system that learns from your patterns and ensures nothing falls through the cracks.

{% hint style="success" %}
**Zero Manual Entry**: DarcyIQ automatically extracts tasks from meetings, conversations, and workflows - no more manual note-taking or task creation.
{% endhint %}

## Overview

The Activity Log transforms unstructured conversations and workflows into structured, actionable tasks with automatic tracking and intelligent prioritization.

| Feature                      | Capability                                      | Business Impact                |
| ---------------------------- | ----------------------------------------------- | ------------------------------ |
| **Automatic Detection**      | AI identifies tasks from meetings and chats     | Never miss a commitment        |
| **Smart Categorization**     | Intelligently groups and prioritizes activities | Focus on what matters most     |
| **Natural Language Updates** | Update tasks through conversation               | No complex interfaces to learn |
| **Privacy-First Design**     | User-specific data isolation                    | Complete confidentiality       |
| **Workflow Integration**     | Seamlessly connects with all DarcyIQ features   | Unified task management        |

## How It Works

### Intelligent Task Detection

DarcyIQ uses advanced AI to identify actionable items from various sources:

{% stepper %}
{% step %}
**Content Analysis** AI continuously monitors meetings, chats, and workflows for action-oriented language and commitments.
{% endstep %}

{% step %}
**Pattern Recognition** Learns from your workflow patterns to better identify what constitutes a task for you specifically.
{% endstep %}

{% step %}
**Task Extraction** Automatically creates structured tasks with relevant details, deadlines, and context.
{% endstep %}

{% step %}
**Smart Prioritization** Uses context clues and your patterns to assign appropriate priority levels.
{% endstep %}

{% step %}
**Progress Tracking** Monitors task completion and sends reminders based on urgency and due dates.
{% endstep %}
{% endstepper %}

### Task Sources

The Activity Log captures tasks from multiple DarcyIQ features:

| Source              | Detection Method                           | Example Tasks                                |
| ------------------- | ------------------------------------------ | -------------------------------------------- |
| **Meetings**        | Analyzes transcripts for commitments       | "John will send the proposal by Friday"      |
| **Darcy Chat**      | Identifies action items in conversations   | "I need to review the architecture diagram"  |
| **Workflows**       | Extracts follow-ups from generated content | "Schedule follow-up meeting with client"     |
| **Email Summaries** | Finds commitments in email threads         | "Respond to RFP by month end"                |
| **Projects**        | Tracks project-specific deliverables       | "Complete security assessment for Acme Corp" |

## Activity Management

### Task Structure

Each activity in the log contains comprehensive information:

| Field             | Description                        | Auto-Population                |
| ----------------- | ---------------------------------- | ------------------------------ |
| **Title**         | Clear, actionable task description | ✅ Extracted from source        |
| **Description**   | Detailed context and requirements  | ✅ Generated from context       |
| **Due Date**      | Deadline for completion            | ✅ Detected from conversation   |
| **Priority**      | Urgency level (High/Medium/Low)    | ✅ AI-assigned based on context |
| **Source**        | Where the task originated          | ✅ Automatic tracking           |
| **Assignee**      | Person responsible                 | ✅ Identified from discussion   |
| **Status**        | Current progress state             | ✅ Updated via natural language |
| **Related Items** | Links to meetings, documents, etc. | ✅ Automatic association        |

### Natural Language Management

Update and manage tasks using conversational commands:

| Command Type      | Example                                  | Result               |
| ----------------- | ---------------------------------------- | -------------------- |
| **Status Update** | "Mark the proposal task as complete"     | Task marked done     |
| **Reschedule**    | "Move the client call to next Tuesday"   | Due date updated     |
| **Prioritize**    | "Make the security review high priority" | Priority changed     |
| **Delegate**      | "Assign the demo prep to Sarah"          | Assignee updated     |
| **Add Context**   | "Add note: waiting for legal approval"   | Description enhanced |

### Task Views and Filters

Organize your activities for maximum productivity:

| View            | Description               | Use Case              |
| --------------- | ------------------------- | --------------------- |
| **Today**       | Tasks due today           | Daily planning        |
| **This Week**   | Current week's activities | Weekly review         |
| **Overdue**     | Past-due items            | Catch-up focus        |
| **By Project**  | Project-grouped tasks     | Project management    |
| **By Priority** | Urgency-sorted view       | Critical item focus   |
| **By Source**   | Origin-based grouping     | Context understanding |

## Privacy and Security

### User-Specific Isolation

The Activity Log maintains complete privacy with robust data isolation:

| Privacy Feature           | Implementation                  | Benefit                  |
| ------------------------- | ------------------------------- | ------------------------ |
| **Personal Tasks**        | Only visible to task owner      | Complete confidentiality |
| **Encrypted Storage**     | End-to-end encryption           | Data security            |
| **No Sharing by Default** | Explicit sharing required       | Privacy first            |
| **Audit Trail**           | Track all access and changes    | Compliance ready         |
| **Data Retention**        | Configurable retention policies | Regulatory compliance    |

### Sharing and Collaboration

When appropriate, selectively share activities:

| Sharing Option    | Scope                                 | Use Case           |
| ----------------- | ------------------------------------- | ------------------ |
| **Project Team**  | Share project-related tasks           | Team coordination  |
| **Direct Share**  | Share specific tasks with individuals | Delegation         |
| **Report Export** | Generate status reports               | Management updates |
| **Calendar Sync** | Export to external calendars          | Unified scheduling |

## Intelligent Features

### Pattern Learning

The Activity Log becomes smarter over time:

| Learning Area          | Adaptation                           | Benefit                   |
| ---------------------- | ------------------------------------ | ------------------------- |
| **Task Types**         | Recognizes your common task patterns | Better detection accuracy |
| **Priority Patterns**  | Learns what you consider urgent      | Smarter prioritization    |
| **Completion Times**   | Understands your work velocity       | Realistic scheduling      |
| **Language Patterns**  | Adapts to your communication style   | Improved extraction       |
| **Workflow Sequences** | Identifies task dependencies         | Automatic task chaining   |

### Smart Notifications

Intelligent reminders that respect your workflow:

| Notification Type          | Trigger                    | Delivery Method        |
| -------------------------- | -------------------------- | ---------------------- |
| **Due Soon**               | Tasks approaching deadline | Email, in-app          |
| **Overdue Alert**          | Missed deadlines           | Priority notification  |
| **Daily Summary**          | Morning task digest        | Email summary          |
| **Weekly Review**          | Week-end summary           | Comprehensive report   |
| **Completion Celebration** | Milestone achievements     | Positive reinforcement |

### Predictive Assistance

AI-powered suggestions to optimize your productivity:

| Prediction Type                | Description                  | Example                            |
| ------------------------------ | ---------------------------- | ---------------------------------- |
| **Time Estimates**             | Suggests realistic durations | "Similar tasks took 2 hours"       |
| **Scheduling Recommendations** | Optimal time slots           | "Best done in morning focus time"  |
| **Dependency Detection**       | Identifies blockers          | "Complete review before this task" |
| **Resource Suggestions**       | Recommends helpful materials | "See last week's similar task"     |
| **Risk Identification**        | Flags potential issues       | "Deadline conflicts with holiday"  |

## Integration with DarcyIQ Features

### Meeting Integration

Seamless connection with meeting intelligence:

* **Automatic Extraction**: Tasks identified during meetings appear instantly
* **Context Preservation**: Links to meeting recording and transcript
* **Follow-up Tracking**: Ensures meeting commitments are fulfilled
* **Attendee Association**: Automatically assigns tasks to meeting participants

### Workflow Integration

Tasks generated from automated workflows:

* **Output Tasks**: Workflows can create follow-up tasks
* **Approval Requests**: Track required approvals
* **Review Cycles**: Manage document review processes
* **Deployment Tasks**: Track implementation activities

### Project Integration

Project-specific task management:

* **Project Association**: Tasks automatically linked to relevant projects
* **Milestone Tracking**: Monitor project-critical activities
* **Team Visibility**: Share project tasks with team members
* **Progress Reporting**: Generate project status from task completion

## Use Cases

### Sales and Business Development

| Scenario                   | Activity Log Function          | Business Value                      |
| -------------------------- | ------------------------------ | ----------------------------------- |
| **Opportunity Management** | Track all prospect follow-ups  | Never lose a deal to poor follow-up |
| **Proposal Deadlines**     | Monitor RFP response dates     | Meet all submission deadlines       |
| **Customer Commitments**   | Track promises made to clients | Build trust through reliability     |
| **Pipeline Activities**    | Manage sales stage transitions | Accelerate deal velocity            |

### Consulting and Delivery

| Scenario                | Activity Log Function           | Business Value            |
| ----------------------- | ------------------------------- | ------------------------- |
| **Client Deliverables** | Track all promised outputs      | Ensure on-time delivery   |
| **Action Items**        | Manage meeting follow-ups       | Maintain project momentum |
| **Risk Mitigation**     | Monitor critical dependencies   | Prevent project delays    |
| **Stakeholder Updates** | Schedule regular communications | Keep clients informed     |

### Internal Operations

| Scenario                  | Activity Log Function           | Business Value               |
| ------------------------- | ------------------------------- | ---------------------------- |
| **Team Coordination**     | Track cross-functional tasks    | Improve collaboration        |
| **Process Improvement**   | Monitor improvement initiatives | Drive operational excellence |
| **Compliance Activities** | Track regulatory requirements   | Ensure compliance            |
| **Performance Reviews**   | Document accomplishments        | Support career development   |

## Best Practices

### Effective Task Management

1. **Review Daily**: Start each day reviewing your Activity Log
2. **Update Regularly**: Keep task status current through natural language
3. **Set Realistic Dates**: Use AI suggestions for accurate scheduling
4. **Prioritize Ruthlessly**: Focus on high-impact activities
5. **Complete or Delegate**: Don't let tasks linger indefinitely

### Maximizing AI Detection

| Strategy               | Implementation                    | Result                |
| ---------------------- | --------------------------------- | --------------------- |
| **Clear Language**     | Use action verbs in meetings      | Better task detection |
| **Specific Deadlines** | Mention dates explicitly          | Accurate due dates    |
| **Name Assignments**   | Say who's responsible             | Proper task routing   |
| **Context Inclusion**  | Provide background in discussions | Richer task details   |
| **Priority Signals**   | Use urgency indicators            | Smart prioritization  |

### Team Collaboration

* **Shared Vocabulary**: Establish common terms for task types
* **Regular Reviews**: Schedule team task reviews
* **Clear Ownership**: Ensure every task has an owner
* **Progress Updates**: Communicate status changes
* **Celebration Culture**: Acknowledge completed milestones

## Analytics and Insights

Track your productivity with built-in analytics:

| Metric                    | Description                           | Insight               |
| ------------------------- | ------------------------------------- | --------------------- |
| **Completion Rate**       | Percentage of tasks completed on time | Personal productivity |
| **Task Velocity**         | Average tasks completed per period    | Work capacity         |
| **Priority Distribution** | Breakdown by urgency                  | Focus areas           |
| **Source Analysis**       | Where tasks originate                 | Workflow patterns     |
| **Time to Complete**      | Average task duration                 | Planning accuracy     |

## Coming Soon

* **Third-Party Integration**: Sync with Jira, Asana, Monday.com
* **Mobile App**: Full task management on mobile devices
* **Voice Commands**: Update tasks via voice
* **Team Analytics**: Organization-wide productivity insights
* **AI Automation**: Automatic task completion for routine items

{% hint style="info" %}
**Pro Tip**: Let the Activity Log run for a week before making adjustments. This allows the AI to learn your patterns and provide more accurate task detection and prioritization.
{% endhint %}


# Knowledge Bases

Knowledge Bases (KBs) are powerful repositories that allow your organization to provide custom information to DarcyIQ, enabling more accurate and contextual responses in both chat interactions and workflows.

## Overview

* Organizations can create and maintain up to 5 distinct Knowledge Bases
* Each Knowledge Base can contain multiple Content Libraries
* Knowledge Bases are automatically accessible to all users within your organization through Darcy Chat
* In Workflows, Knowledge Bases can be selectively assigned to specific Agents

## Content Libraries

Content Libraries are collections within your Knowledge Base that can include various types of information sources:

### Supported Content Types

* Documents
* Web Pages (with continuous scraping)

### Features

* **Automatic Updates**: DarcyIQ continuously monitors and updates information from web-based sources
* **Document Processing**: Upload and process various document formats
* **Content Organization**: Group related information within dedicated libraries

## Using Knowledge Bases

### In Darcy Chat

* Knowledge Bases are automatically available to all organization users
* DarcyIQ references relevant information from your Knowledge Bases during conversations
* Provides more accurate, organization-specific responses

### In Workflows

* Knowledge Bases can be individually selected for specific Agents
* Customize which knowledge sources are available to different workflow processes
* Enable targeted information access based on workflow requirements

## Best Practices

1. **Content Organization**
   * Create separate Knowledge Bases for distinct subject areas
   * Group related content within the same Content Library
   * Regularly review and update content to maintain accuracy
2. **Web Source Management**
   * Choose reliable web sources for continuous scraping
   * Monitor scraped content quality
   * Update web source URLs as needed
3. **Access Management**
   * Plan Knowledge Base distribution across workflows
   * Review which Agents need access to specific Knowledge Bases
   * Regularly audit Knowledge Base usage and effectiveness


# User Configuration

Your profile, timezone, theme, connected accounts, and notification preferences

**Settings** is where your personal preferences live — who you are, what timezone you work in, which accounts you've connected, and what Darcy notifies you about. Open it from the user menu in the top navigation, or jump straight there with the [command menu](/core-features/command-menu).

The page is split into **Personal** settings, which only affect you, and **Organization** settings, which affect everyone in your org and require admin permissions.

## Appearance

DarcyIQ supports **light** and **dark** themes across the platform.

The theme switch is in the **user menu** in the top navigation, beside your name and email — a sun for light, a moon for dark. The change applies instantly, no reload needed.

{% hint style="info" %}
Your theme is remembered by the browser you're using, not by your account. Signing in on a different computer, or in a private window, starts you back on the light theme.
{% endhint %}

A few pages are intentionally always light: public story pages, public interview pages, and anything you export to PDF. Exports are captured in light mode so the file looks right when printed or shared, regardless of the theme you're using.

## Profile

The **Profile** tab holds your identity and personal preferences.

| Setting            | Notes                                                                        |
| ------------------ | ---------------------------------------------------------------------------- |
| **Name**           | How you appear to teammates across the platform                              |
| **Role**           | Your job role, chosen from a searchable list. Helps Darcy tailor suggestions |
| **Timezone**       | Drives when your scheduled work runs — see below                             |
| **Phone**          | Optional contact number                                                      |
| **Reset password** | Sends you through the password reset flow                                    |

Your organization and email address are shown here too, but they aren't editable from this page.

## Timezone

Your timezone tells Darcy when to run the work you schedule. Set it once and every schedule you create follows your local clock instead of UTC.

**Where to set it:**

* During **onboarding**, on the first step, where it's pre-filled from your browser
* Any time afterward, from the clock button on your **Profile** tab

Click the timezone button, choose **Edit**, and search the list — timezones use standard IANA names like `America/New_York` or `Europe/London`. If you've never set one, Darcy uses `America/New_York`.

**What it affects:**

* **Automation and agent schedules** — a job set for 9:00 AM runs at 9:00 AM where you are. The scheduler stores your timezone alongside the schedule and works out the right moment to run, including across daylight saving changes
* **Schedule descriptions** — summaries like *Once a day at 9:00 AM EST* are written in your timezone
* **Automation results** — result cards show the timezone alongside the timestamp

{% hint style="info" %}
Your timezone is saved to your account, so it applies everywhere you sign in. Note that it governs *scheduling*; timestamps elsewhere in the product generally follow the clock on the device you're using, which only differs if you're travelling.
{% endhint %}

## Connected Accounts

Connect the accounts Darcy works on your behalf with — Google, Microsoft Outlook, Zoom, and others. Each entry shows whether it's currently connected and lets you connect or disconnect it.

For what each integration can do once connected, see [Integrations](/build/integration-overview).

{% hint style="info" %}
Integrations used to have their own settings tab. That link now takes you to the homepage and opens the integrations panel instead.
{% endhint %}

## Notifications

A grid of every event Darcy can tell you about, with a switch per delivery method. Cover workflow runs, meetings, lists, and lead lists — turn on the ones you want to hear about and leave the rest off.

## Meeting Recording

Controls what Darcy does with your calendar by default: whether she joins and records meetings automatically, and which meetings to leave alone. Exclusion rules are useful for keeping recurring internal standups or one-to-ones out of your recordings.

See [Meetings](/core-features/meeting-recording-and-transcription) for the full picture, and [Calendar Settings](/settings-and-configuration/user-configuration/calendar-settings) for calendar connections.

## API Keys

If you have permission to manage them, the **API Keys** tab lets you create and revoke keys for the public API. Keys are shown once at creation — copy it then, because you can't retrieve it later.

## Organization Settings

These tabs are visible to everyone but only editable by administrators.

| Tab                        | What it covers                                                                                                                                                                         |
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Organization**           | Org name and description, billing, model routing, meeting settings, and AWS partner configuration — see [Organization Management](/settings-and-configuration/organization-management) |
| **Brand Management**       | Your logos and favicons for light and dark themes, plus your organization's [design standards](/settings-and-configuration/design-md)                                                  |
| **Usage & Credits**        | Consumption summary and remaining credits                                                                                                                                              |
| **Knowledge Bases**        | Shared [knowledge bases](/additional-features/knowledge-bases) for your org                                                                                                            |
| **Users & Access Control** | Users, roles, and permissions — see [Groups & Access Control](/settings-and-configuration/groups)                                                                                      |
| **Customer Intelligence**  | Org-wide health scoring and thresholds — see [Health Score & Scoring Settings](/grow/customer-intelligence/settings-and-scoring)                                                       |
| **Chat Widgets**           | Embeddable chat widgets for your own sites                                                                                                                                             |

## Related

* [Home Dashboard](/core-features/home-dashboard) — arrange your homepage widgets
* [Events & Scheduling Agents](/build/automations) — where your timezone gets used
* [Organization Management](/settings-and-configuration/organization-management) — settings that apply to your whole organization


# Calendar Settings

Configure DarcyIQ's calendar integration to **automatically join and record your meetings** without manual intervention. Connect your Outlook or Gmail calendar and let Darcy handle the rest.

{% hint style="success" %}
**Zero Manual Work**: Once configured, Darcy automatically joins your meetings based on your preferences - no more forgetting to invite the bot or upload recordings.
{% endhint %}

## Overview

Calendar integration enables DarcyIQ to:

| Feature                    | Capability                   | Benefit              |
| -------------------------- | ---------------------------- | -------------------- |
| **Auto-Discovery**         | Finds all your meetings      | Never miss recording |
| **Smart Filtering**        | Join based on your rules     | Privacy control      |
| **Automatic Join**         | No manual invitation needed  | Seamless experience  |
| **Multi-Platform**         | Works with all meeting types | Universal coverage   |
| **Intelligent Processing** | Transcribe and analyze       | Instant insights     |

## Supported Calendars

### Email Providers

| Provider                   | Features                         | Requirements          |
| -------------------------- | -------------------------------- | --------------------- |
| **Gmail/Google Workspace** | Full integration, real-time sync | OAuth authentication  |
| **Outlook/Office 365**     | Complete support, Exchange sync  | OAuth or App password |
| **Exchange On-Premise**    | Corporate calendar access        | IMAP/CalDAV access    |

### Meeting Platforms

Darcy automatically detects and joins:

| Platform            | Auto-Join   | Recording   | Transcription |
| ------------------- | ----------- | ----------- | ------------- |
| **Zoom**            | ✅           | ✅           | ✅             |
| **Microsoft Teams** | ✅           | ✅           | ✅             |
| **Google Meet**     | ✅           | ✅           | ✅             |
| **Webex**           | Coming Soon | Coming Soon | Coming Soon   |
| **GoToMeeting**     | Coming Soon | Coming Soon | Coming Soon   |

{% hint style="info" %}
**Security & Permissions**: For a detailed breakdown of the OAuth scopes and permissions DarcyIQ requests from Google, Microsoft, and Zoom, see [Meeting & Calendar Integrations](/build/integration-overview/meeting-calendar-integrations).
{% endhint %}

## Configuration Process

### Step 1: Connect Your Calendar

{% stepper %}
{% step %}
**Navigate to Settings** Go to User Configuration → Calendar Settings
{% endstep %}

{% step %}
**Choose Provider** Select Gmail or Outlook
{% endstep %}

{% step %}
**Authenticate** Log in and grant calendar read permissions
{% endstep %}

{% step %}
**Verify Connection** Confirm your upcoming meetings appear
{% endstep %}
{% endstepper %}

### Step 2: Set Join Preferences

Configure when Darcy should join meetings:

| Setting              | Options                                 | Recommendation      |
| -------------------- | --------------------------------------- | ------------------- |
| **Meeting Types**    | All / Internal Only / External Only     | Start with Internal |
| **Your Role**        | All / Where I'm Host / Where I Accepted | Where I'm Host      |
| **Meeting Size**     | All / Exclude 1-on-1s / Groups Only     | All                 |
| **Time Window**      | Business Hours / All Day / Custom       | Business Hours      |
| **Advanced Filters** | Keywords, Attendees, Subjects           | As needed           |

### Step 3: Privacy Controls

Manage sensitive meetings:

| Control                | Function                       | Use Case                    |
| ---------------------- | ------------------------------ | --------------------------- |
| **Blacklist Keywords** | Never join if title contains   | "Private", "Personal", "HR" |
| **Whitelist Domains**  | Only join with these attendees | Your company domain         |
| **Excluded Calendars** | Skip specific calendars        | Personal calendar           |
| **Manual Override**    | Disable for specific meetings  | Ad-hoc privacy              |

## Join Rules Configuration

### Basic Rules

Simple configuration for most users:

```yaml
Basic Configuration:
  Join: "Internal meetings where I'm the host"
  Skip: "1-on-1s and meetings marked private"
  Time: "Monday-Friday, 8 AM - 6 PM"
```

### Advanced Rules

Complex rules for specific needs:

```yaml
Advanced Configuration:
  Rules:
    - Name: "Customer Calls"
      Condition: 
        - External attendees
        - I'm the host
        - Not flagged private
      Action: Always join
    
    - Name: "Team Standups"
      Condition:
        - Title contains "standup" or "daily"
        - Recurring meeting
        - Before 10 AM
      Action: Join and summarize only
    
    - Name: "Executive Meetings"
      Condition:
        - C-level attendees
        - I'm invited (not host)
      Action: Join with enhanced notes
```

### Conditional Logic

Create smart rules based on context:

| Condition Type       | Examples            | Action Options           |
| -------------------- | ------------------- | ------------------------ |
| **Attendee-based**   | If CEO attending    | Always join              |
| **Title-based**      | Contains "customer" | Join with sales template |
| **Time-based**       | Friday afternoons   | Skip social meetings     |
| **Duration-based**   | Longer than 1 hour  | Join with detailed notes |
| **Recurrence-based** | Weekly meetings     | Summarize trends         |

## Meeting Processing Options

### Recording Settings

| Setting                | Options                   | Impact                 |
| ---------------------- | ------------------------- | ---------------------- |
| **Audio Quality**      | Standard / High / Maximum | File size vs clarity   |
| **Speaker Separation** | On / Off                  | Individual attribution |
| **Background Noise**   | Filter / Include          | Transcription accuracy |
| **Language**           | Auto-detect / Specific    | Accuracy for accents   |

### Post-Meeting Actions

Configure what happens after meetings:

| Action                  | Options                      | Timing       |
| ----------------------- | ---------------------------- | ------------ |
| **Transcription**       | Immediate / Delayed / Manual | 0-15 minutes |
| **Summary Generation**  | Automatic / On-demand        | 5 minutes    |
| **Action Items**        | Extract automatically        | Immediate    |
| **Distribution**        | Email / Slack / None         | 10 minutes   |
| **Project Association** | Auto-link to projects        | Immediate    |
| **Tagging**             | Apply AutoTags               | 2 minutes    |

## Notification Preferences

### Meeting Notifications

| Event                  | Notification Options   | Delivery           |
| ---------------------- | ---------------------- | ------------------ |
| **Join Confirmation**  | When Darcy joins       | Email/In-app       |
| **Recording Complete** | When processing done   | Email/In-app       |
| **Summary Ready**      | When analysis complete | Email/Slack        |
| **Action Items**       | When tasks extracted   | Email/Activity Log |
| **Join Failure**       | If unable to join      | Email/SMS          |

### Summary Email Settings

Configure meeting summary emails:

```yaml
Email Configuration:
  Recipients: 
    - All attendees
    - Just me
    - Custom list
  
  Include:
    - Full transcript: No
    - Summary: Yes
    - Action items: Yes
    - Key decisions: Yes
    - Next meeting: Yes
  
  Format: HTML with branding
  Timing: Within 15 minutes
```

## Troubleshooting

### Common Issues

| Issue                      | Cause                      | Solution         |
| -------------------------- | -------------------------- | ---------------- |
| **Calendar not syncing**   | Authentication expired     | Re-authenticate  |
| **Meetings not appearing** | Filter too restrictive     | Check join rules |
| **Darcy not joining**      | Meeting URL not detected   | Add manually     |
| **Duplicate recordings**   | Multiple calendar entries  | Dedupe settings  |
| **Wrong timezone**         | Calendar timezone mismatch | Update timezone  |

### Authentication Issues

#### Gmail/Google

1. Check OAuth permissions
2. Verify 2FA not blocking
3. Enable "Less secure apps" if needed
4. Review Google Workspace policies

#### Outlook/Office 365

1. Verify app passwords if using 2FA
2. Check Exchange policies
3. Ensure calendar sharing enabled
4. Review conditional access policies

## Best Practices

### Initial Setup

1. **Start Conservative**: Begin with internal meetings only
2. **Test First**: Try with non-critical meetings
3. **Gradual Expansion**: Add external meetings after comfort
4. **Review Regularly**: Check join history weekly
5. **Adjust Rules**: Refine based on experience

### Ongoing Management

| Activity            | Frequency | Purpose                           |
| ------------------- | --------- | --------------------------------- |
| **Review Join Log** | Weekly    | Ensure correct behavior           |
| **Update Filters**  | Monthly   | Optimize rules                    |
| **Check Failures**  | Daily     | Address issues                    |
| **Audit Privacy**   | Weekly    | Verify sensitive meeting handling |
| **Clean History**   | Quarterly | Remove old recordings             |

### Team Coordination

* **Inform Attendees**: Let people know about recording
* **Set Expectations**: Explain how recordings are used
* **Share Benefits**: Highlight value of transcriptions
* **Respect Privacy**: Honor opt-out requests
* **Maintain Transparency**: Be open about AI usage

## Integration with Other Features

### Projects Integration

* Meetings automatically linked to relevant projects
* Transcripts stored in project knowledge base
* Action items added to project tasks

### Tags Integration

* AutoTag applies customer and topic tags
* Manual tags can be pre-configured
* Tags flow to action items

### Activity Log Integration

* Action items automatically created
* Follow-ups tracked
* Deadlines monitored

### Workflow Integration

* Trigger workflows from meeting completion
* Generate documents from transcripts
* Send summaries through workflows

## Security and Privacy

### Data Protection

| Aspect             | Implementation            | Compliance         |
| ------------------ | ------------------------- | ------------------ |
| **Encryption**     | End-to-end for recordings | SOC2, HIPAA        |
| **Storage**        | Encrypted at rest         | GDPR compliant     |
| **Access Control** | User-level permissions    | Role-based         |
| **Retention**      | Configurable policies     | Legal hold capable |
| **Audit Trail**    | Complete activity log     | Compliance ready   |

### Privacy Controls

* **Opt-Out Options**: Anyone can request exclusion
* **Delete Rights**: Remove recordings on request
* **Access Logs**: Track who viewed recordings
* **Consent Management**: Document permissions
* **Data Portability**: Export all data

## Advanced Features

### Custom Meeting Templates

Create templates for specific meeting types:

| Template            | Applied When              | Customization                      |
| ------------------- | ------------------------- | ---------------------------------- |
| **Sales Calls**     | External + "demo" keyword | BANT questions, pricing discussion |
| **Sprint Planning** | "sprint" in title         | Velocity, capacity, commitments    |
| **1-on-1s**         | Two attendees only        | Personal notes, growth discussions |
| **Board Meetings**  | Executive attendees       | Decisions, risks, approvals        |

### API Access

Programmatic calendar management:

```python
# Example: Update join rules via API
calendar_config = {
    "join_rules": {
        "internal_only": True,
        "require_host": True,
        "minimum_attendees": 2
    },
    "notifications": {
        "send_summary": True,
        "recipients": ["me", "attendees"]
    }
}
darcy.calendar.update_config(calendar_config)
```

## Coming Soon

* **Mobile Calendar Sync**: Full mobile app support
* **Multi-Calendar Support**: Multiple calendars per user
* **AI Scheduling**: Darcy suggests optimal meeting times
* **Prep Automation**: Pre-meeting briefs based on calendar
* **Smart Conflicts**: Intelligent handling of overlapping meetings
* **Voice Commands**: "Darcy, join my next meeting"

{% hint style="info" %}
**Pro Tip**: Start with conservative join rules (internal meetings where you're the host) and gradually expand as you become comfortable. Use the manual override feature to exclude sensitive meetings while maintaining automation for routine calls.
{% endhint %}


# Organization Management

The Organization Management page allows you to manage your organization's settings, team members, and various AWS Partner-related configurations. This guide will walk you through the main sections and their functionalities.

## Organization Settings

This section contains your basic organization information and settings. Note that only administrators and owners have permission to modify organization settings.

### Organization Details

* **Organization Name**: Your company's name as it appears in the system
* **Description**: A detailed description of your organization, including your specializations, services, and key focus areas

## Model Routing

By default Darcy runs inference on its own managed models. This section lets you point your organization at your own AWS account instead, so model usage is billed to you. Only administrators and owners can see or change it.

Two options are available, and only one can be active at a time:

* **AWS Bedrock Mantle**: The recommended option. Deploy a CloudFormation template to create a Bedrock project in your AWS account, connect it with a scoped API key, then choose which model powers each of Darcy's **Smart**, **Fast**, and **Analytical** tiers. See [AWS Bedrock Mantle](/build/integration-overview/aws/bedrock-mantle-integration).
* **AWS Bedrock**: The earlier integration, using IAM access keys. Models are fixed rather than selectable. See [AWS Bedrock Integration](/build/integration-overview/aws/aws-bedrock-integration).

## AWS Partner Settings

This section manages your AWS Partner-related configurations. Only administrators and owners can modify these settings.

### Available Features

1. **Automated PO Identification**
   * Toggle switch to enable/disable automatic Partner Opportunity identification
   * Allows use of AI/ML to identify Partner Organized Opportunities
   * Select the ACE solutions for default submissions
   * Option to enable automatic submissions
2. **WAFR Creator**
   * Enables automated creation and management of AWS Well-Architected Framework Reviews
   * Streamlines the review process with built-in automation
3. **APFP Funding**
   * Manages AWS Partner Funding Program application and management
   * Currently in development stage

## Document Templates

This section allows you to manage document templates for your organization. Only administrators and owners can upload or delete templates.

### Template Management

* Upload document templates (DOCX, PPTX) for organization-wide use
* Templates are available to all organization members
* Supported file types: Documents and Presentations

### Example Templates Includes:

Open a provided Template Example to see how to customize a Template to interact with DarcyIQ

Templates Provided:

* Word Docx Template
* Powerpoint PPT Template

## Organization Members

This section displays and manages your organization's team members.

### Member Management Features

* Search functionality to find specific members
* Filter members by role
* View active members list
* Member information displayed:
  * Name
  * Email
  * Role


# Design Standards

Set organization-wide design and branding guidelines that DarcyIQ applies to every conversation, agent, and workflow. **Define your brand once with a Design.md, and Darcy uses it everywhere — no more manual formatting passes.**

{% hint style="success" %}
**One source of truth for your brand**: Upload your brand guidelines as a Design.md and every document, presentation, or piece of content Darcy generates will follow your standards automatically.
{% endhint %}

## Overview

Design.md is an organization-wide setting written in Markdown that captures your design and branding requirements. DarcyIQ reads it whenever it produces output — chat responses, generated documents, presentations, charts, and agent deliverables — so the look, tone, and structure stay consistent with your brand.

| Capability                | Description                                                                            |
| ------------------------- | -------------------------------------------------------------------------------------- |
| **Organization-wide**     | One Design.md applies to every user, agent, and workflow in your organization          |
| **Markdown format**       | Plain Markdown — easy to write, easy to review, and easy to keep under change control  |
| **Applied automatically** | Darcy respects the Design.md across chat, agents, and scheduled runs without prompting |
| **Upload or create**      | Start with your existing brand guidelines or build a new one inside DarcyIQ            |

## What to Include

A good Design.md captures everything Darcy needs to know to produce on-brand output. Common sections include:

| Section                | Examples                                                         |
| ---------------------- | ---------------------------------------------------------------- |
| **Brand Identity**     | Brand name, mission, audience, key value propositions            |
| **Voice & Tone**       | Formal vs. conversational, when to use each, words to avoid      |
| **Typography**         | Heading conventions, casing rules, formatting preferences        |
| **Color Palette**      | Primary, secondary, and accent colors used in charts and visuals |
| **Document Structure** | Standard sections for proposals, reports, briefs, etc.           |
| **Naming Conventions** | Product names, capitalization, trademarks, abbreviations         |
| **Content Rules**      | Disclaimers, legal language, regional variations                 |
| **Visual Guidelines**  | Chart styling preferences, image orientation, layout principles  |

The format is flexible — anything you'd put in a brand-guidelines document can go here. Use headers, lists, and examples liberally so Darcy can follow them precisely.

## Setting Up Your Design.md

{% stepper %}
{% step %}
**Open Organization Settings** Navigate to **Settings → Organization Management** and find the **Design Standards** section.
{% endstep %}

{% step %}
**Create or Upload**

* **Create from scratch** — Start with a blank editor and write your guidelines directly
* **Upload an existing file** — Drag in a `.md` file with your current brand guidelines
  {% endstep %}

{% step %}
**Edit and Refine** Use the built-in Markdown editor to adjust headings, add examples, and tune the language. The editor previews your content as you write.
{% endstep %}

{% step %}
**Save** Click **Save** to publish the Design.md to your organization. It takes effect immediately for all users, agents, and scheduled runs.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
**Pro Tip**: Convert your existing brand guidelines PDF or doc into Markdown first, then paste it in. Darcy follows clearly structured rules better than long prose.
{% endhint %}

## Where Design.md Applies

Once saved, Design.md is loaded automatically across DarcyIQ. You don't need to reference it in your prompts — it's always active.

| Surface                 | How It's Used                                                             |
| ----------------------- | ------------------------------------------------------------------------- |
| **Chat**                | Drives tone, formatting, and structure of Darcy's responses and artifacts |
| **Agents**              | Layered on top of the agent's own role and instructions                   |
| **Workflows**           | Applied to outputs generated by automated workflow runs                   |
| **Scheduled Runs**      | Respected during background agent runs that produce reports or content    |
| **Generated Documents** | Documents, presentations, and battlecards inherit your conventions        |

## Editing and Versioning

Design.md is a living document — update it whenever your brand evolves.

* **Edit anytime**: Open the editor in Organization Management to make changes
* **Immediate rollout**: Saved changes apply to new conversations and runs as soon as they're saved
* **Admin-only**: Only organization administrators and owners can modify the Design.md

## Best Practices

### Writing Clear Guidelines

1. **Use structure**: Break rules into sections with clear headers — Darcy follows structured guidance more reliably than prose
2. **Include examples**: Show what good output looks like ("Use 'partner' not 'vendor' when describing relationships")
3. **Be specific about style**: "Headings in Title Case" beats "Use professional headings"
4. **List forbidden patterns**: Calling out what *not* to do is just as valuable as what to do

### Keeping It Maintainable

| Practice                   | Recommendation                                                                                 |
| -------------------------- | ---------------------------------------------------------------------------------------------- |
| **Start small**            | Begin with the rules that matter most and expand over time                                     |
| **Review periodically**    | Treat Design.md like any brand asset — review quarterly                                        |
| **Version control**        | Keep a copy in your team's repo or DAM so you can track changes alongside other brand assets   |
| **Test with real outputs** | After updates, ask Darcy to draft a representative deliverable to verify the rules are working |

### Pairing with Other Features

* **Skills**: Use [Skills](/core-features/skills) for task-specific instructions while Design.md governs brand-wide rules
* **Blueprints**: Pair Design.md with [Blueprints](/organize/blueprints) so generated documents inherit both your template and your brand
* **Agents**: Build [Agents](/core-features/agents) without re-stating brand rules — Design.md already covers them

{% hint style="info" %}
**Pro Tip**: If multiple sub-brands or product lines need different treatments, capture them as named sections inside the same Design.md. For example: *"For Acme Cloud content, use blue accents. For Acme Industrial content, use orange accents."*
{% endhint %}


# Groups & Access Control

Manage team access with groups and role-based permissions

Groups let you organize users into logical teams and assign roles and resource permissions in bulk. **Instead of managing access user by user, add someone to a group and they instantly inherit all of the group's roles and shared resources.**

{% hint style="success" %}
**Simplified Access Management**: Share a project with the "Engineering Team" group once, and every current and future member of that group gets access automatically.
{% endhint %}

## Overview

Groups are part of DarcyIQ's role-based access control (RBAC) system. They solve the problem of managing permissions at scale — when you have dozens of users and hundreds of resources, assigning access individually becomes unmanageable.

| Capability               | Description                                               | Business Impact                            |
| ------------------------ | --------------------------------------------------------- | ------------------------------------------ |
| **Bulk User Management** | Add or remove users from groups in one action             | Manage access for entire teams at once     |
| **Role Inheritance**     | Group members inherit all roles assigned to the group     | Consistent permissions across team members |
| **Resource Sharing**     | Share resources with a group instead of individual users  | One share action covers the entire team    |
| **Automatic Onboarding** | New group members instantly get all group permissions     | No manual permission setup for new hires   |
| **Clean Offboarding**    | Remove a user from a group to revoke all inherited access | Instant, complete access revocation        |
| **Everyone Group**       | System group that automatically includes all org members  | Set org-wide defaults effortlessly         |

## How Groups Work

```mermaid
graph TD
    A[Create Group] --> B[Add Members]
    B --> C[Assign Roles]
    C --> D[Share Resources]
    D --> E[Members Inherit<br/>Roles + Access]
    E --> F[New Member Joins]
    F --> E
```

When a user is added to a group, they automatically gain:

1. **Organization roles** assigned to the group (Admin, Member, etc.)
2. **Resource permissions** shared with the group (Editor or Viewer on specific projects, lists, etc.)

When a user is removed from a group, all inherited access is revoked immediately.

## The "Everyone" Group

Every organization has a system-managed **Everyone** group that automatically includes all organization members.

| Property             | Behavior                                                          |
| -------------------- | ----------------------------------------------------------------- |
| **Membership**       | Automatic — all org members are added, cannot be manually changed |
| **Roles**            | Cannot be assigned (prevents accidental org-wide escalation)      |
| **Resource Sharing** | Share a resource with Everyone to give the whole org access       |
| **Management**       | Cannot be renamed, deleted, or have members manually managed      |

{% hint style="info" %}
**Use the Everyone group** to share resources that the whole organization should see — like company-wide knowledge bases, shared templates, or reference lists.
{% endhint %}

## Creating and Managing Groups

### Creating a Group

{% stepper %}
{% step %}
**Navigate to Access Control** Go to **Settings → Access Control** and select the **Groups** tab.
{% endstep %}

{% step %}
**Click "Create Group"** Provide a name and optional description for the group.
{% endstep %}

{% step %}
**Add Members** Search for users in your organization and add them to the group.
{% endstep %}

{% step %}
**Assign Roles (Optional)** Assign organization-level roles to the group. All members will inherit these roles.
{% endstep %}
{% endstepper %}

### Managing Members

| Action            | How                                              | Effect                                               |
| ----------------- | ------------------------------------------------ | ---------------------------------------------------- |
| **Add Members**   | Search users and add individually or in batch    | Users immediately inherit group permissions          |
| **Remove Member** | Click remove on a group member                   | User loses all permissions inherited from this group |
| **View Members**  | Open the group detail to see all current members | Audit who has access                                 |

### Managing Roles

Assign organization-level roles to a group so all members share the same capabilities:

| Role       | Capabilities                                                  |
| ---------- | ------------------------------------------------------------- |
| **Admin**  | Full organizational management, settings, and user management |
| **Member** | Standard access to features and shared resources              |

{% hint style="warning" %}
**Roles assigned to a group apply to all members.** Be careful when assigning Admin roles to groups — every member of that group will gain administrator privileges.
{% endhint %}

## Sharing Resources with Groups

Instead of sharing a project, list, or agent with each user individually, share it with a group:

### How to Share with a Group

1. Open the resource you want to share (project, list, agent, etc.)
2. Click **Share**
3. Switch to the **Groups** tab
4. Search for and select the group
5. Choose the permission level

### Group Permission Levels

| Permission          | Capabilities                          | Use Case                    |
| ------------------- | ------------------------------------- | --------------------------- |
| **Resource Editor** | Read and write access to the resource | Team members who contribute |
| **Resource Viewer** | Read-only access to the resource      | Stakeholders who review     |

{% hint style="info" %}
**Resource Owner** is only assignable to individual users, not groups. The user who creates a resource is automatically its owner.
{% endhint %}

## Permission Evaluation

When a user attempts an action, DarcyIQ evaluates permissions in this order:

1. **Organization roles** — direct roles assigned to the user
2. **Group organization roles** — roles the user inherits from their groups
3. **Direct resource permissions** — permissions assigned to the user on a specific resource
4. **Group resource permissions** — resource permissions the user inherits from their groups
5. If no permission grants access, the action is denied

This means a user's effective permissions are the **union** of their direct permissions and all permissions inherited from every group they belong to.

## Who Can Manage Groups

| Action             | Required Permission       |
| ------------------ | ------------------------- |
| **View groups**    | Any organization member   |
| **Create groups**  | Owner, Admin, or Sysadmin |
| **Update groups**  | Owner, Admin, or Sysadmin |
| **Delete groups**  | Owner, Admin, or Sysadmin |
| **Manage members** | Owner, Admin, or Sysadmin |
| **Manage roles**   | Owner, Admin, or Sysadmin |

## Use Cases

### Team Onboarding

**Scenario**: A new consultant joins the delivery team

1. Add the user to the "Delivery Team" group
2. They instantly gain access to all shared projects, lists, and agents
3. No need to individually share dozens of resources

### Department Access Control

**Scenario**: The sales team needs access to all prospecting lists

1. Create a "Sales Team" group
2. Share all lead lists and prospect research with the group
3. New sales hires automatically get access when added to the group

### Client Engagement Teams

**Scenario**: Rotating team members across client projects

1. Create a group per client (e.g., "Acme Corp Team")
2. Share all Acme-related projects, lists, and knowledge bases with the group
3. Add or remove team members as the engagement evolves

### Organization-Wide Resources

**Scenario**: Company-wide knowledge base access

1. Share the knowledge base with the **Everyone** group
2. All current and future org members automatically have access

## Best Practices

| Practice                           | Recommendation                                                          |
| ---------------------------------- | ----------------------------------------------------------------------- |
| **Mirror your org structure**      | Create groups that reflect real teams — sales, engineering, delivery    |
| **Use descriptive names**          | "AWS Migration Team" is better than "Team A"                            |
| **Minimize role assignments**      | Assign the least-privileged role that allows the group to do their work |
| **Audit regularly**                | Review group membership quarterly to remove departed team members       |
| **Use Everyone sparingly**         | Only share truly org-wide resources with the Everyone group             |
| **Prefer groups over individuals** | Share resources with groups by default for easier long-term management  |

{% hint style="info" %}
**Pro Tip**: When someone leaves your organization, removing them from all groups immediately revokes their inherited access. Combine this with direct permission review for complete offboarding.
{% endhint %}

## Related Documentation

| Topic                       | Documentation                                                                  |
| --------------------------- | ------------------------------------------------------------------------------ |
| Managing organization users | [Organization Management](/settings-and-configuration/organization-management) |
| Sharing lists with groups   | [Lists](/organize/lists)                                                       |
| Agent sharing               | [Agents](/core-features/agents)                                                |
| Project permissions         | [Projects](/organize/projects)                                                 |


# AI Workflows Management

[Creating Efficient Workflows](/build/ai-workflows/creating-efficient-workflows)


# Integration Settings

Please see [Integrations](/build/integration-overview) for more details!


# Google Integration

{% hint style="info" %}
**This page has moved.** Google calendar integration documentation is now part of the unified Meeting & Calendar Integrations page.
{% endhint %}

For full details on Google permissions, scopes, and setup — along with Microsoft and Zoom integrations — see:

👉 [Meeting & Calendar Integrations](/build/integration-overview/meeting-calendar-integrations)


# Teams Integration

{% hint style="info" %}
**This page has moved.** Microsoft Teams and Outlook calendar integration documentation is now part of the unified Meeting & Calendar Integrations page.
{% endhint %}

For full details on Microsoft permissions, scopes, and setup — along with Google and Zoom integrations — see:

👉 [Meeting & Calendar Integrations](/build/integration-overview/meeting-calendar-integrations)


# Zoom Integration

{% hint style="info" %}
**This page has moved.** Zoom integration documentation is now part of the unified Meeting & Calendar Integrations page.
{% endhint %}

For full details on Zoom permissions, scopes, and setup — along with Google and Microsoft calendar integrations — see:

👉 [Meeting & Calendar Integrations](/build/integration-overview/meeting-calendar-integrations)


# Scoping Configuration


# Templates

Create and customize scoping templates for your organization

Templates define the structure and fields for your scoping estimates, ensuring consistency across your organization while allowing flexibility for different service offerings.

## Overview

Scoping templates act as blueprints for your estimates, defining:

* Custom metadata fields for the Overview & Scope section
* Level of Effort (LOE) table configuration
* Rate card integration for pricing
* Default settings for calculations

## Creating a Template

### Access Template Management

1. Navigate to **Settings** in the top navigation
2. Select **Organization** -> **Scoping Configuration** from the sidebar
3. Click on the **Templates** tab
4. Click **Create Template**

<figure><img src="/files/xUyeRgyTgN2uZayuYLe8" alt=""><figcaption></figcaption></figure>

### Basic Information

| Field                | Description                                         | Required |
| -------------------- | --------------------------------------------------- | -------- |
| **Template Name**    | Descriptive name (e.g., "Cloud Migration Template") | Yes      |
| **Default Template** | Check to set as organization default                | No       |

{% hint style="info" %}
**Default Templates** are automatically selected when creating new scoping estimates, making it faster for your team to get started.
{% endhint %}

## Overview & Scope Fields

Custom fields appear in the Overview & Scope tab of each estimate. These fields capture project-specific metadata beyond the built-in fields (Project Overview, In Scope, Out of Scope, Dependencies).

### Available Field Types

| Type                 | Use Case                                   | Configuration       |
| -------------------- | ------------------------------------------ | ------------------- |
| **Text Input**       | Short text (customer name, opportunity ID) | Single-line input   |
| **Text Area**        | Multi-line text (project description)      | Multi-line input    |
| **Rich Text Editor** | Formatted content (executive summary)      | WYSIWYG editor      |
| **Link (URL)**       | Web links (customer site, documentation)   | URL validation      |
| **Dropdown Select**  | Predefined choices (industry, region)      | Custom options list |

### Adding Custom Fields

1. In the template editor, select the **Overview & Scope Fields** tab
2. Click **Add Field**
3. Configure the field:
   * **Field Name**: Internal identifier (lowercase, underscores)
   * **Label**: Display name shown to users
   * **Type**: Select from available field types
   * **Required**: Check if field must be filled in
   * **Options**: For dropdown fields, add available choices

**Example Custom Fields:**

```
Field: customer_industry
Label: Customer Industry
Type: Dropdown Select
Options: Financial Services, Healthcare, Retail, Manufacturing, Technology
Required: Yes

Field: opportunity_link
Label: Salesforce Opportunity
Type: Link (URL)
Required: No

Field: executive_summary
Label: Executive Summary
Type: Rich Text Editor
Required: Yes
```

**\[Image Placeholder: Custom Fields Configuration]**

### Best Practices for Custom Fields

✅ **Do:**

* Use descriptive labels that are clear to all team members
* Mark truly required fields only
* Group related information logically
* Keep field names consistent across templates

❌ **Don't:**

* Create too many required fields (slows down scoping)
* Use technical jargon in labels
* Duplicate built-in fields
* Change field names frequently (impacts historical data)

## Level of Effort Configuration

The LOE configuration defines how your team estimates and prices work.

### Fixed Columns

Every template includes these standard columns:

* **Task Name**: Brief task identifier
* **Task Description**: Detailed task description
* **Type**: Task categorization (configurable)
* **Hours/Quantity**: Effort estimation (configurable)
* **Rate Card Column**: Role, Product, or Service (configurable)
* **Notes**: Additional context

### Hours vs. Quantity Mode

Choose how your team estimates effort:

| Mode         | Best For              | Example                                        |
| ------------ | --------------------- | ---------------------------------------------- |
| **Hours**    | Time-based services   | Consulting, professional services, development |
| **Quantity** | Count-based estimates | Product licenses, hardware units, user seats   |

### Rate Card Column Configuration

The rate card column is the most flexible part of your LOE table:

**Label Customization:**

* Default: "Role" (for professional services)
* Alternatives: "Product", "Service", "Resource Type", "SKU"

**Options Source:**

* **Rate Card**: Link an existing rate card to populate options automatically
* **Manual**: Define options directly in the template

#### Linking a Rate Card

When you link a rate card:

* ✅ Options are automatically populated from rate card items
* ✅ Pricing is automatically applied during calculations
* ✅ Updates to the rate card flow through to templates
* ✅ Maintains consistency across all estimates

#### Manual Options

If not using a rate card:

* Define each option individually
* Optionally set rates per option
* Rates are stored in the template (not centralized)

### Type Column Configuration

Configure how tasks are categorized:

| Preset        | Options Provided  | Use Case                       |
| ------------- | ----------------- | ------------------------------ |
| **Milestone** | Milestone, Task   | Traditional waterfall projects |
| **Agile**     | Epic, Story, Task | Agile/Scrum methodology        |
| **Custom**    | Your own options  | Unique organizational needs    |

**Custom Type Example:**

```
Phase, Activity, Deliverable
or
Requirement, Design, Build, Test, Deploy
```

### Pricing Defaults

Set organizational defaults for pricing calculations:

| Setting                       | Purpose                  | Typical Range |
| ----------------------------- | ------------------------ | ------------- |
| **Default Buffer Percentage** | ROM range calculation    | 15-25%        |
| **Default Project Duration**  | FTE calculation baseline | 8-16 weeks    |

{% hint style="warning" %}
**Buffer Percentage**: Higher buffers (20-25%) are appropriate for discovery or poorly-defined work. Lower buffers (10-15%) work for well-defined, repeatable projects.
{% endhint %}

## Template Preview

As you configure your template, the preview section shows how it will appear in actual scoping estimates.

**Preview Includes:**

* Overview field layout
* LOE column configuration
* Available options for dropdowns
* Pricing defaults

Use this to validate your template before saving.

**\[Image Placeholder: Template Preview Section]**

## Managing Templates

### Editing Templates

1. Navigate to **Settings** → **Scoping Configuration** → **Templates**
2. Find your template in the list
3. Click the **Edit** button
4. Make your changes
5. Click **Save Template**

{% hint style="info" %}
**Existing Estimates**: Editing a template does not change existing estimates created from that template. Only new estimates will use the updated configuration.
{% endhint %}

### Setting Default Templates

Only one template can be marked as default:

* New estimates automatically select the default template
* Users can still choose other templates during creation
* Change the default at any time in template settings

### Deleting Templates

To delete a template:

1. Click the **Delete** button on the template
2. Confirm the deletion
3. Template is removed (does not affect existing estimates)

{% hint style="danger" %}
**Warning**: Deleting a template cannot be undone. Existing estimates using the template will retain their structure but won't receive template updates.
{% endhint %}

## Template Strategies

### Single Template Approach

**Best for:** Small teams, single service offering

Create one comprehensive template with all possible fields. Users can leave unused fields blank.

**Pros:**

* Simple to manage
* Everyone uses the same structure
* Easy to compare estimates

**Cons:**

* May include irrelevant fields for some projects
* Can feel cluttered

### Multi-Template Approach

**Best for:** Multiple service offerings, diverse project types

Create specialized templates for each service line:

* Cloud Migration Template
* Data Platform Template
* Security Assessment Template
* Staff Augmentation Template

**Pros:**

* Focused, relevant fields only
* Better user experience
* Clearer pricing models per offering

**Cons:**

* More templates to maintain
* Need to choose correct template

### Hybrid Approach

**Best for:** Medium to large teams

Create a few broad templates covering major categories:

* Technical Consulting (cloud, data, security)
* Staff Augmentation
* Fixed-Price Projects

**Pros:**

* Balanced simplicity and specificity
* Manageable number of templates
* Flexibility within categories

**Cons:**

* Requires thoughtful categorization

## Common Template Examples

### Professional Services Template

**Use Case:** Consulting engagements billed by hours and roles

**Configuration:**

* Hours mode
* Rate card column labeled "Role"
* Rate card with: Solution Architect, Cloud Engineer, Project Manager, etc.
* Type column: Milestone/Task
* Custom fields: Customer Industry, Engagement Type, Opportunity Link
* 20% buffer, 12-week duration

***

### Product Implementation Template

**Use Case:** Software implementations with licenses and services

**Configuration:**

* Quantity mode for products, Hours mode for services (create two templates or use hours)
* Rate card column labeled "Product/Service"
* Rate card with: Software License, Training, Support Hours, etc.
* Type column: Custom (Discovery, Configuration, Training, Go-Live)
* Custom fields: Customer Size, Deployment Model, Integration Requirements
* 15% buffer, 8-week duration

***

### Fixed-Price Project Template

**Use Case:** Quoted projects with detailed phase breakdown

**Configuration:**

* Hours mode
* Rate card column labeled "Role"
* Standard rate card
* Type column: Custom (Phase, Milestone, Deliverable)
* Custom fields: Contract Type, Payment Terms, Milestone Dates
* 25% buffer, 16-week duration

## Integration with Rate Cards

Templates and rate cards work together to streamline pricing:

```
Rate Card (Organizational Pricing)
        ↓
Template (Service Offering Structure)
        ↓
Scoping Estimate (Specific Project)
```

**When to Update:**

* **Rate Card**: When pricing changes organization-wide
* **Template**: When service offering structure changes
* **Estimate**: For project-specific details only

Learn more: [Rate Cards Management](/settings-and-configuration/scoping-configuration/rate-cards)

## Frequently Asked Questions

**Q: Can I change a template after creating estimates with it?**\
A: Yes, but changes only affect new estimates. Existing estimates retain their original structure.

**Q: What happens if I delete a linked rate card?**\
A: The template will still function, but pricing won't be automatically calculated. You'll need to link a new rate card or switch to manual options.

**Q: Can team members use different templates?**\
A: Yes. While a default template streamlines creation, users can select any template when creating a new estimate.

**Q: How many custom fields should I add?**\
A: Start with 3-5 essential fields. Add more based on team feedback. Too many fields slow down the scoping process.

**Q: Can I copy a template?**\
A: Not currently, but you can create a new template and manually replicate the configuration.

**Q: Do templates affect the AI's suggestions?**\
A: Yes! Custom fields and task structure help the AI provide more relevant suggestions based on your organization's methodology and custom knowledge engine.

## Related Documentation

* [Rate Cards Management](/settings-and-configuration/scoping-configuration/rate-cards) - Configure organizational pricing
* [Historical Insights](/settings-and-configuration/scoping-configuration/historical-insights) - Analyze scoping patterns
* [Scoping & Estimates](/grow/scoping-estimates) - Learn about the scoping feature
* [Knowledge Bases](/additional-features/knowledge-bases) - Understand the knowledge engine system

***

**Ready to create your first template?** Navigate to **Settings** → **Scoping Configuration** → **Templates** and click **Create Template**.


# Rate Cards

Manage centralized pricing and rate information for scoping estimates

Rate cards provide centralized, organization-wide pricing information for your scoping estimates. By maintaining rate cards, you ensure consistent pricing across all estimates while making it easy to update rates as your business evolves.

## Overview

A rate card is a collection of billable items (roles, products, services) with their associated rates. When linked to scoping templates, rate cards automatically populate pricing calculations, eliminating manual rate entry and reducing errors.

<figure><img src="/files/Ncq8FkhWXOiGUlNcnwiM" alt=""><figcaption></figcaption></figure>

## Why Use Rate Cards?

| Benefit         | Description                                                 |
| --------------- | ----------------------------------------------------------- |
| **Consistency** | Same rates used across all estimates                        |
| **Efficiency**  | No manual rate entry per estimate                           |
| **Flexibility** | Update rates once, applies everywhere                       |
| **Accuracy**    | Reduce pricing errors and inconsistencies                   |
| **Margins**     | Track cost rates for profitability analysis                 |
| **Automation**  | Support for calculated fields (percentages, step functions) |

## Creating a Rate Card

### Access Rate Card Management

1. Navigate to **Settings** in the top navigation
2. Select **Organization -> Scoping Configuration** from the sidebar
3. Click on the **Rate Cards** tab
4. Click **Create Rate Card**

### Basic Information

| Field                 | Description                                               | Required |
| --------------------- | --------------------------------------------------------- | -------- |
| **Name**              | Descriptive name (e.g., "Standard Consulting Rates 2024") | Yes      |
| **Description**       | Optional details about this rate card                     | No       |
| **Default Rate Card** | Mark as organization default                              | No       |

{% hint style="success" %}
**Default Rate Cards** are automatically selected when creating new templates, streamlining your setup process.
{% endhint %}

## Rate Card Items

Each rate card contains multiple items representing billable roles, products, or services.

### Standard Rate Items

Standard items have fixed rates:

| Field            | Purpose                  | Example                 |
| ---------------- | ------------------------ | ----------------------- |
| **Name (Label)** | Display name             | "Senior Cloud Engineer" |
| **Rate**         | Billing rate             | $200                    |
| **Cost Rate**    | Internal cost (optional) | $150                    |
| **Unit**         | Rate unit                | "hour"                  |
| **Active**       | Enable/disable item      | ✓ Active                |

### Calculated Field Items

Calculated fields automatically compute rates based on project totals, perfect for overhead items like project management or buffers.

#### Fixed Percentage Calculation

Calculates a fixed percentage of the total project cost:

**Example: Project Management**

* Type: Fixed Percentage
* Percentage: 15%
* If project subtotal = $100,000, PM cost = $15,000

**Common Use Cases:**

* Project Management (10-15% of project)
* Quality Assurance (10-20% of development hours)
* Contingency/Buffer (5-10% of total)
* Administrative Overhead (5% of project)

#### Step Function Calculation

Applies different percentages based on project size thresholds:

**Example: Volume Discount**

```
Hours    | Percentage
0-100    | 10%
100-250  | 15%
250+     | 20%
```

For a 300-hour project, the rate would be 20%.

**Common Use Cases:**

* Volume discounts (larger projects get higher rates)
* Complexity premiums (more hours = more complex)
* Tiered support packages
* Scalable overhead rates

### Cost Rates for Margin Analysis

Add optional cost rates to track profitability:

```
Rate Item: Senior Cloud Engineer
- Billing Rate: $200/hour
- Cost Rate: $150/hour
- Margin per hour: $50 (25%)
```

Cost rates enable:

* Gross margin calculations
* Profitability analysis per estimate
* Resource optimization insights
* Pricing strategy decisions

{% hint style="info" %}
**Security Note**: Cost rates are never exposed in client-facing exports or sharing. They're internal-only for margin analysis.
{% endhint %}

## Managing Rate Card Items

### Adding Items

1. In the rate card editor, click **Add Item**
2. Enter the item name (e.g., "Cloud Architect")
3. Choose item type: Standard, Fixed Percentage, or Step Function
4. Enter rate and optional cost rate
5. Set the unit (typically "hour")
6. Ensure item is marked Active

### Editing Items

* Click the **Edit** button on any item
* Update rates, labels, or calculation settings
* Changes apply to future estimates using this rate card

### Activating/Deactivating Items

Use the **Active** toggle to hide items without deleting them:

* **Active**: Item appears in scoping estimates
* **Inactive**: Item hidden but data preserved

**When to Deactivate:**

* Seasonal rates (bring back later)
* Deprecated roles (historical data preserved)
* Temporary rate changes (switch active/inactive)

### Deleting Items

To permanently remove an item:

1. Click the **Delete** button
2. Confirm deletion
3. Item is removed from the rate card

{% hint style="danger" %}
**Warning**: Deleting rate card items doesn't affect existing estimates, but they won't receive future rate updates for that item.
{% endhint %}

## Rate Card Strategies

### Single Rate Card Approach

**Best for:** Small organizations, single service offering, simple pricing

**Structure:**

```
Standard Consulting Rates 2024
- Solution Architect: $250/hour
- Senior Cloud Engineer: $200/hour
- Cloud Engineer: $175/hour
- Data Engineer: $200/hour
- Project Manager: $175/hour
- QA Engineer: $150/hour
- Project Management (Calculated): 15%
```

**Pros:**

* Simple to manage
* Easy to update
* Consistent across organization

**Cons:**

* Doesn't account for different service tiers
* May not fit all engagement types

***

### Multi-Card Approach

**Best for:** Multiple service tiers, different engagement types, regional pricing

**Structure:**

```
Premium Consulting Rates
- Senior Solution Architect: $300/hour
- ...

Standard Consulting Rates
- Solution Architect: $250/hour
- ...

Staff Augmentation Rates
- Cloud Engineer: $150/hour
- ...

Product Implementation Rates
- Enterprise License: $50,000
- Professional Services: $200/hour
- ...
```

**Pros:**

* Flexible for different scenarios
* Clear pricing tiers
* Better margin control

**Cons:**

* More cards to maintain
* Need to select correct card

***

### Hybrid Approach

**Best for:** Medium organizations with some complexity

**Structure:**

```
Primary Rates (Default)
- All standard roles
- Standard calculated fields

Premium Rates
- Same roles, higher rates
- Used selectively for strategic accounts
```

**Pros:**

* Most work uses simple default
* Premium option available when needed
* Manageable complexity

**Cons:**

* Requires discipline in card selection

## Calculated Fields Deep Dive

### Fixed Percentage Examples

**Project Management (15%)**

```
Type: Fixed Percentage
Value: 15%
Application: Applied to total project cost
```

**Quality Assurance (20% of Dev Hours)**

```
Type: Fixed Percentage
Value: 20%
Application: Applied to development tasks only (filter in estimate)
```

**Administrative Overhead (5%)**

```
Type: Fixed Percentage
Value: 5%
Application: Applied to all billable hours
```

### Step Function Examples

**Volume Pricing**

```
Threshold | Percentage
0 hours   | 0%
100 hours | 5%
250 hours | 10%
500 hours | 15%

Interpretation: Projects get a percentage boost based on size
```

**Complexity Premium**

```
Threshold | Percentage
0 hours   | 10%
150 hours | 15%
300 hours | 20%

Interpretation: Larger/more complex projects warrant higher PM percentage
```

**Early-Bird Discount (Inverse)**

```
Threshold | Percentage
0 hours   | 10% (standard)
200 hours | 8% (discount for larger projects)
```

{% hint style="info" %}
**Pro Tip**: Step functions can represent discounts (decreasing percentages) or premiums (increasing percentages) based on your pricing strategy.
{% endhint %}

## Linking Rate Cards to Templates

Rate cards are linked at the template level:

1. Create or edit a scoping template
2. Navigate to **Level of Effort Configuration**
3. Select your rate card from the **Rate Card** dropdown
4. Rate card items automatically populate the role/product options
5. Save the template

**Benefits of Linking:**

* Automatic pricing in all estimates using that template
* Rate updates flow through automatically
* Consistent options across estimates
* Reduced setup time per estimate

Learn more: [Templates Configuration](/settings-and-configuration/scoping-configuration/templates)

**\[Image Placeholder: Rate Card Linked to Template]**

## Updating Rates

### Annual Rate Updates

Most organizations update rates annually:

1. **Option A - Edit Existing Card**
   * Edit the current rate card
   * Update all item rates
   * Changes apply to new estimates immediately
2. **Option B - Create New Card**
   * Create "Standard Rates 2025"
   * Copy items from previous year
   * Update rates
   * Switch templates to new card
   * Keep old card for historical reference

**Recommendation:** Option B provides better audit trail and allows side-by-side comparison.

### Mid-Year Adjustments

For rate changes mid-year:

1. Edit the existing rate card
2. Update affected items
3. New estimates use new rates
4. Existing estimates unchanged

{% hint style="warning" %}
**Best Practice**: Document rate changes in the rate card description field for future reference.
{% endhint %}

## Rate Card Organization Tips

### Naming Conventions

Use clear, descriptive names:

* ✅ "Standard Consulting Rates 2024"
* ✅ "Premium AWS Services Rates"
* ✅ "Staff Aug Rates - East Region"
* ❌ "Rates"
* ❌ "Card 1"
* ❌ "New Rate Card"

### Item Naming

Keep item names consistent:

* ✅ "Senior Cloud Engineer"
* ✅ "Cloud Engineer"
* ✅ "Junior Cloud Engineer"
* ❌ "Sr Cloud Eng"
* ❌ "Cloud Engineer (Senior)"

### Description Usage

Use the description field to document:

* Effective date range
* Approval status
* Target margin
* Special considerations
* Change history

**Example:**

```
Standard Consulting Rates 2024
Effective: January 1, 2024
Target Margin: 25%
Last Updated: Dec 15, 2023
Approved by: CFO
Notes: 8% increase over 2023 rates
```

## Frequently Asked Questions

**Q: What happens to existing estimates when I update a rate card?**\
A: Existing estimates are not affected. Only new estimates or re-calculations will use the updated rates.

**Q: Can I have different rates for different customers?**\
A: Create multiple rate cards (Standard, Premium, Strategic) and select the appropriate card when creating templates or estimates.

**Q: How do calculated fields work in pricing?**\
A: Calculated fields automatically add hours/cost based on the total. For example, a 15% PM field on a $100k project adds $15k automatically.

**Q: Can I delete a rate card that's linked to templates?**\
A: Yes, but templates will lose their pricing automation. You'll need to link a new rate card or switch to manual options.

**Q: What's the difference between Rate and Cost Rate?**\
A: Rate is what you bill clients. Cost Rate is your internal cost (salary, contractor cost, etc.) used for margin analysis.

**Q: How many items should a rate card have?**\
A: Only include items you actually use in estimates. Most rate cards have 5-15 items. More items make selection harder.

**Q: Can I import rates from a spreadsheet?**\
A: Not currently. Rate cards must be created through the UI.

**Q: Do inactive items disappear from existing estimates?**\
A: No. Inactive items are hidden from new selections but remain visible in existing estimates where they were used.

## Advanced Use Cases

### Multi-Regional Pricing

Create separate rate cards per region:

```
North America Rates
- Cloud Engineer: $200/hour

EMEA Rates
- Cloud Engineer: €180/hour

APAC Rates
- Cloud Engineer: $180/hour
```

### Service-Tier Pricing

Different rate cards for service levels:

```
Enterprise Support
- Premium Engineer: $300/hour
- 24/7 Availability Premium: 50%

Standard Support
- Engineer: $200/hour
- Business Hours Only
```

### Product + Services Bundling

Combine products and services in one rate card:

```
Cloud Platform Implementation
- Platform License: $50,000 (quantity)
- Solution Architect: $250/hour
- Cloud Engineer: $200/hour
- Training: $2,000/day
- Support Package: 15% (calculated)
```

## Related Documentation

* [Templates Configuration](/settings-and-configuration/scoping-configuration/templates) - Link rate cards to templates
* [Historical Insights](/settings-and-configuration/scoping-configuration/historical-insights) - Optimize rates based on demand patterns
* [Scoping & Estimates](/grow/scoping-estimates) - Use rate cards in scoping
* [Organization Management](/settings-and-configuration/organization-management) - Organization-wide settings

***

**Ready to create your first rate card?** Navigate to **Settings** → **Scoping Configuration** → **Rate Cards** and click **Create Rate Card**.


# Historical Insights

Analyze patterns and trends across your organization's scoping estimates

Historical Insights provides powerful analytics across all your organization's approved scoping estimates, helping you understand patterns in project types, industries, skillsets, and use cases. Use these insights to improve future estimates, identify service opportunities, and make data-driven business decisions.

## Overview

Every time you approve a scoping estimate, it's automatically analyzed and added to your organization's custom knowledge engine. The Historical Insights dashboard aggregates this data to reveal trends, correlations, and patterns that would be impossible to spot manually.

<figure><img src="/files/f0F0d3uNQ7QeauO8AVS9" alt=""><figcaption></figcaption></figure>

## Accessing Historical Insights

1. Navigate to **Scoping & Estimates** in the main navigation
2. Click the **Historical Analysis** button in the top right
3. The insights panel opens showing analytics across all approved estimates

{% hint style="info" %}
**Live Data**: Insights update in real-time as new estimates are approved, providing always-current intelligence about your organization's scoping patterns.
{% endhint %}

## Key Metrics

### Summary Statistics

The dashboard opens with high-level metrics across your selected date range:

| Metric              | Description                          | Use Case                             |
| ------------------- | ------------------------------------ | ------------------------------------ |
| **Total Estimates** | Number of approved scoping estimates | Measure team productivity and volume |
| **Unique Topics**   | Distinct analysis topics identified  | Understand breadth of your work      |
| **Industries**      | Number of industry verticals served  | Track market diversification         |
| **Skillsets**       | Unique skills/roles across estimates | Identify capability requirements     |
| **Use Cases**       | Different use cases or project types | Categorize service offerings         |

## Analytical Views

### 1. Use Case-Industry Matrix

**Purpose**: Identify which use cases are most relevant for which industries.

This heatmap shows the correlation between your service offerings (use cases) and the industries you serve. Each cell displays:

* **Project count**: Number of estimates matching that combination
* **Color intensity**: Darker colors indicate stronger correlations

**How to Use:**

* **Identify Opportunities**: Spot underserved industry-use case combinations
* **Specialize Services**: Focus on high-frequency combinations
* **Market Positioning**: Understand where you have the most experience
* **Sales Enablement**: Guide sales teams toward proven combinations

**Example Insights:**

```
"We've done 15 Cloud Migration projects for Financial Services
but only 2 for Healthcare - potential growth opportunity"

"Data Platform projects are strong across all industries
- this is a core competency we should market"
```

***

### 2. Skill-Industry Matrix

**Purpose**: Understand which skills are most needed in which industries.

This correlation matrix reveals hiring and staffing patterns:

* **Top 10 skills** vs. **all industries** you serve
* **Project counts** show how often each skill is needed per industry
* **Color coding** highlights skill demand patterns

**How to Use:**

* **Hiring Decisions**: Prioritize recruiting skills in-demand for your target industries
* **Training Programs**: Develop upskilling for high-frequency skill-industry pairs
* **Resource Planning**: Anticipate skill requirements for pipeline opportunities
* **Rate Card Optimization**: Price high-demand skills appropriately

**Example Insights:**

```
"Cloud Engineers are needed in all industries,
but especially Financial Services (25 projects)"

"Security Engineers are uniquely important in Healthcare
- we should maintain depth in this skill for that market"
```

***

### 3. Analysis Topics Distribution

**Purpose**: Identify the most common themes across your scoping work.

Topics are automatically extracted from your estimates using AI. The visualization shows:

* **Word Cloud**: Visual representation of topic frequency
* **Bar Chart**: Precise counts and percentages

**Common Topics Include:**

* Technical domains (cloud, data, security, infrastructure)
* Methodologies (agile, DevOps, migration)
* Technologies (AWS, Azure, Kubernetes, etc.)
* Business outcomes (cost optimization, modernization)

**How to Use:**

* **Content Marketing**: Create thought leadership on frequent topics
* **Service Packaging**: Bundle common topics into service offerings
* **Partnership Opportunities**: Identify vendor/technology partnerships
* **Knowledge Base**: Ensure documentation covers frequent topics

***

### 4. Industry Verticals Analysis

**Purpose**: Track which industries you serve most frequently.

Understand your market focus and diversification:

* **Top industries** by estimate count
* **Distribution percentages** across your portfolio
* **Trend identification** over time

**How to Use:**

* **Market Focus**: Double down on top industries or diversify
* **Industry Expertise**: Develop specialized offerings for frequent industries
* **Case Studies**: Create industry-specific success stories
* **Sales Targeting**: Align sales efforts with proven experience

**Example Distribution:**

```
Financial Services: 35%
Healthcare: 25%
Retail: 20%
Manufacturing: 15%
Technology: 5%
```

***

### 5. Skillsets & Roles Analysis

**Purpose**: Understand the skills and roles you most frequently estimate.

Track the human resources aspect of your scoping:

* **Most estimated roles** (Cloud Engineer, Solution Architect, etc.)
* **Frequency across all estimates**
* **Skill demand trends**

**How to Use:**

* **Capacity Planning**: Ensure you have enough capacity in high-demand roles
* **Hiring Roadmap**: Plan recruitment based on consistent demand
* **Contractor Relationships**: Maintain bench strength in frequent roles
* **Rate Card Updates**: Adjust pricing based on market demand for skills

***

### 6. Use Cases Analysis

**Purpose**: Categorize the types of projects you scope most often.

Common use case categories:

* Cloud Migration & Modernization
* Data Platform Implementation
* Security & Compliance
* Application Development
* Infrastructure as Code
* DevOps Transformation

**How to Use:**

* **Service Catalog**: Define standard offerings around frequent use cases
* **Template Optimization**: Create specialized templates for common use cases
* **Marketing Messaging**: Highlight experience in top use cases
* **Innovation**: Identify gaps in your service portfolio

## Date Range Filtering

Control the time period for your analysis:

**Default Range**: Last 6 months (provides recency while maintaining statistical significance)

**Custom Ranges:**

* **Last Month**: Short-term trends
* **Last Quarter**: Quarterly business reviews
* **Last 6 Months**: Medium-term patterns (recommended)
* **Last Year**: Annual analysis and planning
* **All Time**: Complete historical view
* **Custom**: Any specific date range

{% hint style="warning" %}
**Sample Size**: Insights become more reliable with larger sample sizes. For new organizations, wait until you have at least 10-15 approved estimates before drawing conclusions.
{% endhint %}

## Use Cases for Historical Insights

### 1. Strategic Planning

**Scenario**: Annual service portfolio review

**How to Use:**

1. Set date range to "Last 12 Months"
2. Review Use Case-Industry Matrix for market positioning
3. Identify underserved opportunities (low count combinations)
4. Identify core competencies (high count combinations)
5. Plan service development or sunset decisions

**Outcome**: Data-driven service roadmap for the next year

***

### 2. Sales Enablement

**Scenario**: Equipping sales team with win stories

**How to Use:**

1. Identify top Industry-Use Case combinations
2. Pull example estimates from these combinations
3. Create case studies and reference architectures
4. Guide sales conversations toward proven experience areas

**Outcome**: Higher win rates in target segments

***

### 3. Hiring & Resource Planning

**Scenario**: Building out your consulting team

**How to Use:**

1. Review Skill-Industry Matrix for demand patterns
2. Identify skills with consistent demand across multiple industries
3. Note skills specific to high-growth industries
4. Prioritize hiring based on actual scoping data

**Outcome**: Hire the right skills at the right time

***

### 4. Rate Card Optimization

**Scenario**: Annual rate card review

**How to Use:**

1. Identify most frequently scoped skills
2. Cross-reference with industry to see where demand is highest
3. Adjust rates for high-demand skills
4. Consider premium pricing for specialized skill-industry pairs

**Outcome**: Market-aligned pricing that reflects demand

***

### 5. Template & Process Improvement

**Scenario**: Making scoping more efficient

**How to Use:**

1. Identify top 3-5 Use Cases from analysis
2. Create specialized templates for each common use case
3. Pre-populate typical skills for each use case
4. Add industry-specific custom fields based on patterns

**Outcome**: Faster scoping with better consistency

***

### 6. Knowledge Engine Growth Monitoring

**Scenario**: Tracking organizational learning

**How to Use:**

1. Monitor "Total Estimates" metric over time
2. Watch "Unique Topics/Industries/Skills" growth
3. Celebrate milestones (50 estimates, 100 estimates, etc.)
4. Ensure diverse coverage across your service areas

**Outcome**: Confidence that your knowledge engine is comprehensive

## Understanding the Visualizations

### Word Clouds

* **Size**: Larger text = more frequent occurrence
* **Opacity**: Darker items = higher frequency
* **Count**: Number in parentheses shows exact project count
* **Interaction**: Click or hover for additional details

### Bar Charts

* **Bar Length**: Proportional to frequency
* **Percentage**: Shows distribution across all estimates
* **Count**: Absolute number of occurrences
* **Top 10**: Only shows highest-frequency items for clarity

### Heatmaps

* **Color Intensity**: Darker = more projects with that combination
* **Numbers**: Project count for that specific cell
* **Hover**: Detailed breakdown on hover
* **Empty Cells**: Light gray indicates no projects found

## Best Practices

### Getting Started

1. **Wait for Data**: Need at least 10-15 approved estimates for meaningful insights
2. **Use Defaults**: Start with 6-month view for balanced recency and sample size
3. **Explore Gradually**: Don't try to analyze everything at once
4. **Look for Surprises**: Unexpected patterns are often the most valuable

### Regular Review Cadence

**Monthly (Sales & Delivery Leaders)**

* Check recent Use Case-Industry trends
* Identify new opportunities in pipeline
* Monitor skill demand for staffing

**Quarterly (Leadership Team)**

* Strategic service portfolio review
* Hiring and capacity planning
* Rate card and pricing analysis
* Template and process improvements

**Annually (Executive Team)**

* Comprehensive market positioning analysis
* Service portfolio optimization
* Long-term capability development
* Strategic partnership opportunities

### Data Quality Tips

✅ **Do:**

* Approve estimates only when complete and accurate
* Use consistent terminology in scopes
* Fill in all custom fields for better categorization
* Review AI-generated tags for accuracy

❌ **Don't:**

* Approve test or draft estimates (pollutes data)
* Use inconsistent industry/use case naming
* Leave custom fields blank
* Ignore obviously wrong AI categorizations

## Interpreting Insights

### High Concentration Patterns

**What it means**: One or two combinations dominate your work

**Implications:**

* ✅ Strong market position in specific niche
* ✅ Efficiency from specialization
* ⚠️ Risk: Over-dependence on single market
* ⚠️ Limited growth if market saturates

**Actions:**

* Maintain excellence in core area
* Diversify gradually into adjacent segments
* Build case studies in specialty
* Monitor market health closely

### Broad Distribution Patterns

**What it means**: Work spread across many combinations

**Implications:**

* ✅ Diversified portfolio reduces risk
* ✅ Multiple growth paths available
* ⚠️ Potential lack of differentiation
* ⚠️ Harder to build deep expertise

**Actions:**

* Identify 2-3 focus areas to build depth
* Create specialized teams for top segments
* Develop tiered service offerings
* Strategic marketing in focus areas

### Emerging Patterns

**What it means**: New combinations appearing frequently in recent estimates

**Implications:**

* ✅ Early in a trend or opportunity
* ✅ Chance to build thought leadership
* ⚠️ May require new capabilities
* ⚠️ Market may not be proven yet

**Actions:**

* Invest in emerging areas selectively
* Create content to establish expertise
* Monitor for continued growth
* Be prepared to pivot if trend fades

## Frequently Asked Questions

**Q: How often is the data updated?**\
A: Insights update immediately when an estimate is approved. The dashboard reflects real-time data whenever you open it.

**Q: Why don't I see any data?**\
A: You need at least one approved estimate. Draft and In Review estimates are not included in historical insights.

**Q: Can I filter by specific team members or projects?**\
A: Not currently. Insights are organization-wide. Filtering options may be added in future releases.

**Q: What's the difference between Topics and Use Cases?**\
A: Topics are technical/domain themes (e.g., "cloud", "security"). Use Cases are business problems being solved (e.g., "Cloud Migration", "Security Assessment").

**Q: How are these categories determined?**\
A: AI analyzes the content of your approved scoping estimates to extract industries, topics, skills, and use cases. You can influence this by using consistent terminology in your scopes.

**Q: Can I customize the categories or tags?**\
A: Not currently. The AI automatically extracts categories. Ensuring consistent terminology in your estimates helps improve categorization accuracy.

**Q: Is this data visible to anyone outside my organization?**\
A: No. Historical insights are completely private to your organization. No data is shared across organizations.

## Related Documentation

* [Scoping & Estimates](/grow/scoping-estimates) - Main scoping feature
* [Templates](/settings-and-configuration/scoping-configuration/templates) - Configure templates based on insights
* [Rate Cards](/settings-and-configuration/scoping-configuration/rate-cards) - Optimize pricing based on demand patterns
* [Knowledge Bases](/additional-features/knowledge-bases) - Understand the knowledge engine

***

**Ready to analyze your scoping data?** Navigate to **Scoping & Estimates** and click **Historical Analysis** to explore your insights.


