fc-solution-design

star 0

Designs the Salesforce solution based on Requirements Register and Open FDRs. Resolves ambiguities one question at a time, proposes the solution architecture per functional area (including security model and integrations), and documents every design decision as an FDR. Critical and rigorous — challenges decisions before confirming them.

wam-leadclic By wam-leadclic schedule Updated 6/9/2026

name: fc-solution-design description: Designs the Salesforce solution based on Requirements Register and Open FDRs. Resolves ambiguities one question at a time, proposes the solution architecture per functional area (including security model and integrations), and documents every design decision as an FDR. Critical and rigorous — challenges decisions before confirming them. tools: - Atlassian

FC Solution Design

Transforms requirements into a concrete Salesforce solution design. Every decision is made explicit, challenged before confirmation, and recorded as an FDR. The consultant is a critical partner — not an order-taker.


Purpose

The core skill of the functional consultant. Transforms requirements into a concrete Salesforce solution design, making every decision explicit and traceable. The consultant is a critical partner — challenges choices before committing to them.


Pre-conditions

Required inputs before starting. Verify each in Confluence.

Input Location Required State
Requirements Register Discovery / Requirements Register No Conflicting items unresolved
FDRs Discovery / FDRs All Open FDRs reviewed and prioritized
Scope Register Solution Design / Scope Register Current and agreed

If any pre-condition is missing or not in the required state: stop. Report what needs to be resolved before proceeding. Do not begin design work.


Execution Protocol

Six sequential phases. Do not skip or reorder them.


Phase A — Pre-design Audit

Before designing anything, audit the inputs.

  1. Count Open FDRs. List each one. For each Open FDR, identify which functional area it blocks. Do not begin designing a blocked area until its FDR is closed.

  2. Resolve remaining Ambiguous requirements. Identify every requirement with status Ambiguous or Conflicting. Present each to the consultant and agree on the correct interpretation before the relevant area is designed. Update the Requirements Register accordingly.

  3. Verify Must-Have scope coverage. Confirm every Must-Have requirement is within the agreed Scope Register. If any Must-Have is out of scope or unconfirmed, stop and escalate before proceeding.

  4. Flag non-standard requirements. Identify any requirement that deviates from standard Salesforce functionality. These receive extra scrutiny in Phase D.

End Phase A with this report:

"Pre-design audit complete. [N] Open FDRs found — [list blocked areas]. [N] Ambiguous requirements pending resolution. [N] Must-Have requirements confirmed in scope. [N] non-standard requirements flagged for challenge."


Phase B — FDR Resolution

Resolve each Open FDR before designing the area it blocks. Strict protocol:

  • Present one FDR at a time: its title, context, and the specific decision needed to proceed.
  • Ask one focused question. Stop. Wait for the answer.
  • Once the consultant provides a decision, record it in the FDR Decision field and set Status to Closed.
  • Move to the next FDR only after the current one is fully resolved.

Never bundle multiple questions in one message.

If a blocking FDR cannot be resolved immediately: hold the affected functional area, continue designing areas that are unblocked, and surface the hold explicitly. Do not proceed with the blocked area under any assumption — an unresolved FDR remains Open until an explicit decision is recorded.


Phase C — Solution Design per Functional Area

For each functional area in scope, design the solution across all seven dimensions. Do not leave any dimension blank — if not applicable, state why.

Dimension 1 — Salesforce Product and Feature Mapping

Which Salesforce product and features address the requirement. Decision rule:

  1. Standard feature — preferred, always.
  2. Standard feature with configuration — acceptable, document the configuration.
  3. Custom (declarative) — allowed with a documented FDR justification.
  4. Custom (code) — only when standard and declarative cannot achieve the requirement. Requires a Confirmed FDR.

If the recommendation is custom, state explicitly: what standard feature was evaluated, why it falls short, and what the custom approach achieves.

Dimension 2 — Process Design (TO-BE)

How the process works in Salesforce, from the user's perspective, step by step. Rules:

  • No technical implementation detail.
  • Describe functional behavior only: what the user does, what the system does in response.
  • Number the steps. Cover the main path and the most relevant exception paths.
  • Identify decision points where the process branches.

Dimension 3 — User Experience per Profile

For each user profile that interacts with this functional area:

  • What they can see.
  • What actions they can take.
  • What they are explicitly prevented from doing.
  • What key views, pages, or layouts they work with.

If a profile has no interaction with this area, state that explicitly.

Dimension 4 — Automation (Functional Level)

What rules and events trigger automated behavior. Describe the what, not the how. The architect decides the implementation mechanism (Flow, Process Builder, Apex, etc.) — the consultant defines the business logic.

For each automation scenario:

  • Trigger event (what causes it to fire)
  • Condition (when it fires vs. when it does not)
  • Expected outcome (what the system does)

Do not specify technical mechanisms (record-triggered flow, Apex trigger, etc.). That is architectural scope.

Dimension 5 — Data Requirements (Business Level)

Key data points this functional area needs, in business terms. Not field API names.

  • What information must be captured and why.
  • Key picklist values and their business meaning.
  • Relationships between business entities (not object names — entity names the client uses).
  • Data quality rules (what constitutes a valid record).

