Account-based support

B2B customer support: the account is the unit of work

A ticket is one message. An account is the company you sell to, with several contacts, contract response times and a shared Slack channel. Here is how to run support on that.

Updated November 11, 2026 · 9 min read

The account is the unit of work

A ticket records one message. A B2B customer is a company with a contract, and it writes in through several people: a user who reports the bug, an admin who owns the seats, a finance contact who asks about the invoice, and sometimes an executive sponsor who appears only when something goes wrong. A queue that counts tickets sees four unrelated threads. A queue that counts accounts sees one customer with four open issues and a renewal due in 60 days. If customer data lives only in a requester field on each ticket, the agent answers the same company from memory.

Name one support owner and one backup per account. Support does not quote prices, credits or new terms. When a customer asks for one of those, reply: “I’m passing this to [name], who handles contract questions. You’ll hear from them by [day and time].”

Turn contract clauses into targets

Contracts usually state a response time, not a tier. Split each clause into one target per priority. A contract that says “first response within 4 business hours for severity 2 and one business day for everything else” becomes two fields: severity 2 at 4 business hours, and the default at one business day.

Store the business-hours calendar on the account too: time zone, working days and holidays. If the contract names the customer’s time zone, that calendar governs. If it names your support hours, use those. If it names neither, use the customer’s time zone and write that choice into the SLA. A customer ten hours ahead of your team who writes at 17:40 on their Friday is writing at 07:40 on your Friday, so the two calendars give different deadlines for the same message.

Write the clock rules down and share them with the customer:

  • The clock starts when the customer’s message arrives, not when an agent opens it.
  • It pauses only while the reply you need is from the customer, such as logs you asked for, and restarts when they answer.
  • It does not pause while an internal engineer works. Post a status on the cadence the contract sets.

Worked check: a message arrives at 17:40 on Friday against a one-hour target, with business hours of 09:00 to 18:00. Twenty minutes fall before 18:00 on Friday. The remaining 40 minutes count from 09:00 on Monday, so the deadline is 09:40 Monday. A tool that counts raw hours shows 18:40 Friday, and every Friday evening message breaches.

Decision rule: if the contract names business hours, the calendar is contract data, not a team preference. The first response time calculator checks a deadline for any hours and days.

Failure mode: the subject says “priority 1”, but the contract defines severity as “production down”. Fix: copy the contract’s definition onto the account as a short label, and stamp that label on each ticket when it opens.

Define first response before you measure it

Measurement fails when “first response” means one thing to the agent, another to the report and a third to the customer. Write these rules down and have the customer success owner sign them off:

  • Holding messages count only if they name an owner and a time. “Thanks, we’ve got this” does not. “Dana is checking the sync logs and will reply here by 15:00 today” does.
  • Emoji reactions, automatic acknowledgements and out-of-office replies never count.
  • A reply to a different person in the channel does not stop the clock for this customer’s request.

AI replies are the open question, and few teams have a settled rule. Decision rule: if an AI agent drafts or sends a reply, label it, count it in a separate first-response series, and report human attainment on its own. Let the agent read contract targets and open threads, but keep severity changes, due dates and credits with a person.

Shared channels and companies with several accounts

A Slack Connect channel holds people from more than one company. Slack’s guide says a channel can host up to 250 organizations, without naming the plans that limit applies to. Slack’s pricing page describes “dedicated channels with up to 250 orgs” on its Pro, Business+ and Enterprise+ plans. On Free, Slack Connect is one-to-one direct messages only. Each organization in a channel must use a paid plan, and only the organization that owns a channel can invite others. Ask the customer for the roster up front: “Send us the names and work emails of everyone on your side who should be in this channel, and we’ll confirm each person once they’ve joined.”

Keep one roster per account with name, role, work email and Slack user ID. Match each new sender by Slack profile email first. Domain matching is provisional only, because one domain can belong to several accounts through shared mail providers, subsidiaries or acquisitions. Rule: if a domain matches more than one account, or the address sits on a generic mail provider, leave the sender unassigned for a person to match. If exactly one account claims the domain, keep the match provisional until the person’s first reply confirms it.

When one person works with two accounts, keep one contact record with two account links, and file each request under the account whose contract covers it. If unclear, ask: “Is this for [Account A] or [Account B]? I’ll file it under the one that matches your contract.”

Anything posted in the channel is visible to everyone in it, so keep internal discussion in internal notes. The Slack guide does not cover guest roles, how people leave a channel, or what happens to channel history when an organization leaves, so ask your workspace admin before you promise retention.

Cost is an estimate, not a quote. Slack’s pricing page lists Pro at $7.25 and Business+ at $15 per user per month when paying annually, and shows Enterprise+ as “Contact sales for pricing.” If you assume 12 people on your side are each billed as a Business+ user, the list-price estimate is 12 × $15 = $180 a month. Confirm with Slack how channel members are counted before you budget.

Three worked examples

