Working together

Announcements, messages, the timeline, files, the calendar, goals, surveys and reminders.

Everything under Human Resources in the menu that is not attendance or leave (those are on Attendance and leave). They are separate screens because they answer separate questions, and it is worth knowing which is which before you pick one.

When you want to…Use
Tell everybody something, onceAnnouncements
Talk to one person or a fewMessages
Say something the team can reply toTimeline
Keep a document where people can find itFiles
Put something in the diaryCalendar
Set a target and watch itGoals
Ask a lot of people the same questionsSurveys
Be nudged about one record, laterReminders

Each has its own module in Roles and permissions, so a role can be given the timeline but not the files, say. Messages is the exception: it has nothing to grant for reading (see below).

Announcements

Announcements: each notice with its importance, audience, author, and whether it is scheduled or finished. Announcements: each notice with its importance, audience, author, and whether it is scheduled or finished.

Human Resources → Announcements. A notice to everybody, one team, or one role. Each shows its importance (Notice, Warning or Urgent), Shown on every page if it is a banner, Scheduled if it has not started yet and Finished once it has stopped, then who it is for and who wrote it.

Everybody sees the notices addressed to them that are showing now. Somebody who can write announcements sees the whole board, including those aimed at other teams and those not started yet.

Writing one

Edit announcement. Saving shows it again to everyone who had closed it. Edit announcement. Saving shows it again to everyone who had closed it.

Press Write an announcement (it needs the Create ability):

Press Post it. The button on a notice opens the same form (Save changes, needs Edit); the button removes it after you confirm (needs Delete).

An announcement shown above every page, with the cross that closes it. An announcement shown above every page, with the cross that closes it.

With Show it above every page on, the notice rides above the interface for everybody it is addressed to, from its start to its end. With Let people close it on, it has a cross; closing it hides it for that person only. Leave the banner off and the notice only appears on the announcements screen.

Use the banner sparingly. Not everything worth telling people is worth interrupting them for, and a banner that is always there stops being read. Editing an announcement shows it again to everyone who had closed it, so a correction reaches the people who read the wrong version.

These are a workspace's own notices. If you are running this as a SaaS, the ones you write in the tenant admin area (see Announcements) are a different thing entirely and appear in the same strip, urgent first. At most four are shown at once.

Messages

Messages: your conversations, the colleagues you can start one with, and the open thread. Messages: your conversations, the colleagues you can start one with, and the open thread.

Human Resources → Messages, or the speech-bubble icon in the top bar, which carries a count of conversations with something new in them. Two tabs: Staff, private conversations between colleagues, and Customer messages, threads customers started from the portal.

Talking to colleagues

New group conversation. New group conversation.
An administrator is not in your conversations. Being in a conversation is the whole of the access rule — there is no permission that grants a way into somebody else's. That is deliberate: a private channel that an administrator can read is not a private channel, and people work out which it is quickly.

What the Messages module in a role decides is who somebody may start a conversation with: anybody on the staff, only the people who share a team with them, or nobody. Without its Create ability they can only reply, and the page tells them so. Answering in a conversation you are already in is never refused.

New messages arrive by the page asking every eight seconds rather than over a websocket. A websocket needs a service you would have to sign up for; this works on the shared hosting this product is built to run on, with nothing to configure.

Customer messages

Customer messages: a thread a customer started from the portal, marked as one the customer can read. Customer messages: a thread a customer started from the portal, marked as one the customer can read.

The Customer messages tab lists threads, under From the customer portal, that you are in. Each is marked Customer can read this and names the customer. Reply in Write to the customer (up to 10,000 characters), attach up to ten files under the workspace's upload rules if you need to, and press Send. As with staff messages, nobody can read a customer's thread with somebody else. Who customers may write to, and whether they can at all, is set under Settings → Customer portal; see Talking to customers.

Timeline

