Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.duvo.ai/llms.txt

Use this file to discover all available pages before exploring further.

Time to complete20–30 minutes
DifficultyBeginner to Intermediate
PrerequisitesSlack Workspace connection (team admin installs once)
You’ll buildAssignments your team can trigger from any enabled Slack channel by mentioning the Duvo app

Why Trigger Assignments from Slack?

The Problem: Most automation tools require team members to log into a separate interface, find the right assignment, fill in a form, and wait for results elsewhere. When work starts in Slack — an inbound request, an incident in the #ops channel, a question in #finance — switching contexts adds friction and slows teams down. The Solution: Mention the Duvo app in any enabled Slack channel with a request and supporting context. Duvo starts a Job immediately, posts live progress in the thread, and delivers results without anyone leaving Slack. What your team can achieve:
  • Pull on-demand reports and data summaries from shared channels without logging into a separate tool
  • Route incoming Slack requests (IT help, HR questions, ops tasks) automatically so nothing falls through the cracks
  • Kick off full multi-step workflows by mentioning Duvo in the thread where the request already lives
  • Review drafts, get feedback, or approve actions — all from the same Slack thread
  • Let anyone on the team trigger automations they would otherwise need a specialist to run

Before You Start

Make sure these are in place before using Slack-triggered assignments:
  • Slack Workspace connection installed — A team admin must install the Duvo app once for your workspace from the Connections page. See Slack Workspace.
  • Slack account linked — Each user goes to Settings > Notifications and links their personal Slack account so Duvo can reach them for Human-in-the-Loop requests.
  • Slack trigger enabled — On each assignment you want to trigger from Slack, open Setup and enable the Slack trigger.
  • Duvo invited to your channels — Invite the Duvo app to any channel where you plan to use it (/invite @Duvo). In direct messages, the bot is available automatically.

How It Works

Once set up, triggering an assignment is as simple as mentioning the Duvo app in a channel:
@Duvo pull this week's open support tickets from Zendesk and summarize them by priority
Duvo reads the full thread context — including any files, images, or messages from other Slack apps in the thread — and starts the Job. A live progress status appears in the thread and updates as the assignment works — it is a single indicator that changes as steps complete, not a stream of new messages, so it does not clutter the thread. If the assignment needs input at any point — to approve an action, answer a question, or handle an exception — it pauses and sends an interactive request as a Slack DM to the relevant user. You can approve or respond directly in Slack without opening any other tool. When the Job is done, results are posted back to the same thread. If you have more than one assignment with Slack triggers enabled, Duvo shows a selection menu when you mention @Duvo so you can pick which assignment to run. If only one assignment matches, it starts automatically. Channel message triggers work differently — they fire all matching assignments simultaneously from the same message rather than showing a menu. See Skip the mention with a channel message trigger in Tips below. Files and images attached to Slack messages are passed to the assignment automatically, so you can include a PDF, spreadsheet, or screenshot in your Slack message and the assignment receives it as context.

Use Case 1: On-Demand Reports from Shared Channels

Outcome: Any team member can ask for a report or data lookup in a shared channel and get results posted back — without logging into another tool, waiting for a scheduled run, or asking an analyst. This is useful for reports that come up irregularly: “what’s the status on these five accounts?”, “how many orders are stuck in pending?”, “can you pull the supplier lead times from our ERP?”.

Step 1: Create Your Assignment

  1. Click + Create Assignment from your dashboard.
  2. Select Use Assignment Builder.

Step 2: Write Your SOP

Write the SOP to expect a request as input and pull the right data based on what is asked:
You will receive a report request from a Slack message.

Read the request carefully and identify what data is being asked for.

Pull the relevant data from [your data source — e.g., Salesforce, Google Sheets, your ERP].

Return a clear, formatted summary in Slack. Use bullet points or a table for multi-row data.
Include the date range or filter criteria you used so the reader can verify the results.

If the request is ambiguous, ask a clarifying question before pulling data.
Adapt the data source to the system your team uses (Google Sheets, Salesforce, Snowflake, etc.).

Step 3: Enable the Slack Trigger

  1. Open your assignment and go to Setup.
  2. Enable the Slack trigger.
  3. Save.

Step 4: Add Connections

Under Connections, enable the connection to your data source — for example:
  • Google Sheets — for spreadsheet-based data
  • Salesforce — for CRM records
  • Snowflake — for warehouse queries

Expected Results

  • A team member mentions Duvo with a report request in any enabled channel
  • A live progress status appears in the thread and updates while the Job runs, showing what the assignment is currently doing
  • Results appear in the thread within a few minutes, formatted and ready to share

