Overview
Spreadsheet Template Reports (STRs) are Excel-based report templates that allow you to query your Broadstripes database directly from Excel cells using special formula functions. These templates are particularly useful for labor organizing campaigns where you need to track worker engagement, analyze organizing activity, and generate custom reports. When you run an STR, the system processes your template file, executes all the database query functions, replaces them with the actual data, and generates a completed Excel report that you can download and analyze.What you can do with STRs
STRs enable you to:- Count workers, organizations, or contacts matching specific criteria
- Sum numeric values from custom fields (hours worked, dues collected, etc.)
- Track event participation and organizing activities
- Generate dynamic lists of names for outreach
- Create recurring reports with different parameters
- Build complex dashboards combining multiple data points
Where to find and create STRs
STRs are accessible in the app from the Settings menu. Click on Settings and then Spreadsheet template reports. Here you will find a list of all available STRs (if any). You can edit, delete and create new ones.
Creating and uploading templates
Step 1: Create your Excel template
- Open Microsoft Excel (or compatible spreadsheet software)
- Design your report layout with headers, labels, and formatting
- Add STR functions in cells where you want CRM data. You can find a list of available functions in the available query functions section of this article.
- Test your formulas and cell references
- Add parameters if needed using
{parameter_name}syntax - Save the file as an
.xlsxfile
- Use clear headers and labels
- Add a title row explaining what the report shows
- Format numeric cells appropriately (currency, percentage, etc.)
- Use Excel’s formatting features (bold, colors, borders) to improve readability
- Test cell references carefully to ensure they point to the right cells
Step 2: Upload to Broadstripes
- Navigate to Settings → Spreadsheet Template Reports
- Click Upload new report template
- Enter a Description that explains what the report does
- Example: “Weekly department activity report showing worker counts and organizing metrics”
- Click Choose file and select your
.xlsxfile - Click Upload
Step 3: Create links
After uploading, you need to create at least one link that users can click to run the report:- Find your uploaded template in the list
- Click add link
- Enter Link Text - this is what users will click
- Example: “Generate Warehouse Weekly Report”
- (Optional) Add parameters:
- Click add parameter
- Enter the parameter name (e.g.,
department) - Enter the parameter value (e.g.,
Warehouse) - Click the checkmark to save
- Repeat for additional parameters
- Click outside the form to save
Step 4: Create Additional Links (Optional)
You can create multiple links for the same template with different parameters:- Click add link again
- Enter different link text: “Generate Loading Dock Weekly Report”
- Add parameters:
department=Loading Dock - Save
Running Reports
Running a Report Immediately
- Navigate to Reports in the left-hand navigation panel then the All Custom Reports tab
- Find the report link you want to run under the Spreadsheet Template Reports section
- Click the link text
- The report will be scheduled immediately.
- Navigate to the Reports page (using the navigation panel on the left) to view Requested Reports and monitor progress and download
Scheduling Recurring Reports
You can schedule reports to run automatically on a recurring basis:- Navigate to Reports in the left-hand navigation panel then the All Custom Reports tab.
- Find the report link you want to schedule under the Spreadsheet Template Reports section
- Click the schedule icon next to the link
- Choose your schedule:
- One-time: Select a specific date and time
- Recurring: Choose frequency (daily, weekly, monthly)
- Set the time zone
- Enter email recipients who should receive the report
- Click Schedule
Managing templates and links
Editing template description
- Find your template in the list on the Spreadsheet Template Reports page.
- Click edit (pencil icon) to the far right of the template name
- Update the description
- Click outside the form to save
Editing link text
- Find the link under your template
- Click edit text next to the link
- Enter new text
- Press Enter or click outside to save
Managing parameters
Add a parameter:- Click add parameter next to the link
- Enter parameter name and value
- Click the checkmark
- Click the X icon on the parameter badge
Removing a link
- Click remove link next to the link you want to delete
- Confirm the deletion
Removing a template
- Click remove template next to the template
- Confirm the deletion
- Warning: This will also delete all links associated with the template
Downloading the original template
- Click the filename (e.g.,
weekly_report.xlsx) next to the template - The original template file will download
- You can modify it and re-upload if needed
Available query functions
STRs use special functions that begin with a question mark (?). These functions are processed by the CRM and replaced with actual data when the report runs.?COUNT - Count matching records
Purpose: Returns the number of contacts (people or organizations) that match your search criteria. Syntax:?COUNT [search_criteria]
Examples:
- Count total workers in a specific department
- Count how many workers are assigned to each shift
- Track the number of contacts in different organizing committees
?SUM[FieldName] - Sum numeric custom field values
Purpose: Calculates the sum of a numeric custom field for all contacts matching your search criteria. Syntax:?SUM[Custom Field Name] [search_criteria]
Examples:
- The custom field name must match exactly (case-insensitive)
- The custom field must be a numeric type
- If the field doesn’t exist, the cell will display “Custom field not found”
- Calculate total hours worked by department
- Sum dues collected from workers in a specific location
- Track total grievances filed across different shifts
?CHECKOFFCOUNT[Event Name] - Count event completions
Purpose: Counts how many event steps have been completed for specified events across all matching contacts. Syntax:?CHECKOFFCOUNT[Event1,Event2,...] [search_criteria]
Examples:
- Multiple event names are separated by commas (no spaces)
- Event names must match exactly (case-insensitive)
- Counts all completed steps for the specified events
- If events don’t exist, the cell will display “Events not found”
- Track how many one-on-one conversations have been completed
- Count total organizing activities (house visits + phone calls) per department
- Monitor union card signature progress
- Measure organizing committee participation
?FIRSTNAME - Get first names
Purpose: Returns a comma-separated list of first names for people matching your criteria. Syntax:?FIRSTNAME [search_criteria]
Examples:
- Only works for people, not organizations
- Returns empty string if no matches found
- Names are sorted alphabetically
- Generate a friendly list of shop stewards for a department
- Create attendance lists for organizing meetings
- Build phone bank contact lists
?FULLNAME - Get full names (people only)
Purpose: Returns a comma-separated list of full names (first and last) for people matching your criteria. Syntax:?FULLNAME [search_criteria]
Examples:
- Only returns names for people, not organizations
- Even if search includes organizations, only person names are returned
- Names are sorted alphabetically
- Generate complete rosters of workers by department
- Create sign-in sheets for meetings
- List organizing committee members
?NAME - Get names (people and organizations)
Purpose: Returns a comma-separated list of names for both people and organizations matching your criteria. Syntax:?NAME [search_criteria]
Examples:
- Works for both people and organizations
- Returns the appropriate name format for each entity type
- Names are sorted alphabetically
- List all contacts (workers and organizations) in a worksite
- Generate lists that include both union locals and members
- Create comprehensive contact directories
?FIRSTNAMELASTINITIAL - Get abbreviated names
Purpose: Returns a comma-separated list of names in “FirstName L.” format (first name followed by last initial). Syntax:?FIRSTNAMELASTINITIAL [search_criteria]
Examples:
- Create privacy-conscious lists for public bulletin boards
- Generate abbreviated rosters for team assignments
- Build contact lists that maintain some anonymity
?HIERARCHICALNAME - Get organizational hierarchy
Purpose: Returns organizational names with their parent organization hierarchy. Syntax:?HIERARCHICALNAME [search_criteria]
Examples:
- Only works for organizations, not people
- Shows the full organizational chain
- Returns empty string for people or organizations without parents
- Display union structure (international : local : chapter)
- Show corporate ownership hierarchies
- Map employer-subcontractor relationships
Search criteria syntax
All STR functions use Broadstripes search language syntax. Here are the most common patterns:Basic searches
Numeric comparisons
Multiple criteria
You can combine multiple search terms (they work as AND conditions):Special searches
Using cell references
One of the most powerful features of STRs is the ability to reference other cells in your formulas using the%CellReference% syntax.
Basic cell reference syntax
Format:%A1%, %B2%, %C3%, etc.
When the report runs, %B2% will be replaced with the actual value from cell B2.
Example: Dynamic Department Report
Create a report where you can easily change the department:| A | B |
|---|---|
| Department: | Warehouse |
| Total Workers: | ?COUNT department:%B1% |
| Morning Shift: | ?COUNT department:%B1% shift=Morning |
| Night Shift: | ?COUNT department:%B1% shift=Night |
- Cell B2 becomes:
?COUNT department:Warehouse→ 45 - Cell B3 becomes:
?COUNT department:Warehouse shift=Morning→ 28 - Cell B4 becomes:
?COUNT department:Warehouse shift=Night→ 17
Example: Worker Activity Report
Track activities for specific workers:| A | B |
|---|---|
| Worker Name: | Maria Garcia |
| One-on-Ones Completed: | ?CHECKOFFCOUNT[One-on-One] name:%B1% |
| House Visits: | ?CHECKOFFCOUNT[House Visit] name:%B1% |
| Cards Signed: | ?CHECKOFFCOUNT[Card Signed] name:%B1% |
Combining Cell References with Excel Formulas
You can use Excel formulas to build your STR functions dynamically:Using parameters
Parameters allow you to create multiple links to the same template, each with different values substituted at runtime. This is useful when you want to generate the same report for different departments, shifts, or worksites.Parameter syntax
In your spreadsheet, use curly braces{parameter_name} to define where parameters should be substituted:
Example: Multi-Department Template
Create a single template that works for any department:| A | B |
|---|---|
| Department Report | |
| Department: | {department} |
| Total Workers: | ?COUNT department:{department} |
| Shop Stewards: | ?NAME department:{department} role:steward |
| Morning Shift: | ?COUNT department:{department} shift=Morning |
| Night Shift: | ?COUNT department:{department} shift=Night |
| Total Hours: | ?SUM[Hours Worked] department:{department} |
Creating Links with Parameters
After uploading this template, you can create multiple links with different parameter values: Link 1: “Warehouse Report”- Parameter:
department=Warehouse
- Parameter:
department=Loading Dock
- Parameter:
department=Maintenance
{department} with Warehouse throughout the spreadsheet before processing the STR functions.
Multiple Parameters
You can use multiple parameters in a single template:| A | B |
|---|---|
| Worksite: | {worksite} |
| Shift: | {shift} |
| Worker Count: | ?COUNT worksite:{worksite} shift:{shift} |
| Shop Steward: | ?NAME worksite:{worksite} shift:{shift} role:steward |
- worksite=Factory A
- shift=Morning
Parameters with cell references
You can combine parameters with cell references:| A | B |
|---|---|
| Base Location: | {worksite} |
| Specific Department: | Warehouse |
| Worker Count: | ?COUNT worksite:%B1% department:%B2% |
Working with Excel formulas
STRs work seamlessly with native Excel formulas, allowing you to build sophisticated reports.Processing order
- Parameters are substituted (e.g.,
{department}→Warehouse) - Excel formulas are evaluated
- Cell references are resolved (e.g.,
%B2%→ actual value) - STR functions are executed
- Results are written back to cells
Example: Percentage Calculations
Calculate what percentage of workers have signed union cards:| A | B | C |
|---|---|---|
| Total Workers: | ?COUNT type=person | |
| Signed Cards: | ?CHECKOFFCOUNT[Card Signed] type=person | |
| Percentage: | =B2/B1 | |
| Formatted: | =TEXT(C3,"0%") |
Example: Conditional Formatting
Build dynamic labels based on counts:| A | B |
|---|---|
| Shop Stewards: | ?COUNT role:steward |
| Status: | =IF(B1>=5,"Adequate","Need More") |
Example: Building Complex Queries
Use CONCATENATE to build queries from multiple cells:| A | B | C |
|---|---|---|
| Department: | Warehouse | |
| Role: | steward | |
| Query Result: | =CONCATENATE("?NAME department:";B1;" role:";B2) |
?NAME department:Warehouse role:steward
Practical examples
Example 1: Department summary report
Goal: Create a summary showing worker counts and activities by department. Template Structure:| A | B |
|---|---|
| Department Activity Report | |
| Department: | {department} |
| Report Date: | =TODAY() |
| Worker Counts | |
| Total Workers: | ?COUNT department:{department} |
| Morning Shift: | ?COUNT department:{department} shift=Morning |
| Night Shift: | ?COUNT department:{department} shift=Night |
| Shop Stewards: | ?COUNT department:{department} role:steward |
| Organizing Activity | |
| One-on-Ones Completed: | ?CHECKOFFCOUNT[One-on-One] department:{department} |
| House Visits Completed: | ?CHECKOFFCOUNT[House Visit] department:{department} |
| Total Contacts: | =B11+B12 |
| Union Card Progress | |
| Cards Signed: | ?CHECKOFFCOUNT[Card Signed] department:{department} |
| Percentage Signed: | =B16/B6 |
| Formatted %: | =TEXT(B17,"0%") |
| Shop Steward List | |
| Stewards: | ?NAME department:{department} role:steward |
- “Warehouse Department Report” with parameter
department=Warehouse - “Loading Dock Department Report” with parameter
department=Loading Dock - “Maintenance Department Report” with parameter
department=Maintenance
Example 2: Worksite comparison report
Goal: Compare organizing metrics across multiple worksites. Template Structure:| A | B | C | D |
|---|---|---|---|
| Multi-Worksite Comparison | |||
| Metric | Factory A | Factory B | Factory C |
| Total Workers | ?COUNT worksite:"Factory A" | ?COUNT worksite:"Factory B" | ?COUNT worksite:"Factory C" |
| Shop Stewards | ?COUNT worksite:"Factory A" role:steward | ?COUNT worksite:"Factory B" role:steward | ?COUNT worksite:"Factory C" role:steward |
| Cards Signed | ?CHECKOFFCOUNT[Card Signed] worksite:"Factory A" | ?CHECKOFFCOUNT[Card Signed] worksite:"Factory B" | ?CHECKOFFCOUNT[Card Signed] worksite:"Factory C" |
| % Signed | =B5/B3 | =C5/C3 | =D5/D3 |
| One-on-Ones | ?CHECKOFFCOUNT[One-on-One] worksite:"Factory A" | ?CHECKOFFCOUNT[One-on-One] worksite:"Factory B" | ?CHECKOFFCOUNT[One-on-One] worksite:"Factory C" |
| House Visits | ?CHECKOFFCOUNT[House Visit] worksite:"Factory A" | ?CHECKOFFCOUNT[House Visit] worksite:"Factory B" | ?CHECKOFFCOUNT[House Visit] worksite:"Factory C" |
| Total Contacts | =B7+B8 | =C7+C8 | =D7+D8 |
- “All Worksites Comparison Report” (no parameters needed)
Example 3: Worker activity tracker
Goal: Track organizing activities for individual workers. Template Structure:| A | B |
|---|---|
| Worker Activity Report | |
| Worker Name: | {worker_name} |
| Report Date: | =TODAY() |
| Contact Information | |
| Full Name: | ?FULLNAME name:{worker_name} |
| Department: | (manually filled or from custom field) |
| Shift: | (manually filled or from custom field) |
| Organizing Activities | |
| One-on-One Conversations: | ?CHECKOFFCOUNT[One-on-One] name:{worker_name} |
| Phone Calls: | ?CHECKOFFCOUNT[Phone Call] name:{worker_name} |
| House Visits: | ?CHECKOFFCOUNT[House Visit] name:{worker_name} |
| Meetings Attended: | ?CHECKOFFCOUNT[Meeting Attended] name:{worker_name} |
| Total Contacts: | =SUM(B11:B14) |
| Commitment Level | |
| Union Card Signed: | ?CHECKOFFCOUNT[Card Signed] name:{worker_name} |
| Petition Signed: | ?CHECKOFFCOUNT[Petition Signed] name:{worker_name} |
| Committee Member: | ?CHECKOFFCOUNT[Committee Member] name:{worker_name} |
- “Maria Garcia Activity” with parameter
worker_name=Maria Garcia - “John Smith Activity” with parameter
worker_name=John Smith - Individual links for key organizing committee members
Example 4: Weekly organizing dashboard
Goal: High-level overview of campaign progress for leadership team. Template structure:| A | B | C | D |
|---|---|---|---|
| Weekly organizing dashboard | |||
| Week ending: | =TODAY() | ||
| Overall progress | Count | Goal | % of Goal |
| Total workers in database | ?COUNT type=person | 500 | =B5/C5 |
| Union cards signed | ?CHECKOFFCOUNT[Card Signed] type=person | 300 | =B6/C6 |
| Organizing Committee Members | ?COUNT committee:"Organizing Committee" | 50 | =B7/C7 |
| Shop Stewards Identified | ?COUNT role:steward | 25 | =B8/C8 |
| This week’s activity | |||
| One-on-one conversations | ?CHECKOFFCOUNT[One-on-One] date:thisweek | ||
| House Visits Completed | ?CHECKOFFCOUNT[House Visit] date:thisweek | ||
| Phone Calls Made | ?CHECKOFFCOUNT[Phone Call] date:thisweek | ||
| Total Contacts This Week | =SUM(B11:B13) | ||
| By department | Workers | Cards Signed | % Signed |
| Warehouse | ?COUNT department:Warehouse | ?CHECKOFFCOUNT[Card Signed] department:Warehouse | =C17/B17 |
| Loading Dock | ?COUNT department:"Loading Dock" | ?CHECKOFFCOUNT[Card Signed] department:"Loading Dock" | =C18/B18 |
| Maintenance | ?COUNT department:Maintenance | ?CHECKOFFCOUNT[Card Signed] department:Maintenance | =C19/B19 |
| Administration | ?COUNT department:Administration | ?CHECKOFFCOUNT[Card Signed] department:Administration | =C20/B20 |
| Shop steward list | |||
| All stewards: | ?NAME role:steward |
- “Weekly dashboard” (no parameters, run weekly)
Example 5: Shift-based contact lists
Goal: Generate contact lists for different shifts for phone banking or door knocking. Template structure:| A | B |
|---|---|
| Contact List for Phone Banking | |
| Shift: | {shift} |
| Worksite: | {worksite} |
| Generated: | =TODAY() |
| Summary | |
| Total Workers on List: | ?COUNT shift:{shift} worksite:{worksite} |
| Already Contacted: | ?CHECKOFFCOUNT[Phone Call] shift:{shift} worksite:{worksite} |
| Remaining: | =B6-B7 |
| Contact List | |
| Workers to Call: | ?FULLNAME shift:{shift} worksite:{worksite} |
| Priority Contacts | |
| Shop Stewards: | ?NAME shift:{shift} worksite:{worksite} role:steward |
| Committee Members: | ?NAME shift:{shift} worksite:{worksite} committee:"Organizing Committee" |
- “Morning Shift - Factory A” with parameters
shift=Morning,worksite=Factory A - “Night Shift - Factory A” with parameters
shift=Night,worksite=Factory A - “Morning Shift - Factory B” with parameters
shift=Morning,worksite=Factory B - “Night Shift - Factory B” with parameters
shift=Night,worksite=Factory B
Example 6: Dynamic query builder
Goal: Allow users to build custom queries by filling in cell values. Template structure:| A | B | C |
|---|---|---|
| Custom query report | ||
| Enter your search criteria: | ||
| Department: | Warehouse | |
| Shift: | Morning | |
| Role: | steward | |
| Results: | ||
| Total matching: | ?COUNT department:%B4% shift:%B5% | |
| With role: | ?COUNT department:%B4% shift:%B5% role:%B6% | |
| Names: | ?NAME department:%B4% shift:%B5% | |
| Names with role: | ?NAME department:%B4% shift:%B5% role:%B6% | |
| Organizing Activity: | ||
| One-on-Ones: | ?CHECKOFFCOUNT[One-on-One] department:%B4% shift:%B5% | |
| House Visits: | ?CHECKOFFCOUNT[House Visit] department:%B4% shift:%B5% | |
| Cards Signed: | ?CHECKOFFCOUNT[Card Signed] department:%B4% shift:%B5% |
Troubleshooting
Error: “CELL REFERENCE ERROR: B52”
Cause: The cell reference you specified doesn’t exist or is empty. Solutions:- Verify the cell reference is correct (e.g.,
%B2%not%B52%) - Ensure the referenced cell contains a value
- Check that you’re using the correct column and row numbers
Error: “SPREADSHEET LOGIC ERROR: ’?COUNT blah’”
Cause: The search criteria in your STR function is invalid or uses incorrect syntax. Common Issues:- Misspelled custom field names
- Invalid search operators
- Missing quotes around multi-word values
- Typos in search terms
- Check your search syntax against the examples in this guide
- Verify custom field names match exactly (case doesn’t matter)
- Use quotes around values with spaces:
worksite:"Factory A" - Test your search criteria in Broadstripes’ search interface first
Error: “Custom field not found”
Cause: The custom field name in your?SUM function doesn’t match any custom field in your project.
Solutions:
- Go to Settings → Custom Fields and verify the exact field name
- Check for typos or extra spaces in the field name
- Ensure the field exists in your project
- Field name matching is case-insensitive, but spelling must be exact
Error: “Events not found”
Cause: The event name in your?CHECKOFFCOUNT function doesn’t match any event in your project.
Solutions:
- Go to Settings → Events and verify the exact event name
- Check for typos in event names
- Ensure all event names in comma-separated lists are correct
- Event name matching is case-insensitive, but spelling must be exact
No results when expected
Cause: Your search criteria is too restrictive or doesn’t match any records. Solutions:- Simplify your search by removing criteria one at a time
- Test the search in Broadstripes’ main search interface
- Verify the values you’re searching for actually exist in the database
- Check for typos in search values
- Start with a simple search:
?COUNT type=all - Add criteria one at a time:
?COUNT department:Warehouse - Add more filters:
?COUNT department:Warehouse shift=Morning - Identify which criterion is eliminating all results
Parameters not being substituted
Cause: Parameter syntax is incorrect or the parameter wasn’t configured in the link. Solutions:- Verify you’re using curly braces:
{parameter_name}not[parameter_name] - Check that the parameter is added to the link with the correct name
- Parameter names are case-sensitive:
{Department}is different from{department} - Ensure there are no spaces in parameter names
Excel formulas not working
Cause: The formula syntax is incorrect or incompatible with the report processing. Solutions:- Test the Excel formula independently before combining with STR functions
- Ensure cell references in formulas are correct
- Use simple formulas when possible
- Verify that the formula produces a valid STR function string
=CONCATENATE("?COUNT name:";B1) but B1 is empty, it produces ?COUNT name: which is invalid.
Solution: Ensure referenced cells have values before the report runs.
Report fails to generate
Possible causes:- Template file is corrupted
- Too many records to process (very large datasets)
- Invalid Excel file format
- Re-save your template as
.xlsxformat - Try a simpler version of the template to isolate the issue
- Contact your Broadstripes administrator if the issue persists
- Check the Requested Reports page for specific error messages
Performance issues (slow report generation)
Cause: Complex queries across large datasets can take time. Expected times:- Small reports (< 1000 records): Usually complete in under a minute
- Medium reports (1000-10000 records): May take 1-5 minutes
- Large reports (> 10000 records): May take 5-15 minutes
- Use more specific search criteria to reduce the number of records processed
- Avoid using
type=allunless necessary - Limit the number of STR functions in a single template
- Consider breaking very large reports into multiple smaller reports
Best practices
Template design
- Use clear headers and labels: Make it obvious what each number represents
- Add a report title: Include the report name and purpose at the top
- Include generation date: Use
=TODAY()so users know when the report was generated - Format numbers appropriately: Use percentage, currency, or number formatting
- Add explanatory text: Help users understand what they’re looking at
- Group related metrics: Use sections with headers
- Use visual formatting: Colors, bold text, and borders improve readability
Query optimization
- Be specific with search criteria: More specific = faster queries
- Avoid redundant queries: If you need the same data twice, reference the first cell
- Use parameters for recurring values: Easier to maintain and update
- Test queries in the search interface first: Verify your syntax before adding to templates
Link management
- Use descriptive link text: “Warehouse Weekly Report” not “Report 1”
- Organize by frequency: Group daily, weekly, and monthly reports
- Document parameter meanings: Add notes about what each link does
- Delete unused links: Keep your list clean and manageable
Maintenance
- Keep original template files: Store local copies of your templates
- Version your templates: Save new versions when making significant changes
- Test after updates: Run a test report after uploading changes
- Document custom fields: Keep a list of custom field names used in templates
Tips for labor organizing use cases
Tracking card signatures
Create a dashboard showing:- Total workers vs. cards signed (percentage)
- Breakdown by department, shift, or worksite
- Trend over time (if you run the report weekly)
Identifying high-priority contacts
Use functions to find:- Workers who haven’t been contacted recently
- Departments with low card signature rates
- Shifts with no shop stewards
- Worksites with low organizing activity
Planning phone banks and door knocks
Generate lists showing:- Workers by shift for targeted outreach
- Names in “FirstName L.” format for privacy
- Contact counts to estimate volunteer needs
- Priority contacts (committee members, stewards)
Measuring organizing committee engagement
Track metrics like:- Number of one-on-ones conducted by each organizer
- Committee member participation in events
- Distribution of organizing activity across departments
- Growth in committee membership over time
Reporting to leadership
Create executive summaries with:- High-level progress metrics (% signed, total contacts)
- Comparisons across worksites or departments
- Week-over-week or month-over-month changes
- Visual formatting to highlight key achievements
Advanced techniques
Creating dynamic headers
Use cell references and CONCATENATE to create dynamic report titles:| A | B |
|---|---|
| Department: | Warehouse |
| Report Title: | =CONCATENATE(B1," Department Report - ",TEXT(TODAY(),"mm/dd/yyyy")) |
Conditional alerts
Use IF statements to highlight issues:| A | B | C |
|---|---|---|
| Shop Stewards: | ?COUNT role:steward | |
| Status: | =IF(B1<5,"⚠ NEED MORE STEWARDS","✓ Adequate") |
Progress bars
Create visual progress indicators:| A | B | C | D |
|---|---|---|---|
| Total Workers: | 100 | ||
| Cards Signed: | ?CHECKOFFCOUNT[Card Signed] type=person | ||
| Progress: | =REPT("█",B2/10) | =TEXT(B2/B1,"0%") |
Multi-sheet reports
You can use multiple sheets in your template:- Sheet 1: Executive summary
- Sheet 2: Detailed metrics by department
- Sheet 3: Worker contact lists
- Sheet 4: Raw data
Combining with pivot tables
- Use STR functions to generate raw data on one sheet
- Create a pivot table on another sheet
- When the report runs, the pivot table will update with fresh data
Frequently asked questions
Q: Can I use STR functions in formulas? A: Yes, STR functions produce values that can be used in Excel formulas. For example:Q: Can I share templates between projects? A: Templates are project-specific. You’ll need to download the template file and re-upload it to another project. Note that custom field names and event names may differ between projects.
Q: How often can I run a report? A: You can run reports as often as needed. For recurring reports, common schedules are:
- Daily (morning reports for organizers)
- Weekly (progress updates for leadership)
- Monthly (comprehensive campaign reviews)
Q: Can I edit a report after it’s generated? A: Yes. Download the generated report from the Requested Reports page. It’s a standard Excel file that you can open, edit, and save locally. Changes won’t affect the template.
Q: What happens if I update a template? A: When you upload a new version of a template:
- The new version will be used for all future report runs
- Existing links remain intact
- Previously generated reports are not affected
Q: Can I schedule a report to run automatically? A: Yes. Click the schedule icon next to any link and configure the recurring schedule. The report will generate automatically and can be emailed to recipients.
Q: How do I know when my report is ready? A: Navigate to Reports → Requested Reports. You’ll see:
- Requested: Report is queued
- Processing: Report is currently being generated
- Successful: Report is ready to download
- Failed: An error occurred (check the error message)
Q: Can I use STR functions with imported data? A: Yes. STR functions query the Broadstripes database, which includes all manually entered and imported data. As long as the data is in your project, it’s searchable.
Q: Do I need special permissions to create templates? A: Yes. You must be a Project Administrator to upload templates and create links. Regular users can run reports if they have access to the links.
Q: Can I see who ran a report? A: Yes. The Requested Reports page shows who requested each report and when.
Getting help
If you encounter issues not covered in this guide:- Check the error message: Most errors provide specific information about what went wrong
- Test your search syntax: Use the main search interface to verify your criteria work
- Simplify your template: Remove complexity to isolate the issue
- Contact your Broadstripes support: They can help troubleshoot project-specific issues
- Review the Requested Reports page: Check for detailed error messages