Data integration vendor, enterprise. 300 seats, and a shared channel with nine people across three business units. The contract sets first response within 30 minutes around the clock for severity 1 (a sync has stopped), and 4 business hours for severity 2. Escalation: a severity 1 with no workaround after 2 hours pages the on-call engineer and gets a channel post, then a status every 60 minutes. Around-the-clock coverage needs a rota with a primary and a secondary on-call engineer, changed weekly and published four weeks ahead, with holiday cover named. If the rota cannot name a person for an hour, the contract should not promise the 30-minute target for that hour. Wording for the channel: “We’ve paged our on-call engineer. I’ll post a status here every hour, even if nothing has changed, and you’ll hear from me by 3:00 pm if the sync is still down.”

HR software, mid-market. 60 seats, email plus one shared channel, and one executive sponsor. The contract sets first response within 4 business hours. Escalation: a sponsor message with no reply after 24 hours goes to the account owner, who replies within 2 business hours and offers a call. Wording to the sponsor: “Thanks for following up, and I’m sorry this has waited. Here is where it stands. I’d like to book 20 minutes tomorrow to close it out.”

API payments, self-serve. Email only, with a 1 business day first response target. Escalation: a thread reopened twice goes to a named person, gets a “repeat” label, and is reviewed weekly. A reopen usually means the answer was missing or wrong rather than slow, so this rule measures a different problem.

Metrics per tier and account health

Report each tier on its own, because a blended average hides enterprise misses behind fast self-serve replies. Example targets, not recommendations:

Tier First response target Escalation trigger Review cadence
Enterprise 30 minutes around the clock for severity 1; 4 business hours for severity 2 Severity 1 with no workaround after 2 hours Daily
Mid-market 4 business hours Sponsor message with no reply after 24 hours Weekly
Self-serve 1 business day Thread reopened twice Monthly

For each tier, track:

  • Attainment: responses within target divided by all requests opened in the period. A request still open past its target counts as a miss.
  • The 90th percentile first response time, per severity where a tier has more than one target.
  • Escalations and reopened threads per account per month.
  • Time to resolution, split by account.
  • CSAT per account, only where the account has at least 10 responses.

Account health is a rule, not a score. Over the last 30 days, mark each account:

  • Red: any severity 1 open past target, two or more reopened threads, or any missed first response on an account whose renewal falls within 60 days.
  • Yellow: one reopened thread, or attainment below nine in ten.
  • Green: anything else.

Review every red account within one business day.

Alarm rule: for an enterprise tier with two targets, compare each severity’s 90th percentile with that severity’s own target, 30 minutes for severity 1 and 4 business hours for severity 2. Never compare severity 1 times with the severity 2 target. If a tier’s 90th percentile is more than 1.5 times its target for a week, review that tier’s account list, not the tier average.

Failure modes and fixes

  • Two answers to one question. Two people from one customer ask the same thing 60 minutes apart. Fix: show every open thread for the account in one view, and link the second thread to the first before replying.
  • Paused clocks nobody agreed to. Fix: review paused clocks weekly. If a pause lasts more than 2 business days without a customer reply, the owner confirms it in writing.
  • Escalations with no owner. Fix: notify the named owner directly, and the backup if the owner has not acknowledged within 60 minutes.
  • Invisible failures. A reply that failed to post looks sent. Fix: failed sends must be visible and retryable, and the thread should show whether the last message reached the customer.

Rollout and tool criteria

When you move from a ticket tool to an account model:

  • Export 90 days of threads and match each requester by Slack email first, then by domain under the rule above. Review every unmatched sender by hand.
  • Load the contract targets, calendars and severity labels for every account, then run both tools in parallel for one week.
  • Test five cases before cutover: a Friday 17:40 message with a one-hour target, two contacts asking the same question, a reopened thread, an email and a Slack message from one account, and a reply that fails to post.

If you compare tools that claim account-based support, check before the demo whether one account can hold Slack Connect and email contacts, whether each account carries its own targets and calendar, whether AI replies can be labeled and reported separately, whether attainment and the 90th percentile can be exported per account, and whether failed sends are visible. Then run the five cases on each candidate.

Disclosure: this guide is published by Weft, a support inbox for B2B teams that work in shared Slack Connect channels and email. Its live features today include turning every customer message in a shared channel into a thread in one queue, and grouping customers under accounts. The criteria and test cases above apply to any tool.

Questions

How is B2B customer support different from B2C support?

A B2C ticket is usually one person and one problem. In B2B the same problem can arrive from an admin, a day-to-day user and a finance contact, and the contract sets how fast each reply must come.

How many contacts per account should a support tool track?

Track every person who has written in the last 30 days, plus the roles the contract names, such as admin, billing contact and executive sponsor. Group large accounts by business unit so one team's problem doesn't look like the whole account's.

Which metrics belong in a per-tier support report?

Attainment, the 90th percentile first response time, escalations and reopened threads per account per month, and time to resolution. Report each tier separately, never as one blended average.

Do shared Slack channels change how you measure response time?

Yes. Slack's guide says a Slack Connect channel can host up to 250 organizations, so one channel can hold people from several accounts. Start the clock per message and map each sender to an account, or per-account numbers will be wrong.

Sources

Competitor details come from each vendor's public pages, checked November 11, 2026. Prices and plans change; check the source before you buy. Spot an error? Email hello@weft.day.

Get the next guide by email.

Keep reading

Run Slack Connect support from one queue.

Every workspace starts with a 14-day free trial of Growth. No card needed to start.