What is a NeboAI employee?
It is a named worker that holds one job. It arrives already wired to its tools, works from a trigger rather than waiting to be asked, remembers what it learns, and hands work to other employees when a job crosses a boundary.
Four parts, and they fail in different ways, so it helps to know which is which.
| Part | Holds | When it is wrong you see |
|---|---|---|
| Persona | The job description: priorities, judgment, what it refuses to do. | Right work, wrong voice or wrong instincts. |
| Workflows | Declared steps, with triggers and an approval gate. | Nothing happens, or happens at the wrong time. |
| Skills | Written procedures for a recurring task. | It improvises something it should do identically every time. |
| Plugins | Native binaries that touch mail, calendars, ledgers, phones. | It describes doing the thing instead of doing it. |
Durable rules go in the persona. Today's task goes in the message. "Never send outbound without approval" is permanent. "Research these 25 accounts" is not.
How do I hire my first employee?
Pick the department with the most repetitive work this week. There are nine, and the choice matters later because it drives how you find anything once you have a dozen employees.
Then find a role in the marketplace and paste its code straight into the chat box. You do not need to find a settings screen; the shape of the code is recognised.
Installing cascades, in this order:
- Required plugins install
- Skills its workflows reference install
- Extra skills install, pulling their own plugin dependencies
- Its triggers register
- Its persona loads
One code can pull in six or seven components. That is intended: the role should arrive able to do the job, not as an empty shell you have to equip.
Connections are authorised per account, not per task. Authorise a role mailbox such as support@, never your personal one, or that employee can reach your personal
mail forever.
How do I get good output instead of a wall of text?
This is where most people give up, and it is worth knowing before it happens to you. The first output of any capable employee is almost always too long. Not wrong, just unusable: every finding, every caveat, nothing prioritised.
The fix is three moves, in order, and it works every time.
Ask for the job in plain language
Do not try to write the perfect instruction. You are finding out what it does by default.
Constrain the shape, not the content
Tell it the exact form you want back and how much of it. This one move does more than any amount of rewriting the request.
Ask for a numbered list whenever you will act on the result. It turns approving into "do 3, 4 and 8" instead of describing each item again, and you will use that shortcut constantly.
Only then make it a routine
Once two runs in a row come back the way you want, save it as a workflow and attach a trigger. Automating something you have not read yet just produces the same wall of text on a schedule.
A correction you would give again next week goes in the persona. A correction specific to today goes in the message and should be forgotten. Putting task detail in the persona is the usual way a good employee slowly goes stale.
What should I settle before it acts for me?
Do this now, while you remember, not after the first surprise. Open the desktop app → the employee's settings → Approval controls. Every gated operation takes one of three settings.
| Setting | Meaning |
|---|---|
| Always allow | Does it without asking. |
| Approval | Stops and asks you. The default. |
| Blocked | Removed entirely. It cannot attempt it. |
An operation is gated when it moves money, contacts someone outside your company, or writes something you cannot take back. Reads are not gated: searching your knowledge base is open, adding to it is gated, and that asymmetry is deliberate.
Money and contract operations are marked critical, and a critical operation cannot be loosened by flipping some global convenience setting. The only way to let an employee move money unattended is to set that exact operation on that exact employee. There is no master switch that quietly opens everything.
Use blocked more than you expect. If there is no case where you would ever
approve something, remove the capability rather than leaving yourself a dialog to click
through at speed.
Where does an employee run?
Two answers, and you choose per employee rather than once for everything.
| On your machine | In the cloud | |
|---|---|---|
| Runs when | Your machine is on | Always, whether you are or not |
| Files and memory | On your disk | On the machine we run for you |
| Good for | Anything touching files or data that must not leave | Anything that has to answer at 3am |
| Set up in | The desktop app | The console, and a number are included with your plan |
This is the question people usually get stuck on, so here is the short version. A receptionist answering the phone overnight should be a cloud employee, because nobody wants to leave a laptop open to keep it alive. A bookkeeper reading files off your disk should be local, because those files should not go anywhere. Most businesses end up with some of each, and they appear together in one list rather than in two separate products.
The same employee definition runs in either place. Hire a role locally, decide later that it needs to be awake at night, and it is the same role with the same persona and the same gate, running somewhere that does not sleep.
What does not change either way: an employee only reaches what you connected it to, the approval gate applies the same, and each one has its own memory scope. There is no shared machine holding every employee's logins, so a mistake in one cannot rummage through another's credentials.
When an employee needs an account, you authorise it through the connection flow. Credentials are never pasted into a conversation, and you are never signing in to your bank on a machine you cannot see.
Where do I do what?
There are two places, and knowing which is which saves a lot of hunting. Work happens in the desktop app; anything that spans your whole account lives in the web console.
| Desktop app | Web console at neboai.com/app |
|---|---|
| Talking to an employee | Workforce — every employee at a glance |
| Hiring by pasting a code | Manage — an individual employee, memory, phone |
| Approval controls per employee | Settings → Webhooks — mint and revoke keys |
| Connecting tools and accounts | Billing and Usage |
| Watching a run happen | Team, and provisioning a cloud employee |
The short version: if it is about this employee doing this job, it is in the desktop app. If it is about your account, your fleet, your keys or your money, it is in the console.
How do I organise employees as I add more?
By department first, then by handoff. Give each employee one job and let it pass work along rather than growing one employee that does everything.
Build the chain in the direction work actually flows. Neither employee knows about the other's tools, which is the point: if one loses its mail connection, the other keeps working.
Once you are past three or four, add a coordinator and give it almost no tools of its own. A coordinator that starts doing a specialist's job becomes the bottleneck, and you have rebuilt one overloaded assistant with extra latency.
Troubleshooting
It said it finished, but nothing happened
The run narrated instead of acting. This is what declared workflows prevent: a step that must call a tool fails rather than reporting success without it. If you are seeing this, the job is still a conversation. Promote it to a workflow.
The output is enormous and I cannot use it
Expected on the first run. Constrain the shape rather than rewriting the request: name the format, cap the number of items, and ban the summary paragraph. Two rounds of that usually settles it.
It asks permission for everything
Working as designed; approval is the default for every gated operation. Set
the specific ones you want unattended to always, one at a time, after watching
each run clean.
It runs at the wrong time, or twice
Check the trigger first. A folder trigger without a debounce fires while a large file is still being written, and a schedule runs in the employee's configured timezone, so an unset timezone can be hours off.
The next employee never wakes up
Confirm the first workflow reached its final step. An empty output terminates the branch, and a terminated branch never emitted. Then check the event name matches exactly on both sides.
It sounds like a robot
Give it examples rather than adjectives. Three things you actually wrote beat a paragraph describing your tone. You can also give an employee a distinct voice separately from its job description, which is worth doing for anything a customer reads.