👷🔧 Storyforce is under early construction, many pages are half finished! 🔧👷
Playbook
Story Templates

Templates

Story Templates

Story (Simple)

A simple Story is a story that only has one or two task such as create a field or a validation rule. It can be associated with a specific Salesforce tool

Markdown
import { Steps } from "nextra/components";
import { Callout } from "nextra/components";
 
# Page Name (same as or similar to page navigation title)
 
<Steps>
 
### Design
 
```sfstory filename="User Story"
As a Salesforce User
I want to ...
So that ...
```
 
```sfstory filename="Acceptance Criteria"
Given ...
When ...
Then ...
```
 
### Build
 
#### Task Name (as shown in ClickUp/Jira)
 
**Label 1:** ...content... \
**Label 2:** ...content...
 
### Test
 
**Steps**
 
1. step 1...
1. step 2...
 
**Expected Results**
 
1. expected reuslt 1...
1. expected reuslt 2...
 
</Steps>

if a page contains multiple stories, add a H2 heading for each story and create a new <Steps> block for each story.

Markdown
... ✂️ exisiting imports ...
 
# Page Name (same as or similar to page navigation title)
 
## Story Specific Name 1
 
<Steps>
 
... ✂️ exisiting step ...
 
</Steps>
 
## Story Specific Name 2
 
<Steps>
 
... 👷‍♂️ add extra story here ...
 
</Steps>

Story Block (Complex)

A Story Block is a comprehensive story that involves using multiple tools such as flows, validation rules, fields, and more. Therefore, it cannot be pigeonholed into a single task.

multiple tasks can be added to the build section to represent each task that needs to be completed by adding a H4 heading.

Markdown
import { Steps } from "nextra/components";
import { Callout } from "nextra/components";
 
# Page Name (same as or similar to page navigation title)
 
<Steps>
 
### Design
 
```sfstory filename="User Story"
As a Salesforce User
I want to ...
So that ...
```
 
```sfstory filename="Acceptance Criteria"
Given ...
When ...
Then ...
```
 
### Build
 
#### Task Name 1 (as shown in ClickUp/Jira)
 
**Label 1:** ...content... \
**Label 2:** ...content...
 
#### Task Name 2 (as shown in ClickUp/Jira)
 
**Label 1:** ...content... \
**Label 2:** ...content...
 
#### Task Name 3 (as shown in ClickUp/Jira)
 
**Label 1:** ...content... \
**Label 2:** ...content...
 
### Test
 
**Steps**
 
1. step 1...
1. step 2...
 
**Expected Results**
 
1. expected reuslt 1...
1. expected reuslt 2...
 
</Steps>

Story Dependency

Storys can have multiple type of dependecnys such as the list below, this can be thought of as pre-requisites to completing the story. I like to think of this as a function such as f(x3 + 2) = y where f is the story and x is the dependecy and y is the story completion, some parts of the story can be completed without the dependecy but the story cannot be fully completed without the dependecy. In some scenarios the dependency might be genric enough that defaults are provided, sometimes the dependencys will can easily be changed in the future, such as the wording in an email, however soem depedencys are needed upfront such as srecord types being used. Some storys will have more dependencys depending on wheter the story is being completed in a sandbox or production environment. the complexity of a story can be thought of as the number of dependencys that are required to complete the story, and which types for example depedency on record types or profiles are reliant on me where as other parts are dependent on the client which are more likely to take longer.

some dependcys are time time based for exampel email-to-case forwardign can onyl be doen at the end of a project.

in linera algerbra terms; the transformation matrix can be thought of as the story completion steps, and the depedencys are the vector that is multiplied by the matrix to get the transformed vector.

  • Post deployment step (cant be pushed via API)
  • Pre deployment step (must be manually done before API push)
  • Dependency on other stories
  • Dependency on client input
  • Depedency on picklist values / fields
  • Dependency record types
  • Dependency on profiles or roles
  • Client acions required, such as email validations and CNAME records / SPF records
  • No dependecy- a hermit story that can be completed in isolation

