Back to The Times of Claw

DenchClaw + Slack: CRM Notifications in Your Team Chat

Connect DenchClaw to Slack for deal stage alerts, daily pipeline summaries, and CRM queries from Slack messages — no HubSpot subscription needed.

Mark Rachapoom
Mark Rachapoom
·7 min read
DenchClaw + Slack: CRM Notifications in Your Team Chat

DenchClaw + Slack: CRM Notifications in Your Team Chat

Sales teams live in Slack. The problem is that your CRM data is somewhere else — HubSpot, Salesforce, a spreadsheet — and you're copy-pasting deal updates into channels manually. DenchClaw can post directly to Slack, respond to queries from Slack messages, and notify your team when deals move through the pipeline.

Here's how to connect Slack as a DenchClaw channel and set up useful notifications.

Setting Up Slack as a DenchClaw Channel#

DenchClaw supports Slack as a first-class communication channel. Once set up, you can query and update your CRM from any Slack message.

Step 1: Create a Slack App#

  1. Go to api.slack.com/apps
  2. Click "Create New App" → "From scratch"
  3. Name it "DenchClaw" and select your workspace
  4. Under "OAuth & Permissions", add these Bot Token Scopes:
    • chat:write — post messages
    • channels:read — list channels
    • app_mentions:read — detect @mentions
    • im:read — receive DMs
    • commands — slash commands (optional)
  5. Install the app to your workspace
  6. Copy the "Bot User OAuth Token" (starts with xoxb-)

Step 2: Configure DenchClaw with the Slack token#

npx denchclaw channel add slack --token xoxb-your-token-here --channel #crm-updates

Or tell DenchClaw interactively:

"Add Slack as a channel. My bot token is xoxb-... and I want notifications in #crm-updates"

Step 3: Test the connection#

"Send a test message to Slack"

DenchClaw posts a test message to your configured channel. If you see it in Slack, you're connected.

Step 4: Invite the bot to your channel#

In Slack, go to #crm-updates and type:

/invite @DenchClaw

The bot needs to be a member of any channel it posts to.

Deal Stage Change Notifications#

The most immediately useful setup: automatic Slack notifications when deals move through your pipeline.

"Notify #crm-updates in Slack whenever a deal changes stage"

DenchClaw creates a trigger that fires on any deal_stage field update in DuckDB. The notification looks like:

🟢 Deal Update — Acme Corp
Sarah Chen moved from Discovery → Proposal
Deal value: $24,000/year
Owner: Mark

View in DenchClaw → [link]

You can customize which stage transitions trigger notifications:

"Only notify Slack when deals reach Proposal, Contract, or Closed Won stages"

Or notify different channels for different stages:

"Post to #sales-wins when a deal closes. Post to #crm-updates for all other stage changes."

Setting up webhook-based Slack alerts#

For more control, you can set up Slack Incoming Webhooks:

  1. In your Slack App settings, go to "Incoming Webhooks" and activate it
  2. Click "Add New Webhook to Workspace" and choose your channel
  3. Copy the webhook URL

Then configure DenchClaw:

npx denchclaw webhook add \
  --name slack-deals \
  --url https://hooks.slack.com/services/T00/B00/xxxx \
  --trigger deal_stage_change

A sample webhook payload DenchClaw sends:

{
  "text": "Deal Update: Acme Corp",
  "blocks": [
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "*Acme Corp* moved to *Proposal* stage\n>Contact: Sarah Chen\n>Value: $24,000\n>Owner: Mark"
      }
    },
    {
      "type": "actions",
      "elements": [
        {
          "type": "button",
          "text": {"type": "plain_text", "text": "View in DenchClaw"},
          "url": "http://localhost:3000/contacts/123"
        }
      ]
    }
  ]
}

Daily Pipeline Summaries to Slack#

Set up a daily digest that posts your pipeline status to Slack each morning:

"Every weekday at 8am, post a pipeline summary to #crm-updates"

DenchClaw runs this DuckDB query each morning:

SELECT
  deal_stage,
  COUNT(*) AS deals,
  SUM(deal_value::DECIMAL) AS total_value
FROM v_contacts
WHERE status = 'Active'
  AND deal_stage IS NOT NULL
GROUP BY deal_stage
ORDER BY
  CASE deal_stage
    WHEN 'Lead' THEN 1
    WHEN 'Discovery' THEN 2
    WHEN 'Proposal' THEN 3
    WHEN 'Contract' THEN 4
    WHEN 'Closed Won' THEN 5
    ELSE 6
  END;

