Skip to content
Igor Androsov edited this page Dec 4, 2024 · 40 revisions

Grants Content Kit

Community-based organizations are often small and scrappy with limited time and resources. Funding is critical for them to continue serving their communities, and oftentimes funding is secured through grants. Global philanthropic funding related to climate change is minimal compared with the scale of the challenge and securing that funding is competitive. Grant writing is a long and tedious process that is often not a fully-staffed position. Considerable turnover at smaller organizations means institutional knowledge often leaves with that turnover. This ultimately impacts how an organization tells their story, writes winning grants, and secures funding.

About

The Grants Content Kit helps organizations write award-winning grant proposals faster. Co-designed and developed by our Community of volunteers who participated in the Climate Justice Impact Lab, the Grants Content Kit was developed for community-based organizations focused on climate justice who struggle to tell their story and write winning grant applications. The Grants Content Kit stores and organizes proposal content in Salesforce, allowing grant writers to streamline applications starting with their best content.

Use Cases

As a Director, I want to track the progress of all grant applications, both in progress and past, so that I can:

  • Maintain oversight and accountability: Easily see the current status of each application, including submission date, review stages, decision notifications, and awarded/denied outcomes.
  • Demonstrate organizational ownership: Track assigned team members and their roles within each application, ensuring clear responsibility and collaboration.
  • Support grant reporting and analysis: Generate reports on application timelines, funding success rates, and key performance indicators for informed decision-making and resource allocation.

As a Grant Manager, I want to be a powerhouse in managing grant opportunities and writers so that I can:

  • Own all content and streamline workflow: Securely store and manage all grant-related documents, from proposals to budgets and reports, in a central location accessible only to authorized users.
  • Track grant writer progress: Gain real-time visibility into each writer's workload, deadlines, and progress on assigned proposals, enabling timely intervention and support.
  • Collaborate seamlessly with writers and stakeholders: Facilitate efficient communication through built-in messaging tools, shared calendars, and version control for proposal drafts.
  • Simplify grant submission and compliance: Automate repetitive tasks and formatting, ensuring accurate and compliant submissions.
  • Generate insightful reports and dashboards: Analyze data on grant performance and writer productivity to generate grant success.

As a Grant Writer, I want to be a data-driven hero in creating compelling proposals that leverage our organization's rich data, so that I can:

  • Craft persuasive and impactful applications: Tailor proposals to individual grant opportunities by seamlessly integrating relevant organizational data (e.g., program outcomes, beneficiary demographics, financial reports) into narratives and budget justifications.
  • Collaborate efficiently with data analysts and stakeholders: Access and analyze data directly within the grant writing platform, enabling seamless collaboration and data-driven decision-making throughout the proposal development process.
  • Simplify data integration and compliance: Minimize manual data entry and ensure accurate and compliant submissions through built-in data connectors and automated reporting tools.
  • Focus on storytelling and narrative building: Free myself from tedious data management to focus.

Data Model

Grants app Data Model

Workflow

GrantGuides Storyboard UX

Get Grants Content Kit

  1. Install the package in your org.

Managed Package version     Unlocked Package version

  1. Install for all users (control access via permission set as noted below)

Configure Essential Settings and Features

Assign the GGW User Permissions Permission Set to a User

  1. Navigate to Setup, go to Users, and select Permission Sets.
  2. Select GGW User Permissions.
  3. Click Manage Assignments, then assign users to this permission set.
  4. Save your changes to confirm the correct permissions are assigned.

Enable Collaboration with Chatter

  1. In Setup, enter Chatter Settings in the Quick Find box, and select Chatter Settings.
  2. Verify Chatter is enabled. If not, activate it for your organization.
  3. Ensure Feed Tracking is enabled for the Grant Application object to allow updates and collaboration.
    • Use Quick Find to locate Feed Tracking, navigate to the Grant Application object, and enable feed tracking. Click Save.
  4. From a Grant Application record page, click the gear icon and select 'Edit Page'.
  5. Update the Record Page Layout by incorporating the Chatter component.
  6. Save your layout adjustments.

Add Path for Status to Visualize Grant Application Progress

  1. From Setup, use the Quick Find box to search for Path Settings and enable it.
  2. On a Grant Application record page, click the gear icon and select 'Edit Page'.
  3. Incorporate the Path component into the Record Page Layout.
  4. Save your layout adjustments.

