Build a SOC 2 control mapping for your Auxot deployment

Map each SOC 2 Trust Service Criteria control to the Auxot page, audit-log filter, or context file that satisfies it, so when the auditor opens your spreadsheet, every row points to evidence they can verify in under a minute, not a meeting your team has to schedule.

Plus: three Admin-Agent passes: generate a draft mapping from a pasted control list, flag controls without clear Auxot evidence so you can plan compensating controls, and produce pre-walkthrough Q&A bullets for each surfaced control.

Audience Admins · Developers · Executives
Time ~15 min
Prerequisites Org admin access (Settings + Audit Logs read). A copy of your auditor's control list (Type I or Type II) or the SOC 2 Trust Service Criteria you intend to scope. Helpful: subprocessor inventory ([Map your subprocessors for procurement](/tutorials/map-your-subprocessors-for-procurement)), questionnaire muscle ([Answer vendor security questionnaires from your own evidence](/tutorials/answer-vendor-security-questionnaires-from-your-own-evidence)), retention vocabulary ([Plan for retention and deletion requests](/tutorials/plan-for-retention-and-deletion-requests)).
You'll end up with A markdown table mapping each scoped Trust Services Criteria control → Auxot evidence (page, filter, file, or external system) → owner → review cadence, pre-walkthrough-ready, with explicit `compensating control: see [external system]` rows where Auxot does not satisfy the control directly.

When a tutorial shows italic text in quotation marks, it usually mirrors a label or helper string inside Auxot. Product copy changes between releases — if something reads differently in your workspace, trust what you see on screen.

Callouts with a Worth knowing gold accent are meant as must-read context before you move on. Blockquotes that open with Tip are lighter, optional depth.

Why this matters

SOC 2 walkthroughs fail the same way every time. The auditor asks “show me how this control works,” and the team scrambles to find the right page, the right filter, the right screenshot. Twenty minutes of “let me pull that up” per control across forty controls is how a one-day audit becomes a one-week audit, and a calm conversation becomes a tense one.

Auxot satisfies a respectable fraction of common SOC 2 Trust Service Criteria controls directly:

  • CC6 (Logical Access): Settings → Teams, Settings → API Keys, Settings → Multi-team isolation.
  • CC7 (System Operations / Monitoring): Audit Logs (Jobs, Threads, Events), System Health.
  • CC8 (Change Management): Agent description edits, tool-policy changes, provider swaps; all visible in Audit Logs → Events.

The rest you cover with external systems (your identity provider for SSO, your ticketing system for change approvals, your HR onboarding/offboarding flow). The mapping document is what tells the auditor which row lives where in advance, so the walkthrough becomes verification instead of investigation.

What this tutorial does not do: replace your auditor, draft your policies, or claim a clean opinion for you. It builds the evidence index (the spreadsheet auditors actually want) from what your Auxot deployment already has, plus honest pointers to the external systems that cover the rest.

Nothing satisfies a control on its own: you map the row, you name the owner, you verify the evidence still exists on the date of audit.


Quick start

  1. Get the control list: your auditor’s spreadsheet, or the published Trust Service Criteria for the categories in your scope (Security is the default; Availability, Confidentiality, Processing Integrity, Privacy are add-ons).
  2. Build the table skeleton: columns are Control ID, Plain-English summary, Auxot evidence (page / filter / file), Owner, Review cadence, Status (mapped / compensating / gap).
  3. Map the high-confidence rows first: CC6 access controls and CC7 monitoring nearly always resolve to specific Auxot pages. Fill those before tackling anything ambiguous.
  4. Mark compensating controls honestly: compensating control: SSO via [your IdP] is a real, auditable answer. unknown is not.
  5. Save versioned + named owners: markdown table or context file titled SOC 2 mapping - YYYY-MM-DD. Every row has an owner; ownerless rows fail walkthroughs.

Done? A spreadsheet the auditor can open and verify in under a minute per row, plus a short gap list you can schedule against before the audit date.


The agent can do that?

1. Draft mapping from a pasted control list

Chat → Admin Agent:

Here is the SOC 2 control list my auditor sent: [paste]. For each control, propose: (a) which Auxot page or audit-log filter satisfies it, OR (b) `compensating control: external system needed; name the likely system (IdP, ticketing, HR)`. Do not invent. Mark anything you cannot determine as `needs human review`.

Why it’s non-obvious: Pasted control text beats memory. The agent maps each row to the canonical Auxot surface where it can be verified; you fill the gaps the agent flags as needs human review.

2. Flag controls without clear Auxot evidence

After the draft exists:

Mapping draft: [paste]. List every row where the evidence column says `compensating`, `unknown`, or `needs human review`. For each, suggest one external system the row likely lives in (Okta, Jira, BambooHR, etc.) so I can route to the owner of that system.

Why it’s non-obvious: Compensating controls are not failures; they are signals about which external systems your audit also depends on. Naming the system makes the routing obvious.

3. Pre-walkthrough Q&A per control

Pick the five controls in this mapping most likely to be sampled in a SOC 2 Type II walkthrough: [paste mapping]. For each, draft three bullets: (1) the question the auditor will probably ask, (2) the exact page or filter to open, (3) the one-sentence narrative the control owner should say while sharing the screen.

Why it’s non-obvious: Auditors do not memorize your stack. The owner needs a sentence to say and a screen to share. Rehearsing the top five rows cuts walkthrough time in half and removes the “let me pull that up” moments that erode auditor confidence.


