Use cases: Difference between revisions

From Thunderforce
Jump to navigation Jump to search
 
(10 intermediate revisions by the same user not shown)
Line 1: Line 1:
This page contains the initial use cases in Thunderforce.
This page contains the initial use cases in Thunderforce.


<pre>Under development</pre>
==UC1: Account Type==
 
===UC1.1: User creates a Thunderbird account for Salesforce.com===
*Trigger: "Add Account..." button in the "Account Settings" window
*Precondition: Thunderbird is running
*Actors: User
*Flow of events
*#Select the Salesforce.com account type from the wizard's first screen. The user presses the "Next" button
*#Enter the Salesforce.com username and password into the wizard's second screen
*#Indicate whether or not the Salesforce.com password should be saved. The user presses the "Next" button
*#Thunderforce attempts to get a session ID from Salesforce.com. If the credentials do not work or if Salesforce.com cannot be accessed, the user is notified and is returned to step #2
*#Thunderforce finishes setting up the account, notifying the user of any errors in case if connectivity to Salesforce.com drops
*#User enters in the preferred account name, which defaults to Salesforce.com when no other Salesforce.com account exists. Otherwise, it is "Salesforce.com - users_email_address@their_domain.com"
*#User confirms their information and presses Finish
*Postcondition: Thunderforce account is set up if the username and password are valid and active
*Priority: High
*Requirement: [[Requirements#R1|R1.1]]
 
===UC1.2: User edits a Thunderbird account for Salesforce.com===
*Trigger: User selects the "Server Settings" node within a Thunderforce account tree within the "Account Settings" window
*Precondition: A Thunderforce account exists in the Thunderbird profile
*Actors: User
*Flow of events
*#User views the server settings for a Thunderforce account
*#User edits one or more fields in the account
*#User presses "Ok" or "Cancel" to save or not save the settings, respectively
*#Thunderforce attempts to get a session ID from Salesforce.com if the username or password changed. If the credentials do not work or if Salesforce.com cannot be accessed, the user is notified and is returned to step #1
*Postcondition: The Thunderforce account's state matches the user's desired state if the desired state is valid and the username and password are both valid and active
*Priority: High
*Requirement: [[Requirements#R1|R1.2]]
*Notes
**Entity type selection for folders, address book items, and autocompletion
***Default record types?
***Fields to show in the views for each entity type? (or allow all, possibly making the list large for some entities?)
**Select which document folders to view (subscribe?)
**Username, password, URL
**Default SMTP server for non-contact/lead/user email
**Case escalation notification
**Account name (default to Salesforce.com for the first account?)
**Columns for the address book
**Email signature
***Local
***On Salesforce.com
 
===UC1.3: User opens a Salesforce.com Thunderbird account===
*Either through opening Thunderbird with an existing Salesforce.com account or creating a Salesforce.com account
*Cache the icons from Salesforce.com


==User creates a Thunderbird account for Salesforce.com==
*Description:
*Description:
*Trigger:
*Trigger:
*Precondition:
*Precondition:
*Actors:
*Actors:
*Flow of events:
*Flow of events
*Postcondition:
*Postcondition:
*Priority:
*Priority:
*Requirement:
*Requirement:


Add the following (notes to self):
===UC1.4: User clicks on a folder in the folder view===
*Timing requirements
*Constraints
*Organize use cases by requirement
*Label quality attributes
*Create requirements dependency matrix


==User edits a Thunderbird account for Salesforce.com==
====UC1.4.1: User clicks on the root Salesforce.com folder====
*Entity type selection for folders, address book items, and autocompletion
*Trigger:
**Default record types?
*Precondition:
**Fields to show in the views for each entity type? (or allow all, possibly making the list large for some entities?)
*Actors:
*Select which document folders to view (subscribe?)
*Flow of events
*Username, password, URL
*Postcondition:
*Default SMTP server for non-contact/lead/user email
*Priority:
*Case escalation notification
*Requirement:
*Account name (default to Salesforce.com for the first account?)
*Columns for the address book
*Email signature
**Local
**On Salesforce.com


==User opens a Salesforce.com Thunderbird account==
====UC1.4.2: User clicks on a Salesforce.com entity folder====
*Either through opening Thunderbird with an existing Salesforce.com account or creating a Salesforce.com account
*Trigger:
*Cache the icons from Salesforce.com
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:
 
====UC1.4.3: User clicks on a record type subfolder of a Salesforce.com entity folder====
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:


==User clicks on the root Salesforce.com folder==
====UC1.4.4: User clicks on the Templates folder in a Salesforce.com Thunderbird account====
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:


==User clicks on a Salesforce.com entity folder==
====UC1.4.5: User clicks on the Drafts folder in a Salesforce.com Thunderbird account====
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:


==User clicks on a record type subfolder of a Salesforce.com entity folder==
====UC1.4.6: User clicks on the Documents folder in a Salesforce.com Thunderbird account====
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:


==User clicks on the Templates folder in a Salesforce.com Thunderbird account==
====UC1.4.7: User clicks on a Documents subfolder in a Salesforce.com Thunderbird account====
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:


==User moves or copies an email message to a Salesforce.com entity folder that supports EmailMessage==
===UC1.5: User copies or moves a message===


==User moves or copies an email message to a Salesforce.com entity folder that does not support EmailMessage==
====UC1.5.1: User moves or copies an email message to a Salesforce.com entity folder that supports EmailMessage====
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:


==User moves or copies an email message from a Salesforce.com folder to another Salesforce.com folder==
====UC1.5.2: User moves or copies an email message to a Salesforce.com entity folder that does not support EmailMessage====
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:
 
====UC1.5.3: User moves or copies an email message from a Salesforce.com folder to another Salesforce.com folder====
*EmailMessage in source versus destination
*EmailMessage in source versus destination


==User moves or copies an email message from a Salesforce.com folder to a non-Salesforce.com folder==
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:


==User saves a Salesforce.com Thunderbird account message as a draft==
====UC1.5.4: User moves or copies an email message from a Salesforce.com folder to a non-Salesforce.com folder====
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:


==User clicks on the Drafts folder in a Salesforce.com Thunderbird account==
===UC1.6: User modifies a message in a folder===


==User clicks on the Documents folder in a Salesforce.com Thunderbird account==
====UC1.6.1: User changes a message flag on an email message in a Salesforce.com folder====
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:


==User clicks on a Documents subfolder in a Salesforce.com Thunderbird account==
====UC1.6.2: User clicks on the match button on an email message in a non-Salesforce.com folder====
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:


==User sends an email message using a Salesforce.com Thunderbird account==
====UC1.6.3: User clicks on the manual match menu item within the match button on an email message in a non-Salesforce.com folder====
*Use Salesforce.com for mail to contacts, leads, and users
*Description:
*Use default outgoing server for other mail
*Trigger:
*Include attachments
*Precondition:
*Dispatch message to the message's matched entity objects
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:


==User changes a message flag on an email message in a Salesforce.com folder==
====UC1.6.4: User clicks on the unmatch button on an email message in a non-Salesforce.com folder====
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:


==Salesforce.com escalates a case that the user has access to==
====UC1.6.5: User clicks on the match button on an email message in a Salesforce.com folder====
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:


==User views the matched columns in any Thunderbird folder==
====UC1.6.6: User clicks on the manual match menu item within the match button on an email message in a Salesforce.com folder====
*Matched Record, Matched Type, Matched Id
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:


==User clicks on the match button on an email message in a non-Salesforce.com folder==
====UC1.6.7: User clicks on the unmatch button on an email message in a Salesforce.com folder====
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:


==User clicks on the manual match menu item within the match button on an email message in a non-Salesforce.com folder==
===UC1.7: Salesforce.com escalates a case that the user has access to===
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:


==User clicks on the unmatch button on an email message in a non-Salesforce.com folder==
===UC1.8: User views the matched columns in any Thunderbird folder===
*Matched Record, Matched Type, Matched Id


==User clicks on the match button on an email message in a Salesforce.com folder==
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:


==User clicks on the manual match menu item within the match button on an email message in a Salesforce.com folder==
===UC1.9: User clicks on a view matched Salesforce.com object on a matched email message===
*Opens up that object in Salesforce.com using a browser
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:


==User clicks on the unmatch button on an email message in a Salesforce.com folder==
==UC2: Address Book==
*Is this a valid use case?


==User opens the address book view==
===UC2.1: User opens the address book view===
*Cache entity icons
*Cache entity icons


==User clicks on a Salesforce.com address book account==
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:
 
===UC2.2: User clicks on a Salesforce.com address book account===
*In either the address book window or in the contacts sidebar
*In either the address book window or in the contacts sidebar
*Replacing the new card and new list buttons with new entity buttons in the address book window
*Replacing the new card and new list buttons with new entity buttons in the address book window
*Get the recently-viewed entity objects (either in Thunderforce or, if possible, Salesforce.com)
*Get the recently-viewed entity objects (either in Thunderforce or, if possible, Salesforce.com)


==User selects an item in a Salesforce.com address book==
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:
 
===UC2.3: User selects an item in a Salesforce.com address book===
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:


==User clicks on a new entity button in a Salesforce.com address book==
===UC2.4: User clicks on a new entity button in a Salesforce.com address book===
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:


==User clicks on the properties button on an item in a Salesforce.com address book==
===UC2.5: User clicks on the properties button on an item in a Salesforce.com address book===
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:


==User clicks on the write button on an item in a Salesforce.com address book==
===UC2.6: User clicks on the write button on an item in a Salesforce.com address book===
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:


==User clicks on the delete button on an item in a Salesforce.com address book==
===UC2.7: User clicks on the delete button on an item in a Salesforce.com address book===
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:


==User searches for a contact in a Salesforce.com address book==
===UC2.8: User searches for a contact in a Salesforce.com address book===
*Either in the address book or the address book sidebar
*Either in the address book or the address book sidebar


==User views the addressing tab in Thunderbird's composition configuration==
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:
 
===UC2.9: User edits the addressing tab in Thunderbird's composition configuration===
*Autocompletion using Salesforce.com
*Autocompletion using Salesforce.com


==User sends a mass mailing using mail merge==
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:
 
===UC2.10: User copies or moves a contact from a non-Salesforce.com address book into Salesforce.com===
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:
 
===UC2.11: User copies or moves a contact from a Salesforce.com address book into a non-Salesforce.com address book===
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:
 
==UC3: Message Composition==
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:


==User clicks on the unmatch button next to a Salesforce.com object in the message destination in the message composition==
===UC3.1: User sends an email message using a Salesforce.com Thunderbird account===
*Use Salesforce.com for mail to contacts, leads, and users
*Use default outgoing server for other mail
*Include attachments
*Dispatch message to the message's matched entity objects
 
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:
 
===UC3.2: User clicks on the unmatch button next to a Salesforce.com object in the message destination in the message composition===
*Causes Thunderbird to send the email without saving it in the matched object's Salesforce.com record
*Causes Thunderbird to send the email without saving it in the matched object's Salesforce.com record


==User adds a contact to an email message using the contacts sidebar==
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:
 
===UC3.3: User adds a contact to an email message using the contacts sidebar===
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:


==User opens an existing email message for reply, forwarding, resending, or another purpose==
===UC3.4: User opens an existing email message for reply, forwarding, resending, or another purpose===
*Match Salesforce.com entity objects if not done already
*Match Salesforce.com entity objects if not done already
*Load signature from proper place
*Load signature from proper place


==User types an email address into a destination field in the message composition window==
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:
 
===UC3.5: User types an email address into a destination field in the message composition window===
*Match with a Salesforce.com entity object
*Match with a Salesforce.com entity object


==User clicks on a the new entity drop-down button and selects the entity type to create in message composition==
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:


==User clicks on the attach drop-down menu and selects Salesforce.com document in message composition==
===UC3.6: User clicks on a the new entity drop-down button and selects the entity type to create in message composition===
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:


==User clicks on the attach drop-down menu and selects Salesforce.com email message in message composition==
===UC3.7: User clicks on the attach drop-down menu and selects Salesforce.com document in message composition===
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:


==User creates a new message in a Salesforce.com Thunderbird account==
===UC3.8: User clicks on the attach drop-down menu and selects Salesforce.com email message in message composition===
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:
 
===UC3.9: User creates a new message in a Salesforce.com Thunderbird account===
*Load signature from proper place
*Load signature from proper place


<pre>Message filter use cases on their way...</pre>
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:


<pre>Offline mode use cases on their way...</pre>
===UC3.10: User saves a Salesforce.com Thunderbird account message as a draft===
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:
 
===UC3.11: User sends a mass mailing using mail merge===
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:
 
==UC4: Message Filters==
 
===UC4.1: User creates a new message filter===
*Add the following criteria fields to the list
**In-Reply-To
**References
**Salesforce ID
*Add the following filter actions to the list
**Use Case Assignment Rule: Lets the user set which case assignment rule to use. At the top of the list, "Default Case Assignment Rule" exists above a horizontal break to indicate the use of the default case assignment rule
**Use Lead Assignment Rule: Lets the user set which lead assignment rule to use. At the top of the list, "Default Lead Assignment Rule" exists above a horizontal break to indicate the use of the default lead assignment rule
*Permit the top-level Salesforce.com folder in copy and move targets
 
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:
 
===UC4.1: User selects the From, To, Cc, To or cc, Subject, In-Reply-To, References, or Salesforce ID criteria field===
*Add the following operators to the list
**matches
**does not match
 
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:
 
===UC4.2: User selects "matches" or "does not match" as the operator===
*Set the matching values pick-list to the following if the criteria field is In-Reply-To, References, or Salesforce ID
**Any Salesforce.com Email, Account Email, Campaign Email, Case Email, Contact Email, Contract Email, Opportunity Email, Product Email, Solution Email
*Set the matching values pick-list to the following if the criteria field is From, To, Cc, or To or cc
**Salesforce.com Contact, Salesforce.com Lead, Salesforce.com Person, Salesforce.com User
 
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:
 
===UC4.3: Incoming message is processed by a rule that involves Salesforce.com===
*This applies to message filters that route messages to Salesforce.com, match using a Salesforce.com filter, or specify a case or lead assignment rule
*When a message is matched with a Salesforce.com record, that record's ID is set in the message's X-Salesforce-Id header so that subsequent actions don't need to re-match
*Assignment rule settings from a rule are noted in the X-Salesforce-Case-AssignmentRule or X-Salesforce-Lead-AssignmentRule as appropriate so that a subsequent move or copy to Salesforce.com will invoke that rule
*Messages moved to the top-level "Salesforce.com" folder will associate themselves with the record matched in X-Salesforce-Id
*For security, X-Salesforce-Id and other related headers will be stripped from incoming messages before filter processing so that outsiders cannot set it themselves (Thunderbird likely does this for its X-Mozilla-Status and related headers)
*It will be possible to create new leads from unmatched mail by copying or moving them to the "Leads" folder within a Salesforce.com account
 
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:
 
===UC4.4: User clicks on the "Generate..." button in the "Message Filters" window===
*Clicking on "Generate..." will display a menu with the following items:
**Move matched replies to Salesforce.com: Moves messages that are matched with a Salesforce.com record into Salesforce.com. Note that the "new" status is not changed unless if the user specifies that in the rule's actions, so Thunderbird will appropriately increment the number of new messages in the entity folder that the message was moved to, which depends on the type of entity that the message was matched to
**Copy matched replies to Salesforce.com: Same as above, but copies the message instead of moving it
**Move new cases to Salesforce.com: Messages from a known customer are moved to Salesforce.com as new cases
**Copy new cases to Salesforce.com: Same as above, but copies the message instead of moving it
**Move new leads to Salesforce.com: Messages from people who are not in Salesforce.com are moved to Salesforce.com as new leads
**Copy new leads to Salesforce.com: Same as above, but copies the message instead of moving it
 
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:
 
==UC5: Offline Mode==
 
===UC5.1: User tells Thunderbird to cache marked or selected messages===
*This causes the caching mechanism to store the desired objects
 
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:
 
===UC5.2: Message movements===
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:
 
====UC5.2.1: User adds a message to a Salesforce.com folder using copy or move====
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:
 
====UC5.2.2: User moves a message from one Salesforce.com folder to another Salesforce.com folder====
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:
 
====UC5.2.3: User moves a message from a Salesforce.com folder to a non-Salesforce.com folder or deletes the message====
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:
 
===UC5.3: User edits a message within a Salesforce.com folder===
*This includes draft edits and changes to message flags
 
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:
 
====UC5.3.1: User edits a message's contents====
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:
 
====UC5.3.2: User edits a message's flags====
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:
 
====UC5.3.3: User manually matches a message to a cached Salesforce.com object====
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:
 
====UC5.3.4: User performs automatic matching on a message in offline mode====
*Description:
*Trigger:
*Precondition:
*Actors:
*Flow of events
*Postcondition:
*Priority:
*Requirement:

Latest revision as of 03:37, 30 August 2007

This page contains the initial use cases in Thunderforce.

UC1: Account Type

UC1.1: User creates a Thunderbird account for Salesforce.com

  • Trigger: "Add Account..." button in the "Account Settings" window
  • Precondition: Thunderbird is running
  • Actors: User
  • Flow of events
    1. Select the Salesforce.com account type from the wizard's first screen. The user presses the "Next" button
    2. Enter the Salesforce.com username and password into the wizard's second screen
    3. Indicate whether or not the Salesforce.com password should be saved. The user presses the "Next" button
    4. Thunderforce attempts to get a session ID from Salesforce.com. If the credentials do not work or if Salesforce.com cannot be accessed, the user is notified and is returned to step #2
    5. Thunderforce finishes setting up the account, notifying the user of any errors in case if connectivity to Salesforce.com drops
    6. User enters in the preferred account name, which defaults to Salesforce.com when no other Salesforce.com account exists. Otherwise, it is "Salesforce.com - users_email_address@their_domain.com"
    7. User confirms their information and presses Finish
  • Postcondition: Thunderforce account is set up if the username and password are valid and active
  • Priority: High
  • Requirement: R1.1

UC1.2: User edits a Thunderbird account for Salesforce.com

  • Trigger: User selects the "Server Settings" node within a Thunderforce account tree within the "Account Settings" window
  • Precondition: A Thunderforce account exists in the Thunderbird profile
  • Actors: User
  • Flow of events
    1. User views the server settings for a Thunderforce account
    2. User edits one or more fields in the account
    3. User presses "Ok" or "Cancel" to save or not save the settings, respectively
    4. Thunderforce attempts to get a session ID from Salesforce.com if the username or password changed. If the credentials do not work or if Salesforce.com cannot be accessed, the user is notified and is returned to step #1
  • Postcondition: The Thunderforce account's state matches the user's desired state if the desired state is valid and the username and password are both valid and active
  • Priority: High
  • Requirement: R1.2
  • Notes
    • Entity type selection for folders, address book items, and autocompletion
      • Default record types?
      • Fields to show in the views for each entity type? (or allow all, possibly making the list large for some entities?)
    • Select which document folders to view (subscribe?)
    • Username, password, URL
    • Default SMTP server for non-contact/lead/user email
    • Case escalation notification
    • Account name (default to Salesforce.com for the first account?)
    • Columns for the address book
    • Email signature
      • Local
      • On Salesforce.com

UC1.3: User opens a Salesforce.com Thunderbird account

  • Either through opening Thunderbird with an existing Salesforce.com account or creating a Salesforce.com account
  • Cache the icons from Salesforce.com
  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC1.4: User clicks on a folder in the folder view

UC1.4.1: User clicks on the root Salesforce.com folder

  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC1.4.2: User clicks on a Salesforce.com entity folder

  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC1.4.3: User clicks on a record type subfolder of a Salesforce.com entity folder

  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC1.4.4: User clicks on the Templates folder in a Salesforce.com Thunderbird account

  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC1.4.5: User clicks on the Drafts folder in a Salesforce.com Thunderbird account

  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC1.4.6: User clicks on the Documents folder in a Salesforce.com Thunderbird account

  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC1.4.7: User clicks on a Documents subfolder in a Salesforce.com Thunderbird account

  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC1.5: User copies or moves a message

UC1.5.1: User moves or copies an email message to a Salesforce.com entity folder that supports EmailMessage

  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC1.5.2: User moves or copies an email message to a Salesforce.com entity folder that does not support EmailMessage

  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC1.5.3: User moves or copies an email message from a Salesforce.com folder to another Salesforce.com folder

  • EmailMessage in source versus destination
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC1.5.4: User moves or copies an email message from a Salesforce.com folder to a non-Salesforce.com folder

  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC1.6: User modifies a message in a folder

UC1.6.1: User changes a message flag on an email message in a Salesforce.com folder

  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC1.6.2: User clicks on the match button on an email message in a non-Salesforce.com folder

  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC1.6.3: User clicks on the manual match menu item within the match button on an email message in a non-Salesforce.com folder

  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC1.6.4: User clicks on the unmatch button on an email message in a non-Salesforce.com folder

  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC1.6.5: User clicks on the match button on an email message in a Salesforce.com folder

  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC1.6.6: User clicks on the manual match menu item within the match button on an email message in a Salesforce.com folder

  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC1.6.7: User clicks on the unmatch button on an email message in a Salesforce.com folder

  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC1.7: Salesforce.com escalates a case that the user has access to

  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC1.8: User views the matched columns in any Thunderbird folder

  • Matched Record, Matched Type, Matched Id
  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC1.9: User clicks on a view matched Salesforce.com object on a matched email message

  • Opens up that object in Salesforce.com using a browser
  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC2: Address Book

UC2.1: User opens the address book view

  • Cache entity icons
  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC2.2: User clicks on a Salesforce.com address book account

  • In either the address book window or in the contacts sidebar
  • Replacing the new card and new list buttons with new entity buttons in the address book window
  • Get the recently-viewed entity objects (either in Thunderforce or, if possible, Salesforce.com)
  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC2.3: User selects an item in a Salesforce.com address book

  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC2.4: User clicks on a new entity button in a Salesforce.com address book

  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC2.5: User clicks on the properties button on an item in a Salesforce.com address book

  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC2.6: User clicks on the write button on an item in a Salesforce.com address book

  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC2.7: User clicks on the delete button on an item in a Salesforce.com address book

  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC2.8: User searches for a contact in a Salesforce.com address book

  • Either in the address book or the address book sidebar
  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC2.9: User edits the addressing tab in Thunderbird's composition configuration

  • Autocompletion using Salesforce.com
  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC2.10: User copies or moves a contact from a non-Salesforce.com address book into Salesforce.com

  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC2.11: User copies or moves a contact from a Salesforce.com address book into a non-Salesforce.com address book

  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC3: Message Composition

  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC3.1: User sends an email message using a Salesforce.com Thunderbird account

  • Use Salesforce.com for mail to contacts, leads, and users
  • Use default outgoing server for other mail
  • Include attachments
  • Dispatch message to the message's matched entity objects
  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC3.2: User clicks on the unmatch button next to a Salesforce.com object in the message destination in the message composition

  • Causes Thunderbird to send the email without saving it in the matched object's Salesforce.com record
  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC3.3: User adds a contact to an email message using the contacts sidebar

  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC3.4: User opens an existing email message for reply, forwarding, resending, or another purpose

  • Match Salesforce.com entity objects if not done already
  • Load signature from proper place
  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC3.5: User types an email address into a destination field in the message composition window

  • Match with a Salesforce.com entity object
  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC3.6: User clicks on a the new entity drop-down button and selects the entity type to create in message composition

  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC3.7: User clicks on the attach drop-down menu and selects Salesforce.com document in message composition

  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC3.8: User clicks on the attach drop-down menu and selects Salesforce.com email message in message composition

  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC3.9: User creates a new message in a Salesforce.com Thunderbird account

  • Load signature from proper place
  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC3.10: User saves a Salesforce.com Thunderbird account message as a draft

  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC3.11: User sends a mass mailing using mail merge

  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC4: Message Filters

UC4.1: User creates a new message filter

  • Add the following criteria fields to the list
    • In-Reply-To
    • References
    • Salesforce ID
  • Add the following filter actions to the list
    • Use Case Assignment Rule: Lets the user set which case assignment rule to use. At the top of the list, "Default Case Assignment Rule" exists above a horizontal break to indicate the use of the default case assignment rule
    • Use Lead Assignment Rule: Lets the user set which lead assignment rule to use. At the top of the list, "Default Lead Assignment Rule" exists above a horizontal break to indicate the use of the default lead assignment rule
  • Permit the top-level Salesforce.com folder in copy and move targets
  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC4.1: User selects the From, To, Cc, To or cc, Subject, In-Reply-To, References, or Salesforce ID criteria field

  • Add the following operators to the list
    • matches
    • does not match
  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC4.2: User selects "matches" or "does not match" as the operator

  • Set the matching values pick-list to the following if the criteria field is In-Reply-To, References, or Salesforce ID
    • Any Salesforce.com Email, Account Email, Campaign Email, Case Email, Contact Email, Contract Email, Opportunity Email, Product Email, Solution Email
  • Set the matching values pick-list to the following if the criteria field is From, To, Cc, or To or cc
    • Salesforce.com Contact, Salesforce.com Lead, Salesforce.com Person, Salesforce.com User
  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC4.3: Incoming message is processed by a rule that involves Salesforce.com

  • This applies to message filters that route messages to Salesforce.com, match using a Salesforce.com filter, or specify a case or lead assignment rule
  • When a message is matched with a Salesforce.com record, that record's ID is set in the message's X-Salesforce-Id header so that subsequent actions don't need to re-match
  • Assignment rule settings from a rule are noted in the X-Salesforce-Case-AssignmentRule or X-Salesforce-Lead-AssignmentRule as appropriate so that a subsequent move or copy to Salesforce.com will invoke that rule
  • Messages moved to the top-level "Salesforce.com" folder will associate themselves with the record matched in X-Salesforce-Id
  • For security, X-Salesforce-Id and other related headers will be stripped from incoming messages before filter processing so that outsiders cannot set it themselves (Thunderbird likely does this for its X-Mozilla-Status and related headers)
  • It will be possible to create new leads from unmatched mail by copying or moving them to the "Leads" folder within a Salesforce.com account
  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC4.4: User clicks on the "Generate..." button in the "Message Filters" window

  • Clicking on "Generate..." will display a menu with the following items:
    • Move matched replies to Salesforce.com: Moves messages that are matched with a Salesforce.com record into Salesforce.com. Note that the "new" status is not changed unless if the user specifies that in the rule's actions, so Thunderbird will appropriately increment the number of new messages in the entity folder that the message was moved to, which depends on the type of entity that the message was matched to
    • Copy matched replies to Salesforce.com: Same as above, but copies the message instead of moving it
    • Move new cases to Salesforce.com: Messages from a known customer are moved to Salesforce.com as new cases
    • Copy new cases to Salesforce.com: Same as above, but copies the message instead of moving it
    • Move new leads to Salesforce.com: Messages from people who are not in Salesforce.com are moved to Salesforce.com as new leads
    • Copy new leads to Salesforce.com: Same as above, but copies the message instead of moving it
  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC5: Offline Mode

UC5.1: User tells Thunderbird to cache marked or selected messages

  • This causes the caching mechanism to store the desired objects
  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC5.2: Message movements

  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC5.2.1: User adds a message to a Salesforce.com folder using copy or move

  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC5.2.2: User moves a message from one Salesforce.com folder to another Salesforce.com folder

  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC5.2.3: User moves a message from a Salesforce.com folder to a non-Salesforce.com folder or deletes the message

  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC5.3: User edits a message within a Salesforce.com folder

  • This includes draft edits and changes to message flags
  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC5.3.1: User edits a message's contents

  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC5.3.2: User edits a message's flags

  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC5.3.3: User manually matches a message to a cached Salesforce.com object

  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement:

UC5.3.4: User performs automatic matching on a message in offline mode

  • Description:
  • Trigger:
  • Precondition:
  • Actors:
  • Flow of events
  • Postcondition:
  • Priority:
  • Requirement: