TrackFlow is a comprehensive marketing attribution and link tracking app designed specifically for Frappe CRM (FCRM). It helps businesses track marketing campaigns, understand customer journeys, and attribute revenue to the right marketing channels.
Version: 1.0.0
Status: Beta - Core features working, some integrations pending
Last Updated: September 2025
- Link tracking and redirects
- Campaign management
- Click event tracking
- Visitor session tracking
- Attribution models (5 types)
- CRM Lead, Deal, and Organization integration
- Web form tracking
- Bulk link generation
- API endpoints
- Email tracking not implemented
- CRM Contact integration missing
- Activity/Task tracking not available
- Multi-currency support pending
- Real-time dashboard under development
- Tracked Links: Short URLs with automatic tracking
- QR Code Generation: For offline campaigns
- Bulk Generation: Create multiple links at once
- Custom Identifiers: Branded short codes
- UTM Parameters: Automatic tracking
- Link Campaigns: Organize and track marketing efforts
- Goal Setting: Define and track objectives
- Budget Tracking: Monitor spending vs. revenue
- Performance Metrics: Real-time analytics
- 5 Attribution Models:
- Last Touch (100% to final interaction)
- First Touch (100% to initial interaction)
- Linear (Equal distribution)
- Time Decay (Recent interactions weighted more)
- Position Based (40% first, 40% last, 20% middle)
- Visitor Sessions: Track complete user journey
- Conversion Tracking: Monitor goal achievement
- Deal Attribution: Link revenue to campaigns
- CRM Lead: Automatic source tracking, visitor ID linkage
- CRM Deal: Attribution calculation, marketing influence
- CRM Organization: Engagement scoring, campaign tracking
- Web Forms: Conversion tracking, goal linkage
CRM Lead:
- trackflow_visitor_id
- trackflow_source
- trackflow_medium
- trackflow_campaign
- trackflow_first_touch_date
- trackflow_last_touch_date
- trackflow_touch_count
CRM Deal:
- trackflow_attribution_model
- trackflow_first_touch_source
- trackflow_last_touch_source
- trackflow_marketing_influenced
CRM Organization:
- trackflow_visitor_id
- trackflow_engagement_score
- trackflow_last_campaign
- Frappe Framework v15+
- Frappe CRM installed and configured
- Python 3.10+
# Navigate to bench directory
cd ~/frappe-bench
# Get the app
bench get-app https://github.com/chinmaybhatk/trackflow.git
# Install on your site
bench --site your-site-name install-app trackflow
# Run the deployment script
cd apps/trackflow
chmod +x deploy.sh
./deploy.sh your-site-name
# If deployment script fails, try manually:
bench --site your-site-name migrate
bench --site your-site-name clear-cache
bench --site your-site-name reload-doctype-cache
bench restart
After installation, TrackFlow should appear in the CRM sidebar. If not visible:
bench --site your-site-name clear-website-cache
bench --site your-site-name build
- Navigate to TrackFlow > Settings
- Configure default attribution model
- Set up tracking domains
- Configure notification preferences
- Go to TrackFlow > Campaigns > New
- Fill in:
- Campaign Name
- Type (Email, Social, PPC, etc.)
- Budget and dates
- Save
# Single link
1. TrackFlow > Tracked Links > New
2. Enter destination URL and campaign
3. Save to get short URL
# Bulk generation
1. Open a Campaign
2. Click "Bulk Generate Links"
3. Enter identifiers (comma-separated)
4. Generate
trackflow/
βββ trackflow/
β βββ api/ # API endpoints
β β βββ __init__.py β Fixed
β β βββ analytics.py
β β βββ campaign.py
β β βββ links.py β Working
β β βββ tracking.py
β β βββ visitor.py
β βββ config/ # Configuration
β β βββ __init__.py β Added
β β βββ trackflow.py β Sidebar config
β βββ integrations/ # CRM Integration
β β βββ crm_lead.py β Implemented
β β βββ crm_deal.py β Implemented
β β βββ crm_organization.py β Implemented
β β βββ crm_contact.py β Missing
β β βββ web_form.py β Implemented
β βββ trackflow/
β β βββ doctype/ # 30+ DocTypes
β β βββ link_campaign/
β β βββ tracked_link/
β β βββ click_event/
β β βββ visitor_session/
β β βββ attribution_model/
β β βββ ... (25+ more)
β βββ public/ # Frontend assets
β β βββ js/
β β β βββ crm_lead.js
β β β βββ crm_deal.js
β β β βββ crm_organization.js
β β βββ css/
β βββ www/ # Web routes
β βββ redirect.py β Tracking redirects
βββ hooks.py β Updated with module config
βββ install.py # Installation scripts
βββ deploy.sh β Deployment helper
βββ requirements.txt
// Get tracking script
GET /api/method/trackflow.api.tracking.get_tracking_script
// Track custom event
POST /api/method/trackflow.api.tracking.track_event
{
"visitor_id": "uuid",
"event_type": "custom",
"event_data": {}
}
// Bulk generate links
POST /api/method/trackflow.api.links.bulk_generate_links
{
"campaign": "campaign-name",
"identifiers": "id1,id2,id3"
}
// Get campaign analytics
GET /api/method/trackflow.api.analytics.get_campaign_stats?campaign=name
bench --site your-site-name console
# Check if app is installed
frappe.get_installed_apps()
# Should include 'trackflow'
# Test API import
import trackflow.api.links
trackflow.api.links.bulk_generate_links("test", "id1,id2")
# Check for errors
frappe.get_all('Error Log', filters={'method': ['like', '%trackflow%']}, limit=5)
# In bench console
from trackflow.demo_data import create_demo_data
create_demo_data()
bench --site your-site-name clear-cache
bench --site your-site-name reload-doctype-cache
bench restart
# Check Python path
bench --site your-site-name console
import sys
print(sys.path)
# Should include apps/trackflow
- Check browser console for JavaScript errors
- Verify cookies are enabled
- Check if redirect URLs are accessible:
/r/test
- Email tracking (pixel tracking, click tracking)
- CRM Contact integration
- Activity/Communication tracking
- Real-time dashboard
- Multi-currency support
- Webhook support
- Advanced segmentation
- A/B testing for links
- WhatsApp/SMS tracking
- Advanced ML attribution
- Predictive analytics
- API v2 with GraphQL
- Fork the repository
- Create feature branch (
git checkout -b feature/amazing-feature
) - Commit changes (
git commit -m 'Add amazing feature'
) - Push to branch (
git push origin feature/amazing-feature
) - Open Pull Request
See CONTRIBUTING.md for detailed guidelines.
MIT License - see LICENSE file
Chinmay Bhat
Email: chinmaybhatk@gmail.com
GitHub: @chinmaybhatk
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: support@trackflow.app
- Beta Software: This is beta software. Test thoroughly before production use.
- Frappe CRM Only: Designed for Frappe CRM, not standard ERPNext CRM.
- Data Privacy: Implements visitor tracking - ensure compliance with local privacy laws.
- Performance: For high-traffic sites, consider using Redis for session storage.
Last Technical Update: September 4, 2025
- Fixed API module imports
- Added sidebar configuration
- Created deployment script
- Updated hooks.py with module registration