Syncing and changes
Understand imports, configuration ownership, failed syncs, renames, and disconnecting.
A successful sync replaces the complete configuration managed by GitHub for every assistant in the repository. Neuroline validates and imports the whole repository together. An invalid configuration leaves the previous successful configuration running.
When updates apply
Pushes to the repository's default branch trigger a sync. A sync reads all files from one current default-branch commit, so a configuration never mixes files from different commits. Feature-branch pushes and unmerged pull requests do not update assistants.
If several organizations connect the same repository, each syncs independently.
A failed sync in one organization does not block the others. For shared
configuration, omit explicit integration bindingId values so each assistant
uses its own integration connection.
The dashboard shows sync status, the last successful commit, and any error. Sync now requests an immediate sync. Connected repositories are also checked every 15 minutes to recover missed webhook deliveries. Overlapping requests are combined, and an already imported commit is skipped.
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.
Configuration ownership
| Managed in GitHub | Managed or retained in the dashboard |
|---|---|
| Assistant name, spoken name, type at creation, languages, timezone, and silence timeouts | Assistant identity and phone assignments |
| Base, default, and step prompts | Human transfer settings and SMS sender settings |
| Opening messages and FAQ | Integration connections and credentials |
| Functions, workflows, and steps | Call history |
GitHub-managed fields are read-only in the dashboard while the repository is
connected. Each import replaces those fields completely: removing an optional
functions.yaml, workflows/, or FAQ entry removes it from the next imported
configuration. Integration connections themselves remain in place.
Rename or remove an assistant
The root directory name identifies an assistant across imports.
| Change | Result |
|---|---|
Edit name in the same directory | Update the display name and keep the assistant's identity. |
| Add a new assistant directory | Create a new assistant. Assign phone numbers and connect integrations for it in the dashboard. |
| Rename an assistant directory | Create a new assistant and mark the previous one as removed from the repository. Phone assignments stay with the previous assistant. |
Delete the directory or its config.yaml | Keep the last configuration and mark the assistant as removed. Assigned phone numbers continue to work. |
| Restore the same directory while still connected | Update the retained assistant and clear its removed status. |
Change an existing assistant's type | Reject the import. Use a new directory for a different inbound/outbound type. |
Renaming workflow or step directories requires updating their references in the same commit. Use workflow directory keys and step directory keys, including numeric prefixes.
Fix a failed sync
Open the repository connection in the dashboard and read the error. Correct the configuration on the default branch and select Sync now, or let the next push trigger a retry.
| Error or symptom | Check |
|---|---|
| Required file is missing | Each assistant needs config.yaml, base.md, and default.md; each step needs functions.yaml and prompt.md. |
| Invalid YAML or unknown settings | Use the documented field names and YAML types. Function files must be arrays, with [] for no functions. |
| Missing workflow or invalid transition | Match exact directory names and keep references within their assistant or workflow. |
| Duplicate function name | Check the step's functions together with assistant-level functions. |
| Integration connection unavailable | Connect the provider to this assistant, check its status, and confirm the action and argument structure. |
| Verification or App access error | Follow Authentication. |
| Commit has not changed in the dashboard | Confirm the change is on the default branch, request a sync, and inspect any error. |
To restore an earlier configuration, revert the relevant Git changes and push that revert as a new default-branch commit. A revert restores configuration; it does not undo bookings, SMS messages, or other actions already performed.
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.
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.
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, languages, FAQ localizations, 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.