And formats the result as a Slack message:

📊 Pipeline Summary — Thursday, March 26

Lead          12 deals    —
Discovery      8 deals    $142,000
Proposal       5 deals    $89,500
Contract       2 deals    $47,000
──────────────────────────────
Active Total  27 deals    $278,500

↑ 3 new deals this week
↓ 1 deal moved to Closed Lost

You can also request on-demand summaries from Slack:

@DenchClaw show me today's pipeline

Using Action Fields to Post Deal Updates to Channels#

DenchClaw's Action fields can trigger Slack posts from individual contact records.

Setup example:

"Add an Action field to deal records called 'Post Update to Slack'
 that shares the current deal status to #crm-updates"

When triggered (from the web UI or by saying "Post update for Acme Corp to Slack"), DenchClaw composes and sends a contextual update:

🔔 Deal Update: Acme Corp

Status: Proposal stage
Contact: Sarah Chen, VP of Engineering
Last interaction: 3 days ago (email re: pricing)
Next step: Follow up on budget approval

— Posted by Mark via DenchClaw

This replaces the habit of manually writing Slack updates like "hey just sent proposal to Acme, fingers crossed" — DenchClaw does it with actual data.

Querying CRM From Slack Messages#

Once DenchClaw is in your Slack workspace, you can query it directly from any channel:

@DenchClaw who are our top 5 deals by value?
@DenchClaw how many leads did we add this week?
@DenchClaw what's the status of Acme Corp?
@DenchClaw show me all deals in contract stage

DenchClaw translates these into DuckDB queries and posts the results back in Slack. Your whole team can query the CRM without needing to log into a separate tool.

Example Slack → DuckDB queries#

When someone asks "@DenchClaw show me this week's closed deals":

SELECT
  c.name AS contact,
  c.company,
  c.deal_value,
  c.close_date
FROM v_contacts c
WHERE c.deal_stage = 'Closed Won'
  AND c.close_date >= DATE_TRUNC('week', CURRENT_DATE)
ORDER BY c.close_date DESC;

When someone asks "@DenchClaw which deals haven't moved in 2 weeks":

SELECT
  c.name,
  c.company,
  c.deal_stage,
  MAX(i.date) AS last_activity,
  DATEDIFF('day', MAX(i.date), NOW()) AS days_inactive
FROM v_contacts c
LEFT JOIN v_interactions i ON i.contact_id = c.id
WHERE c.status = 'Active'
GROUP BY c.name, c.company, c.deal_stage
HAVING days_inactive >= 14 OR last_activity IS NULL
ORDER BY days_inactive DESC NULLS LAST;

Restricting Which Channels Can Query DenchClaw#

By default, DenchClaw responds to @mentions in any channel it's in. You can restrict this:

"Only respond to CRM queries from #sales, #crm-updates, and DMs with me"

You can also set permission levels:

"Anyone in #sales can query DenchClaw, but only I can create or update records"

This prevents situations where someone accidentally tells DenchClaw to delete a contact from a shared channel.

Frequently Asked Questions#

Can multiple team members use DenchClaw from Slack?

Yes. Anyone in channels where DenchClaw is present can query it with @mentions. Updates and creates can be restricted to specific users or left open to all — you control the permission level.

Does DenchClaw read all Slack messages?

No. DenchClaw only processes messages that @mention it or that match configured triggers (like deal stage changes). It doesn't index your Slack history.

Can I use Slack slash commands instead of @mentions?

Yes. If you enable the "Commands" scope in your Slack App and configure a slash command (e.g., /crm), you can use /crm show pipeline instead of @DenchClaw show pipeline. Setup is in your Slack App settings under "Slash Commands."

What happens if Slack's rate limit is hit?

Slack allows roughly 1 message per second per channel. If DenchClaw is batching a lot of notifications (e.g., a bulk import that triggers 50 stage-change notifications), it queues them and sends with a short delay to stay within rate limits.

Can I get Slack notifications for specific contacts, not all deals?

Yes. You can configure: "Notify me on Slack for any activity on Acme Corp or Globex." DenchClaw will post to your DM (or a channel) specifically when those accounts have updates, regardless of global notification settings.

Ready to try DenchClaw? Install in one command: npx denchclaw. Full setup guide →

Mark Rachapoom

Written by

Mark Rachapoom

Building the future of AI CRM software.

Continue reading

DENCH

© 2026 DenchHQ · San Francisco, CA