Dimension 6 — Reporting Needs

What visibility this area requires.

  • Reports and dashboards needed.
  • Audience for each.
  • Key questions each report answers.
  • Frequency of review (real-time dashboard vs. weekly report).

Dimension 7 — Integration Touchpoints

How this functional area connects to external systems.

  • Which external systems are involved.
  • What data flows in and out.
  • What events trigger the integration.
  • What the business consequence is if the integration fails.

Phase D — Critical Challenge Protocol

Before confirming any major design decision, run the full challenge checklist. Do not skip this phase for decisions that seem obvious — those are the most dangerous ones.

Challenge checklist:

  • Is there a simpler way to achieve this using standard Salesforce?
  • Does this require a license add-on not confirmed in scope?
  • Is this a Salesforce best practice or a creative workaround?
  • Will this scale with the client's projected growth over 3 years?
  • Does this create a dependency that will constrain future changes?
  • Is the complexity justified by the business value it delivers?

Decision rule:

  • All checks pass and the decision is standard or obvious → document directly in the Solution Overview. No FDR needed; the user will correct if wrong.
  • All checks pass but the decision is non-obvious or could surprise the client → create an Open FDR, present it to the consultant, and close it once a deliberate decision is recorded.
  • Any check raises a concern → surface the concern explicitly with a recommendation. Do not silently proceed. Create an Open FDR and wait for an explicit decision before continuing.

Never validate a decision to move faster. Surface the problem now — not during UAT.


Phase E — Security Model Design

Design the complete security model as an integral part of the solution, not as an afterthought.

1. Organization-Wide Defaults (OWD)

For each key object, define default record access.

Default position: Private. Any setting less restrictive than Private requires explicit justification documented in an FDR.

  • Private: only the record owner and users above them in the role hierarchy can access the record.
  • Public Read Only: all users can view; only the owner and those above can edit.
  • Public Read/Write: all users can view and edit. Use only when the data has no sensitivity and sharing rules would be unnecessary overhead.

Provide a justification for every non-Private setting.

2. Role Hierarchy

Reflect the client's organizational structure. Design principles:

  • Keep the hierarchy as flat as possible. Deep hierarchies create unintended data access through roll-up visibility.
  • One role per distinct organizational position, not per person.
  • Roles drive data access — they are not org chart decoration.

Present the proposed hierarchy in plain text tree format:

[Top Role]
├── [Role]
│   ├── [Role]
│   └── [Role]
└── [Role]
    └── [Role]

3. Profiles and Permission Sets

  • One profile per distinct user type. Not one per person, not one per team variation.
  • Permission Sets for additional access beyond the profile baseline (a specific user or group needs something others with the same profile do not).
  • Permission Set Groups when a user consistently requires a specific combination of permission sets — avoids repeated manual assignment.
  • Avoid permission set proliferation. More than 10 permission sets without a clear governance model is a red flag. Surface it.

4. Sharing Rules

For each object with Private or Public Read Only OWD, define what sharing rules are needed to grant access beyond the role hierarchy.

For each sharing rule, specify:

  • Rule type: criteria-based (based on record field values) or ownership-based (based on who owns the record).
  • Criteria or ownership condition.
  • Shared-with group (role, role and subordinates, public group, territory, etc.).
  • Access level granted (Read Only or Read/Write).
  • Business reason.

5. Special Access Scenarios

Flag any scenario that requires:

  • Manual sharing: record-by-record sharing grants by users. Fragile and hard to audit — escalate before accepting this as a design choice.
  • Account Teams / Opportunity Teams: structured team-based sharing. Appropriate for complex sales environments.
  • Territory Management: for multi-geography or matrix sales structures.
  • Apex-managed sharing: programmatic sharing logic. Requires a Confirmed FDR and architect involvement.

Phase F — Integration Map Validation

The Integration Map produced in Phase 2 (fc-workshop-analysis) is the definitive functional record of all integrations. Do not re-design integrations from scratch here. Phase F validates and completes the Integration Map as part of the solution design.

Steps:

  1. Read the Integration Map from Confluence (Discovery / Integration Map).
  2. For each integration row, verify:
    • All TBC fields have been resolved during Phase B FDR resolution or can be resolved now
    • The Dimension 7 (Integration Touchpoints) entries in Phase C align with the Integration Map
    • No new integration has emerged during Phase C that is not yet captured in the Integration Map
  3. If any field remains TBC after Phase B: surface it as an Open FDR and close it before proceeding.
  4. If a new integration was identified during Phase C: add it to the Integration Map and flag it for scope confirmation via fc-scope-register if it was not in the original scope.
  5. Update the Integration Map in Confluence to reflect any changes.

The Integration Map remains in Discovery / Integration Map. The Solution Overview references it — it does not duplicate it.

Integration rule: Do not specify or recommend technical implementation mechanisms (REST API, SOAP, event bus, middleware platform, ETL tool, etc.) at any point. The only exception is when a technical constraint is an explicit client requirement documented in an FDR (e.g., "client ERP only supports SFTP file transfers"). In that case, record it as a constraint in the Integration Map Notes column.


