Setup
Assistants as code lets you manage assistant settings, prompts, functions, and workflows in a GitHub repository. Pushes to the repository's default branch sync the configuration to Neuroline. In the dashboard, this feature is called Infrastructure-as-code.
Each organization can connect one repository, which can contain multiple assistants. A repository can be shared by multiple organizations.
1. Connect your repository
You need an owner or admin role in your Neuroline organization and write or admin access to the GitHub repository. The Neuroline GitHub App must be installed with access to that repository. The app reads repository contents; it does not need permission to write files.
- Open Organization → Infrastructure-as-code in the dashboard.
- Select Connect GitHub and authorize GitHub.
- If needed, install the app and grant access to your repository.
- Choose the GitHub account and repository, then select Connect & sync.
If your repository is missing from the list, select Manage GitHub access, grant access, and refresh the list after approval. If your organization uses SAML SSO, start an SSO session on GitHub before authorizing.
2. Add your configuration
Follow Assistants to create an assistant directory and its
config.yaml. Add the required base.md and default.md files described in
Prompts. Functions and workflows are optional.
3. Push, sync, and test
Commit these files and push them to the repository's default branch, then the configuration syncs automatically. You can also select Sync now in the dashboard. Feature-branch pushes and unmerged pull requests do not update assistants.
After a successful sync, the dashboard shows your imported assistants and the last successful commit. Each sync reads all files from one current default-branch commit and validates the whole repository before importing it. An invalid configuration leaves the previous successful configuration running. If a sync fails, read the error in the dashboard, correct the configuration, and push again or select Sync now.
Open your assistant in the dashboard and assign an inbound phone number to test it. Call that number and check its responses against your configuration. Phone assignments remain managed in the dashboard.
4. Make changes
Edit your assistant's configuration or prompts in the repository, commit, and push to the default branch. Check the successful commit in the dashboard, then make a new call to test the changes.
GitHub-managed fields are read-only in the dashboard and replaced on each sync.
To restore an earlier configuration, revert the changes in Git and push to the default branch. This does not undo bookings, messages, or other actions already performed.
When updates apply
New calls use the updated configuration. Calls already in progress keep their workflow configuration. Integration functions needed by those calls remain available until the calls end.
Connected repositories are also checked every 15 minutes to recover missed webhook deliveries. Overlapping sync requests are combined, and an already imported commit is skipped. Background syncs use the app installation and do not depend on your GitHub authorization session staying active.
Import limits
| Limit | Maximum |
|---|---|
| Assistants in one repository import | 20 |
| Assistant directory identities retained by a connection, including removed assistants | 100 |
| Workflows per assistant | 12 |
| Steps per assistant, across all workflows | 24 |
| Assistant-level functions | 16 |
| Functions per step, including transitions | 17 |
| FAQ entries per assistant | 100 |
| Characters per Markdown prompt | 100,000 |
| Configuration size | 512,000 bytes for files read and for the generated import payload |
| Generated records per import | 2,000, including assistants, FAQs, workflows, steps, and functions |
Unrelated repository files do not count toward the configuration size. A repository whose GitHub file tree cannot be read completely is rejected.
Disconnecting
Select Disconnect and delete assistants to stop GitHub updates and permanently delete the repository's assistants, including those marked as removed from the repository. Their configuration, knowledge, workflows, and integration connections are deleted, and linked phone numbers are unassigned.
Disconnecting affects only the current organization. Other organizations connected to the same repository keep their assistants and continue syncing.
Further pushes cannot reconnect a disconnected organization. An authorized user must select the repository again. Reconnecting creates new repository assistants. Set up phone assignments and integration connections again before putting those assistants into use.
Uninstalling the GitHub App, suspending it, or removing its repository access stops imports and reports an access error. It retains the last configuration; only an explicit dashboard disconnect deletes the assistants.