Search documentation

Search for pages in the documentation

Deal Room Automation

Build workflow automation for deal rooms with CRM integration

In this tutorial, you'll build a comprehensive workflow that automates deal room activities, including CRM updates, task creation, and intelligent notifications based on meeting outcomes.

Time: 30 minutes Difficulty: Intermediate Prerequisites:

  • Completed previous tutorials
  • HubSpot or Salesforce integration connected
  • Understanding of conditional logic

What You'll Build

A workflow that:

  1. Triggers when a deal room meeting ends
  2. Analyzes the meeting for deal signals
  3. Updates CRM opportunity status
  4. Creates follow-up tasks
  5. Notifies the team with context-aware messages
text
[Deal Room Meeting] → [Analyze] → [Update CRM] → [Create Task] → [Notify]

Step 1: Create the Workflow

  1. Create a new workflow named "Deal Room Automation"
  2. Add an Event Trigger with type: MEETING_ENDED_FOR_DEAL_ROOM

This special event type only fires for meetings associated with deal rooms.

Complex workflow on canvas

Step 2: Load Meeting Data

Add a Load Meeting node to get full meeting details including:

  • Meeting metadata
  • Attendees (internal and external)
  • Transcript and summary
  • Deal room association

Step 3: Analyze Meeting Sentiment

Use AI to analyze the meeting's business signals:

Add AI Prompt for Sentiment

Model: Medium Return Type: Integer

System Message:

liquid
You are a deal analyst evaluating sales meeting outcomes.
Rate meetings on a scale of 1-10 based on deal health signals.

1-3: Negative (objections, concerns, competition mentioned)
4-6: Neutral (informational, no clear signals)
7-10: Positive (enthusiasm, commitment, next steps agreed)

Return only the number.

User Message:

liquid
Rate this sales meeting:

Meeting: {{ json.meeting.title }}
Attendees: {{ json.meeting.attendees | map: "name" | join: ", " }}

Summary:
{{ json.callRecording.transcriptSummary }}

Name this node: "Sentiment Analysis"

Step 4: Route Based on Sentiment

Add an If node to route based on sentiment score:

High Sentiment Path (7-10)

cel
json.value >= 7

Low Sentiment Path (1-3)

Add another If node for low sentiment:

cel
json.value <= 3

Neutral Path (4-6)

Default path for scores 4-6

Step 5: Configure High Sentiment Path

For positive meetings, update the deal stage and notify the team:

Update CRM Opportunity

Add CRM Update Opportunity node:

Stage: Negotiation (or your appropriate stage)

Notes Template:

liquid
Meeting on {{ json.meeting.startTime | date: "%B %d" }} showed positive signals.
Sentiment score: {{ steps.sentimentAnalysis.value }}/10
Moving to negotiation stage.

Create Follow-up Task

Add Create HubSpot Task (or Salesforce Task):

Subject:

liquid
Follow up on positive meeting: {{ json.meeting.title }}

Body:

liquid
The meeting showed strong buying signals ({{ steps.sentimentAnalysis.value }}/10).

Recommended next steps:
- Send proposal within 48 hours
- Schedule technical deep-dive
- Loop in executive sponsor

Meeting summary:
{{ json.callRecording.transcriptSummary }}

Due Date: 2 days from now Priority: High

Slack Notification

Add Slack Post:

Channel: #deals or #sales-wins

Message:

liquid
🎉 *Positive Signal Detected!*

*Deal:* {{ json.dealRoom.name }}
*Meeting:* {{ json.meeting.title }}
*Score:* {{ steps.sentimentAnalysis.value }}/10

The meeting showed strong buying signals. A follow-up task has been created.

Step 6: Configure Low Sentiment Path

For concerning meetings, escalate and create recovery tasks:

Update CRM with Note

Add CRM Update Opportunity:

Notes Template:

liquid
⚠️ Meeting on {{ json.meeting.startTime | date: "%B %d" }} showed concerning signals.
Sentiment score: {{ steps.sentimentAnalysis.value }}/10
Review required.

Create Urgent Task

Add Create HubSpot Task:

Subject:

liquid
URGENT: Review concerning meeting - {{ json.meeting.title }}

Body:

liquid
The meeting showed concerning signals ({{ steps.sentimentAnalysis.value }}/10).

Immediate action required:
- Review meeting transcript
- Schedule internal strategy call
- Prepare risk mitigation plan

Meeting summary:
{{ json.callRecording.transcriptSummary }}