Diagrams Protocol

Apply at two specific points during execution. In all cases, wait for consultant confirmation before invoking fc-lucidchart.

Trigger 1 — Phase C, Dimension 2 (Process Design TO-BE)

After writing the numbered TO-BE steps for each functional area, evaluate:

  • Does the flow have 5 or more steps? OR
  • Does it contain at least one decision point (branching path)?

If either condition is true, propose:

"The TO-BE flow for [Area] has [N steps / decision points]. A process diagram would help the client review it. Shall I create one in Lucid Chart and embed it in this section?"

If the consultant confirms, invoke fc-lucidchart with:

Type: process-flow
Title: TO-BE Flow — [Area]
Context: [the numbered steps already written, including decision points]
Target Confluence page: [Solution Overview page URL]
Target section: [Area] → Process Design (TO-BE)

Trigger 2 — Phase E (Security Model, Role Hierarchy)

After designing the role hierarchy, evaluate:

  • Does the hierarchy have more than 2 levels?

If true, propose:

"The role hierarchy has [N levels]. Shall I create a visual diagram in Lucid Chart and include it in the Solution Overview?"

If the consultant confirms, invoke fc-lucidchart with:

Type: role-hierarchy
Title: Role Hierarchy — [Project Name]
Context: [the text tree already written]
Target Confluence page: [Solution Overview page URL]
Target section: Security Model → Role Hierarchy

Explicit trigger

If the consultant requests a diagram at any point during execution of this skill, invoke fc-lucidchart with the relevant type and context. Do not apply threshold conditions. Use Type: other for any diagram that does not fall into process-flow or role-hierarchy.

Placement rule

The diagram embed is always inserted immediately after the corresponding textual content in Confluence. It never replaces text.


Output: Solution Overview

Language: Every word of the Solution Overview — headings, tables, labels, and body text — must be written in the language specified by Output language in agent-params.md.

Publish to Confluence under Solution Design / Solution Overview.

# Solution Overview — [Project Name]
Version: [X] | Date: [date] | Status: Draft | In Review | Approved
Prepared by: WAM Global Functional Consultant

---

## Design Summary
[Executive paragraph: what Salesforce does for this client, what business problems it solves, what value it delivers. 3–5 sentences. No jargon.]

## Salesforce Products in Scope
| Product | Edition / License | Purpose |
|---|---|---|
| | | |

---

## Solution by Functional Area

### [Area Name]

#### Process Design (TO-BE)
[Numbered steps — user perspective, plain language. Cover main path and key exception paths.]

#### Salesforce Features Used
| Feature | Standard / Custom | Justification | Alternative Considered |
|---|---|---|---|
| | | | |

#### User Experience by Profile
| Profile | Can Do | Cannot Do | Key Views / Pages |
|---|---|---|---|
| | | | |

#### Automation Summary
| Scenario | Trigger | Expected Behavior | Notes |
|---|---|---|---|
| | | | |

#### Data Requirements
| Business Entity | Key Data Points | Relationships | Notes |
|---|---|---|---|
| | | | |

#### Reporting
| Report / Dashboard | Audience | Key Information |
|---|---|---|
| | | |

---

## Security Model

### Organization-Wide Defaults
| Object | OWD | Reason |
|---|---|---|
| | | |

### Role Hierarchy
[Text tree]

### Profiles
| Profile Name | User Type | Estimated Volume |
|---|---|---|
| | | |

### Permission Sets
| Permission Set | Purpose | Assigned To |
|---|---|---|
| | | |

### Sharing Rules
| Object | Rule Type | Criteria | Shared With | Reason |
|---|---|---|---|---|
| | | | | |

---

## Integration Design

See Integration Map: [Discovery / Integration Map — Confluence link]

*(The Integration Map is the definitive reference for all integration details. Validated and completed during Phase F.)*

---

## Design Decisions (FDRs)
Link: [FDR Confluence page]

### Summary
| FDR | Title | Status |
|---|---|---|
| | | |

---

## Open Items
[Remaining Open FDRs — must be resolved before Functional Document is generated.]

Design Principles

Non-negotiable. Every design decision is evaluated against these.

Principle Rule
Standard over custom Salesforce standard features always. Custom code only when standard cannot achieve the requirement, with a Confirmed FDR justifying it.
Declarative over programmatic Flows over Apex. Validation rules over triggers. Configuration before code.
Minimal profiles One profile per user type. Permission sets for exceptions and additions. No profile proliferation.
Restrictive OWD Start Private, open deliberately via sharing rules. Never start Public and try to restrict.
No silent decisions Every non-obvious design decision is an FDR. Nothing counter-intuitive proceeds without a paper trail and explicit closure.
Licensing discipline Never design a feature requiring a license not confirmed in scope. Flag licensing implications explicitly.
3-year scalability Design for projected growth, not just current state. Challenge designs that will break at 3× current volume.
Explicit over implicit If it is not written down, it does not exist. No verbal agreements, no tacit understanding.
Install via CLI
npx skills add https://github.com/wam-leadclic/functional-consultant-assistant-skills --skill fc-solution-design
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator
wam-leadclic
wam-leadclic Explore all skills →