Go deeper

Which Trust Services Criteria categories Auxot satisfies most cleanly

Which Trust Services Criteria categories Auxot does not cover directly

  • CC1 (Control Environment): your org chart, code of conduct, board oversight. Lives outside Auxot.
  • CC2 (Communication & Information): policies, training records, customer-facing security page. External, but Answer vendor security questionnaires from your own evidence feeds the customer-facing side.
  • CC3 (Risk Assessment) and CC9 (Risk Mitigation): risk register and vendor-risk reviews. Your subprocessor inventory (Map your subprocessors for procurement) feeds part of CC9.
  • CC4 (Monitoring Activities) and CC5 (Control Activities): internal audit cadences and policy enforcement. External, but Audit Logs (View your audit logs) supplies evidence.

Review cadence by control type

  • Monthly: access reviews (CC6): who is on which team, which API keys are still in use.
  • Quarterly: subprocessor inventory refresh (CC9), mapping document refresh, tool-policy review.
  • On change: any time a new provider, MCP server, or team is added; update the affected rows the same day.
  • Annually: policy documents (CC2), risk assessment (CC3), full mapping walkthrough with control owners.

Type I vs Type II

  • Type I = controls exist as of a single date. The mapping is enough on its own; the auditor verifies you have evidence today.
  • Type II = controls operated effectively over a period (typically 6–12 months). The mapping is the entry point; the auditor samples specific dates within the window and asks you to produce the evidence as it existed on that date. Audit Logs (View your audit logs) carry the historical record because they do not currently expire (Plan for retention and deletion requests → Retention).

Troubleshooting

  • Auditor asks for a control you cannot find in Auxot. Mark it compensating and name the external system. Do not stretch an Auxot page to cover a control it does not actually satisfy; the walkthrough exposes that fast.
  • Two controls point at the same Auxot evidence. Fine. Many controls overlap (e.g. CC6.1 and CC6.2 both touch logical access). Cite the same page twice with different narratives.
  • Mapping was perfect last quarter, now half is wrong. Something changed (new provider, new team, new MCP server) and the mapping was not refreshed. This is what the quarterly review prevents.
  • You added a context file and forgot to map it. Run power move 2 again after every Settings change worth noting.

Variations & edge cases

  • Self-hosted vs hosted: self-hosted teams own additional CC6/CC7 rows (database access, backup access, infrastructure logs). Add a separate section to the mapping for infrastructure-layer controls.
  • Multi-team setups (Business+): each team’s resources can be scoped separately (Set up multi-team isolation). The mapping should call out which controls inherit org-wide and which apply per team.
  • Pre-audit dry run: schedule a 60-minute internal walkthrough one month before the real audit, using power move 3 to script the Q&A. Surprises surface where the team can still fix them.
  • External penetration test: the test report is its own evidence row for CC4 / CC9. Reference it in the mapping; do not paste the full report.

Walkthrough

Step 1: Get the control list

Pull the auditor’s spreadsheet, or download the published Trust Service Criteria for the categories in your scope. Default scope is Security (CC1–CC9). Add Confidentiality, Availability, Processing Integrity, Privacy only if customers or contracts require them.

Step 2: Build the table skeleton

Columns:

Control IDPlain-English summaryAuxot evidence (page / filter / file)OwnerReview cadenceStatus
CC6.1Logical access is restricted to authorized users.Settings → Teams; Settings → API Keys; SSO via [your IdP]Security leadMonthlymapped
CC7.2System events are logged and monitored.Audit Logs → Events tab; severity filter Warning or ErrorOps leadContinuousmapped
CC8.1Changes to system components are tracked and approved.Audit Logs → Events tab; ticketing reference in commit messagesEng leadOn changemapped

Step 3: Map CC6 (Logical Access) rows

  • Who has Auxot org admin? Settings → Teams shows the list.
  • Who has API key access, and when was each key last used? Settings → API Keys; rotation cadence per Create a shared Team API Key.
  • Are there separate teams for sensitive data? Set up multi-team isolation confirms scoping.

Step 4: Map CC7 (System Operations) rows

  • What logs are captured? Audit Logs → Jobs (every agent run), Threads (every conversation), Events (every system action).
  • Are errors monitored? Audit Logs → Events tab, severity filter Warning or Error.
  • Is there a defined response process for incidents? Cross-link to your internal runbook; Trace a failing job end to end covers the technical investigation path.

Step 5: Map CC8 (Change Management) rows

  • Are agent changes logged? Audit Logs → Events shows every description edit, tool policy change, and provider swap with timestamp and actor.
  • Is there an approval process for changes? Update your agents without breaking the team for the announcement side; reference your ticketing system for approval evidence.

Step 6: Mark compensating controls honestly

For every control Auxot does not satisfy directly:

  • Name the external system that does (IdP, ticketing, HR, code-of-conduct doc).
  • Note the owner of that system.
  • Mark status as compensating.

Do not stretch an Auxot page to cover a control it does not actually satisfy. The walkthrough exposes that fast and damages credibility on rows you genuinely have evidence for.

Step 7: Save versioned and route to owners

Save the mapping as a context file titled SOC 2 mapping - YYYY-MM-DD. Include the footer:

Mapping owner: [name]
Last reviewed: YYYY-MM-DD
Review cadence: quarterly

Share the file with every named owner. Schedule the quarterly review on the calendar so the document does not go stale between audits.


What’s next

Reference