App manifest
Complete guide to configuring your app manifest
The app manifest is a JSON file that defines your app’s configuration, capabilities, and integration points. It serves as the blueprint for how your app interacts with Thena.
Manifest structure
App information
The app
section defines the basic information about your app that users will see in the app directory.
App structure
App fields
Name
The display name of your app. Keep it concise and descriptive.
Icons
URLs to your app’s icons. We recommend:
- Large: 512x512px PNG
- Small: 128x128px PNG
Category
The category that best describes your app’s primary function:
productivity
communication
crm_integration
analytics
automation
custom
Description
A clear, concise description of what your app does. This appears in the app directory.
Supported locales
List of locales your app supports. Use standard locale codes.
Complete app example
Developer info
The developer
section contains information about your development team and support resources.
Developer structure
Developer fields
Name
Your company or developer name:
Primary contact email for app-related communications:
URL
Your company or app website:
Privacy policy URL
Link to your privacy policy:
Terms of service URL
Link to your terms of service:
Support (optional)
Additional support resources:
Developer info example
Here’s a full developer info configuration:
Events
The events
section defines how your app interacts with Thena’s event system. You can both publish events to notify Thena of changes and subscribe to events to react to changes in Thena.
Events structure
Publishing events
Use the publish
array to define events your app will emit to Thena.
Publish fields
event
: The event name (use dot notation)reason
: Short description of why this event is publishedschema
: JSON Schema defining the event payload
Publish example
Subscribing to events
Use the subscribe
array to define which Thena events your app wants to receive.
Subscribe fields
event
: The event name to subscribe toreason
: Short description of why you need this eventdescription
: Detailed description of how you’ll use this event
Subscribe example
Common platform events
App installation event
When your app is installed, you’ll receive an installation event with these details:
Ticket comment event
When a ticket comment is added, you’ll receive an event with these details:
Scopes
The scopes
section defines the permissions your app needs to function. Each scope grants access to specific Thena APIs and features.
Scopes structure
Available scopes
Contact scopes
contacts:read
- View contact informationcontacts:write
- Create and update contactscontacts:delete
- Delete contactscontacts.custom_fields:read
- View contact custom fieldscontacts.custom_fields:write
- Create and update contact custom fields
Accounts scopes
companies:read
- View company informationcompanies:write
- Create and update companiescompanies:delete
- Delete companiescompanies.custom_fields:read
- View company custom fieldscompanies.custom_fields:write
- Create and update company custom fields
Conversation scopes
conversations:read
- View conversationsconversations:write
- Send and reply to messagesconversations:delete
- Delete conversationsconversations.attachments:read
- View conversation attachmentsconversations.attachments:write
- Add attachments to conversations
User scopes
users:read
- View user informationusers.preferences:read
- View user preferencesusers.preferences:write
- Update user preferences
Organization scopes
workspace:read
- View workspace settingsworkspace.members:read
- View workspace membersworkspace.teams:read
- View workspace teams
Scopes example
Metadata
The metadata
section provides additional information about your app that helps users understand its capabilities and pricing.
Metadata structure
Metadata fields
Title
A concise title that describes your app’s main function:
Rating
Optional rating for your app (0-5):
Pricing
Define your app’s pricing structure (in cents):
Category
The primary category for your app:
Available categories:
crm_integration
productivity
communication
analytics
automation
custom
Capabilities
List of key features your app provides:
Integration
The integration
section defines how your app integrates with Thena, including webhook endpoints and entry points.
Integration structure
Webhooks
Configure endpoints where Thena will send events and installation notifications:
Events webhook
The events
webhook receives all events your app subscribes to:
Installation webhook
The installations
webhook receives notifications when your app is installed or uninstalled:
Entry points
Define URLs for different parts of your app’s interface:
External select configuration
External select configuration allows you to dynamically fetch options for select fields from your app’s API endpoint.
External select structure
Request format
When a user interacts with an external select field, Thena will make a GET request:
Response format
Your endpoint should return:
Activities
Activities define HTTP-based operations your app can perform. Each activity represents an API endpoint that can be called by Thena.
Activity structure
Activity example
Configuration
Define settings users can configure:
Best practices
App information
-
Name
- Keep it short and memorable
- Avoid unnecessary prefixes
- Use title case
- Focus on clarity and recognition
-
Icons
- Use high-quality, recognizable images
- Ensure good contrast
- Test both sizes in the app directory
- Maintain consistent branding
-
Description
- Focus on value proposition
- Keep it under 160 characters
- Use active voice
- Highlight key features
-
Category
- Choose the most specific category
- Consider user search behavior
- Use only one primary category
- Match user expectations
Events
-
Event naming
- Use lowercase letters
- Use dots for namespacing
- Be specific but concise
- Follow the pattern:
object.action
-
Schema design
- Include all necessary fields
- Add field descriptions
- Mark required fields
- Use appropriate types
-
Event handling
- Handle events idempotently
- Implement error handling
- Log event processing
- Consider retry logic
Scopes
-
Scope selection
- Request minimum required permissions
- Make enhanced features optional
- Group related permissions
- Document scope usage clearly
-
Security
- Follow principle of least privilege
- Regularly audit scope usage
- Remove unused permissions
- Update scopes with features
-
Documentation
- List all required scopes
- Explain optional features
- Document scope dependencies
- Keep scope list updated
Metadata
-
Title
- Keep it clear and concise
- Focus on main functionality
- Use proper capitalization
- Avoid unnecessary words
-
Pricing
- Use cents to avoid floating-point issues
- Offer both monthly and yearly options
- Consider volume discounts
- Be transparent about limitations
-
Capabilities
- List most important features first
- Use consistent terminology
- Keep descriptions short
- Focus on value proposition
Integration
-
Webhooks
- Use HTTPS endpoints
- Implement proper authentication
- Handle retries gracefully
- Respond quickly (under 3 seconds)
-
Entry points
- Use consistent URL structure
- Handle loading states
- Implement error pages
- Support deep linking
-
Security
- Validate webhook signatures
- Use HTTPS everywhere
- Implement rate limiting
- Monitor for abuse
External select
-
Performance
- Cache frequently requested options
- Limit the number of options returned (max: 100)
- Implement pagination if needed
- Optimize response time (under 500ms)
-
Security
- Validate the API key
- Use HTTPS endpoints only
- Implement rate limiting
- Return only authorized data
-
User experience
- Return results quickly
- Handle errors gracefully
- Provide meaningful labels
- Support search functionality
Activities
-
Design
- Use clear, descriptive names
- Document all parameters
- Provide complete schemas
- Include response examples
-
Implementation
- Handle errors gracefully
- Validate input data
- Set appropriate timeouts
- Log activity execution
-
Security
- Validate authentication
- Sanitize inputs
- Rate limit requests
- Monitor usage patterns
Developer info
-
Contact information
- Use business email addresses
- Monitor support channels regularly
- Keep contact info up to date
- Respond promptly to inquiries
-
Documentation
- Provide clear installation guides
- Include troubleshooting steps
- Document all features
- Keep docs current with updates
-
Legal requirements
- Keep privacy policy current
- Update terms of service
- Follow data protection laws
- Document data usage clearly
-
Support resources
- Offer multiple support channels
- Set clear response times
- Document known issues
- Provide self-help resources
Configuration
-
Settings design
- Use clear, descriptive labels
- Group related settings
- Provide helpful descriptions
- Use appropriate field types
-
Validation
- Validate input formats
- Provide clear error messages
- Handle edge cases
- Implement type checking
-
Security
- Encrypt sensitive data
- Mask secret fields
- Implement access controls
- Audit configuration changes