Tool Templates

Validation Rules

Markdown
### Create Validation Rule for xyz
 
**Rule Name:** Rule_Name_Example \
**Description:** Lorem ipsum... \
**Error Condition Formula:**
 
```filename="Formula"
... ✂️ add validation rule ✂️ ...
```
 
**Error Message:** Lorem ipsum... \
**Error Location:** Top of the page | Field

Fields

Auto Number

Markdown
Field Label: `Field Name Example` \
Display Format: A-{0000} \
Field Name: (auto-generated) \
Starting Number: 0 \
Description: `Lorem ipsum...` \
Help Text: `Lorem ipsum...` \
External ID: **False(default)** | **True** \
Auto add to custom report type: **False** | **True(default)**

Formula

Markdown
Field Label: `Field Name Example` \
Field Name: _(auto-generated)_ \
Formula Return Type: **Currency | Date | Date/Time | Number | Percent | Text | Time** \
Description: `Lorem ipsum...` \
Help Text: `Lorem ipsum...` \
Formula:
 
```plaintext filename="Formula"
... ✂️ add formula ✂️ ...
```

Roll-Up Summary

Markdown
Field Label: `Field Name Example` \
Field Name: _(auto-generated)_ \
Description: `Lorem ipsum...` \
Help Text: `Lorem ipsum...` \
Summarized Object: `Object Name` \
Roll-Up Type: **Count | Sum | Min | Max** \
Filter Criteria: **All records(default) | Only records meeting certain criteria** \
Filters:
 
- `field 1` -> `operator` -> `value`
- `field 2` -> `operator` -> `value`

Lookup Relationship

Markdown
Field Label: `Field Name Example` \
Field Name: _(auto-generated)_ \
Description: `Lorem ipsum...` \
Help Text: `Lorem ipsum...` \
Child Relationship Name: `Relationship Name` \
Required: **False(default)** | **True** \
What to do if the lookup record is deleted?: **Clear the value(default)** | **Don't allow deletion of the lookup record** \
Auto add to custom report type: **False** | **True(default)**

Checkbox

Markdown
Field Label: `Field Name Example` \
Default Value: **Checked** | **Unchecked(default)** \
Field Name: _(auto-generated)_ \
Description: `Lorem ipsum...` \
Help Text: `Lorem ipsum...` \
Auto add to custom report type: **False** | **True(default)**

Currency

Markdown
Field Label: `Field Name Example` \
Length: `18`(default) \
Decmial Places: `0`(default) \
Field Name: _(auto-generated)_ \
Description: `Lorem ipsum...` \
Help Text: `Lorem ipsum...` \
Required: **False(default)** | **True** \
Auto add to custom report type: **False** | **True(default)** \
Default Value: `0` (default)

Date & Date/Time & Time *

Markdown
Field Label: `Field Name Example` \
Field Name: _(auto-generated)_ \
Description: `Lorem ipsum...` \
Help Text: `Lorem ipsum...` \
Required: **False(default)** | **True** \
Auto add to custom report type: **False** | **True(default)** \
Default Value: _(default is empty)_

Email

Markdown
Field Label: `Field Name Example` \
Field Name: _(auto-generated)_ \
Description: `Lorem ipsum...` \
Help Text: `Lorem ipsum...` \
Required: **False(default)** | **True** \
Unique: **False(default)** | **True** \
External ID: **False(default)** | **True** \
Auto add to custom report type: **False** | **True(default)** \
Default Value: _(default is empty)_

Geo Location

... 👷‍♂️ add Geo Location field template here ...

Number

Markdown
Field Label: `Field Name Example` \
Length: `18`(default) \
Decmial Places: `0`(default) \
Field Name: _(auto-generated)_ \
Description: `Lorem ipsum...` \
Help Text: `Lorem ipsum...` \
Required: **False(default)** | **True** \
Unique: **False(default)** | **True** \
External ID: **False(default)** | **True** \
AI Prediction: **False(default)** | **True** \
Auto add to custom report type: **False(default)** | **True** \
Default Value: _(default is empty)_