Enable Topics for the Content Block Object

  1. In Setup, search for 'Topics for Objects' using the Quick Find box, and click Topics for Objects.
  2. Scroll to find the Content Block object and click Edit.
  3. Check the option to Enable Topics for the Content Block object.
  4. Save to apply your changes.
  5. On a Content Block record page, edit the layout by adding the Topics component to facilitate tagging and categorization.
  6. Save your layout adjustments.

Finalize Configuration

With Chatter and a Path set up, alongside Topics enabled for the Content Block object, your Salesforce environment is primed for effective grant management. These features enhance team collaboration, provide clear tracking of grant application progress, and streamline content organization, setting the stage for successful grant acquisition efforts.

Customizing the Grants Content Kit

Enhance your Grants Application process by integrating key data directly into your grant management workflow. Follow these steps to add an Opportunity lookup field and create cross-object formula fields to your Grant Application records in Salesforce. This allows for more streamlined tracking of funding opportunities and better visibility into related financial details.

Adding an Opportunity Lookup Field to Grant Applications

  1. Navigate to the Object Manager: In Salesforce, access Setup and select Object Manager.
  2. Find and Select the Grant Application Object: Search for and click on the Grant Application object in the list.
  3. Create New Field: Go to the Fields & Relationships section and click on "New".
  4. Select Field Type: Opt for "Lookup Relationship" and click "Next".
  5. Field Details:
    • Field Label: Enter "Opportunity".
    • Description and Help Text: Provide concise guidance for future users.
  6. Configure Field: Choose "Opportunity" as the related object to link each Grant Application to a specific funding opportunity.
  7. Set Field Details: Adjust visibility and page layout settings based on your organizational requirements.
  8. Save the Field: Complete the setup to add the new Opportunity lookup field to your Grant Application page layouts.

Creating Cross-Object Formula Fields

Account Name

  1. Create New Formula Field: Within Fields & Relationships for the Grant Application object, select "New" and choose "Formula" as the field type.
  2. Field Details: Name the field "Related Account Name" and provide a description and help text.
  3. Define the Formula: Select "Text" as the return type. Use the formula Opportunity__r.Account.Name to reference the Account Name from the related Opportunity. Ensure accuracy with "Check Syntax".
  4. Complete Configuration: Adjust visibility and page layout settings as needed.

Opportunity Amount

  1. Create New Formula Field: Repeat the steps above, selecting "Formula" as the field type.
  2. Field Details: Name this field "Opportunity Amount" and add a description and help text.
  3. Define the Formula: Choose "Currency" as the return type and use Opportunity__r.Amount to reference the funding amount. Verify the formula with "Check Syntax".
  4. Complete Configuration: Adjust visibility and page layout settings to suit your needs.

Finalizing Your Configuration

  • Review and Test: Inspect your Grant Application page layouts to ensure the new fields are correctly integrated and visible.
  • Test the Functionality: Create or edit a Grant Application record to confirm that both the Opportunity lookup field and the formula fields for Account Name and Opportunity Amount are functioning as intended.

By meticulously following these steps, your Grants Content Kit will be enhanced with capabilities that streamline the linkage of grant applications to specific funding opportunities and automate the pulling in of relevant financial data. This improvement in your grant management process will lead to increased efficiency and effectiveness.

Use the Grants Content Kit

Home Tab

The Home tab shows important information about your current and past proposals. This page is customizable and can include information that's important to you and your organization. By default, this page shows lists of various proposal types and two graphs. You can also create a new grant from this page.

1. To get started click [Initialize Sample Data]

Screenshot 2024-06-12 at 5 26 16 PM

Edit an Existing Proposal

  1. Click the Application Name of an existing proposal to open. You can also edit the Description and Status fields by hovering over the field and clicking the pencil icon.
  2. Once the editor opens, make changes to the proposal.
  3. Save your changes.
  4. To see the updated Status of the application, refresh your page.

Create a New Proposal

  1. Click Start New Grant Application.
  2. Add details about your proposal.
  • Grant Name: Enter a unique name.
  • Suggested sections to include: Select the sections you want to include.
  • Search for sections: If you don't find a section in the Suggested Section list, search for a specific section. If you can't find a section in the suggested section or by searching, create a new section.
  • Create new section: Type the name of the new section and click New Section. The new section will appear under Suggested sections to include. Note: The new section will exist for this and all future grant proposals.
  1. Save your changes.

Grant Editor Tab

The Grant Editor Tab is where you’ll create and edit grant proposals. If a grant hasn’t been created or selected, this tab will appear blank. Otherwise, this tab will populate with the proposal that was last being edited.

