Intermediate~15 min setupCommunication & Project ManagementVerified April 2026
Slack logo
Basecamp logo

How to Send Emergency Issue Escalation with Pipedream

Automatically send urgent Slack notifications when high-priority items are posted in Basecamp projects.

Steps and UI details are based on platform versions at time of writing β€” check each platform for the latest interface.

Best for

Teams who need instant Slack alerts when critical issues are posted in Basecamp

Not ideal for

Teams that prefer batched daily summaries instead of real-time notifications

Sync type

real-time

Use case type

notification

Real-World Example

πŸ’‘

A 25-person agency uses this to notify #emergencies in Slack whenever a Basecamp message contains words like 'urgent', 'critical', or 'down'. Before automation, project managers checked Basecamp every 30 minutes and critical client issues sat unnoticed for hours. Now escalations reach the right people within 10 seconds.

What Will This Cost?

Drag the slider to your expected monthly volume.

/mo
505005K50K

Each platform counts differently β€” Zapier: 1 task per trigger. Make: 1 operation per module per record. n8n: 1 execution per run.

Prices shown for annual billing. Based on published pricing as of April 2026.

Estimated ROI

1000

min saved/mo

$583

labor value/mo

Free

no platform cost

Based on ~2 min manual effort per operation at $35/hr fully loaded labor cost.

Implementation

Skip the setup

Import this workflow directly into Pipedream

Copy the pre-built Pipedream blueprint and paste it straight into Pipedream. All modules, filters, and field mappings are already configured β€” you just need to connect your accounts.

Before You Start

Make sure you have everything ready.

