t3
test 3
A
20
Build better products with our product team
<div style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif; max-width: 700px; margin: 0 auto; color: #0f172a; padding: 8px;"> <!-- HERO --> <div style="background: #0a0f1e; border-radius: 16px; padding: 50px 36px 44px; margin-bottom: 32px; text-align: center;"> <p style="font-size: 11px; font-weight: 700; letter-spacing: 4px; color: #475569; text-transform: uppercase; margin: 0 0 22px 0;">Gainsight Hackathon 2025 &mdash; Pitch Submission</p> <div style="background: rgba(99,102,241,0.12); border: 1px solid rgba(99,102,241,0.3); border-radius: 10px; padding: 11px 22px; display: inline-block; margin-bottom: 26px;"> <span style="font-family: Consolas, 'Courier New', monospace; color: #a5b4fc; font-size: 18px; font-weight: 600; letter-spacing: 1.5px;">$ run support brief</span> </div> <h1 style="color: #f1f5f9; font-size: 32px; font-weight: 800; margin: 0 0 8px 0; line-height: 1.25;">You already know everything<br>about this customer.</h1> <h1 style="color: #64748b; font-size: 32px; font-weight: 800; margin: 0 0 20px 0; line-height: 1.25;">It just takes 20 minutes to find it.</h1> <p style="color: #94a3b8; font-size: 15px; line-height: 1.7; margin: 0 auto; max-width: 480px;">One command. Zendesk, Confluence, Slack, Gainsight Community, Sentry, and the web &mdash; synthesized into a brief before you say hello.</p> <div style="margin-top: 24px; display: flex; gap: 8px; justify-content: center; flex-wrap: wrap;"> <span style="display: inline-block; background: rgba(99,102,241,0.18); color: #a5b4fc; padding: 4px 13px; border-radius: 20px; font-size: 11px; font-weight: 700; border: 1px solid rgba(165,180,252,0.2);">Internal-facing tool</span> <span style="display: inline-block; background: rgba(16,185,129,0.15); color: #6ee7b7; padding: 4px 13px; border-radius: 20px; font-size: 11px; font-weight: 700; border: 1px solid rgba(110,231,183,0.2);">GRR + NRR impact</span> <span style="display: inline-block; background: rgba(251,191,36,0.12); color: #fde68a; padding: 4px 13px; border-radius: 20px; font-size: 11px; font-weight: 700; border: 1px solid rgba(253,230,138,0.2);">Claude Code + MCP</span> </div> </div> <!-- THE PROBLEM --> <div style="margin-bottom: 32px;"> <p style="font-size: 11px; font-weight: 700; letter-spacing: 3px; color: #94a3b8; text-transform: uppercase; margin: 0 0 10px 0;">The problem</p> <h2 style="font-size: 22px; font-weight: 800; color: #0f172a; margin: 0 0 18px 0;">Every ticket starts with a scavenger hunt.</h2> <div style="background: #fff5f5; border-left: 4px solid #ef4444; padding: 20px 24px; border-radius: 0 12px 12px 0; margin-bottom: 18px;"> <p style="color: #374151; font-size: 14px; line-height: 1.75; margin: 0 0 12px 0;">A ticket lands. You open Zendesk &mdash; pull the account history. Open Confluence &mdash; hunt for relevant KB. Check Slack &mdash; scroll through three channels. Google the company. Check Sentry for recent errors. Find the community post they referenced last month.</p> <p style="color: #dc2626; font-weight: 700; font-size: 15px; margin: 0;">That&rsquo;s 15&ndash;20 minutes. Before you&rsquo;ve typed a single word.</p> </div> <p style="color: #475569; font-size: 14px; line-height: 1.75; margin: 0;">The information exists. It&rsquo;s in Zendesk, Confluence, Slack, Sentry, the community &mdash; scattered, unconnected, waiting for someone to manually stitch it together. Every ticket. Every call. Every single day. That&rsquo;s the tooling gap this tool closes.</p> </div> <!-- THE TOOL --> <div style="margin-bottom: 32px;"> <p style="font-size: 11px; font-weight: 700; letter-spacing: 3px; color: #94a3b8; text-transform: uppercase; margin: 0 0 10px 0;">The fix</p> <h2 style="font-size: 22px; font-weight: 800; color: #0f172a; margin: 0 0 18px 0;">Three words. Same result. Every time.</h2> <div style="background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 12px; padding: 24px;"> <div style="margin-bottom: 10px;"> <code style="background: #0f172a; color: #86efac; padding: 9px 18px; border-radius: 8px; font-size: 14px; font-weight: 600; font-family: Consolas, monospace; display: inline-block;">run support brief Acme Corp</code> </div> <div style="margin-bottom: 16px;"> <code style="background: #0f172a; color: #86efac; padding: 9px 18px; border-radius: 8px; font-size: 14px; font-weight: 600; font-family: Consolas, monospace; display: inline-block;">run support brief 98452</code> </div> <p style="color: #166534; font-size: 14px; line-height: 1.65; margin: 0;">Pass an org name before a call. Pass a ticket ID before you start typing &mdash; Claude extracts the org automatically. One trigger. Both workflows. Read-only. No approval needed.</p> </div> </div> <!-- FLOW DIAGRAM SVG --> <div style="margin-bottom: 32px;"> <p style="font-size: 11px; font-weight: 700; letter-spacing: 3px; color: #94a3b8; text-transform: uppercase; margin: 0 0 10px 0;">How it works</p> <h2 style="font-size: 22px; font-weight: 800; color: #0f172a; margin: 0 0 18px 0;">One input. Six parallel reads. One brief.</h2> <div style="background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 12px; padding: 28px 20px; overflow-x: auto;"> <svg viewBox="0 0 660 200" xmlns="http://www.w3.org/2000/svg" style="width: 100%; min-width: 500px; height: auto; display: block;"> <defs> <marker id="arr" markerWidth="8" markerHeight="8" refX="6" refY="3" orient="auto"> <path d="M0,0 L0,6 L8,3 z" fill="#cbd5e1"/> </marker> </defs> <!-- Input box --> <rect x="10" y="78" width="110" height="44" rx="8" fill="#1e293b" stroke="#334155" stroke-width="1"/> <text x="65" y="96" text-anchor="middle" fill="#86efac" font-family="Consolas,monospace" font-size="10" font-weight="600">run support</text> <text x="65" y="110" text-anchor="middle" fill="#86efac" font-family="Consolas,monospace" font-size="10" font-weight="600">brief [input]</text> <!-- Arrow right --> <line x1="122" y1="100" x2="160" y2="100" stroke="#cbd5e1" stroke-width="1.5" marker-end="url(#arr)"/> <!-- Claude Code box --> <rect x="162" y="72" width="110" height="56" rx="8" fill="#312e81" stroke="#4338ca" stroke-width="1"/> <text x="217" y="96" text-anchor="middle" fill="#e0e7ff" font-family="'Segoe UI',sans-serif" font-size="10" font-weight="700">Claude Code</text> <text x="217" y="112" text-anchor="middle" fill="#a5b4fc" font-family="'Segoe UI',sans-serif" font-size="9">MCP + Web Search</text> <!-- 6 arrows fanning out --> <line x1="274" y1="82" x2="340" y2="22" stroke="#cbd5e1" stroke-width="1" marker-end="url(#arr)"/> <line x1="274" y1="88" x2="340" y2="50" stroke="#cbd5e1" stroke-width="1" marker-end="url(#arr)"/> <line x1="274" y1="96" x2="340" y2="76" stroke="#cbd5e1" stroke-width="1" marker-end="url(#arr)"/> <line x1="274" y1="104" x2="340" y2="102" stroke="#cbd5e1" stroke-width="1" marker-end="url(#arr)"/> <line x1="274" y1="112" x2="340" y2="130" stroke="#cbd5e1" stroke-width="1" marker-end="url(#arr)"/> <line x1="274" y1="118" x2="340" y2="158" stroke="#cbd5e1" stroke-width="1" marker-end="url(#arr)"/> <!-- Source pills --> <rect x="342" y="8" width="82" height="26" rx="6" fill="#fff7ed" stroke="#fed7aa" stroke-width="1"/> <text x="383" y="25" text-anchor="middle" fill="#9a3412" font-family="'Segoe UI',sans-serif" font-size="10" font-weight="600">Zendesk</text> <rect x="342" y="38" width="82" height="26" rx="6" fill="#eff6ff" stroke="#bfdbfe" stroke-width="1"/> <text x="383" y="55" text-anchor="middle" fill="#1e3a8a" font-family="'Segoe UI',sans-serif" font-size="10" font-weight="600">Confluence</text> <rect x="342" y="64" width="82" height="26" rx="6" fill="#f0fdf4" stroke="#bbf7d0" stroke-width="1"/> <text x="383" y="81" text-anchor="middle" fill="#14532d" font-family="'Segoe UI',sans-serif" font-size="10" font-weight="600">Slack</text> <rect x="342" y="90" width="82" height="26" rx="6" fill="#faf5ff" stroke="#e9d5ff" stroke-width="1"/> <text x="383" y="107" text-anchor="middle" fill="#581c87" font-family="'Segoe UI',sans-serif" font-size="10" font-weight="600">Community</text> <rect x="342" y="117" width="82" height="26" rx="6" fill="#fff1f2" stroke="#fecdd3" stroke-width="1"/> <text x="383" y="134" text-anchor="middle" fill="#881337" font-family="'Segoe UI',sans-serif" font-size="10" font-weight="600">Sentry</text> <rect x="342" y="144" width="82" height="26" rx="6" fill="#f0f9ff" stroke="#bae6fd" stroke-width="1"/> <text x="383" y="161" text-anchor="middle" fill="#0c4a6e" font-family="'Segoe UI',sans-serif" font-size="10" font-weight="600">Web Search</text> <!-- Converge arrows --> <line x1="426" y1="22" x2="488" y2="88" stroke="#cbd5e1" stroke-width="1" marker-end="url(#arr)"/> <line x1="426" y1="50" x2="488" y2="92" stroke="#cbd5e1" stroke-width="1" marker-end="url(#arr)"/> <line x1="426" y1="76" x2="488" y2="96" stroke="#cbd5e1" stroke-width="1" marker-end="url(#arr)"/> <line x1="426" y1="103" x2="488" y2="100" stroke="#cbd5e1" stroke-width="1" marker-end="url(#arr)"/> <line x1="426" y1="130" x2="488" y2="104" stroke="#cbd5e1" stroke-width="1" marker-end="url(#arr)"/> <line x1="426" y1="157" x2="488" y2="112" stroke="#cbd5e1" stroke-width="1" marker-end="url(#arr)"/> <!-- Brief output box --> <rect x="490" y="72" width="110" height="56" rx="8" fill="#052e16" stroke="#166534" stroke-width="1.5"/> <text x="545" y="96" text-anchor="middle" fill="#86efac" font-family="'Segoe UI',sans-serif" font-size="10" font-weight="700">Support Brief</text> <text x="545" y="112" text-anchor="middle" fill="#4ade80" font-family="'Segoe UI',sans-serif" font-size="9">~25 seconds</text> <!-- Time label --> <text x="65" y="150" text-anchor="middle" fill="#ef4444" font-family="'Segoe UI',sans-serif" font-size="10" font-weight="600">Before: ~20 min</text> <text x="545" y="150" text-anchor="middle" fill="#22c55e" font-family="'Segoe UI',sans-serif" font-size="10" font-weight="600">After: ~25 sec</text> </svg> </div> </div> <!-- TERMINAL OUTPUT --> <div style="margin-bottom: 32px;"> <p style="font-size: 11px; font-weight: 700; letter-spacing: 3px; color: #94a3b8; text-transform: uppercase; margin: 0 0 10px 0;">Sample output</p> <h2 style="font-size: 22px; font-weight: 800; color: #0f172a; margin: 0 0 18px 0;">What drops in ~25 seconds.</h2> <div style="background: #0d1117; border-radius: 12px; padding: 22px 24px;"> <div style="display: flex; align-items: center; gap: 6px; margin-bottom: 18px; border-bottom: 1px solid #1e293b; padding-bottom: 12px;"> <div style="width: 11px; height: 11px; border-radius: 50%; background: #ef4444;"></div> <div style="width: 11px; height: 11px; border-radius: 50%; background: #f59e0b;"></div> <div style="width: 11px; height: 11px; border-radius: 50%; background: #22c55e;"></div> <span style="font-family: Consolas, monospace; font-size: 11px; color: #374151; margin-left: 8px;">Claude Code &mdash; support brief output</span> </div> <div style="font-family: Consolas, 'Courier New', monospace; font-size: 12px; line-height: 2.1; color: #94a3b8;"> <div style="color: #334155; margin-bottom: 6px; font-size: 11px;"># Support Brief &mdash; Acme Corp &mdash; June 10, 2025 &mdash; 09:00 AM</div> <div><span style="color: #60a5fa; font-weight: 700;">&#8594; Customer &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> SaaS, 300 seats, Skilljar Enterprise since 2022, Chicago HQ</div> <div><span style="color: #60a5fa; font-weight: 700;">&#8594; Open tickets&nbsp;</span> 2 open &mdash; 1 critical (SSO/OIDC, unresolved 3 days), 1 waiting</div> <div><span style="color: #f97316; font-weight: 700;">&#8594; Pattern &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> 4 SSO issues in 90 days &mdash; auth is a recurring pain point</div> <div><span style="color: #ef4444; font-weight: 700;">&#8594; Sentry &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> 3 OIDC token validation failures last 7 days &mdash; all prod</div> <div><span style="color: #a78bfa; font-weight: 700;">&#8594; Community &nbsp;&nbsp;</span> API rate limit post 2 weeks ago &mdash; 6 upvotes, no resolution</div> <div><span style="color: #60a5fa; font-weight: 700;">&#8594; Slack &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> Flagged at-risk in #support-escalations on May 28</div> <div><span style="color: #60a5fa; font-weight: 700;">&#8594; Web intel &nbsp;&nbsp;</span> Series B raised March 2025 &mdash; scaling fast, eng team hiring</div> <div style="margin-top: 8px; padding-top: 8px; border-top: 1px solid #1e293b;"> <span style="color: #fbbf24; font-weight: 700;">&#8594; Watch-out &nbsp;&nbsp;</span><span style="color: #fef3c7;">SSO pattern + at-risk flag + growth = active retention risk. Handle carefully.</span> </div> </div> </div> </div> <!-- BEFORE vs AFTER --> <div style="margin-bottom: 32px;"> <p style="font-size: 11px; font-weight: 700; letter-spacing: 3px; color: #94a3b8; text-transform: uppercase; margin: 0 0 10px 0;">The shift</p> <h2 style="font-size: 22px; font-weight: 800; color: #0f172a; margin: 0 0 18px 0;">What actually changes.</h2> <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 12px;"> <div style="background: #fff5f5; border: 1px solid #fecaca; border-radius: 12px; padding: 20px;"> <p style="font-size: 11px; font-weight: 700; letter-spacing: 2px; color: #dc2626; text-transform: uppercase; margin: 0 0 14px 0;">Before</p> <div style="font-size: 13px; color: #374151; line-height: 1.8;"> <div style="margin-bottom: 6px;">&#10005; &nbsp;Open Zendesk, scan tickets manually</div> <div style="margin-bottom: 6px;">&#10005; &nbsp;Search Confluence, guess keywords</div> <div style="margin-bottom: 6px;">&#10005; &nbsp;Scroll Slack, hope something surfaces</div> <div style="margin-bottom: 6px;">&#10005; &nbsp;Check Sentry in another tab</div> <div style="margin-bottom: 6px;">&#10005; &nbsp;Search the community separately</div> <div style="margin-bottom: 12px;">&#10005; &nbsp;Google the company for context</div> <div style="color: #dc2626; font-weight: 700; font-size: 15px;">~15&ndash;20 minutes per ticket or call</div> </div> </div> <div style="background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 12px; padding: 20px;"> <p style="font-size: 11px; font-weight: 700; letter-spacing: 2px; color: #16a34a; text-transform: uppercase; margin: 0 0 14px 0;">After</p> <div style="font-size: 13px; color: #374151; line-height: 1.8;"> <div style="margin-bottom: 6px;">&#10003; &nbsp;All Zendesk history, auto-surfaced</div> <div style="margin-bottom: 6px;">&#10003; &nbsp;Relevant KB pulled automatically</div> <div style="margin-bottom: 6px;">&#10003; &nbsp;Slack mentions found and summarised</div> <div style="margin-bottom: 6px;">&#10003; &nbsp;Sentry errors scanned in parallel</div> <div style="margin-bottom: 6px;">&#10003; &nbsp;Community posts surfaced instantly</div> <div style="margin-bottom: 12px;">&#10003; &nbsp;Company intel from the web included</div> <div style="color: #16a34a; font-weight: 700; font-size: 15px;">~25 seconds. Same depth. Every time.</div> </div> </div> </div> </div> <!-- BUSINESS CASE --> <div style="margin-bottom: 32px;"> <p style="font-size: 11px; font-weight: 700; letter-spacing: 3px; color: #94a3b8; text-transform: uppercase; margin: 0 0 10px 0;">Business case</p> <h2 style="font-size: 22px; font-weight: 800; color: #0f172a; margin: 0 0 18px 0;">Why this is a GRR and NRR story.</h2> <div style="display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 18px;"> <div style="background: #faf5ff; border: 1px solid #e9d5ff; border-radius: 10px; padding: 20px; text-align: center;"> <div style="font-size: 28px; font-weight: 900; color: #7c3aed; line-height: 1; margin-bottom: 8px;">~20 min</div> <div style="font-size: 12px; color: #6b7280; line-height: 1.5;">saved per engagement &mdash; before a single word is typed</div> </div> <div style="background: #faf5ff; border: 1px solid #e9d5ff; border-radius: 10px; padding: 20px; text-align: center;"> <div style="font-size: 28px; font-weight: 900; color: #7c3aed; line-height: 1; margin-bottom: 8px;">5&ndash;10x</div> <div style="font-size: 12px; color: #6b7280; line-height: 1.5;">daily across the full support team &mdash; compounds fast</div> </div> <div style="background: #faf5ff; border: 1px solid #e9d5ff; border-radius: 10px; padding: 20px; text-align: center;"> <div style="font-size: 28px; font-weight: 900; color: #7c3aed; line-height: 1; margin-bottom: 8px;">&#8593; GRR</div> <div style="font-size: 12px; color: #6b7280; line-height: 1.5;">faster resolution &rarr; less churn &rarr; retained revenue</div> </div> </div> <p style="color: #475569; font-size: 14px; line-height: 1.75; margin: 0;">Faster context = faster resolution. Faster resolution = higher satisfaction. Higher satisfaction = lower churn. And a rep who walks into a call knowing a customer&rsquo;s SSO issue is 3 days old, their Sentry errors are spiking, and they were flagged at-risk last week &mdash; that rep retains the account. That&rsquo;s the GRR and NRR story.</p> </div> <!-- SEVEN FIELD SPEC --> <div style="margin-bottom: 32px;"> <p style="font-size: 11px; font-weight: 700; letter-spacing: 3px; color: #94a3b8; text-transform: uppercase; margin: 0 0 10px 0;">The spec</p> <h2 style="font-size: 22px; font-weight: 800; color: #0f172a; margin: 0 0 18px 0;">Fully defined. Fully reproducible.</h2> <div style="border: 1px solid #e2e8f0; border-radius: 12px; overflow: hidden;"> <div style="background: #0f172a; padding: 12px 20px; display: flex; align-items: center; gap: 10px;"> <div style="display: flex; gap: 5px;"> <div style="width: 10px; height: 10px; border-radius: 50%; background: #ef4444;"></div> <div style="width: 10px; height: 10px; border-radius: 50%; background: #f59e0b;"></div> <div style="width: 10px; height: 10px; border-radius: 50%; background: #22c55e;"></div> </div> <span style="font-family: Consolas, monospace; color: #86efac; font-size: 12px; font-weight: 600;">run-support-brief.md &mdash; v1.0</span> </div> <table style="width: 100%; border-collapse: collapse; font-size: 13px;"> <tr style="border-bottom: 1px solid #f1f5f9;"> <td style="padding: 13px 20px; font-weight: 700; color: #0f172a; width: 95px; vertical-align: top; white-space: nowrap; background: #fafafa;">Trigger</td> <td style="padding: 13px 20px; color: #475569; vertical-align: top;"><code style="background: #f1f5f9; color: #0f172a; padding: 2px 8px; border-radius: 4px; font-size: 12px;">run support brief [org-name or ticket-id]</code></td> </tr> <tr style="border-bottom: 1px solid #f1f5f9;"> <td style="padding: 13px 20px; font-weight: 700; color: #0f172a; vertical-align: top; white-space: nowrap; background: #fafafa;">Inputs</td> <td style="padding: 13px 20px; color: #475569; vertical-align: top;">Org name or Zendesk ticket ID. Claude extracts the org from the ticket automatically &mdash; one input covers both entry points.</td> </tr> <tr style="border-bottom: 1px solid #f1f5f9;"> <td style="padding: 13px 20px; font-weight: 700; color: #0f172a; vertical-align: top; white-space: nowrap; background: #fafafa;">Sources</td> <td style="padding: 13px 20px; color: #475569; vertical-align: top; line-height: 1.75;">Zendesk (all org tickets) &middot; Confluence (SKJCS, SKJENG, SKJPROD, CC spaces) &middot; Slack (last 30 days) &middot; Gainsight Community (all posts by org) &middot; Sentry (last 7 days, org domain) &middot; Web search (company profile, news, tech stack)</td> </tr> <tr style="border-bottom: 1px solid #f1f5f9;"> <td style="padding: 13px 20px; font-weight: 700; color: #0f172a; vertical-align: top; white-space: nowrap; background: #fafafa;">Logic</td> <td style="padding: 13px 20px; color: #475569; vertical-align: top; line-height: 1.85;">1. Resolve org from input &rarr; 2. Pull all Zendesk tickets, identify recurring themes &rarr; 3. Query Sentry for errors tied to org domain &rarr; 4. Search Slack for org mentions &rarr; 5. Fetch Community posts by org &rarr; 6. Find matching Confluence KB articles &rarr; 7. Web search company intel &rarr; 8. Synthesise into structured brief with watch-outs</td> </tr> <tr style="border-bottom: 1px solid #f1f5f9;"> <td style="padding: 13px 20px; font-weight: 700; color: #0f172a; vertical-align: top; white-space: nowrap; background: #fafafa;">Output</td> <td style="padding: 13px 20px; color: #475569; vertical-align: top; line-height: 1.75;">Structured brief: Customer profile &middot; Open tickets &middot; Ticket patterns &middot; Sentry errors &middot; Community activity &middot; Slack mentions &middot; Web intel &middot; Key watch-outs &mdash; 300&ndash;500 words, markdown</td> </tr> <tr style="border-bottom: 1px solid #f1f5f9;"> <td style="padding: 13px 20px; font-weight: 700; color: #0f172a; vertical-align: top; white-space: nowrap; background: #fafafa;">Side effects</td> <td style="padding: 13px 20px; color: #475569; vertical-align: top;">None &mdash; read-only across all sources. Nothing is written or modified.</td> </tr> <tr> <td style="padding: 13px 20px; font-weight: 700; color: #0f172a; vertical-align: top; white-space: nowrap; background: #fafafa;">Approval</td> <td style="padding: 13px 20px; color: #475569; vertical-align: top;">None required &mdash; zero writes, zero external sends.</td> </tr> </table> </div> </div> <!-- AGENTIC FUTURE --> <div style="margin-bottom: 32px;"> <div style="background: #1e1b4b; border: 1px solid #3730a3; border-radius: 12px; padding: 24px 26px;"> <p style="color: #a5b4fc; font-size: 11px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; margin: 0 0 10px 0;">The agentic future</p> <p style="color: #e0e7ff; font-size: 15px; line-height: 1.7; margin: 0;">Wire this to a Zendesk webhook and it fires automatically the moment a ticket is assigned &mdash; brief already in the thread before you open it. Same tool. No new build. That&rsquo;s how a named tool becomes an agentic skill. That&rsquo;s the compound value the rubric rewards.</p> </div> </div> <!-- CTA --> <div style="background: #4338ca; border-radius: 16px; padding: 38px 32px; text-align: center;"> <h2 style="font-size: 26px; font-weight: 900; color: #ffffff; margin: 0 0 10px 0; letter-spacing: -0.3px;">Looking for 1&ndash;4 teammates.</h2> <p style="color: rgba(255,255,255,0.82); font-size: 15px; line-height: 1.7; max-width: 440px; margin: 0 auto 10px;">Pitch deadline June 18 &middot; Build sprint June 23&ndash;July 2 &middot; Watch Party July 7</p> <p style="color: rgba(255,255,255,0.65); font-size: 13px; line-height: 1.6; max-width: 420px; margin: 0 auto 24px;">If you&rsquo;re in Support, CS, or PS and want to build something the team uses every day &mdash; not a demo, not a polished slide, an actual tool that runs on Monday morning &mdash; drop a reply. Let&rsquo;s talk.</p> <div style="display: inline-block; background: #ffffff; color: #4338ca; padding: 11px 28px; border-radius: 9px; font-weight: 800; font-size: 14px;">Drop a reply below &#x1F447;</div> </div></div>
This idea is to test.
Hello testing idea
Overview :This article explains how to integrate the Gainsight Community with Slack using Zapier to automatically detect and notify your team about potential spam activity. The automation identifies situations where a user posts multiple times within a short period (for example, more than 5 posts in 10 minutes) and immediately sends an alert to Slack. This enables your team to review and take action quickly, maintaining a clean and engaging community environment. Prerequisites : Before you begin, ensure you have the following: A Zapier account Access to the Gainsight Community API with valid credentials A Slack workspace with permission to post messages to a channel Creating the Automation : Step 1: Create a New Zap Log in to your Zapier account. Click Create Zap and enter a descriptive name, such as Community Spam Alert to Slack. Select Code by Zapier to create a custom workflow. Choose Python as the scripting language to handle API calls and data processing. Step 2: Configure the Trigger Set the Trigger Event to Run Python. Connect to the Gainsight Community API to fetch recent posts. In the Python script: Authenticate using your client credentials to obtain an access token. Retrieve recent posts from the community, including the following content types: Questions Conversations Ideas For each post, collect details such as: User ID Username Content Type (Question, Conversation, or Idea) Post Title or Link Post Creation Time Published At (for ideas and discussions) Asked At (for questions) Group posts by user and calculate the number of posts created in the last 10 minutes. Identify users exceeding the defined threshold (e.g., more than 5 posts). For each user that exceeds this limit, include a field in the Python output such as: spam = true This will indicate that the user’s activity is flagged as potential spam and should trigger the next step in Zapier. Return the flagged user details as the Python output. Step 3: Add a Filter Add a Filter by Zapier step. Configure the filter condition to continue only if spam=true. Since the Python script adds the spam = true field for users who exceed the post threshold, this filter ensures that only flagged spam activity moves to the next step in the workflow. This prevents unnecessary Slack notifications and makes the automation more efficient. Step 4: Configure Slack Notification Select Slack as the action app. Choose Send Channel Message as the action event. Connect your Slack workspace. Select or create a dedicated channel (e.g., #community-alerts) for spam notifications. Customize the Slack message to include: 🚨 Spam Alert! User: @Ravi User ID: 12345 Posts in last 10 minutes: Please review immediately. Test the Zap to confirm that messages are sent successfully. Step 5: Spam Prevention (Moderation) If a moderator marks a post as Not Spam, the user can continue posting as usual. The automation continues to monitor future activity in real time to detect any new spam. However, when Spam Prevention is enabled, once a moderator marks a post as Not Spam, the system lifts the posting restriction for that user. During this brief period (approximately one minute), the user can create multiple posts again — which means there is a chance for new spam content to appear before the monitoring logic detects and flags it again. This behavior is expected and ensures that legitimate users are not blocked unnecessarily, while still maintaining continuous spam detection afterward. Benefits Instant spam alerts delivered directly in Slack Reduced moderation time and faster team response Improved community quality and user trust Continuous real-time monitoring for proactive spam control Conclusion By integrating the Gainsight Community with Slack through Zapier, you can automate spam detection, receive instant alerts, and act quickly to maintain a healthy and active community. This simple yet powerful automation ensures that your community remains safe, engaging, and well-moderated at all times.
hi
How about using VS Code for Development.
Hi, We’re using Salesforce as a CRM, and would like to push Salesforce data (Calls, Opportunities) into Company. Is that possible and how would I go about getting this started?- Josephine
I’ve noticed some fancy badges below some community profiles. What do I need to do to get these as well and where can I view them all?
I'm wondering if there are any meet & greet sessions here in Amsterdam, who can tell me more?
I’m a big fan of the recent improvements that you have made to the dashboards, it allows me to do in-depth analytics and generate the reports that I use in my QBRs. It would be even better if we have more filtering options available such as:Company Sign up date Age AccountRight now I need to get this data elsewhere and combine data sets.What do you guys think?
Please add an ability to convert any useful instruction or answer provided by any community member to Article.Actually it is one of trending features of modern communities - to collect community knowledgebase by users instructions which can solve a lot of cases then. It would be nice every article has its own direct link to have an ability to provide it to customers.This ability allows to save moderator's time (he/she does not need to create such articles him-/herself). Also users trust other users more than brand representatives. And also it might be used as an additional engagement approach - user's whose posts become articles feels respected and/or might be promoted.
Hi Company,While creating new dashboard and new reports, it can be very beneficial to add team notes to explain why I used certain properties, or timeframes. Can you consider adding a team notes feature so I can include basic background information with reports?I created a short illustration to explain what I mean:Team notes in practice!Thanks,-Josephine
Login to Community
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.
Sorry, we're still checking this file's contents to make sure it's safe to download. Please try again in a few minutes.
OKSorry, our virus scanner detected that this file isn't safe to download.
OK