Create or Edit Content Blocks in Grant Editor Page

The Grant Editor Page is intended to allow grant writers a way to quickly build a grant proposal leveraging saved content and creating new content.

Each proposal section has a menu to complete specific actions to that particular content section.

  1. Add Block - Add saved content from your Content Block library. **Only content blocks associated with that section can be added.
  2. Edit Block - Opens the rich text editor to allow for editing of the content block.
  3. Save - Saves edits made to that content block for that particular section. Changes to a content section are not saved until this is selected. Users will know that they have saved because the rich text editor will close.
  4. Refresh to see your changes.
  5. Add to library - Allows users to save a content block to the library.
  6. Delete - Delete the section from the Grant Editor

Additional Actions on the Grant Editor Page

  1. Reorder - update order of the sections that appear. Use this feature to add a new section that isn’t currently in the Grant Editor.
  2. Use the refresh button if you make a change that you aren’t seeing appear in the Grant Editor page.
  3. Export - Export your Grant Application to a pdf.

Grant Applications

Use this tab to edit any grant proposal in your system or create a new grant proposal record (note, we recommend you create all new grant proposals from the Start New Grant Application button on the Home tab so you can configure the desired sections at the same time). To see all Grant Applications, select the down arrow under Grant Applications and select the ‘All’ view. Leverage the ‘pin’ icon to default to All going forward.

Edit a Grant Application

Select a Grant Application by clicking on the name of the grant in the GGW Grant Application Name. This will navigate you to the Grant Application Record. From here you can see important information about the grant and take actions on the selected Grant Application.

  1. Edit Application: Edit the content blocks and sections associated with that particular Grant Application. This is another way to edit the Grant Application, similar to the Grant Editor tab.
  2. Edit: Edit the Grant Application object. From here you can edit the Grant Application Name, Status, etc.
  3. Preview: Preview the completed grant proposal in PDF form to download.

Sections

These are the various types of sections seen on grant proposals. Each section will store content either from an existing or new Content Block in the Grant Editor. Organizations can create sections and adjust the behavior of those sections to be recommended or suggested for all new Grant Applications.

On the Sections tab, select the dropdown arrow below ‘Sections’ and select ‘All’. Once loaded, select the pin icon next to ‘All’ to pin the list to always show all of the existing sections. If no sections appear, that means that no sections exist in your instance. We recommend you create the following sections to begin with but also recognize that each organization is different and may have their own unique needs or naming conventions. Feel free to customize these as you like.

  • Program narrative
  • Executive summary
  • Statement of need
  • Project objectives
  • Plan of action
  • Goals and objectives
  • Budget narrative

Sections Details

  1. Section Name: Name used to identify the section
  2. Recommended: This section will appear checked in the New Grant Application flow initiated from the Start New Grant Application button on the Home tab.
  3. Suggested: This section will appear as a ‘Suggested section to include’ in the New Grant Application flow initiated from the Start New Grant Application button on the Home tab.
  4. Identifies the order that this Section will appear in the ‘Suggested sections to include’ in the New Grant Application flow initiated from the Start New Grant Application button on the Home tab.
  5. Section Details: Include unique details about the section so other users at your organization can quickly identify when to use a section.

Content Blocks

Content blocks contain saved content that correspond to a Section. Content blocks can be edited or added from the Content Block tab. When first clicking on the Content Block tab, select the drop down under ‘Content Blocks’ and select the All view. Select the pin to default to this view every time you return to the content tab.

Create a new content block

To create a new content block section, select ‘New’ on the Content Block tab.

  1. Content Block Name: Name used to identify the Content Block
  2. Description: The description section is where you will store the grant proposal content you want to save. The content saved in this field will be accessible in the Grant Editor.
  3. Short Description: Store information in this field to quickly identify the content block.
  4. Section: Identify the section this content block should be associated with. *If a content block is not associated with a section it will not appear when searching for saved content on the Grant Editor tab.

Edit a Content Block

To edit a content block, select the down arrow all the way to the right of the record and select ‘edit’. Users can also click on the Content Block Name and once they are on the record page, select ‘Edit’ at the top of the page.

Clone a Content Block

Content blocks can only be associated with a single section. In order to use a content block to be associated with multiple sections, users will have to create multiple copies of a single content block and update the Section for each to point to the desired sections.

To clone a Content Block, select the Content Block Name of the content block you want to clone. Once on the record page for that particular content block, click the down arrow at the top right corner of the page next to Edit and select Clone.

Tagging

