Skip to content

Commit bb180c7

Browse files
authored
Project level Slack updates, WOrkspace and project member activity, CSV member import (#390)
1 parent f588a74 commit bb180c7

File tree

5 files changed

+152
-19
lines changed

5 files changed

+152
-19
lines changed

docs/ai/plane-ai-credits.mdx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,13 @@ import Tags from "@site/src/components/Tags";
1010

1111
Plane AI uses credits as a universal measure of AI processing. This system ensures fair usage while giving teams predictable costs and transparent billing.
1212

13+
14+
:::caution[IMPORTANT]
15+
AI credits apply only to Plane Cloud.
16+
17+
On self-hosted instances, you use your own AI provider [API key](https://developers.plane.so/self-hosting/govern/instance-admin#artificial-intelligence), and all AI usage and costs are managed directly through your provider. Plane does not track, pool, or enforce usage through credits.
18+
:::
19+
1320
## Why credits instead of limits?
1421

1522
Traditional AI tools often impose hard limits, like "10 queries per day" or "50 messages per month." These limits create frustration because not all AI tasks are equal. A quick status check shouldn't cost the same as generating a full project plan.

docs/core-concepts/projects/manage-project-members.mdx

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ sidebar_label: Manage members
44
description: Add members to projects, assign roles, and configure access
55
---
66

7+
import Tags from "@site/src/components/Tags";
8+
79
# Manage project members
810

911
Manage who has access to your project and what they can do by adding members and assigning roles.
@@ -124,3 +126,41 @@ Users can become project members in two different ways, and understanding both h
124126

125127
Users can have both types of access simultaneously. When this happens, Plane automatically applies whichever role gives them higher permissions. For example, if someone is a `Guest` on your project but joins a linked teamspace, they're automatically upgraded to `Member` access. If they're already an `Admin`, they keep their `Admin` role.
126128

129+
130+
<div className="tag-wrapper">
131+
## View project member activity
132+
<Tags tags={[{ name: "Enterprise", link: "https://plane.so/pricing", additionalClass: "enterprise" }]} />
133+
</div>
134+
135+
:::info
136+
The Enterprise plan is currently only available for self-hosted instances. If you're interested in Enterprise features for your self-hosted deployment, contact [sales@plane.so](mailto:sales@plane.so) for pricing and licensing information.
137+
:::
138+
139+
Track member actions like additions, role changes, and removals to maintain visibility over project access management.
140+
141+
**To view member activity:**
142+
143+
1. Navigate to **Project Settings → Members & Teamspaces**.
144+
2. Click **Activity** in the top right corner of the Members section.
145+
146+
The activity panel shows recent project member events:
147+
- **Member additions** - Who added which members to the project and when.
148+
- **Role changes** - Role updates with who made the change and when.
149+
- **Member removals** - Who removed members from the project.
150+
151+
Each activity entry shows:
152+
- The action taken
153+
- Who performed the action
154+
- When it happened (relative time like "6 days ago" or "3 days ago")
155+
156+
This audit trail helps project admins monitor membership changes and verify that access permissions are correct. Activity is retained for project history.
157+
158+
## How users join projects
159+
160+
Users can become project members in two different ways, and understanding both helps you manage your project team effectively.
161+
162+
**Direct project membership** is where you specifically invite users to your project and assign them roles. These members have access only to the projects you've added them to, and you have full control over their permissions.
163+
164+
**Teamspace-based membership** happens automatically when your project is linked to a [Teamspace](/core-concepts/workspaces/teamspaces). All members of that teamspace automatically receive `Member` access to your project, making it perfect for teams that collaborate across multiple projects.
165+
166+
Users can have both types of access simultaneously. When this happens, Plane automatically applies whichever role gives them higher permissions. For example, if someone is a `Guest` on your project but joins a linked teamspace, they're automatically upgraded to `Member` access. If they're already an `Admin`, they keep their `Admin` role.

docs/core-concepts/workspaces/members.mdx

Lines changed: 74 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,18 @@ title: Manage workspace members
33
sidebar_label: Manage members
44
description: Add, update, and remove workspace members
55
---
6+
import Tags from "@site/src/components/Tags";
67

78
# Manage members
89

910
Keeping your workspace organized and secure is essential for smooth project management. Plane makes it easy to control who can access your workspace, what they can do, and how they collaborate with others.
1011

1112
This guide shows you how to add members to your workspace, change their roles, and remove them when needed.
1213

13-
## Invite a member to your workspace
14+
## Invite members to your workspace
15+
16+
You can add members individually or in bulk using CSV import.
17+
1418
![Invite user](https://media.docs.plane.so/workspaces/add-user.webp#hero)
1519

1620
1. Navigate to **Workspace settings > Members**.
@@ -27,6 +31,48 @@ The invited person receives an email notification with instructions to join your
2731
- The invitation remains pending until accepted or declined.
2832
- You can manually remove pending invitations using the Remove option (see below).
2933

34+
<div className="tag-wrapper">
35+
## Import members from CSV
36+
<Tags tags={[{ name: "Pro", link: "https://plane.so/pricing", additionalClass: "pro" }]} />
37+
</div>
38+
39+
Workspace admins can bulk invite members by importing a CSV file. This is useful when onboarding teams or migrating users from another system.
40+
41+
![Import members from CSV](https://media.docs.plane.so/workspaces/import-members.webp#hero)
42+
43+
**To import members:**
44+
1. Navigate to **Workspace settings → Members**.
45+
2. Click **Import**.
46+
3. Upload your CSV file (drag and drop or click to browse).
47+
4. Select **Import** to bulk invite the members.
48+
49+
Imported users are added directly to the workspace. When they sign in using the imported email, they're automatically redirected to the workspace without going through onboarding.
50+
51+
**CSV format requirements**
52+
53+
Your CSV must contain these columns in this exact order:
54+
```
55+
Email, Display Name, First Name, Last Name, Role
56+
```
57+
58+
**Example CSV:**
59+
```
60+
Email,Display Name,First Name,Last Name,Role
61+
alex@company.com,Alex Chen,Alex,Chen,15
62+
sarah@company.com,Sarah Kim,Sarah,Kim,20
63+
mike@company.com,Mike Rodriguez,Mike,Rodriguez,5
64+
```
65+
66+
**Role values:**
67+
- `5` – Guest
68+
- `15` – Member
69+
- `20` – Admin
70+
71+
**Important notes**
72+
- Only `.csv` files are supported.
73+
- Valid users appear immediately in the Members list after import.
74+
- Invalid entries are skipped (check your CSV for errors if some users don't appear).
75+
3076
:::caution[Self-hosted Plane instance]
3177
Ensure your SMTP server is properly configured to send invite emails successfully. See [Configure SMTP for email](https://developers.plane.so/self-hosting/govern/communication) for more information.
3278
:::
@@ -42,6 +88,32 @@ Ensure your SMTP server is properly configured to send invite emails successfull
4288

4389
The role change takes effect immediately.
4490

91+
<div className="tag-wrapper">
92+
## View workspace member activity
93+
<Tags tags={[{ name: "Business", link: "https://plane.so/pricing", additionalClass: "business" }]} />
94+
</div>
95+
96+
Track member actions like invitations, role changes, and removals to maintain visibility over workspace management.
97+
98+
![Workspace member activity](https://media.docs.plane.so/workspaces/workspace-member-activity.webp#hero-bl)
99+
100+
**To view member activity:**
101+
102+
1. Navigate to **Workspace settings → Members**.
103+
2. Click **Activity** in the top right.
104+
105+
The activity panel shows recent workspace member events:
106+
- **Member invitations** - Who invited which members and when
107+
- **Invitation acceptances** - When members accepted and joined the workspace
108+
- **Role changes** - Role updates with who made the change and when
109+
- **Member removals** - Who removed members from the workspace
110+
111+
Each activity entry shows:
112+
- The action taken
113+
- Who performed the action
114+
- When it happened (relative time like "about 1 month ago" or "5 days ago")
115+
116+
This audit trail helps workspace admins monitor membership changes and troubleshoot access issues. Activity is retained for workspace history and can be filtered by clicking on specific activity types.
45117

46118
## Remove a member from your workspace
47119

@@ -56,4 +128,4 @@ The member loses access to the workspace and all its projects immediately.
56128

57129
:::warning
58130
Removing members doesn't change your seat count or billing. You must [remove seats](/workspaces-and-users/add-remove-seats#remove-unused-seats) separately.
59-
:::
131+
:::

docs/integrations/slack.mdx

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -153,20 +153,29 @@ Once you add Plane to your private channel, you can use all the same features yo
153153

154154
### Connect project to Slack channel
155155

156-
Stay on top of project updates without switching tabs. You can now link each Plane project to a default Slack channel to receive notifications whenever new work items are created.
156+
Stay on top of project updates by linking Plane projects to Slack channels. You can configure which events trigger notifications, so your team only sees updates that matter.
157157

158158
![Connect project to Slack channel](https://media.docs.plane.so/integrations/slack/project-notifications.webp#hero)
159159

160160
To configure this:
161161

162162
1. Go to your [Workspace Settings](/core-concepts/workspaces/overview#access-workspace-settings) in Plane.
163-
2. Navigate to **Integrations > Slack**.
163+
2. Navigate to **Integrations > Slack** in Plane.
164164
3. Click **Configure** on the Slack integration.
165165
4. Under **Project Notifications**, click the **** button.
166166
5. Select a Plane Project and the corresponding Slack Channel you’d like to connect.
167-
6. Click Save.
167+
6. Under **Notify when**, choose which events trigger Slack notifications:
168+
- **When a work item is created** - Posts a notification whenever someone creates a new work item in this project.
169+
- **When a work item state changes** - Notifies the channel when work items move between states (e.g., Todo → In Progress).
170+
- **When a comment is created on a work item** - Posts updates when someone comments on a work item. You can reply to these comments directly from Slack using the **Reply** button on the notification.
171+
- **When a work item is marked cancelled or done** - Notifies when work items reach completion states or the cancelled state.
168172

169-
Once set, Plane will automatically post updates to the selected Slack channel every time a new work item is created in that project keeping your team informed and your workflows connected.
173+
![Project Slack updates](https://media.docs.plane.so/integrations/slack/project-slack-updates.webp#hero)
174+
175+
7. Click **Save**.
176+
177+
**To edit or remove a project notification**.
178+
Find the project-channel mapping in the Project Notifications list. Click the edit icon to change notification settings or the delete icon to remove the connection entirely.
170179

171180
### Get DM notifications
172181

src/css/custom.css

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -424,14 +424,6 @@ html[data-theme="dark"] .navbar--discord-link:before {
424424
padding: 0 15px 0 15px;
425425
}
426426

427-
.one {
428-
color: #1a1a1a;
429-
border-radius: 4px;
430-
border: 1px solid #4c506266;
431-
background: linear-gradient(167.44deg, #a8a9ac 0%, #eeeeee 67.25%, #fcfcfc 98.9%);
432-
padding: 0 15px 0 15px;
433-
}
434-
435427
html[data-theme="dark"] .pro {
436428
color: #fff;
437429
border-radius: 4px;
@@ -445,15 +437,28 @@ html[data-theme="dark"] .pro {
445437
padding: 0 15px 0 15px;
446438
}
447439

448-
html[data-theme="dark"] .one {
440+
.enterprise {
441+
color: #1a1a1a;
442+
border-radius: 4px;
443+
border: 1px solid #7c3aed66;
444+
background: linear-gradient(
445+
167.44deg,
446+
#a78bfa 0%,
447+
#c4b5fd 67.25%,
448+
#fcfcfc 98.9%
449+
);
450+
padding: 0 15px 0 15px;
451+
}
452+
453+
html[data-theme="dark"] .enterprise {
449454
color: #fff;
450455
border-radius: 4px;
451-
border: 1px solid #4c506266;
456+
border: 1px solid #7c3aed66;
452457
background: linear-gradient(
453458
167.44deg,
454-
rgb(56, 60, 78) 0%,
455-
rgba(33, 33, 33, 0.22) 49.45%,
456-
rgba(37, 41, 59, 0.12) 98.9%
459+
rgba(124, 58, 237, 0.7) 0%,
460+
rgba(33, 33, 33, 0.4) 49.45%,
461+
rgba(196, 181, 253, 0.32) 98.9%
457462
);
458463
padding: 0 15px 0 15px;
459464
}

0 commit comments

Comments
 (0)