External Tool Integration
Connect BetaHub with your project management and development tools for streamlined workflows.
Overview
BetaHub integrates with popular project and task management tools to bridge the gap between bug reporting and development workflows. Send entries from BetaHub directly to your preferred project management system.
One-Way Integration: Changes made in external systems (Jira, GitHub, etc.) are not automatically reflected back in BetaHub. Integration is currently one-way from BetaHub to external systems. Bidirectional sync is planned for future releases.
Supported Platforms
Project Management Tools
- Jira Cloud - Atlassian’s cloud-hosted issue tracking and project management
- Jira Server - Self-hosted Atlassian Jira (on-premise deployments)
- Asana - Team collaboration and task management
- Monday.com - Work operating system and project tracking
- Notion - All-in-one workspace with databases
- ClickUp - Project management and productivity platform
- Fibery - Work management platform with custom databases
Development Platforms
- GitHub - Code repository with integrated issue tracking
- Redmine - Open-source project management
Custom Integrations
- API-based - Any system with REST API support
- Webhooks - Real-time notifications to external services (Comprehensive Webhooks Guide)
Need integration with a different tool? Contact us at hello@betahub.io to discuss your requirements.
Setting Up Integrations
Initial Setup Process
- Access Integration Settings
- Navigate to your project page in BetaHub
- Select Settings from the left sidebar
- Click on Integrations
- Choose Platform
- Select your desired integration (e.g., “Connect with Jira”)
- Follow the connection wizard’s authentication steps
- Configure Authentication
- Provide API credentials or complete OAuth flow
- Test connection to verify access
- Map Fields
- Configure how BetaHub fields translate to external fields
- Set default values and dynamic expressions
- Test with sample data
Platform-Specific Setup
Jira Cloud Integration
Prerequisites:
- Jira Cloud instance (*.atlassian.net)
- Admin access to create API tokens
- Project permissions for issue creation
Setup Steps:
- Generate API token in Jira Cloud (Account Settings → Security → API tokens)
- Provide Jira Cloud URL, email, and API token
- Select target project and issue type
- Map BetaHub fields to Jira fields
Common Field Mappings:
- Summary ← Bug title
- Description ← Bug description + steps to reproduce
- Priority ← BetaHub priority level
- Labels ← BetaHub tags
Jira Server Integration
Prerequisites:
- Self-hosted Jira Server or Data Center instance
- OAuth2 application configured in Jira
- Project permissions for issue creation
Setup Steps:
- Configure OAuth2 application in Jira Server administration
- Complete OAuth2 authentication flow in BetaHub
- Select target project and issue type
- Map BetaHub fields to Jira fields
Common Field Mappings:
- Summary ← Bug title
- Description ← Bug description + steps to reproduce
- Priority ← BetaHub priority level
- Labels ← BetaHub tags
GitHub Integration
Prerequisites:
- GitHub repository access
- Personal access token with repository permissions
Setup Steps:
- Generate personal access token on GitHub
- Provide repository owner and name
- Configure issue templates and labels
- Map fields to GitHub issue format
Common Field Mappings:
- Title ← Bug title
- Body ← Formatted description with links
- Labels ← BetaHub tags and priority
- Assignees ← Project developers
Asana Integration
Prerequisites:
- Asana workspace access
- API token or OAuth application
Setup Steps:
- Authenticate with Asana account
- Select workspace and project
- Configure task fields and custom fields
- Set up automatic assignee rules
Common Field Mappings:
- Name ← Bug title
- Notes ← Detailed description
- Priority ← Asana priority levels
- Tags ← BetaHub categories
ClickUp Integration
Prerequisites:
- ClickUp workspace access
- API token from ClickUp settings
Setup Steps:
- Generate API token in ClickUp (Settings → Apps → API)
- Provide API token to BetaHub
- Select workspace, space, and list
- Map BetaHub fields to ClickUp task fields
Common Field Mappings:
- Name ← Bug title
- Description ← Detailed description
- Priority ← ClickUp priority levels
- Tags ← BetaHub tags
Fibery Integration
Prerequisites:
- Fibery workspace access
- API key from Fibery settings
Setup Steps:
- Generate API key in Fibery (Settings → API Keys)
- Provide API key to BetaHub
- Select space and database type
- Map BetaHub fields to Fibery entity fields
Common Field Mappings:
- Name ← Bug title
- Description ← Detailed description
- State ← BetaHub status
- Custom fields ← BetaHub custom fields
Field Mapping Configuration
Mapping Modes
BetaHub supports four field mapping modes:
| Mode | Description | Use Case | Example |
|---|---|---|---|
| Not Mapped | Field is skipped | Irrelevant fields | Internal IDs |
| Constant Value | Fixed value used | Default categories | Priority: “High” |
| Map From Field | Direct field mapping | Simple translations | Title → Summary |
| Dynamic Expression | Template-based | Rich formatting | Description with links |
Available Fields: When mapping fields, you can choose from standard fields (title, description, priority, etc.) and your custom fields. Custom fields appear with human-readable identifiers like custom_field_platform.
Dynamic Expression Examples
Dynamic expressions use triple braces {{{ field_name }}} to insert values from BetaHub entries. The expression engine automatically resolves field names without requiring a namespace prefix.
Rich Description Template:
# {{{ title }}}
**Reported:** {{{ created_at }}}
**Version:** {{{ version }}}
## Description
{{{ description }}}
## Steps to Reproduce
{{{ steps_to_reproduce }}}
## Device Information
{{{ device }}}
## BetaHub Link
[View in BetaHub]({{{ issue_url }}})
Formatted Title:
[{{{ priority }}}] {{{ title }}}
Tag Combination:
{{{ tag_names }}} beta-testing {{{ priority }}}-priority
Including Custom Fields:
Custom fields use identifiers in the format custom_field_{identifier}. See Custom Field Identifiers for more details.
Bug Report: {{{ title }}}
Platform: {{{ custom_field_platform }}}
Game Mode: {{{ custom_field_game_mode }}}
Affected System: {{{ custom_field_affected_system }}}
Version: {{{ version }}}
Description:
{{{ description }}}
Steps to Reproduce:
{{{ steps_to_reproduce }}}
[View in BetaHub]({{{ issue_url }}})
Finding Available Fields: When configuring dynamic expressions in BetaHub, you’ll see a grouped list of available fields including all your custom fields with their identifiers. Standard fields (title, description, priority) and custom fields are shown separately for easy reference.
Available Template Variables
The following variables are available for use in dynamic expressions:
Entry Fields:
| Variable | Description | Example Value |
|---|---|---|
title |
Entry title | “Game crashes on level 3” |
description |
Full description | “When I enter the cave…” |
steps_to_reproduce |
Reproduction steps | “1. Open game\n2. Go to…” |
priority |
Priority level | “Critical”, “High”, “Medium”, “Low” |
status |
Current status | “Open”, “In Progress”, “Resolved” |
heat |
Bug heat/popularity score | “5” |
tag_names |
Applied tags (comma-separated) | “UI, Graphics” |
issue_url |
BetaHub entry URL | “https://app.betahub.io/…” |
created_at |
Creation timestamp | “2024-01-15 10:30:00” |
due_date |
Due date if set | “2024-02-01” |
Device & Environment:
| Variable | Description | Example Value |
|---|---|---|
device |
Formatted device details (CPU, GPU, OS, memory) | “Intel Core i7, NVIDIA RTX 3080, Windows 11” |
version |
Release/game version label | “1.2.3” |
Discord Integration:
| Variable | Description | Example Value |
|---|---|---|
discord_message |
Original Discord message (if reported via Discord) | “The game keeps crashing…” |
discord_link |
Link to Discord message/thread | “https://discord.com/…” |
Duplicate Tracking:
| Variable | Description | Example Value |
|---|---|---|
duplicates_count |
Number of duplicate reports | “3” |
duplicate_releases |
Releases with duplicate counts | “v1.2.0 (2), v1.1.0 (1)” |
duplicate_links |
Links to duplicate issues | “https://app.betahub.io/…” |
Custom Fields:
Custom fields use the format custom_field_{identifier}:
| Variable | Description |
|---|---|
custom_field_platform |
Your “Platform” custom field |
custom_field_game_mode |
Your “Game Mode” custom field |
custom_field_affected_system |
Your “Affected System” custom field |
See Custom Field Identifiers for how to find your custom field identifiers.
Best Practices for Mapping
Include Context:
- Add links back to BetaHub entries
- Include reporter information
- Reference game version and platform
Maintain Traceability:
- Use consistent formatting across tools
- Include unique identifiers
- Cross-reference related items
Optimize for Workflow:
- Map to appropriate priority levels
- Use relevant categories and labels
- Set up automatic assignments
Using Integrations
Sending Individual Items
From List View:
- Navigate to Bugs, Suggestions, or Tickets list
- Click the three-dots menu (…) next to the entry
- Select Send to…
- Choose your configured integration
From Detail View:
- Open the entry details page
- Click the three-dots menu (…) in the top-right corner
- Select Send to…
- Choose your configured integration
Bulk Operations
Multi-Select Sending:
- Use checkboxes to select multiple entries
- Click bulk actions menu
- Choose Send to… for selected items
- Select target integration
Entry Linking and Updates
Automatic Linking:
- BetaHub creates bidirectional links between entries
- External item IDs are stored for reference
- Status sync (where supported by external tool)
Update Behavior:
- Subsequent “Send to…” actions update existing items
- No duplicate creation in external systems
- Manual trigger required (no automatic sync)
Advanced Configuration
Custom Field Mapping
Jira Custom Fields:
{
"customfield_10001": "{{{ device }}}",
"customfield_10002": "{{{ version }}}",
"customfield_10003": "BetaHub Import"
}
GitHub Issue Templates:
---
title: {{{ title }}}
labels: {{{ tag_names }}}, bug
---
**Bug Report from BetaHub**
{{{ description }}}
**Steps to Reproduce:**
{{{ steps_to_reproduce }}}
**Environment:**
- Version: {{{ version }}}
- Device: {{{ device }}}
[View in BetaHub]({{{ issue_url }}})
Template Engine
BetaHub uses the Mustache template engine for dynamic expressions. This provides simple, logic-less templating focused on variable substitution.
Supported Syntax:
- Variable substitution:
{{{ variable_name }}} - All variables are converted to strings automatically
- Empty variables render as blank strings
Unsupported Features:
- Conditional logic (if/else statements)
- Loops and iterations
- Filters or transformations
- Liquid-style syntax
Need conditional routing? Use multiple integrations with different configurations, or implement conditional logic in your external system (e.g., Jira automation rules, GitHub Actions).
Webhook Configuration
For comprehensive webhook setup, configuration, and examples, see the dedicated Webhooks Documentation.
Key Features:
- Real-time notifications to external services
- Custom payload formatting with variable substitution
- Multiple event types (issues, feature requests, tickets)
- Built-in testing and debugging tools
- Retry logic for failed deliveries
- Security headers and authentication support
Integration Monitoring
Success Tracking
Integration Dashboard:
- Success/failure rates for each integration
- Recent sync activity logs
- Error message analysis
- Performance metrics
Audit Trail:
- Track which items were sent where
- Monitor user actions and timestamps
- Maintain compliance records
Error Handling
Common Error Types:
- Authentication failures
- Network connectivity issues
- Field validation errors
- Rate limiting responses
Resolution Strategies:
- Automatic retry with exponential backoff
- User notification for manual intervention
- Fallback to alternative integrations
- Error log aggregation for analysis
Troubleshooting
Authentication Issues
Token Expiration:
- Check token validity in external system
- Regenerate tokens as needed
- Update BetaHub configuration
Permission Problems:
- Verify account permissions in target system
- Check project-specific access rights
- Confirm API scope and capabilities
Field Mapping Errors
Validation Failures:
- Review required fields in target system
- Check data format requirements
- Test with minimal field mappings
Template Syntax Errors:
- Validate dynamic expression syntax
- Test templates with sample data
- Check for missing or invalid variables
Performance Issues
Slow Sync Times:
- Review network connectivity
- Check external system status
- Optimize field mapping complexity
Rate Limiting:
- Implement request throttling
- Spread sync operations over time
- Contact external service for rate increases
Security Considerations
Credential Management
Best Practices:
- Use dedicated service accounts
- Rotate credentials regularly
- Apply principle of least privilege
- Monitor access logs
Token Security:
- Store tokens securely
- Never expose in logs or UI
- Use encrypted storage
- Implement token rotation
Data Privacy
Information Transfer:
- Review what data is sent to external systems
- Ensure compliance with privacy regulations
- Implement data retention policies
- Document data flows
Getting Help
Support Resources
Documentation:
- Platform-specific integration guides
- API reference documentation
- Field mapping examples
Community Support:
- Join our Discord server
- Community knowledge base
- User-contributed examples
Direct Support:
- Technical support for complex integrations
- Custom integration development
- Enterprise integration consulting
Common Questions
Q: Can I sync data back from external tools to BetaHub? A: Currently, integration is one-way from BetaHub to external systems. Bidirectional sync is planned for future releases.
Q: How often does synchronization occur? A: Sync is manual and triggered by user action. Automatic sync is not currently supported.
Q: Can I integrate with multiple tools simultaneously? A: Yes, you can configure multiple integrations and choose which tool to send each item to.
See Also
- Webhooks – Real-time event notifications
- API Access – REST API and authentication
- AI Assistants – AI-powered workflow automation
- Advanced Features – Webhooks, API, and automation