Admin access to add webhooks in your Basecamp project
Permission to install apps and create channels in your Slack workspace
A dedicated Slack channel for emergency notifications (like #emergencies or #urgent)
Basecamp project with active Campfire messaging enabled

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Message Content
Author Name
Project Name
Message Timestamp
Basecamp URL
Slack Channel
2 optional fieldsβ–Έ show
Emergency Keywords
DM Recipient

Step-by-Step Setup

1

Workflows > New > HTTP/Webhook Requests

Create new Pipedream workflow

Log into pipedream.com and click the green New button in the top left. Select HTTP/Webhook Requests as your trigger source. This creates an instant webhook URL that Basecamp will call when messages are posted. Copy the webhook URL from the trigger step - you'll need it for Basecamp setup.

  1. 1Click the green 'New' button in top left
  2. 2Select 'HTTP/Webhook Requests' from the trigger list
  3. 3Copy the webhook URL that appears
  4. 4Click 'Save and continue'
βœ“ What you should see: You should see a unique webhook URL starting with https://eodx... that Basecamp will use to send data.
⚠
Common mistake β€” The webhook URL changes if you recreate the trigger, so copy it now before moving to Basecamp.
2

Basecamp Project > Campfire > Gear Icon > Configure integrations

Connect Basecamp webhook

In your Basecamp project, go to Campfire (the chat section) and click the gear icon. Select Configure integrations and choose Webhook. Paste your Pipedream webhook URL and check the Messages option. This tells Basecamp to POST to Pipedream whenever someone posts a message.

  1. 1Open your Basecamp project
  2. 2Click on Campfire in the left sidebar
  3. 3Click the gear icon in the top right
  4. 4Select 'Configure integrations'
  5. 5Choose 'Webhook' from the list
  6. 6Paste your Pipedream webhook URL
  7. 7Check the 'Messages' checkbox
  8. 8Click 'Add this webhook'
βœ“ What you should see: Basecamp shows 'Webhook configured' with your URL listed under active integrations.
⚠
Common mistake β€” Copy the webhook URL carefully β€” it expires if you regenerate it, and any scenarios using the old URL will silently stop working.
3

Basecamp Campfire > Pipedream Workflow

Test the webhook connection

Post a test message in your Basecamp Campfire containing the word 'urgent'. Switch back to Pipedream and refresh your workflow. You should see webhook data appear in the trigger step with message content, author details, and project information. This confirms Basecamp is sending data correctly.

  1. 1Go to your Basecamp Campfire
  2. 2Type 'This is an urgent test message'
  3. 3Press Enter to send
  4. 4Switch back to Pipedream
  5. 5Refresh your workflow page
  6. 6Click on the trigger step
βœ“ What you should see: The trigger step shows JSON data with 'content', 'creator', and 'bucket' fields from your test message.
⚠
Common mistake β€” If no data appears after 30 seconds, check that you selected 'Messages' in the Basecamp webhook config.
Pipedream
β–Ά Deploy & test
executed
βœ“
Slack
βœ“
Basecamp
Basecamp
πŸ”” notification
received
4

Workflow > + > Code (Node.js)

Add keyword detection step

Click the + button below your trigger to add a new step. Choose Code (Node.js) from the list. This step will check if the message contains emergency keywords like 'urgent', 'critical', 'down', or 'emergency'. Only matching messages will continue to Slack notification.

  1. 1Click the + button below the trigger step
  2. 2Select 'Code (Node.js)' from the app list
  3. 3Name the step 'Check Emergency Keywords'
  4. 4Clear the default code in the editor
βœ“ What you should see: You see a blank Node.js code editor with access to the webhook data in steps.trigger.event.
⚠
Common mistake β€” Don't use the 'Filter' step here - it stops the workflow completely instead of just skipping non-urgent messages.
5

Code Step > Editor

Configure keyword detection logic

Paste the emergency detection code into your Node.js step. This code extracts the message content, converts it to lowercase, and checks for critical keywords. If found, it passes the data forward with an emergency flag. If not found, it exits early without triggering Slack.

  1. 1Paste the keyword detection code
  2. 2Click 'Test' to run against your test message
  3. 3Verify it detects 'urgent' in your test
  4. 4Click 'Save'
βœ“ What you should see: The test output shows 'is_emergency': true and the original message data passed through.
6

Workflow > + > Slack > Send Message to Channel

Connect your Slack account

Click the + button to add another step and select Slack from the apps list. Choose 'Send Message to Channel' as the action. Pipedream will prompt you to connect your Slack workspace. Click Connect and authorize Pipedream to post messages on your behalf.

  1. 1Click + to add a new step
  2. 2Search for and select 'Slack'
  3. 3Choose 'Send Message to Channel'
  4. 4Click 'Connect an account'
  5. 5Authorize Pipedream in your Slack workspace
βœ“ What you should see: Slack shows as Connected with a green checkmark and your workspace name visible.
⚠
Common mistake β€” Make sure you're logged into the correct Slack workspace before connecting - switching later requires reconnecting.
Pipedream settings
Connection
Choose a connection…Add
click Add
Slack
Log in to authorize
Authorize Pipedream
popup window
βœ“
Connected
green checkmark
7

Slack Step > Configuration

Configure Slack message details

Select your emergency channel from the Channel dropdown - typically something like #emergencies or #urgent. Set the Username to 'Basecamp Alert' so team members know the source. Configure the message text to include the original message content, author name, and project details from the webhook data.

  1. 1Select your emergency channel from the dropdown
  2. 2Set Username to 'Basecamp Alert'
  3. 3In the Text field, click the + icon
  4. 4Select message content from the webhook data
  5. 5Add author and project information
βœ“ What you should see: The preview shows a formatted Slack message with Basecamp content, author name, and project context.
⚠
Common mistake β€” Private channels won't appear in the dropdown unless the Pipedream bot is already invited to them.
8

Workflow > + > Slack > Send Direct Message

Add direct message backup

Click + to add a final step for critical escalation. Add another Slack action but choose 'Send Direct Message' this time. Configure it to DM your project manager or team lead when emergencies are detected. This ensures someone always gets notified even if they miss the channel notification.

  1. 1Add another Slack step
  2. 2Choose 'Send Direct Message'
  3. 3Use the same Slack connection
  4. 4Select your project manager from the User dropdown
  5. 5Configure message text with urgency indicator
βœ“ What you should see: Both Slack steps show green checkmarks and your emergency notification is ready to deploy.
⚠
Common mistake β€” Map fields using the variable picker β€” don't type field names manually. Hand-typed variable names often have invisible spacing errors that produce blank output.
message template
πŸ”” New Record: {{text}} {{user}}
channel: {{channel}}
ts: {{ts}}
#sales
πŸ”” New Record: Jane Smith
Company: Acme Corp
9

Workflow > Deploy > Basecamp Test

Test end-to-end workflow

Deploy your workflow by clicking the Deploy button in the top right. Return to Basecamp and post another message containing 'critical issue with client site'. Within 10 seconds, you should see notifications in both your Slack channel and as a direct message. Check that all message details transferred correctly.

  1. 1Click the blue 'Deploy' button
  2. 2Go back to Basecamp Campfire
  3. 3Post 'critical issue with client site down'
  4. 4Check your Slack emergency channel
  5. 5Verify the direct message was sent
βœ“ What you should see: Slack shows both the channel message and DM with Basecamp content, author, and project details within 10 seconds.
⚠
Common mistake β€” If messages don't appear, check the workflow execution log for error details - auth issues are the most common problem.

Add this code to your keyword detection step to handle multiple emergency levels and route them to different Slack channels based on severity.

JavaScript β€” Code Stepexport default defineComponent({
β–Έ Show code
export default defineComponent({
  async run({ steps, $ }) {
    const message = steps.trigger.event.recording?.content || steps.trigger.event.content || '';

... expand to see full code

export default defineComponent({
  async run({ steps, $ }) {
    const message = steps.trigger.event.recording?.content || steps.trigger.event.content || '';
    const messageText = message.toLowerCase();
    
    // Define emergency levels with keywords and channels
    const emergencyLevels = {
      critical: {
        keywords: ['down', 'offline', 'critical', 'emergency', 'urgent'],
        channel: '#critical-alerts',
        emoji: '🚨'
      },
      high: {
        keywords: ['issue', 'problem', 'help needed', 'asap'],
        channel: '#high-priority',
        emoji: '⚠️'
      }
    };
    
    // Check each level for matches
    for (const [level, config] of Object.entries(emergencyLevels)) {
      const matchedKeywords = config.keywords.filter(keyword => 
        messageText.includes(keyword)
      );
      
      if (matchedKeywords.length > 0) {
        return {
          is_emergency: true,
          level: level,
          matched_keywords: matchedKeywords,
          target_channel: config.channel,
          emoji: config.emoji,
          original_data: steps.trigger.event
        };
      }
    }
    
    // No emergency keywords found
    $.respond('No emergency keywords detected');
    return;
  }
});

Going live

Production Checklist

Before you turn this on for real, confirm each item.

Troubleshooting

Common errors and how to fix them.

Frequently Asked Questions

Common questions about this workflow.

Analysis

VerdictWhy n8n for this workflow

Use Pipedream for this if you need instant webhook processing and want to customize the emergency detection logic with real code. The Node.js steps let you build sophisticated keyword matching, route different emergency levels to different channels, and add custom formatting that template-based platforms can't handle. Skip Pipedream if you just want basic keyword alerts without coding - Zapier's built-in formatter handles simple text matching fine.

Cost

This costs virtually nothing in Pipedream credits. Each emergency escalation uses 2-3 credits (webhook trigger + code step + Slack action), so even 100 emergencies per month costs under $2. Make charges $9/month minimum for real-time webhooks. Zapier's instant trigger requires their $20/month plan. Power Automate charges per flow run but Office 365 includes 2,000 monthly runs free.

Tradeoffs

Make beats Pipedream for visual workflow building - dragging modules is faster than writing code for simple routing logic. Zapier wins on Slack formatting with their rich message composer that handles buttons and blocks without coding. N8N matches Pipedream's coding flexibility but requires self-hosting. Power Automate integrates better if you're already in the Microsoft ecosystem. But Pipedream's instant webhooks and unlimited free testing make it the best choice for emergency workflows where every second counts.

You'll hit Basecamp's webhook retry logic if Pipedream goes down - they'll retry failed deliveries for 24 hours before giving up. Slack rate limits kick in at 1 message per second per channel, so rapid-fire emergencies might queue up. The biggest gotcha: Basecamp webhooks include HTML formatting in message content, so your keyword detection needs to strip tags or search raw text fields. Private Slack channels require manual bot invitation that's easy to forget during setup.

Ideas for what to build next

  • β†’
    Add SMS backup for critical alerts β€” Use Twilio in Pipedream to send text messages when 'critical' or 'down' keywords are detected in case team members miss Slack notifications.
  • β†’
    Create digest for non-emergency mentions β€” Set up a separate workflow to collect non-urgent Basecamp messages and send daily summaries to a different Slack channel.
  • β†’
    Build response tracking β€” Add Slack buttons to emergency alerts so team members can acknowledge they're handling the issue, preventing duplicate responses.

Related guides

Was this guide helpful?
← Slack + Basecamp overviewPipedream profile β†’