Client Support Process - Standard Operating Procedure
Document Type: Standard Operating Procedure (SOP) Version: 2.1 (Phase 1 — Gmail-first manual workflow) Last Updated: 2026-06-04 Workflow Owner: Support Process Owner (role) Review Schedule: Quarterly
Executive Summary
Symphony Core handles inbound client support requests as a manual, Gmail-first process. Authorized clients email support@symphonycore.com; an operator acknowledges within one business day, triages, resolves (or hands off), and closes — all without dependence on platform features whose reliability is unverified.
This SOP is the keystone for the entire support process. It describes the state machine, the decisions at each transition, and which tool, template, and sub-SOP applies. Procedure-level "how do I do X" lives in linked modular SOPs so this document stays focused on flow and decisions.
The process is role-agnostic: every step describes what happens and which tool is used, not who runs it. Assignment of operators to shifts is a separate staffing decision and does not affect the SOP.
Purpose & Scope
Purpose
Provide a single, authoritative description of how a Symphony Core support request moves from inbound email to closure, using the canonical resources (Google Workspace, GHL, ClickUp, 1Password, Slack) without depending on platform features whose reliability is unverified. The SOP is written to be runnable by any operator with the access listed in § Prerequisites and the Support Operator Onboarding SOP.
Scope
Includes
- Inbound email intake at
support@symphonycore.com - Sender authorization against the client registry
- Acknowledgment, triage, in-progress work, handoff between operators, resolution, closure
- Lightweight feedback loop (weekly review → KB / SOP / template updates)
Excludes
- Phone, chat, or portal intake (not in scope at Phase 1)
- Automation of any step — all checks and responses are manual
- Per-tier SLA enforcement (single SLA for all Phase 1 clients per requirements plan D1)
- 24/7 coverage beyond the emergency exception in § FR-17 Emergency Exception
- GHL Conversations as the operational surface — deferred to Phase 2 (see GHL Support Email Binding SOP, marked deferred)
When to Use This SOP
- A new email arrives at
support@symphonycore.com - An operator needs to decide what to do next on an in-flight request
- A handoff is needed between operators
- The weekly review is being run
- A new operator is being onboarded
Process Overview
State machine
State table
| State | Trigger | Action | Tool | Template | Time bound | Next state |
|---|---|---|---|---|---|---|
| INBOUND | Email arrives at support@ | Visible in support@ Gmail mailbox | Gmail (delegation) | — | — | AUTHORIZATION |
| AUTHORIZATION | New inbound | Sender checked against client registry | GHL Contacts | — | Within 4 business hours | REDIRECT or ACKNOWLEDGED |
| REDIRECT | Sender unauthorized | Templated redirect sent; thread labeled support/redirected | Gmail | unauthorized-redirect-template | Within 1 business day | CLOSED |
| ACKNOWLEDGED | Sender authorized | Templated acknowledgment sent, naming the request and setting expectation | Gmail | acknowledgment-template | Within 1 business day (client TZ) | TRIAGE |
| TRIAGE | Acknowledged | Classify request type; tag coverage + control; determine same-day-closable, multi-day, or route (Change Request / handoff) | Gmail + GHL Contact context | — | Same business day as acknowledgment | IN-PROGRESS |
| IN-PROGRESS | Triaged | Investigation, response, follow-up. ClickUp task opened if multi-day. | Gmail thread + ClickUp task (multi-day only) | — | Per outcome | RESOLVED or HANDOFF |
| HANDOFF | Trigger condition met (see Handoff SOP) | Reassign in ClickUp; comment trigger + context; notify new operator (Slack); notify client | ClickUp + Slack + Gmail | (escalation-template — deferred) | Within 1 business day of trigger | IN-PROGRESS (new operator) |
| RESOLVED | Solution delivered | Internal status flipped to Resolved on ClickUp task (if any) | ClickUp | — | — | CLOSURE-SENT |
| CLOSURE-SENT | Resolved | Closure email to client confirming completion | Gmail | closure-template | Same business day as resolution | CLOSED |
| CLOSED | Client confirms or 5 business days elapse without reply | Thread labeled support/closed; ClickUp task archived | Gmail + ClickUp | — | — | (terminal) |
Key information
| Attribute | Details |
|---|---|
| Frequency | Per inbound — typically 1–5 requests/week |
| Duration | Same-business-day closure for ~70% of requests; multi-day for the rest |
| Trigger | Email arrival at support@symphonycore.com |
| Output | Closed request with documented resolution |
| Dependencies | All items in § Prerequisites |
Roles & Responsibilities
Roles in this SOP are functional positions, not specific humans. Any operator with the access listed in § Prerequisites can fill any role. Staffing is a separate, owner-driven decision and does not require revising this SOP.
Functional roles
Support Operator
- Monitors the
support@mailbox during their assigned shift - Performs the authorization check, sends acknowledgment, triages, investigates, sends responses, sends closure
- Opens a ClickUp task when a request crosses into multi-day
- Initiates handoff when a trigger condition is met
Escalation Owner
- Receives handoffs that meet a trigger in § Handoff SOP (billing dispute, scope dispute, complaint, technical complexity beyond 2 hours of focused work)
- Becomes the new Support Operator for that request
Support Process Owner
- Maintains this SOP, the templates, and the modular SOPs it references
- Runs the weekly review (see Weekly Review SOP)
- Decides when a Phase 2 automation trigger has fired
RACI matrix (by state)
| State / Activity | Support Operator | Escalation Owner | Support Process Owner |
|---|---|---|---|
| Authorization check | R/A | I | I |
| Acknowledgment send | R/A | I | I |
| Triage decision | R/A | C | I |
| In-progress work | R/A | C | I |
| Handoff initiation | R/A | C | I |
| Handoff receipt | I | R/A | I |
| Resolution + closure | R/A | C (if handed off) | I |
| Weekly review | C | C | R/A |
| Template / SOP updates | C | C | R/A |
Legend: R = Responsible, A = Accountable, C = Consulted, I = Informed. Same person can hold R and A on a step.
Prerequisites
Before performing this process, an operator must have:
-
Access & permissions
- Gmail delegate access to
support@symphonycore.commailbox — set up per Gmail Delegation Setup SOP - Gmail "Send mail as" alias configured on the delegated account — set up per Gmail Send-as Alias Setup SOP
- Read access to the GHL agency dashboard (for the authorization check)
- Member of the SC Operations ClickUp space (for multi-day request tracking)
- Member of the SC Slack workspace (for handoff notifications)
- Gmail delegate access to
-
Required information
- List of active clients (in GHL as
Contact Type = Customer AND Customer Type = Current) - Knowledge of the canonical redirect phrase (§ Canonical phrases)
- The five outbound email templates (see § Templates)
- List of active clients (in GHL as
-
Onboarding completed
- Worked through the Support Operator Onboarding SOP
- Read this SOP end-to-end
- Read each modular SOP referenced from the § State table
Process Steps
Phase 1 — Intake & authorization
Objective: Determine whether to engage with the inbound or send a templated redirect. Duration: Within 4 business hours of inbound arrival.
Step 1.1 — Triage the inbox
Tool: Gmail (via delegate access to support@symphonycore.com)
Actions
- Check the
support@inbox at least twice per business day (morning + afternoon). - For each unread thread, open and read in full before acting.
- If the thread is a reply to an existing in-flight request, route to its existing tracking record (see § Phase 3 — In-progress work).
Expected output: A clear sense of which threads are new requests vs. continuations.
Step 1.2 — Run the authorization check
Tool: GHL Contacts Detailed procedure: Support Authorization Check SOP
Actions
- Take the sender's email address from the inbound thread.
- Search the GHL agency dashboard for a contact matching that email.
- Confirm the contact is
Contact Type = Customer AND Customer Type = Current.
Decision point
- If matched: proceed to Step 1.3 (Acknowledge).
- If not matched: proceed to Step 1.4 (Redirect).
- If ambiguous (e.g., personal address claiming to be a client employee): redirect anyway, AND apply Gmail label
support/needs-verificationso the Process Owner can resolve with the account representative.
Expected output: Clear authorize/redirect decision.
Step 1.3 — Send the acknowledgment
Tool: Gmail (with "Send mail as" alias) Template: Support Acknowledgment Email Template
Actions
- Reply in the thread.
- Use the template; fill in the merge fields (first name, request summary phrase if helpful, expected response time).
- Apply Gmail label
support/new→support/triaging. - Sign as Symphony Core Support — never an individual name (substitutability rule per NFR-6).
Tip
Reply in thread — Gmail's auto-
Re:prefix is correct. Don't start a new thread unless the inbound came via a different channel (call, Slack) and you're starting an email thread for it.
Common mistake
Sending from your own delegate address without the "Send mail as" alias. The client then sees
From: operator@symphonycore.com on behalf of support@and starts replying directly to your inbox. Always send asSymphony Core Support <support@symphonycore.com>.
Expected output: Acknowledgment in the client's inbox; thread state advanced to TRIAGE.
Step 1.4 — Send the unauthorized redirect
Tool: Gmail (with "Send mail as" alias) Template: Support Unauthorized Redirect Email Template
Actions
- Reply in the thread using the template.
- Apply Gmail label
support/redirected. - Set up a Gmail filter so future emails from this sender skip the inbox and auto-label
support/redirected(one-shot policy — don't keep responding). - Sign as Symphony Core Team (generic, not "Support" — see template usage notes).
Edge case
If the sender claims to be an existing client but isn't in the registry (e.g., new employee at a client company), redirect anyway and apply
support/needs-verification. The account representative will reconcile in GHL.
Expected output: Redirect sent; thread state advanced to CLOSED.
Phase 2 — Triage
Objective: Decide whether the request closes today or becomes a multi-day track. Duration: Same business day as acknowledgment.
Step 2.1 — Assess request
Tool: Gmail thread + GHL Contact context
Actions
- Read the full request; consult linked context (GHL contact notes, prior tickets if visible).
- Classify the request type — what the client is asking for:
- Incident — something that worked is now broken, erroring, or down. Restore-first; check the FR-17 emergency exception.
- Request — do a defined thing (a change, configuration, publish, or access grant). Access/provisioning requests require an identity check per the Support Authorization Check SOP before acting.
- Question — information, guidance, or how-to; no system change.
- Billing & Account — invoices, subscription, payment method, or plan changes.
- Tag the request on the two axes that decide how it's handled:
- Coverage — in-scope (covered by the engagement) · billable (out-of-scope work) · warranty/rework (correcting an SC defect, no charge). A
Requesttagged billable is a Change Request — route it through the Change Request Intake SOP, don't resolve it here. - Control — SC-controlled · client-controlled · third-party-controlled. When the affected system is not SC-controlled, SC diagnoses and coordinates rather than fixing directly (see Step 3.1).
- Coverage — in-scope (covered by the engagement) · billable (out-of-scope work) · warranty/rework (correcting an SC defect, no charge). A
- Sort by predicted resolution effort:
- Same-day closable (< 2 hours focused work, no third-party dependency)
- Multi-day (requires investigation, vendor input, or > 2 hours of work)
Decision point
- Billable
Request(Change Request) → route to the Change Request Intake SOP; don't start work until scoped, approved, and prepaid. - Billing dispute, scope dispute, or complaint → handoff (see Handoff SOP).
- Same-day closable → proceed to Phase 3 with the Gmail thread as the record.
- Multi-day → open a ClickUp task (Step 2.2) before proceeding to Phase 3.
Step 2.2 — (Multi-day only) Open the ClickUp task
Tool: ClickUp (SC Operations space → support list — see Rollout doc § #18)
Actions
- Title:
support-<short-summary>(lowercase-hyphenated, ≤ 50 chars). - Description: link to the Gmail thread URL; brief context (one paragraph); the resolution criteria.
- Status:
IN PROGRESS. - Assignee: yourself (the current Support Operator).
- Verbosity budget: keep description under 1,200 characters; link to SOPs/templates instead of inlining their content (per SC Contractor Task Quality Pre-work Standard).
Expected output: ClickUp task created; Gmail thread now mirrors its tracking record.
Phase 3 — In-progress work
Objective: Investigate and resolve the request, or hand off if a trigger fires. Duration: Per the expected-response time set in the acknowledgment.
Step 3.1 — Investigate
Tool: Gmail thread, GHL sub-account access, KB, prior closed threads (search Gmail for similar issues).
Actions
- Reproduce the issue or gather the missing information.
- If client clarification is needed, reply in thread and apply label
support/waiting-client. - If a third-party (vendor, DNS provider, etc.) is needed, contact them and record the inquiry in the Gmail thread or ClickUp comment.
Third-party-controlled systems
When the affected system is controlled by a party other than SC (a client's prior host, domain registrar, DNS provider, or another vendor), SC cannot resolve it directly. Run the diagnosis, hand the controlling party clear, forwardable findings (what's confirmed, what to check next), and coordinate to resolution. Tell the client plainly what SC can and cannot do here, so the expectation is "we'll diagnose and drive the fix," not "we'll fix it ourselves."
Decision point during investigation
- If any Handoff trigger fires → execute the Handoff SOP. Skip the rest of this phase.
- If the request resolves → proceed to Phase 4.
Step 3.2 — Respond / follow up
Tool: Gmail thread (and ClickUp comments if multi-day)
Actions
- Send substantive responses as they're ready — don't batch silently.
- If response is delayed beyond the acknowledgment's expected-response time, send a status update before the deadline expires.
- Sign all client-facing messages as Symphony Core Support.
Common mistake
Going silent past the expected-response time. The client expectation is responsiveness, not perfect speed. A "we're still investigating, expect an answer by EOD tomorrow" message preserves trust; silence destroys it.
Phase 4 — Resolution & closure
Objective: Confirm the fix, notify the client, close the loop. Duration: Same business day as resolution.
Step 4.1 — Verify resolution internally
Tool: Whichever system the fix touches (GHL, WordPress, DNS, etc.)
Actions
- Confirm the fix is live and the root cause is addressed (not papered over).
- If a ClickUp task is open, set status to
RESOLVED.
Step 4.2 — Send the closure email
Tool: Gmail (with "Send mail as" alias) Template: Support Closure Email Template
Actions
- Reply in the thread using the closure template.
- Fill in the resolution summary (1–2 sentences; lead with what's now true).
- Include the optional
{{VERIFICATION_URL}}block only if the resolution is verifiable via a URL. - Apply label
support/closed.
Expected output: Closure email sent; thread state CLOSURE-SENT.
Step 4.3 — Confirm or auto-close
Tool: Gmail (passive monitoring)
Decision point
- Client replies confirming: Close immediately. Archive the Gmail thread; archive the ClickUp task (if any) to the SC Operations
archivelist. - Client replies asking for revisions (within 5 business days): Re-open. Treat as a continuation of Phase 3.
- 5 business days pass with no reply: Auto-close. Archive as above.
Quality Checkpoints
Checkpoint 1 — After Phase 1 (intake & authorization)
Verify
- Authorization check ran for every new inbound (no thread sits in
support/newfor > 4 business hours). - Every authorized inbound has an acknowledgment in thread.
- Every unauthorized inbound has a redirect + Gmail filter.
If criteria not met: clear the backlog before any new work; surface the lag at the next weekly review.
Checkpoint 2 — After Phase 3 (in-progress)
Verify
- Every multi-day request has a ClickUp task and the Gmail thread links to it.
- No thread sits in
support/waiting-clientfor > 5 business days without a nudge or auto-close. - All handoffs have a documented trigger + context per Handoff SOP.
If criteria not met: address the specific drift; this is a process problem, not a request-level problem.
Final Checkpoint — Before marking CLOSED
Verify
- Closure email sent.
- Resolution summary captured in the closure email AND in the ClickUp task (if any).
- Gmail thread labeled
support/closed. - ClickUp task moved to
COMPLETEstatus; will auto-archive per the SC Operations space maintenance cycle.