The timeline: a post box, a pinned post, reactions and replies. The timeline: a post box, a pinned post, reactions and replies.

Human Resources → Timeline. A feed for the whole team, pinned posts first. Nothing here ever reaches the customer portal.

You can always remove your own post or reply. Removing somebody else's needs the Delete ability on the timeline module, which is the moderating grant and is not given out by default. With the Their teams scope, somebody sees only the posts written by people who share a team with them, and their own.

Files

Files: folders first, then the files in this folder, with New folder, Add from and Upload. Files: folders first, then the files in this folder, with New folder, Add from and Upload.

Human Resources → Files. A shared set of folders, up to eight deep, starting from a home folder called Files. Click a folder to open it and Up one level (or the trail at the top) to go back. Each row shows the Size (or, for a folder, how many files it holds), who added it and when. Click a file's name to download it.

Folders

New folder: a name, and whether it belongs to a customer. New folder: a name, and whether it belongs to a customer.
A folder inside a customer's folder belongs to that customer too. Whatever the form said. Otherwise a sub-folder could quietly be more visible than the drawer it sits in.

A folder has to be emptied before it can be removed (Empty the folder before removing it.). The database would happily take the whole subtree and every file in it; making you empty it first means a mis-click costs a click rather than a quarter's paperwork. The home folder cannot be renamed or removed at all, so an upload always has somewhere to land.

Uploading, and sharing with a customer

Uploading into a customer's folder, with the switch that lets the customer see the files. Uploading into a customer's folder, with the switch that lets the customer see the files.

Upload puts up to ten files at a time into the folder you are in, each within the size and types allowed under Settings → Uploads (the window says what those are). Press Upload.

A customer's folder: one file shared with the customer, one kept internal. A customer's folder: one file shared with the customer, one kept internal.

A folder that belongs to a customer says so at the top, and only there can individual files be shared with that customer through their portal. The upload window then has a Let customer see these switch, off by default. Afterwards, the button on a file lets the customer see it, or hides it again, after you confirm; a shared file carries a Shared badge. Files in any other folder are internal and have no such button.

Adding from Google Drive or Dropbox

Add from Google Drive: open a folder, tick files, and they are copied in. Add from Google Drive: open a folder, tick files, and they are copied in.

When Google Drive or Dropbox is connected under Settings → Integrations (see Integrations), an Add from menu appears beside Upload. Pick the service, click through its folders, tick up to ten files and press Add selected. Each file is copied into the folder you are in — it is a copy, not a link — up to 20 MB each and under the same upload rules as a file from your computer. Google Docs, Sheets and Slides arrive as PDF. In a customer's folder the same Let customer see these switch is offered. If one file cannot be copied the rest still are, and you are told which failed.

The button on a file removes it permanently, after you confirm. Creating folders and uploading need Create on files; renaming and sharing need Edit; removing needs Delete.

Calendar

The calendar: a month of your events, tasks due, invoices due and leave, with each source ticked on or off. The calendar: a month of your events, tasks due, invoices due and leave, with each source ticked on or off.

Human Resources → Calendar. A month at a time, in whole weeks starting on the first day of the week set under Settings → Localization, with the non-working days greyed. The arrows move a month back or forward and Today comes back to this month. It shows your own events plus anything else with a date on it: tasks that are due, invoices that are due, contracts ending and approved leave. Untick Events, Tasks, Invoices, Contracts or Leave at the top to quieten it down. When Google Calendar is connected under Settings → Integrations there is a Google source too.

Only the events are records of their own. The rest are read off the records that already hold those dates, so a task you move moves on the calendar too — there is no second copy to go out of step. Each source is also filtered by your own permissions: the calendar is a second window onto records you can already see, never a way round the scope on them. A day with more than three entries shows +2 more and so on.

Adding an event

New event. New event.

Press New event, or the + in a day's corner to start on that day (it needs the Create ability on the calendar):

Press Add event. Any custom fields you have added for events appear on the form too.