Use Case 2: Request Intake and Routing in Shared Channels

Outcome: Requests that arrive in shared Slack channels — IT help, HR questions, ops tasks, finance approvals — are read, categorized, and routed to the right person or queue automatically. Nothing falls through the cracks and the channel stays organized. This removes the need for a dedicated person to watch a shared channel and manually triage each message.

Step 1: Create Your Assignment

  1. Click + Create Assignment from your dashboard.
  2. Select Use Assignment Builder.

Step 2: Write Your SOP

Adapt the categories and routing destinations to your team’s workflow:
You will receive a request from a Slack message. The message may describe an IT issue,
an HR question, an operations request, a finance approval, or something else.

Classify the request into one of these categories:
- IT: hardware, software, access, passwords, or system issues
- HR: leave, onboarding, benefits, or policy questions
- Finance: invoices, expenses, approvals, or payment queries
- Ops: facilities, supplies, logistics, or vendor questions
- Other: anything that does not fit the above

Then take the following actions:

For IT requests:
- Post a reply in the thread: "Got it — I've logged this with the IT team. Ticket created."
- Create a ticket in [your ticketing system] with the request title, description, and the Slack user's name.

For HR requests:
- Post a reply: "Logged this with HR. Someone will follow up within 1 business day."
- Send a direct message to [HR contact's Slack handle] with the request details.

For Finance requests:
- Post a reply: "Sent this to Finance for review."
- Send the request details to the #finance-requests channel.

For Ops and Other:
- Post a reply: "Logged this for the ops team."
- Post the original message and sender in #ops-queue.

Step 3: Enable the Slack Trigger

Enable the Slack trigger on this assignment in Setup.

Step 4: Add Connections

Under Connections, enable:
  • Slack — required because this SOP sends direct messages and posts in channels other than the trigger thread (e.g., #finance-requests, #ops-queue). In-thread replies in the trigger thread are handled by the Slack Workspace connection automatically.
  • Any ticketing or operations system your SOP writes to (e.g., Jira, Linear, ServiceNow)

Expected Results

  • Team members post requests in the shared channel and mention Duvo
  • Each request is acknowledged in the thread within seconds
  • Tickets are created and the right people are notified automatically
  • The requester sees confirmation in the thread without following up separately

Use Case 3: Kicking Off Workflows from Existing Slack Conversations

Outcome: When a conversation in Slack reaches a decision point — a refund to process, a record to update, a document to generate — one mention starts the full workflow without leaving the thread. The whole conversation history becomes context for the assignment. This is ideal for operations, support, and account management teams who already coordinate in Slack and want to act on what they discuss without switching tools.

Step 1: Create Your Assignment

  1. Click + Create Assignment from your dashboard.
  2. Select Use Assignment Builder.

Step 2: Write Your SOP

You will receive context from a Slack thread. Read the full conversation to understand
what has been discussed and what action has been agreed.

Identify the action that needs to be taken. This may be stated explicitly ("please process
the refund for order #12345") or implied by the conversation ("approved" after a refund
request was posted).

Carry out the action:
- For refunds: locate the order in [your order system], apply the refund, and post a
  confirmation in the thread with the refund ID and amount.
- For record updates: find the record in [your CRM/ERP], apply the change described in
  the thread, and confirm the update.
- For document generation: generate the document based on the details in the thread,
  upload it to [Google Drive / SharePoint], and post the link in the thread.

If the action is unclear or requires information not present in the thread, ask a
clarifying question before proceeding.

Before taking any irreversible action (deleting records, sending emails, processing
payments), request approval via Human-in-the-Loop (sent as a DM to the relevant user). Include what you are about to do and ask
for confirmation.

Step 3: Enable the Slack Trigger

  1. Open your assignment and go to Setup.
  2. Enable the Slack trigger.
  3. Save.

Step 4: Add Connections

Enable the connections to the systems your workflow touches — your order management system, CRM, Google Drive, etc. Posting confirmations to the trigger thread is handled automatically by the Slack Workspace connection. Human-in-the-Loop requests are delivered as Slack DMs to the relevant user. The personal Slack connection is only needed if your SOP also sends DMs or posts to other channels as assignment steps.

Expected Results

  • Team members discuss a request or decision in a Slack thread, then mention Duvo
  • Duvo reads the full thread and understands what action was agreed
  • The assignment carries out the workflow and posts results in the thread
  • Approvals for sensitive actions appear as interactive buttons — respond directly in Slack

Use Case 4: Sharing Files for Processing

Outcome: Team members can drop a document, spreadsheet, or image into a Slack channel, mention Duvo, and have it processed immediately — extracted, validated, summarized, or loaded into a system. Any files attached to messages in the thread are automatically available to the assignment.

Example SOP for Document Processing

You will receive one or more files via a Slack message. Process each file as follows:

For invoices (PDFs):
- Extract the vendor name, invoice number, total amount, line items, and due date.
- Log the extracted data as a new row in the "Invoices Pending" Google Sheet.
- Post a summary in the Slack thread: "Invoice logged: [vendor], [amount], due [date]."
- If any field is missing or unreadable, flag it in the thread.

For spreadsheets:
- Summarize the data: total rows, key columns, any obvious anomalies (blanks, outliers).
- Post the summary in the thread.

For images:
- Describe what you see and, if it contains text, extract the text.
- Post your description in the thread.

Expected Results

  • Drop a PDF invoice in the channel, mention Duvo, and it is logged to your spreadsheet within minutes
  • Attach a screenshot to ask Duvo to extract or describe the content
  • No manual downloading or re-uploading required — files from the Slack thread are passed to the assignment directly

Tips for Better Results

Write the SOP to handle “I’ll know it when I see it” requests: Slack requests are often phrased informally. Write your SOP to interpret the intent, not just exact phrasing. For example: “understand what the user is asking for and check the relevant data source” works better than “if the message contains the word ‘report’…”. Keep one assignment per topic: A single all-purpose assignment that tries to handle IT tickets, finance approvals, and report requests will produce inconsistent results. Create separate assignments for distinct workflows and let the selection menu route the request to the right one. Use Human-in-the-Loop for actions with consequences: Add an approval step before the assignment takes any irreversible action. Approvals appear as interactive buttons in a Slack DM to the relevant user — they can approve or deny without leaving Slack. See Human-in-the-Loop. Start results with a one-line summary: Instruct your SOP to lead the Slack response with a single sentence summary before the detail. Long output in a Slack thread is hard to scan. Include thread context when you mention Duvo: The more context the thread contains, the better the assignment can respond. If you are kicking off a workflow, paste the relevant details into the thread before mentioning Duvo — or simply let the conversation build up naturally before triggering. Skip the mention with a channel message trigger: If you want an assignment to start automatically on every message in a channel — or every message containing a specific keyword — you can set up a channel message trigger instead. The assignment fires without anyone needing to tag the Duvo app, which is useful for monitoring channels like #alerts or #support-inbox where every message should be processed. In Setup, enable the Channel Message trigger, select the channel, and optionally specify keywords or patterns to filter which messages start the assignment. Unlike mention triggers, if multiple assignments have matching Channel Message triggers, they will all start simultaneously from the same message — no selection menu appears, so use specific keywords to avoid unintended overlaps.

Troubleshooting

Duvo does not respond when mentioned

  • Confirm the Duvo app has been invited to the channel (/invite @Duvo)
  • Check that the assignment has the Slack trigger enabled in Setup
  • Verify the Slack Workspace connection is active on the Connections page
  • Verify all connections required by the assignment are linked and authorized under Connections — a missing connection can stop the Job from starting
  • Ensure the assignment has a published build — a draft-only assignment cannot be triggered
If Duvo acknowledges the mention but the Job fails or returns no results, see Job starts but fails or returns no results below.

A selection menu appears instead of the Job starting

This means more than one of your assignments has Slack triggers enabled. Select the assignment you want from the menu. To avoid the menu in the future, disable the Slack trigger on assignments you do not intend to trigger from this channel.

The assignment cannot see files attached to my message

  • Confirm the files are attached to messages in the same Slack thread where you mentioned Duvo
  • Files must be attached at the time of the mention, or in messages in the thread before the mention
  • Very large files may take longer to process

Results appear incomplete or cut off

  • Slack has message length limits. Instruct your SOP to summarize results rather than dump raw data. For large outputs, write results to a Google Sheet or document and post the link in the thread instead.

Job starts but fails or returns no results

  • Check that all connections the assignment needs are enabled and authorized under Connections — for example, if the SOP reads from Salesforce or writes to Google Sheets, those connections must be linked
  • Re-authorize any connection that shows as disconnected on the Connections page
  • Open the Job in Duvo to see the full error detail in the session log

Human-in-the-Loop requests are not appearing in Slack

  • Confirm your Slack account is linked in Settings > Notifications
  • Check that Slack notifications are enabled in your notification settings
  • Make sure the Duvo app is not muted in Slack