Connect TrackScore with your existing tools and workflows. From communication platforms to learning management systems, build seamless integrations that enhance your competition experiences.
Keep teams connected with real-time notifications and updates.
Sync data with business intelligence and analytics platforms.
Integrate with educational and learning management systems.
Direct integration with Excel Online and desktop for advanced data analysis.
Official JavaScript SDK for browser and Node.js applications.
Python library for data science and backend integrations.
Native SDKs for iOS and Android mobile applications.
Send formatted leaderboard updates to a Slack channel using webhooks.
// Webhook handler for score updates app.post('/webhooks/trackscore', (req, res) => { const { type, data } = req.body; if (type === 'score.updated') { const message = { text: `🏆 Score Update!`, blocks: [ { type: "section", text: { type: "mrkdwn", text: `*${data.participant_name}* just scored ${data.new_score} points!\n` + `They moved from #${data.old_rank} to #${data.new_rank} on the leaderboard.` } } ] }; // Send to Slack fetch(process.env.SLACK_WEBHOOK_URL, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(message) }); } res.status(200).send('OK'); });
Automatically update a Google Sheet with the latest leaderboard data.
const { GoogleSpreadsheet } = require('google-spreadsheet'); async function syncLeaderboardToSheets(leaderboardId) { // Fetch leaderboard data from TrackScore const response = await fetch(`${API_BASE}/leaderboards/${leaderboardId}`, { headers: { 'Authorization': `Bearer ${API_KEY}` } }); const leaderboard = await response.json(); // Connect to Google Sheets const doc = new GoogleSpreadsheet(SHEET_ID); await doc.useServiceAccountAuth(credentials); await doc.loadInfo(); const sheet = doc.sheetsByIndex[0]; // Clear existing data and add headers await sheet.clear(); await sheet.setHeaderRow(['Rank', 'Name', 'Score', 'Last Updated']); // Add participant data const rows = leaderboard.participants.map((p, index) => ({ 'Rank': index + 1, 'Name': p.name, 'Score': p.score, 'Last Updated': new Date().toLocaleString() })); await sheet.addRows(rows); console.log(`Updated ${rows.length} participants in Google Sheet`); }