Objective Tracker — Goal tracking with auto-calculation and trend dashlets

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • pimpmycrm
    Junior Member
    • Feb 2026
    • 15

    #1

    Objective Tracker — Goal tracking with auto-calculation and trend dashlets

    Hey everyone,

    We're happy to share our new extension for EspoCRM: Objective Tracker

    We built this because we needed a way to set business goals, track progress over time, and give
    teams visibility into how they're doing. All without leaving EspoCRM. We looked at what was
    available and realized nothing really did this natively, so we built it ourselves 😁



    Click image for larger version

Name:	Screenshot 2026-04-25 at 13.42.57.png
Views:	0
Size:	383.4 KB
ID:	126151




    Objective Tracker lets you define measurable objectives (revenue targets, KPIs, task
    completion, etc.), organize them by area/team, and track progress with auto-calculated metrics,
    color-coded progress bars, and historical trend charts, all inside your EspoCRM dashboard





    Core Features

    Objective Entity

    Each objective includes:

    - Name & Description — what you're tracking
    - Area — organize by team or department (Sales, Marketing, Product, etc.)
    - Objective Type — currency, number, percentage, or task
    - Target & Current Value — where you want to be vs. where you are
    - Priority — low, medium, high, critical (color-coded badges)
    - Period — weekly, monthly, quarterly, yearly, or custom
    - Start / End Date — defines the time window
    - Weight — for weighted averages in area-level scoring (e.g., a critical revenue goal can weigh
    2x)
    - Assigned User — who owns this objective
    - Calculated fields (read-only): percent complete, remaining value, and auto-derived status

    Smart Status Derivation

    Status isn't just a manual dropdown — it's automatically calculated based on your actual
    progress vs. where you should be given the time elapsed:

    - Not Started — 0% progress
    - In Progress — Some progress, no date comparison available
    - On Track — Progress is ≥90% of expected (based on time elapsed)
    - At Risk — Progress is 60–89% of expected
    - Behind — Progress is <60% of expected
    - Completed — 100% of target reached
    - Missed — Past end date without reaching target

    Each status gets a color-coded badge (green, orange, red, blue, gray) so you can scan the list
    at a glance.

    Click image for larger version

Name:	image.png
Views:	0
Size:	361.2 KB
ID:	126153

    Auto-Calculation from Any Entity

    This is where it gets powerful. You can point an objective at any entity in your CRM and it
    will automatically calculate progress:

    - Source Entity Type — pick any entity (Opportunity, Lead, Task, Call, or any custom entity)
    - Source Field — which numeric field to aggregate
    - Source Date Field — for filtering records within the objective's date range
    - Source Filter — JSON-based custom filter (e.g., {"stage": "Closed Won"})
    - Aggregation Type — sum, avg, count, min, max, or latest

    Example: Create a "Q2 Revenue" objective → point it at the Opportunity entity → field: amount →
    filter: {"stage": "Closed Won"} → aggregation: sum → and EspoCRM will automatically calculate
    your current revenue and update the progress bar. No manual data entry needed.


    Click image for larger version

Name:	Screenshot 2026-04-25 at 13.43.40.png
Views:	0
Size:	71.9 KB
ID:	126156


    Scheduled Jobs

    Two automated jobs keep everything up to date:

    1. Calculate Objectives (runs every hour) recalculates all auto-calculated objectives from
    their source entities
    2. Log Progress (runs daily at midnight) takes a daily snapshot of each active objective's
    progress and stores it in the history, which feeds the Trend Chart



    Progress History

    Every day, the system logs the current value and percent complete for each active objective.
    This historical data is what powers the Trend Chart dashlet and you get a full timeline of how
    each objective evolved over days, weeks, or months.


    Dashboard Widgets

    The extension ships with four dashlets you can add to any dashboard:

    1. Objectives Overview

    A full table view of all your objectives with:
    - Color-coded progress bars (red <50%, orange 50–80%, green ≥80%)
    - Status badges
    - Current value vs. target
    - Area grouping
    - Click any row to open the objective detail
    - Filter button to show/hide individual objectives
    - Configurable auto-refresh interval

    2. Area Scorecard

    Visual card layout with circular SVG progress indicators for each objective or area:
    - Animated percentage in the center of each circle
    - Color-coded rings (red/orange/green)
    - Current vs. target values
    - Two display modes: individual objectives or grouped by area (with weighted averages)
    - Filter and auto-refresh support

    3. My Objectives

    A personal view showing only objectives assigned to the logged-in user:
    - Progress bars with current/target
    - End date visibility
    - Status badges
    - Filter and auto-refresh

    4. Trend Chart

    An SVG line chart showing progress over time:
    - Multiple objectives rendered as colored lines (12-color palette)
    - Interactive legend — click to show/hide individual lines
    - Hover tooltips showing objective name, date, percentage, value, area, and target
    - Area fill under each line
    - Automatic date range from your ObjectiveLog data
    - Supports up to 365 days of history


    Click image for larger version

Name:	Screenshot 2026-04-25 at 13.42.48.png
Views:	0
Size:	358.8 KB
ID:	126158


    List & Detail View Actions

    - Recalculate All button on the list view — triggers an immediate recalculation of every
    auto-calculated objective, with a notification showing how many were updated
    - Recalculate button on the detail view — recalculates a single objective on demand
    - Full filter panel on the list: filter by area, status, priority, assigned user, period, type,
    or auto-calculated flag

    ---
    API Endpoints

    For those who want to integrate or build on top of this:

    - POST /ObjectiveTracker/action/recalculateAll — recalculate all (admin only)
    - POST /ObjectiveTracker/action/recalculate — recalculate one by ID
    - GET /ObjectiveTracker/action/dashletData?type=overview|my|area|trend — get dashlet data
    programmatically
    - GET /ObjectiveTracker/action/entityFields?entityType=X — get available numeric/date fields
    for any entity (useful for configuring auto-calculation)

    ---
    Technical Details

    - Requires: EspoCRM 8.0+ / PHP 8.1+
    - Installs via: standard extension upload (Administration → Extensions)
    - Adds "Objective" to the main navigation automatically on install
    - Clean uninstall — removes tables and nav entry
    - No core file modifications — 100% modular



    We'd love to hear your feedback. If you have questions or feature requests, drop them here!

    PimpMyCRM​ 💜
    Attached Files
Working...