Due Date: Today Priority: High

Alert Notification

Add Slack Post:

Channel: #deals-at-risk

Message:

liquid
⚠️ *Deal Risk Alert*

*Deal:* {{ json.dealRoom.name }}
*Meeting:* {{ json.meeting.title }}
*Score:* {{ steps.sentimentAnalysis.value }}/10

Concerning signals detected. Urgent review task created.

cc: @sales-manager

Step 7: Configure Neutral Path

For neutral meetings, create standard follow-up:

Create Standard Task

Add Create HubSpot Task:

Subject:

liquid
Follow up: {{ json.meeting.title }}

Body:

liquid
Standard follow-up required for recent meeting.

Meeting summary:
{{ json.callRecording.transcriptSummary }}

Due Date: 3 days from now Priority: Normal

Standard Notification

Add Slack Post:

Message:

liquid
📋 *Meeting Recorded*

*Deal:* {{ json.dealRoom.name }}
*Meeting:* {{ json.meeting.title }}
*Score:* {{ steps.sentimentAnalysis.value }}/10

Summary available. Follow-up task created.

Step 8: Extract Action Items

Add parallel AI analysis to extract action items:

Branch After Load Meeting

Use Broadcast to run sentiment analysis and action item extraction in parallel.

Action Item Extraction

Add AI Prompt:

Model: Medium Return Type: String List

User Message:

liquid
Extract all action items from this meeting.
Format each as: "[Owner] will [action] by [date if mentioned]"
If owner not specified, use "Team"

{{ json.callRecording.transcriptSummary }}

Merge Results

Use Zip to combine sentiment and action items before routing.

Step 9: Complete Workflow Structure

text
[Deal Room Meeting Ended]
          │
          ▼
    [Load Meeting]
          │
          ▼
      [Broadcast]
     ┌────┴────┐
     ▼         ▼
[Sentiment] [Action Items]
     │         │
     └────┬────┘
          ▼
        [Zip]
          │
          ▼
    [If: Score >= 7]
    ┌─────┴─────┐
    ▼           ▼
  [Yes]    [If: Score <= 3]
    │      ┌────┴────┐
    │      ▼         ▼
    │    [Yes]    [Neutral]
    │      │         │
    ▼      ▼         ▼
[Update] [Alert]  [Standard]
[Task]   [Task]   [Task]
[Notify] [Notify] [Notify]

Step 10: Add Error Handling

Connect error outputs to a unified error handler:

liquid
⚠️ *Workflow Error*

Deal: {{ json.dealRoom.name }}
Meeting: {{ json.meeting.title }}

An error occurred during processing. Please review manually.

Step 11: Release and Test

  1. Release the workflow

  2. Test with various meeting types:

    • Positive meeting (expect high score path)
    • Concerning meeting (expect low score path)
    • Neutral meeting (expect neutral path)
  3. Verify:

    • CRM updates appear correctly
    • Tasks are created with right priority
    • Slack notifications go to correct channels

Advanced Enhancements

Add Competitor Detection

liquid
Analyze this meeting for competitor mentions.
Return true if any competitor was discussed.

Known competitors: [CompanyA, CompanyB, CompanyC]

{{ json.callRecording.transcriptSummary }}

Route competitor mentions to additional alerting.

Add Budget Discussion Detection

liquid
Did this meeting include budget discussions?
Return true if pricing, budget, or cost was discussed.

{{ json.callRecording.transcriptSummary }}

Add Decision Maker Identification

liquid
Identify if any decision makers were in this meeting.
Based on titles, behavior, and discussion context.

Attendees:
{% for attendee in json.meeting.attendees %}
- {{ attendee.name }} ({{ attendee.title }})
{% endfor %}

{{ json.callRecording.transcriptSummary }}

Troubleshooting

CRM Update Failing

Check:

  • Is CRM connected?
  • Does the deal room have a linked opportunity?
  • Do you have permission to update?

Wrong Sentiment Scores

Try:

  • Add more specific criteria to prompt
  • Include examples in system message
  • Test with various meeting types

Tasks Not Creating

Check:

  • Task owner permissions
  • Date format validity
  • Required fields populated

Congratulations! 🎉

You've built a sophisticated deal room automation! You now understand:

  • ✅ Multi-path conditional routing
  • ✅ CRM integration patterns
  • ✅ Task creation automation
  • ✅ Context-aware notifications
  • ✅ Parallel processing with Broadcast and Zip

Next Steps