Opening, changing and answering an event

An event you are invited to, opened under the calendar, with Accept and Decline. An event you are invited to, opened under the calendar, with Accept and Decline.

Click an event to open it under the calendar: when it is, its notes, what it is about, and Who is coming — green for accepted, grey for declined, amber for not answered yet. If you are invited, Accept and Decline record your answer after you confirm.

Edit event: only the person who created the event can change it. Edit event: only the person who created the event can change it.

On your own event, opens Edit event (press Save changes) and removes it after you confirm.

Nobody edits somebody else's event, including an administrator. And an event set to Only me is not visible to anybody else at all. A diary that a permission can open is a diary people stop putting anything personal in, and then stop using.

Re-saving an event keeps the answers people have already given — somebody who accepted last week is still accepted after you move the time. Taking somebody off the invitation list removes them from it.

Goals

Goals: each one's progress, counted from the records, with its window and how many days are left. Goals: each one's progress, counted from the records, with its window and how many days are left.

Human Resources → Goals. Each goal shows its state (Running, Achieved, Missed or Not started), what is counted and whose goal it is, the figure so far against the target, a progress bar, its dates and how many days are left. Filter by state and press Filter. Somebody who can set goals sees every goal; everybody else sees the ones they have a stake in — their own, their team's and the company's.

Setting a goal

Edit goal: what is counted, the target, the window, and whose goal it is. Edit goal: what is counted, the target, the window, and whose goal it is.

Press Set a goal (it needs the Create ability):

Press Set it. The button on a goal opens the same form (Save changes, needs Edit) and removes it after you confirm (needs Delete).

Progress is counted from the records themselves every time the page is opened, never from a stored running total. Eleven kinds of record feed those numbers, and a cached figure would only need one of them to forget to update it for every goal to be quietly wrong with nothing to show for it.

Some kinds are always the company's. Payments collected and tasks completed cannot be given to one person. A payment belongs to the business rather than to whoever keyed it in, so crediting it to somebody would produce a personal target they could never move. The form says so and saves those as the company's.

Money collected has refunds inside the window taken off it, so a target cannot be hit by taking a deposit and handing it straight back. A running goal is marked achieved the moment its target is met: when it is saved, whenever the Goals page is opened, and every hour by the scheduler (zenta:goals:stamp, see The scheduler). From then on it stays achieved even if a refund or a cancelled invoice later brings the figure down, because it happened.

Surveys

Surveys: each one's audience, status, questions and responses, with the link, results, edit and remove buttons. Surveys: each one's audience, status, questions and responses, with the link, results, edit and remove buttons.

Human Resources → Surveys. Each survey shows who is being asked, its status, how many questions and responses it has, and an Anonymous badge if answers are anonymous. The buttons on a row copy the survey's link, open its results, open it for editing, and remove it. Removing asks first, and says how many responses go with it.

Creating a survey

New survey: the settings. Questions are added on the next screen. New survey: the settings. Questions are added on the next screen.

Press New survey (it needs the Create ability):

SettingWhat it does
TitleRequired.
IntroductionShown above the questions.
StatusDraft, Open or Closed. A survey with no questions cannot be opened.
Who is being askedStaff, Customers or Anyone with the link. It decides who may answer: a staff survey only somebody signed in as staff of this workspace, a customer survey only a contact signed in to the client portal. Anybody else who opens the link is told who it is for (This survey is for our staff. Sign in to answer it., or … for our customers. Sign in to the client portal to answer it.) with a Sign in link, and an answer sent anyway is refused.
Opens / ClosesIt starts and stops taking answers on its own, with nobody having to remember. Leave Opens blank to open as soon as the status says so.
Answers are anonymousNobody is recorded against a response, even when the product knows who answered.
Thank you messageShown after somebody answers.

Press Create it. You are taken to the survey's own page to add the questions.

