> For the complete documentation index, see [llms.txt](https://docs.bluedev.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bluedev.xyz/premade-bots/application-bot.md).

# Application Bot

## Configuration

### Tickets

* `tickets.topic` : Sets the channel topic for new tickets
* `tickets.transcriptChannel` : The ID of the channel where transcripts should be sent on ticket close
* `tickets.types.x.createLimit` : The number of tickets a user can create
* `tickets.types.x.prefix` : The prefix for that ticket
* `tickets.types.x.category` : The category that the ticket should be created in
* `tickets.types.x.roles` : The roles that should be added to the ticket upon creation

```javascript
'tickets': {
    'topic': '',
    'transcriptChannel': '',
    'types': {
        'application': {
            'createLimit': 1,
            'prefix': 'app-%username%',
            'category': '',
            'roles': [],
        },
        'support': {
            'createLimit': 2,
            'prefix': 'support-%username%',
            'category': '',
            'roles': [],
        },
    },
},
```

### Applications

* `applications.reviewChannel`: The ID of the channel where application reviews should take place
* `applications.options`: The applications. Due to Discord limits, you may only create 25 application types. The key for each application needs to be unique!
* `applications.options.x.role` : Auto role (optional) for when the user get's accepted
* `applications.options.x.label` : The label for the select menu
* `applications.options.x.description` : The description for the select menu
* `applications.options.x.emoji` : The emoji (optional) for the select menu
* `applications.options.x.modal.title` : The title of the modal for that question
* `applications.options.x.modal.questions` : The questions to be added to the modal. Discord only allows a max of 5 options!
* `applications.options.x.modal.y.role` : The role to give the user when accepted (auto role -&#x20;
* `applications.options.x.modal.y.label` : The question
* `applications.options.x.modal.y.placeholder` : Question placeholder text
* `applications.options.x.modal.y.required` : Whether or not the question is required
* `applications.options.x.modal.y.paragraph` : If the text-box should be a paragraph or short
* `applications.options.x.modal.y.minLength` : Sets a minimum character limit
* `applications.options.x.modal.y.maxLength` : Sets a maximum character limit

```javascript
'applications': {
    'reviewChannel': '',
    'options': {
        'moderator': {
            'role': '',
            'label': 'Community Moderator',
            'description': 'Enforce rules & manage users',
            'emoji': '🛡️',
            'modal': {
                'title': 'New App | Community Moderator',
                'questions': [
                    {
                        'label': 'Why do you want this role?',
                        'placeholder': '',
                        'required': true,
                        'paragraph': true,
                        'minLength': 0,
                        'maxLength': 500,
                    },
                    {
                        'label': 'Any prior experience?',
                        'placeholder': '',
                        'required': false,
                        'paragraph': true,
                        'minLength': 0,
                        'maxLength': 300,
                    },
                ],
            },
        },
        'support_staff': {
            'role': '',
            'label': 'Support Staff',
            'description': 'Help users & answer questions',
            'emoji': '💬',
            'modal': {
                'title': 'New App | Support Staff',
                'questions': [
                    {
                        'label': 'Any customer support experience?',
                        'placeholder': '',
                        'required': true,
                        'paragraph': true,
                        'minLength': 0,
                        'maxLength': 500,
                    },
                    {
                        'label': 'How would you handle a combative user?',
                        'placeholder': '',
                        'required': true,
                        'paragraph': true,
                        'minLength': 0,
                        'maxLength': 500,
                    },
                ],
            },
        },
        'event_manager': {
            'role': '',
            'label': 'Event Manager',
            'description': 'Plan & manage events',
            'emoji': '🎉',
            'modal': {
                'title': 'New App | Event Manager',
                'questions': [
                    {
                        'label': 'Any event planning experience?',
                        'placeholder': '',
                        'required': true,
                        'paragraph': true,
                        'minLength': 0,
                        'maxLength': 500,
                    },
                    {
                        'label': 'What events would you organize?',
                        'placeholder': '',
                        'required': true,
                        'paragraph': true,
                        'minLength': 0,
                        'maxLength': 200,
                    },
                ],
            },
        },
    },
},
```
