Requirements

From Thunderforce
Jump to navigation Jump to search

This page lists the present set of requirements for Thunderforce. Please feel free to comment on them on the discussion page. Thanks!

Note: Also check out the quality attributes of Thunderforce.

R1: Account Type

Mock-up of the main window showing Salesforce.com folders that can contain email attachments

Present Salesforce.com as a Thunderbird account type

  • R1.1 M1 (80% done; needs documentation): Account creation wizard tie-in
    • Configuration will be kept to a minimum
    • Possibly support storing Thunderforce configuration elements in an "ini" file in the user's documents and sync with the local Thunderforce configuration in the user's Thunderbird profile for easy multi-computer use?
    • Have the account creation wizard appear after the first install
  • R1.2: Account properties page for Salesforce.com accounts
  • R1.3: Folder views for each entity type that supports email attachments
    • R1.3.1: Entity types, whose presences can be toggled via Thunderbird subscriptions (only those that the user has access to can be shown)
      • Accounts, Campaigns, Cases, Contacts, Contracts, Opportunities, Products, Solutions
    • R1.3.2: Matches emails to their entity rows automatically using case number, subject, In-Reply-To (needs investigation), References, or "hidden" Salesforce record id in a <div> HTML tag
    • R1.3.3: When an email cannot be matched, it's added as a new entity of the type that the message was copied into
    • R1.3.4: Entity columns are eligible to be shown as columns in each entity type's folder. Important columns for each entity type are shown by default
    • R1.3.5: Record types appear as subfolders of an entity when access to more than one exists on an entity
    • R1.3.6: Use the icons from the tabs for the entities, permitting alternative entity icons to propagate to Thunderforce
    • R1.3.7: The most recently viewed entity objects can exist as subfolders on an entity, permitting the user to easily move or copy a message to that object
  • R1.4: Email template folders are shown as subfolders to a "Templates" folder
  • R1.5: Attachments to records are stored as .eml files, which can be opened in Thunderbird, Outlook, Outlook Express, and other clients
  • R1.6: Drafts are stored in the user's personal folder as .eml documents and differentiated from other emails in a user's document folder by the X-Mozilla-Draft-Info header
  • R1.7: Document folders that the user has access to are shown as subfolders to a "Documents" folder
    • The list view shows documents that are .eml files along with their message details
    • This can be used to share important emails between teams using Salesforce.com as a shared mail server, analogous to Microsoft Exchange's public folders
  • R1.8: Add each Salesforce.com account as an outgoing mail server
  • R1.9: Use Salesforce.com as the default outgoing mail server to contacts, leads, and users
  • R1.10: Use the default outgoing mail server for other mail, though this is configurable
  • R1.11: Use the top-level /favicon.ico file from Salesforce.com as the Salesforce.com logo, permitting future logo changes to propagate to Thunderforce
  • R1.12: Message flags are preserved with messages in Salesforce.com views and folders, including read/not-read, tag, replied/not-replied, and others with the X-Mozilla-Status and X-Mozilla-Status2 message headers
  • R1.13: Escalated cases can automatically set a Thunderforce tag on a message, such as "Important"
  • R1.14: Optional columns in all email views, which grab their Salesforce.com IDs from the X-Salesforce-Id message header. These will also exist in other folder views, including IMAP and POP account folders
    • Matched Record: The name of the record that the email is matched with
    • Matched Type: The type of record that the email is matched with
    • Matched Id: The Salesforce.com ID of the record that the email is matched with
  • R1.15: Toolbar buttons for matching and unmatching an email message with a Salesforce.com record
    • R1.15.1: By default, automatic matching is performed, but a drop-down menu arrow next to the button permits manual matching and matching with a new record. Manual matching takes place within a pop-up window that lets the user seach for the record that they want to match with
  • R1.16: Add buttons to the toolbar and the message header view to open the matched Salesforce.com object in Salesforce.com's web interface

R2: Address Book

Present Salesforce.com as a Thunderbird address book data source for each Salesforce.com account

  • R2.1 M1: Support the following entities in the address book as cards. By default, all are on. Only those that the user has access to will show up
    • Contacts, Leads, People (person accounts), Campaigns (not a list because that could potentially create a huge list), Users
  • R2.2 M1: Support the following entities in the address book as lists. These can be enabled or disabled in the configuration. By default, all are on. Only those that the user has access to will show up
    • Accounts, Cases, Opportunities, Contracts, Roles, Profiles, Solutions, Products, Custom Records
  • R2.3 M1: Use the icons from the tabs for the entities, permitting alternative entity icons to propagate to Thunderforce
  • R2.4 M1: Show additional columns in the address book list for Salesforce.com
    • Type (the entity type), Account (might reuse/rename the "Organization" column for this), Role (might use the "Title" column), Profile, and, possibly, anything that the user wants to add (perhaps set up in the configuration?)
  • R2.5 M1: Add "Salesforce.com Account:" and an account drop-down box into Thunderbird's "Address Autocompletion" preferences after "Directory Server" and enable by default. This is both for global and for the Salesforce account preferences
  • R2.6 M1: Editing an entity brings up that record in a pop-up window using the Salesforce.com web-based user interface

R3: Message Composition