Anonymous means it cannot stop a second answer. There is nothing to compare against. That is the trade you are making when you tick it, and it is worth making deliberately rather than discovering later.

The survey's page: settings, link and questions

A survey's page: its settings and link on the left, its questions on the right. A survey's page: its settings and link on the left, its questions on the right.

The same settings on the left, saved with Save. Under them, The link, with a button to copy it. While the survey is open, anybody with the link can answer a survey for Anyone with the link without signing in; a survey for staff or for customers asks them to sign in first. The token in that link is long and random rather than the survey's number, so one link never leads to the survey next door, and a survey still in draft cannot be read through a leaked link at all. A member of staff who is signed in and answers a survey that is not anonymous is recorded by name, and can only answer once.

Adding or editing a question: the wording, the kind of answer, and whether it is required. Adding or editing a question: the wording, the kind of answer, and whether it is required.

On the right, the Questions, in the order they are asked. To change the order, drag a question by its handle or use the Move up and Move down arrows beside it; the new order is saved as it moves (this needs the Edit ability). Press Add a question:

Press Save question. The button on a question opens it as Edit question; removes it after you confirm, together with any answers already given to it. Changing questions needs the Edit ability.

Results

Results: a tally per question, an average for ratings, written answers, and every response. Results: a tally per question, an average for ratings, written answers, and every response.

