skills/tier-2-communication/google-chat/SKILL.md
Google Chat messaging for small business teams. Send messages, post automated updates, manage spaces, run daily standups, and coordinate your team. Built on the gws CLI.
npx skillsauth add pbc-os/agent-skills-public google-chatInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Team messaging for small businesses using Google Workspace.
Uses the gws CLI for all Chat operations. See the google-workspace skill for setup. For platform-agnostic team messaging best practices, see SMB Team Messaging — it applies to both Google Chat and Slack.
gws CLI installed and authenticated with Chat scopegws auth login -s chat if not already done# Send a message to a space
gws chat +send
# List spaces you're in
gws chat spaces list
# Get space details
gws chat spaces get --params '{"name": "spaces/SPACE_ID"}'
# List messages in a space
gws chat spaces messages list --params '{"parent": "spaces/SPACE_ID"}'
# Create a message
gws chat spaces messages create \
--params '{"parent": "spaces/SPACE_ID"}' \
--json '{"text": "Your message here"}'
# Reply in a thread
gws chat spaces messages create \
--params '{"parent": "spaces/SPACE_ID"}' \
--json '{"text": "Thread reply", "thread": {"name": "spaces/SPACE_ID/threads/THREAD_ID"}}'
| Space | Purpose | Who's In | Agent Posts | |-------|---------|----------|------------| | Daily Briefing | Morning digest + EOD summary | Everyone | Automated daily | | General | Company-wide announcements | Everyone | Major alerts only | | Orders | Order updates, fulfillment | Ops team | Order alerts | | Sales | Revenue, transactions, wins | Leadership | Daily numbers | | Inventory | Stock levels, vendor orders | Purchasing + ops | Low stock alerts | | Ops Log | Shift notes, equipment, facilities | Ops team | Shift reminders |
Start with just 2-3 spaces:
| Space | Purpose | |-------|---------| | General | Everything | | Daily Briefing | Automated agent posts | | Alerts | Urgent items only |
# Create a new space
gws chat spaces create --json '{
"displayName": "Daily Briefing",
"spaceType": "SPACE",
"externalUserAllowed": false
}'
gws chat spaces messages create \
--params '{"parent": "spaces/SPACE_ID"}' \
--json '{"text": "*Daily Standup — Wednesday, Jan 15*\n\n*Yesterday:*\n• Revenue: $2,450 (forecast: $2,200, +11%)\n• 87 transactions, avg ticket $28.16\n• Vendor delivery received from Fresh Farms\n\n*Today:*\n• 3 deliveries scheduled\n• 2 customer pickups\n• Mike out — Sarah covering\n\n*Blockers:*\n• Cooler #2 running warm (38°F, target 34°F)"}'
gws chat spaces messages create \
--params '{"parent": "spaces/SPACE_ID"}' \
--json '{"text": "*Shift Handoff — 3:00 PM*\n\n*Completed:*\n• Morning delivery received and checked in\n• Inventory count done for deli case\n• Customer order #4521 prepped for pickup\n\n*Needs attention:*\n• Paper towel supply low — reorder needed\n• Register 2 jamming on receipts\n\n*Heads up:*\n• Evening delivery from Sysco expected at 5pm\n• VIP customer (Johnson) pickup at 6pm"}'
gws chat spaces messages create \
--params '{"parent": "spaces/SPACE_ID"}' \
--json '{"text": "📊 *Daily Sales — Wednesday, Jan 15*\n\n*Revenue:* $2,450 (+11% vs forecast)\n*Transactions:* 87 (avg ticket: $28.16)\n*Top seller:* NY Strip (23 units)\n\nStrong day. No action needed."}'
gws chat spaces messages create \
--params '{"parent": "spaces/SPACE_ID"}' \
--json '{"text": "🚨 *Low Stock: Ground Beef*\n\nCurrent: 8 lbs (reorder point: 15 lbs)\nEstimated depletion: Tomorrow by 2pm\nSuggested: Order from Fresh Farms today for Thursday delivery."}'
gws chat spaces messages create \
--params '{"parent": "spaces/SPACE_ID"}' \
--json '{"text": "*Weekly Recap — Week of Jan 13*\n\n*Revenue:* $12,450 (target: $11,500, +8.3%)\n*Best day:* Tuesday ($2,890)\n*Transactions:* 423 total, avg ticket $29.43\n\n*Highlights:*\n• New catering client signed\n• Google Ads ROAS improved to 3.2x\n\n*Issues:*\n• Cooler #2 still warm — repair Monday\n• 2 customer complaints (both resolved)\n\n*Next week:*\n• Vendor negotiation (Tuesday)\n• Monthly inventory count (Thursday)"}'
# Built-in workflow
gws workflow +file-announce
For formatted messages with sections and buttons:
gws chat spaces messages create \
--params '{"parent": "spaces/SPACE_ID"}' \
--json '{
"cardsV2": [{
"cardId": "daily-sales",
"card": {
"header": {
"title": "Daily Sales Report",
"subtitle": "Wednesday, January 15"
},
"sections": [{
"widgets": [{
"columns": {
"columnItems": [
{"widgets": [{"decoratedText": {"topLabel": "Revenue", "text": "$2,450"}}]},
{"widgets": [{"decoratedText": {"topLabel": "vs Forecast", "text": "+11%"}}]}
]
}
}]
}]
}
}]
}'
| Time | What | Where | |------|------|-------| | 7:30 AM | Morning briefing | Daily Briefing space | | 9:00 AM | Team reads + responds in thread | Daily Briefing (thread) | | Throughout day | Issues and updates | Relevant spaces | | 6:00 PM | EOD summary / shift handoff | Daily Briefing or Ops Log |
| Day | What | Where | |-----|------|-------| | Monday AM | Week preview + priorities | Daily Briefing | | Friday PM | Week recap + wins | Sales or Daily Briefing |
| Urgency | How to Post | When | |---------|-------------|------| | Urgent | @all mention + message | System down, safety issue | | Important | Direct message, no @all | Revenue miss, complaint | | Informational | Space message | Daily briefing, updates | | FYI | Thread reply | Meeting notes, minor updates |
Rule: If you @all more than once a week, you're doing it too much.
morning-briefing — Post the daily briefing to a Chat spacegmail — Forward important emails as Chat messagesgoogle-drive — Share files in Chat spaces via gws workflow +file-announcegoogle-sheets — Pull KPI data for automated reportsautoresearch — Post overnight experiment resultsgoogle-ads — Post ad performance summariesslack — Alternative for Slack-based teams (same patterns, different platform)| If your team... | Use |
|----------------|-----|
| Already uses Google Workspace for email/calendar/docs | Google Chat — it's integrated |
| Uses Slack for other projects or prefers it | Slack — see the slack skill |
| Is split or undecided | Pick one and commit — don't split communication across both |
Both platforms work. The patterns in SMB Team Messaging apply to either. The worst choice is using both — consolidate.
gws chat spaces list to find space IDs--dry-run before sending to preview the requestgoogle-workspace — Required setup (install and auth)slack — Alternative for Slack-based teamsmorning-briefing — Daily digest that can post to ChatKeep your team in sync. One update, one place, one time.
tools
Generate and iteratively refine USPTO-style patent figure drawings from provisional patent application markdown files, using nano-banana for v1 generation and targeted single-fix edits for v2+ iteration.
data-ai
Weekly revenue / sales forecasting for small businesses with multiple locations or product lines. Blends recent trend + seasonal baseline + YoY growth with per-entity holiday multipliers and week-of-month adjustments. Ships autoresearch-compatible eval and parameters so you can tune it on your own historical data.
data-ai
Analyze email, calendar, and file patterns to discover repeatable workflows that AI agents can automate.
testing
Automated daily digest for small business owners. Combines email triage, calendar agenda, open tasks, and business KPIs into a single morning briefing. Composable — works with whatever data sources are available. Urgent emails require body inspection and explicit escalation signals — never classified from sender/timing metadata alone.