Mock-up of the compose window showing records that can be contacted
  • R3.1: Associate an email with an entity and/or send a mass mailing by using the appropriate records from the Salesforce.com address book
    • When the message is sent, the associations are managed automatically
    • Mail merge might be added, though it needs more thought
  • R3.2: If no Salesforce.com record information exists in To, From, Bcc, etc, it's automatically matched to the appropriate lead, contact, person, or user on replies and forwards when the message window is opened
    • This can happen if a user sends a message directly to the user's non-Salesforce.com inbox, and no filter rule automatically created a Salesforce.com record for that message
  • R3.3 M1: Automatic lookup of a Salesforce.com entity when typing a name in To, From, Bcc, etc
    • This is accomplished with Thunderbird's address autocompletion
    • Limits the query rate to once every three seconds and at least one second after the last character was typed
  • R3.4: Create a new entity and associate a message with that entity with a toolbar button that has a drop-down menu of entity types, such as "Create Lead"
  • R3.5: The "attach" button will have "Salesforce.com Document" and "Salesforce.com Email Message" options in the drop-down menu that permit the user to select and attach a document or email message on Salesforce.com
    • Documents that live on other servers via the URL field will be supported, too, as a result of Thunderbird being built on top of the Mozilla platform
  • R3.6: The message signature file can exist on Salesforce.com; it does not have to be a local file, but can be
  • R3.7 M1: The address book sidebar can contain the Salesforce.com records that were recently viewed when no search criteria exists

R4: Message Filters

Automatic processing of incoming messages is handled by message filters in Thunderbird. Thunderforce will extend it by adding new filtering possibilities while giving end-users wide flexibilities in how to route incoming email.

Mock-up of the message filters window showing the "Generate" button
Message filter that moves known message replies on Salesforce.com email to that record in Salesforce.com
Mock-up of a message filter that creates new cases from incoming email from known contacts and people and then assigns them using "Justin Case's Assignment Rule"
  • R4.1: New filter criteria fields are added:
    • R4.1.1: In-Reply-To
    • R4.1.2: References
    • R4.1.3: Salesforce ID (from a "hidden" <div> HTML tag)
  • R4.2: New filter matching conditions are added:
    • R4.2.1: matches: Condition is true when the filter criteria field matches a value in Salesforce.com
      • Added to From, To, Cc, To or cc, Subject, In-Reply-To, References, and Salesforce ID
    • R4.2.2: doesn't match: Condition is true when the filter criteria field does not match a value in Salesforce.com
      • Added to From, To, Cc, To or cc, Subject, In-Reply-To, References, and Salesforce ID
  • R4.3: New filter matching values are added for when "match" or "doesn't match" is the operator:
    • R4.3.1: For In-Reply-To, References, and Salesforce ID:
      • Any Salesforce.com Email, Account Email, Campaign Email, Case Email, Contact Email, Contract Email, Opportunity Email, Product Email, Solution Email
    • R4.3.2: For Subject:
      • Salesforce.com Case Number
    • R4.3.3: For From, To, Cc, and To or cc:
      • Salesforce.com Contact, Salesforce.com Lead, Salesforce.com Person, Salesforce.com User
  • R4.4: New filter actions are added:
    • R4.4.1: 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
    • R4.4.2: 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
  • R4.5: 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
  • R4.6: 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
  • R4.7: Messages moved to the top-level "Salesforce.com" folder will associate themselves with the record matched in X-Salesforce-Id
  • R4.8: 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)
  • R4.9: Add a convenient "Generate..." button to the message filters list window that lets users create typical Salesforce.com message filter rules automatically. Clicking on "Generate..." will display a menu with the following items:
    • R4.9.1: 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
    • R4.9.2: Copy matched replies to Salesforce.com: Same as above, but copies the message instead of moving it
    • R4.9.3: Move new cases to Salesforce.com: Messages from a known customer are moved to Salesforce.com as new cases
    • R4.9.4: Copy new cases to Salesforce.com: Same as above, but copies the message instead of moving it
    • R4.9.5: Move new leads to Salesforce.com: Messages from people who are not in Salesforce.com are moved to Salesforce.com as new leads
    • R4.9.6: Copy new leads to Salesforce.com: Same as above, but copies the message instead of moving it

R5: Offline Mode

For those times when network connectivity is limited or not desired, Thunderbird supports an offline mode that works off of its local caches. Thunderforce will use this existing framework to permit offline use of Salesforce.com in addition to a limited number of actions that synchronize back to Salesforce.com when Thunderbird leaves its offline mode.

  • This could also apply when an Internet connection is up, but, for whatever reason, Salesfore.com is not accessible due to a local firewall configuration problem or something (Salesforce.com has an extremely high level of uptime and can be practically assumed to be always available when one's local network is configured properly)
  • R5.1: Copying or moving a message to or from a Salesforce.com folder will be queueable in offline mode
  • R5.2: Copying or moving a message from one Salesforce.com folder to another will be queueable in offline mode
  • R5.3: Editing a message within a Salesforce.com folder will be queueable in offline mode
    • This includes changes to message flags
  • R5.4: Support read-only access to Salesforce.com entity objects in the address book
    • Editing to entity objects in the address book is accomplished using a web browser, so offline mode for that won't be supported for now. If an offline edition is created for Mozilla Firefox, then read/write support can be added to offline mode
  • R5.5: Limited support for offline matching with Salesforce.com objects
    • Matches can be made only if the object being matched with is in the cache
    • Automatic matching can occur only with objects in the cache