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
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.
... ✂️ 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.
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
### 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
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
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
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
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
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
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 *
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)_
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
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
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
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
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)
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
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
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)
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
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
- text & numbers should be in backticks/inline code to indicate that it it can be copied and pasted into Salesforce
- picklist values should be in bold
- checkbox values should in bold of either** True or** ** False**
- Auto-generated values should be in italics
- Radio button values should be in bold a list the options available