Headless Playwright + Docker automation that sends a text message to a named contact via ClubReady Connect.
Pass a contact name and message at runtime — the script logs in, finds the contact, composes the message, acknowledges the non-promotional checkbox, and hits Send.
- Docker (tested on Docker 29.x)
- ClubReady Connect credentials with access to the Conversations module
git clone https://github.com/TheKatariya/cr-connect-sms.git
cd cr-connect-smscp .env.example .envEdit .env with your ClubReady Connect credentials:
CR_EMAIL=your-email@example.com
CR_PASSWORD=your-password
docker build -t cr-connect-sms .First build takes ~2–3 minutes — it downloads the Playwright base image and Chromium. Subsequent builds are fast (cached layers).
docker run --rm --shm-size=1g \
-e CR_EMAIL="your-email@example.com" \
-e CR_PASSWORD="your-password" \
cr-connect-sms "First Last" "Your message here"docker run --rm --shm-size=1g \
--env-file .env \
cr-connect-sms "First Last" "Your message here"# Single follow-up
docker run --rm --shm-size=1g --env-file .env \
cr-connect-sms "John Smith" "Hey John, just following up on your trial!"
# Appointment reminder
docker run --rm --shm-size=1g --env-file .env \
cr-connect-sms "Sarah Connor" "Reminder: your appointment is tomorrow at 10am."
# Multi-word names with spaces work fine — just quote them
docker run --rm --shm-size=1g --env-file .env \
cr-connect-sms "Mary Jane Watson" "Welcome to BFT Tysons!"- Logs into
connect.clubready.comusingCR_EMAIL/CR_PASSWORD - Navigates to the Conversations page (
/messages) - Clicks New
- Searches for the contact by name and selects the first result
- Types the message into the compose box
- Checks the "I acknowledge that this is a Non-Promotional message" checkbox
- Clicks Send
| Stream | Content |
|---|---|
stdout |
SUCCESS on completion |
stderr |
Step-by-step progress logs |
Exit code 0 |
Message sent |
Exit code 1 |
Something failed |
On failure a full-page screenshot is saved to /tmp/cr-connect-error.png inside the container. Mount a volume to retrieve it:
docker run --rm --shm-size=1g --env-file .env \
-v /tmp:/tmp \
cr-connect-sms "John Smith" "Test"
# Screenshot at /tmp/cr-connect-error.png if it failsThe image is built and running on 100.124.184.65. To rebuild after code changes:
# On the server
cd /home/pkatariya/cr-connect
git pull
docker build -t cr-connect-sms .Then call it with the env file stored on the server:
docker run --rm --shm-size=1g \
--env-file /home/pkatariya/cr-connect/.env \
cr-connect-sms "First Last" "Your message"Use an Execute Command node with:
docker run --rm --shm-size=1g --env-file /home/pkatariya/cr-connect/.env cr-connect-sms "{{$json.name}}" "{{$json.message}}"
Check stdout for SUCCESS to confirm delivery.