Results (on the survey's page or the list) shows a tally per question and an average for ratings, the twenty most recent written answers, and every response with who gave it (or Anonymous), when, and how many questions they answered. The tally counts the stored answer text rather than an option key, so renaming an option afterwards does not silently reassign answers people already gave — the old wording shows as its own line, which is the truth.

Export CSV downloads every response, one row per response: when it was submitted, who gave it (or Anonymous), and one column per question. It opens cleanly in Excel, accented characters included.

Reminders

Open any customer, lead, invoice, estimate, proposal, contract, project, task or ticket and press Remind me. Pick a date, write a line, and optionally send it to a colleague instead of yourself.

Due reminders are counted on the alarm-clock icon in the top bar, which opens the Reminders page, where each can be cleared or put off by an hour, four hours, tomorrow, three days or a week. An email is only sent if you asked for one — a reminder is going to be in front of you anyway, and an unasked-for email is how people learn to ignore the next one. See Reminders for the whole of it.

These are not the reminder settings. Settings → Reminders holds rules you turn on once, which then fire for every invoice or every task that matches. This is one person, one record, one date — the note somebody would otherwise write on a sticky and lose.

Only the person being reminded can clear, put off or remove one — including whoever set it for them. A reminder in your list that a colleague can silently delete is worse than no reminder.

Formatting and voice notes in comments

Settings, Comments: rich text and voice notes, both off by default. Settings, Comments: rich text and voice notes, both off by default.

Settings → Comments has two switches, both off by default. Press Save after changing them (it needs the Edit ability on settings).

When the record button does not appear. Browsers only allow the microphone on pages served over HTTPS, and the button is hidden in a browser that cannot record. Recordings are checked by the rules under Settings → Uploads, so at least one of webm, ogg or m4a must stay on the allowed list — the Comments page warns you if none is.

The customer portal now also lets customers attach files when they open a ticket or reply, under the same upload rules. Files a member of staff keeps back from the customer are not shown to them.

Addresses on this page

For reference and for anyone scripting against the panel. Everything here needs somebody signed in to the workspace whose role allows it; anybody else is refused.

MethodAddressWhat it does
GET/admin/announcementsThe announcements screen.
GET/admin/announcements/createThe Write an announcement form, in a pop-up.
POST/admin/announcementsPosts an announcement.
GET/admin/announcements/{announcement}/editThe Edit announcement form, in a pop-up.
PUT/admin/announcements/{announcement}Saves changes, and shows it again to everyone who had closed it.
DELETE/admin/announcements/{announcement}Removes an announcement.
POST/admin/announcements/{announcement}/dismissCloses a banner for the person who pressed its cross. Used by the page itself.
GET/admin/messagesStaff messages. ?c= opens a conversation.
POST/admin/messages/direct/{user}Opens, or starts, your conversation with one colleague.
POST/admin/messages/groupStarts a group conversation.
POST/admin/messages/{conversation}Sends a message.
GET/admin/messages/{conversation}/pollNew messages since the last one the page has. Used by the page itself, every eight seconds.
DELETE/admin/messages/{conversation}/leaveLeaves a group conversation.
GET/admin/messages/customersThe Customer messages tab. ?c= opens a thread.
POST/admin/messages/customers/{conversation}Replies to a customer, with attachments if any.
GET/admin/timelineThe timeline.
POST/admin/timelinePosts to the timeline.
DELETE/admin/timeline/{post}Removes a post and its replies.
PATCH/admin/timeline/{post}/pinPins or unpins a post.
POST/admin/timeline/{post}/reactAdds or takes back your reaction.
POST/admin/timeline/{post}/commentsReplies to a post.
DELETE/admin/timeline/{post}/comments/{comment}Removes a reply.
GET/admin/filesFiles. ?folder= opens a folder.
POST/admin/files/foldersCreates a folder.
PUT/admin/files/folders/{folder}Renames a folder.
DELETE/admin/files/folders/{folder}Removes an empty folder.
POST/admin/files/folders/{folder}/uploadUploads files into a folder.
GET/admin/files/folders/{folder}/cloud/{provider}The Add from window for Google Drive (google_drive) or Dropbox (dropbox), in a pop-up.
POST/admin/files/folders/{folder}/cloud/{provider}Copies the ticked files in from Google Drive or Dropbox.
GET/admin/files/folders/{folder}/{file}Downloads a file.
PATCH/admin/files/folders/{folder}/{file}/visibilityShares a file in a customer's folder with the customer, or hides it again.
DELETE/admin/files/folders/{folder}/{file}Removes a file.
GET/admin/calendarThe calendar. ?month=YYYY-MM, ?sources[]= and ?event= (open one event).
GET/admin/calendar/createThe New event form, in a pop-up. ?on=YYYY-MM-DD starts it on that day.
POST/admin/calendarAdds an event.
GET/admin/calendar/{event}/editThe Edit event form, in a pop-up.
PUT/admin/calendar/{event}Saves changes to your event.
PATCH/admin/calendar/{event}/respondAccepts or declines an invitation.
DELETE/admin/calendar/{event}Removes your event.
GET/admin/goalsGoals. ?state= filters them.
GET/admin/goals/createThe Set a goal form, in a pop-up.
POST/admin/goalsSets a goal.
GET/admin/goals/{goal}/editThe Edit goal form, in a pop-up.
PUT/admin/goals/{goal}Saves changes to a goal.
DELETE/admin/goals/{goal}Removes a goal.
GET/admin/surveysThe surveys list.
GET/admin/surveys/createThe New survey form, in a pop-up.
POST/admin/surveysCreates a survey.
GET/admin/surveys/{survey}/editA survey's page: settings, link and questions.
PUT/admin/surveys/{survey}Saves a survey's settings.
DELETE/admin/surveys/{survey}Removes a survey and its responses.
POST/admin/surveys/{survey}/questionsAdds a question.
PUT/admin/surveys/{survey}/questions/{question}Saves changes to a question.
DELETE/admin/surveys/{survey}/questions/{question}Removes a question and its answers.
POST/admin/surveys/{survey}/questions/reorderSaves a new order for the questions (order[], question ids in order). Used by the page itself as a question is dragged or moved.
GET/admin/surveys/{survey}/resultsA survey's results.
GET/admin/surveys/{survey}/exportDownloads every response as a CSV.
GET/admin/settings/commentsSettings → Comments.
PUT/admin/settings/commentsSaves the two Comments switches.