The Grant Content Kit leverages Salesforce Topics to allow organizations to add tags to content blocks. This tagging can be used to quickly identify a winning content section or to categorize like content pieces with specific types of grant proposals.

To use topics, you have to enable them on the Content Block object.

Known Issues

Generate Grant Previews is limited

To pass record context and parameters from Lightning to Visual Force requires keeping a state of current Grant record. Lightning for security reasons (CROSS-SITE scripting attacks) do not allow any parameter passed to Visual Force because VFP is on different domain from LEX.

This reason launching preview tab with PDF view require a workaround - a state record/object. We create a single grant state record per user-grant keeping current Grant to initialize preview page when navigating from Grant editor LWC->Preview VisualForce crossing site boundary. As user changes to work on any new grant state record is updated with new Grant app ID.

This solution leads to limit of user can export only current grant and not able to simultaneously work on many Grants on many tabs/browsers and expect preview/export to work for all. Only the current active Grant can export.

There are no current other fixes for this limitation in Lightning Salesforce.

Default metadata issues deploying to Production or sandbox org

While deploy to full org current repo has these issues in metadata that needs to be removed from package

Reports and Dashboard Folders are shared to specific user ID that only for scratch but will never exists on other target org as this examples

Dashboard Folder

[[email protected]](mailto:[email protected])

<folderShares>
    <accessLevel>Manage</accessLevel>
    <sharedTo>[email protected]</sharedTo>
    <sharedToType>User</sharedToType>
</folderShares>

Report or Folder

<folderShares>
    <accessLevel>Manage</accessLevel>
    <sharedTo>[email protected]</sharedTo>
    <sharedToType>User</sharedToType>
</folderShares>

Home page layout has unknown item standard-Tags need to remove that

  <HomePageLayout xmlns="http://soap.sforce.com/2006/04/metadata">
    <narrowComponents>standard-CreateNew</narrowComponents>
    **<narrowComponents>standard-Tags</narrowComponents>**
    <narrowComponents>standard-RecentItems</narrowComponents>
    <wideComponents>standard-Calendar</wideComponents>
    <wideComponents>standard-Tasks</wideComponents>
    <wideComponents>standard-ProcessWorkitems</wideComponents>
    <wideComponents>standard-Dashboard</wideComponents>
</HomePageLayout>

App Menu - need to remove from repo it not required for any org.

For deployment to regular ORG need to enable Standard Tags feature available in classic. This can be done only from Classic Salesforce admin UI. Before deployment enable Tags using this instruction

Developer Documentation

Create a Scratch Org

The GrantsGuides is a Salesforce DX project that can deploy to a target org in 2 methods.

Deploy as metadata using scratch or developer org.

If you are a developer and want to customize or test-drive this app in a scratch org, this repo provides a helper script that allows for Quick Start. Follow bellow commands to set up a new scratch org.

$ git clone https://github.com/Salesforce-org-Impact-Labs/GrantGuides.git

$ cd GrantGuides

$ scripts/dx/dxorg <org alias> <OPTIONAL: days for scratch org. Default 30>

After this script executes the new scratch org will be created from your DevHub and source code pushed to new org. At this point you are ready to test and build. Happy blazing new trails.

There are other usefull sfdx helper scripts can be found in scripts/dx directory:

  • dxtest <org alias> - Script to run all APEX unit tests on scratch org for this project
  • dxuser <org alias> - Create a QA/Test ser on scratch org

Now you have new org and this app deployed, what’s next? Here are some documentation resources to get you started if you are new to SFDX.

Post Installation requirements

Grants Content Kit app is using Topics to tag content, the target org needs to enable topics feature after installing this package. Enable topics for the org specific for object Content Block: API Name GGW_Content_Block__c How To Enable Topics for objects

How Do You Plan to Deploy Your Changes?

Do you want to deploy a set of changes, or create a self-contained application? Choose a development model.

Configure Your Salesforce DX Project

The sfdx-project.json file contains useful configuration information for your project. See Salesforce DX Project Configuration in the Salesforce DX Developer Guide for details about this file.

Grant Preview/Export

Preview grant document is implemented using VisualForce page rendered as PDF that enables user to view and download a document.

This page GGW_GrantPreview implimented using standard APEX controller extension for the reason to use this page as custom action on Grant record page as well as stand alone VisualForce Tab.

The HTML/CSS styles for this page GGW_GrantPreview are managed as static resource. The CSS file is in a folder resources/css/ggw_grant_preview.css

Developer Resources