Getting Started with Thread
Onboarding Videos & Resources
Thread Training 1 - Getting Started with Thread
Thread Onboarding 2 - Thread Flows & Inbox Channels
Thread Training 3 - Thread AI
Messenger (Customer Chat Apps)
How-to Content for your Client End Users
Slack - Communicating with your customers about Thread Chat
Web - Communicating with your customers about Thread Chat
Windows Desktop - Communicating with your customers about Thread Chat
Microsoft Teams - Communicating with your customers about Thread Chat
CloudRadial - Communicating with your customers about Thread Chat
Getting Started with Thread's Customer Chat Apps
What are Thread's Customer Chat Apps? An Overview
Live Chat vs. Non-Live Chat - What's the difference?
Recommended plan for rolling-out chat
Step 1 of Setup: Customizing Messenger
Step 2 of Setup: Designing Custom Apps (Teams, Slack, Web, Cloudradial)
Deploying Messenger
Teams Service App
What is the Teams Service App for customers?
Design a custom Teams app for your customers
How to deploy the Teams Service App to a Customer
How to uninstall the Microsoft Teams Thread Service App
Slack Service App
How to test the Slack Service App in a Sandbox Environment
How to deploy the Slack Service App to a Customer
Desktop Service App
Web Service App
Messenger FAQ
Teams & Slack Companion Apps (for Service Teams)
Teams Companion App for Service Teams
Installing the Internal-facing Inbox Companion app for Teams
Troubleshooting "You don't have permission" error in Teams
Slack Companion App for Service Teams
Inbox
Inbox Channels & Flows
Getting Started with Inbox Channels & Flows
Use cases
Channels and Flows
Dynamic Flows - How to create a dynamic Triage Channel
What is Inbox and how do I use it?
How to track your time in Inbox
Sending attachments with Inbox
Save time answering chats with Snippets
Accessing & Installing Inbox
Can I style my messages?
Which shortcuts can I use in Inbox?
Setup an on-call member to be assigned
Members Management
Magic AI
Integrations
Autotask
How to setup the Autotask Ticketing Integration
How to enable Chat and Timepad insights in Autotask
Setting up an Email Communication Workflow in Autotask
Auvik
CloudRadial
ConnectWise Automate
How do I set up the Connectwise Automate Integration?
Deploy Messenger for Windows through Automate via Script
ConnectWise Manage
Thread Pods in ConnectWise Manage
How to enable Thread pods in ConnectWise PSA
How to setup the ConnectWise PSA Ticketing Integration
Adding permissions required to use Agreements/SLAs
IT Glue
Frequently asked questions
Security
AI Privacy & Security Overview
Data & Encryption
What if my organization has IP or domain restrictions?
List of Sub-Processors
Billing
How can I get help with setting up Thread?
Managing your Inbox notifications
How does Thread decide who gets assigned to dynamic Teams or Slack channels?
How to Setup a CSAT Survey
Can you add custom filters to Flows?
Can I get a custom Teams or Slack support app?
How do we request a feature that we need?
Is there a way to pull existing tickets to a channel in Inbox?
How do I upload a Teams app banner?
Can I disable the "New User" flow in Messenger chat?
I'm seeing tickets show up that were not created via Slack or Teams?
Internationalization Support
How can we send tickets from 2 or 3 service boards to Slack or Teams?
Which ticketing systems do you support?
Where can I find my Thread App ID?
Weekly Trainings & Office Hours
- All Categories
- Messenger (Customer Chat Apps)
- Desktop Service App
- Deploying Messenger to Mac
Deploying Messenger to Mac
Updated by Stephen Boss
Messenger is available as a dmg for Mac for easy deployment via shell script or for mass deployment via your favorite RMM, MDM, or other deployment solution.
1. Finished setting up messenger.
2. Understand the difference between Partner-level and Customer-level deployments.
About Messenger for Mac
Messenger lives in the tray and by default will auto start with your Mac. To open the app, find the icon in your tray and open it. It will inherit the tray icon that you define in your Messenger settings.
Deploying via Shell
Retrieving your App ID
You will need an App ID to deploy Messenger for your customers - this tells messenger to inherit your branding.
You can retrieve your partner-level App ID from the Thread Admin Panel -> Messenger -> Installation.
Recommended Shell Script
Save as a .sh script.
#!/bin/bash
# Exit the script on any command failure
set -e
set -o pipefail
# Log file
LOG_PATH="/tmp/messenger_install.log"
# macOS username
if [ -n "$SUDO_USER" ]; then
USERNAME="$SUDO_USER"
else
USERNAME=$(whoami)
fi
MESSENGER_CONFIG="/Users/$USERNAME/Library/Application Support/Messenger"
# Function to log messages
log() {
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a "$LOG_PATH"
}
log "username: $USERNAME"
# Variables
DOWNLOAD_URL="https://assets.getthread.com/messenger/downloads/desktop/messenger.dmg"
DMG_PATH="/tmp/messenger.dmg"
MOUNT_PATH="/tmp/messenger_mount"
APP_ID="ENTER YOUR APP ID HERE"
log "Starting installation of Messenger app..."
# Uninstall existing Messenger apps
rm -rf /Applications/Messenger.app && rm -rf /Applications/Chatgenie\ Messenger.app
# Download the DMG file
log "Downloading DMG from $DOWNLOAD_URL..."
curl -o "$DMG_PATH" "$DOWNLOAD_URL"
log "DMG downloaded to $DMG_PATH."
# Function to unmount the DMG
function unmount_dmg {
log "Unmounting DMG from $MOUNT_PATH..."
hdiutil detach "$MOUNT_PATH" || true
log "DMG unmounted."
}
# Mount the DMG
log "Mounting DMG..."
hdiutil attach "$DMG_PATH" -mountpoint "$MOUNT_PATH"
log "DMG mounted at $MOUNT_PATH."
# Trap any error and ensure that the DMG gets unmounted even if there's an error
trap unmount_dmg EXIT
# Install the app
log "Installing Messenger app to /Applications..."
cp -R "$MOUNT_PATH"/*.app /Applications/
log "Installation complete."
# Unmount the DMG
unmount_dmg
# Remove the downloaded DMG to clean up
log "Removing downloaded DMG..."
rm "$DMG_PATH"
log "DMG removed."
# Close any running instances of the app
log "Closing any running instances of the Messenger app..."
pkill -f "Messenger.app/Contents/MacOS/Messenger" || true
log "Instances closed."
# Configure app id
if [ -d "$MESSENGER_CONFIG" ]; then
log "Messenger config folder exists for user $USERNAME."
echo '{ "APP_ID": "'"$APP_ID"'" }' > "$MESSENGER_CONFIG/config.json"
log "Configured Messenger app ID in $MESSENGER_CONFIG/config.json."
else
log "Messenger config folder not found for user $USERNAME."
fi
# Run the nohup command to configure the app
log "Configuring the Messenger app..."
nohup /Applications/Messenger.app/Contents/MacOS/Messenger APP_ID="$APP_ID" FLOW=customer &
log "Configuration initiated."
# Allow a brief moment for configuration to complete
sleep 2
# Launch the app
log "Launching the Messenger app..."
open -a Messenger
log "Messenger app launched."
# Script finished
log "Messenger app installation and configuration complete!"
Executing the Shell Script
To execute the above script on a Mac, first download your script as a .sh file (see above). Then open terminal and run the following commands:
cd ~/Downloads
chmod +x messenger_mac.sh
./messenger_mac.sh