Percent

Markdown
Field Label: `Field Name Example` \
Length: `18`(default) \
Decmial Places: `0`(default) \
Field Name: _(auto-generated)_ \
Description: `Lorem ipsum...` \
Help Text: `Lorem ipsum...` \
Required: **False(default)** | **True** \
Auto add to custom report type: **False(default)** | **True** \
Default Value: _(default is empty)_

Phone

Markdown
Field Label: `Field Name Example` \
Field Name: _(auto-generated)_ \
Description: `Lorem ipsum...` \
Help Text: `Lorem ipsum...` \
Required: **False(default)** | **True** \
Auto add to custom report type: **False(default)** | **True** \
Default Value: _(default is empty)_

Picklist

Markdown
Field Label: `Field Name Example` \
Values: **Global picklist** | **Enter values** \#
Global picklist name or Enter values: **Global Picklist Name** | `Value 1, Value 2, Value 3` \
Display alphabetically: **False(default)** | **True** \
Use first value as default value: **False(default)** | **True** \
Restrict picklist: **False** | **True(default)** \
Field Name: _(auto-generated)_ \
Description: `Lorem ipsum...` \
Help Text: `Lorem ipsum...` \
Required: **False(default)** | **True** \
Auto add to custom report type: **False(default)** | **True** \
Default Value: _(default is empty)_

Picklist (Multi-Select)

Markdown
Field Label: `Field Name Example` \
Values: **Global picklist** | **Enter values** \#
Global picklist name or Enter values: **Global Picklist Name** | `Value 1, Value 2, Value 3` \
Display alphabetically: **False(default)** | **True** \
Use first value as default value: **False(default)** | **True** \
Restrict picklist: **False** | **True(default)** \
Visible Lines: `4`(default) \
Field Name: _(auto-generated)_ \
Description: `Lorem ipsum...` \
Help Text: `Lorem ipsum...` \
Required: **False(default)** | **True** \
Auto add to custom report type: **False(default)** | **True** \
Default Value: _(default is empty)_

Text

Markdown
Field Label: `Field Name Example` \
Length: `255`(Max limit) \
Field Name: _(auto-generated)_ \
Description: `Lorem ipsum...` \
Help Text: `Lorem ipsum...` \
Required: **False(default)** | **True** \
Unique: **False(default)** | **True** \
External ID: **False(default)** | **True** \
Auto add to custom report type: **False(default)** | **True** \
Default Value: _(default is empty)_

Text Area

Markdown
Field Label: `Field Name Example` \
Field Name: _(auto-generated)_ \
Description: `Lorem ipsum...` \
Help Text: `Lorem ipsum...` \
Required: **False(default)** | **True** \
Auto add to custom report type: **False(default)** | **True** \
Default Value: _(default is empty)_

Text Area (Long) & Text Area (Rich)

Markdown
Field Label: `Field Name Example` \
Length: `32,768`(Default) _(Max 131,072)_ \
Visible Lines: `3`(default) \
Field Name: _(auto-generated)_ \
Description: `Lorem ipsum...` \
Help Text: `Lorem ipsum...` \
Auto add to custom report type: **False(default)** | **True** \
Default Value: _(default is empty)_

Text Encrypted

... 👷‍♂️ add Text Encrypted field template here ...

URL

Markdown
Field Label: `Field Name Example` \
Field Name: _(auto-generated)_ \
Description: `Lorem ipsum...` \
Help Text: `Lorem ipsum...` \
Required: **False(default)** | **True** \
Auto add to custom report type: **False** | **True(default)** \
Default Value: _(default is empty)_

Conventions:

label and value formatting

  • Field labels should be in in normal font followed by a colon
  • Field values
    1. text & numbers should be in backticks/inline code to indicate that it it can be copied and pasted into Salesforce
    2. picklist values should be in bold
    3. checkbox values should in bold of either** True or** ** False**
    4. Auto-generated values should be in italics
    5. Radio button values should be in bold a list the options available