User Guide for Workdone System

Workdone là nền tảng liên lạc và điều phối công việc an toàn, bảo mật giữa các công cụ và nhóm. Nhiệm vụ của Workdone là làm cho công việc của doanh nghiệp hoạt động một cách suôn sẻ,

1. Logging into the System

Access Points

  • Web App: Use your browser to access the system.

  • Desktop App: Install the desktop version for Windows/Mac.

  • Mobile App: Available on Android and iOS.

Steps to Log In

  1. Visit your organization’s domain registered with Workdone. Example: https://mycompany.workdone.vn

  2. Enter your username or email in the first field.

  3. Enter your password in the second field.

  4. Click the Login button.


2. Channels, Messages, and Conversations

Overview of Channels

Channels are used to facilitate conversations on various topics. You can find available channels in the left navigation bar. Workdone supports four main types of channels:

  1. Public Channels: Open for everyone in the organization.

  2. Private Channels: Restricted to selected members.

  3. Group Messages: Direct messages among a group of selected users.

  4. Direct Messages (DMs): One-on-one conversations.

Basic Actions

  • Send Messages: Compose and send messages within channels.

  • Reply to Messages: Continue conversations by replying directly.

  • Participate in Threads: Organize discussions for better clarity.


3. Working with Channels

3.1 Types of Channels

  • Public Channels: Ideal for open discussions, general topics, or organizational announcements.

  • Private Channels: Best for confidential projects or team-specific discussions.

3.2 Naming Conventions

  • Use clear and specific names for channels (e.g., #marketing-team, #project-xyz).

  • Avoid long or vague names.

3.3 Creating Channels

  1. Go to the Channel Management section.

  2. Click Create New Channel.

  3. Enter the channel name, select the type (Public/Private), and provide a brief description.

  4. Add initial members to the channel (optional).

3.4 Renaming Channels

  1. Navigate to the channel settings.

  2. Select Rename Channel.

  3. Enter the new name and save.

3.5 Changing Channel Type

  • Convert a Public Channel to Private or vice versa in the channel settings.

3.6 Joining/Leaving Channels

  • Join a Channel:

    • Search for a channel in the Find Channels section.

    • Click Join.

  • Leave a Channel:

    • Go to the channel, click the Leave Channel button.

3.7 Managing Members

  • Add Members:

    • Go to channel settings, select Add Members, and invite users.

  • Remove Members:

    • In the members list, select the user and click Remove.

3.8 Finding Channels

  • Use the search bar to find:

    • Public channels in your organization.

    • Channels where you are a member.

3.9 Favorite Channels

  • Mark frequently accessed channels as Favorite:

    • Click the star icon next to the channel name.


4. Navigating the System (Based on Sidebar Features)

Feature

Description

Actions

Dashboard

Displays announcements, activity logs, and important updates.

View notifications and summaries.

Customers

Manage customer profiles, contact details, and transaction history.

Add, edit, or search customer information.

Sales

Monitor and analyze sales data for individuals or teams.

View revenue reports and sales trends.

Subscriptions

Track the service packages subscribed by customers.

View, renew, or cancel subscriptions.

Expenses

Manage organizational expenses and budgets.

Add or edit expense records.

Contracts

Store and manage contracts with clients or vendors.

View, add, or update contract details.

Projects

Track project progress, deadlines, and team members.

Create new projects, assign tasks, and view status updates.

Tasks

Manage task lists and monitor completion status.

Assign, update, and mark tasks as completed.

Support

Handle user issues or requests through an integrated ticketing system.

Log new tickets, respond to queries, and resolve problems.

Reports

View detailed reports on business performance and financial data.

Generate custom reports based on sales, expenses, or tasks.

Knowledge

Create and share organizational knowledge such as guides, FAQs, or training materials.

Add, edit, or categorize knowledge articles.

Utilities

Access additional tools to improve productivity.

Enable or disable utilities.

Settings

Customize account settings and system configurations.

Change password, update profile information, and configure system-wide settings.


5. Sample Code for Implementing Channels and Messaging API

Here’s an example API in Python for managing channels and sending messages using Flask.

API Features

  • Create a new channel.

  • List available channels.

  • Send messages within channels.

  • View messages from a specific channel.

Code Implementation

from flask import Flask, request, jsonify

app = Flask(__name__)

# Mock data for channels and messages
channels = [{"id": 1, "name": "general", "type": "public", "messages": []}]
next_channel_id = 2

# API: Get all channels
@app.route('/channels', methods=['GET'])
def get_channels():
    return jsonify(channels)

# API: Create a new channel
@app.route('/channels', methods=['POST'])
def create_channel():
    global next_channel_id
    data = request.get_json()
    new_channel = {
        "id": next_channel_id,
        "name": data['name'],
        "type": data['type'],  # public or private
        "messages": []
    }
    channels.append(new_channel)
    next_channel_id += 1
    return jsonify({"message": "Channel created successfully", "channel": new_channel}), 201

# API: Post a message to a channel
@app.route('/channels/<int:channel_id>/messages', methods=['POST'])
def post_message(channel_id):
    channel = next((ch for ch in channels if ch['id'] == channel_id), None)
    if not channel:
        return jsonify({"error": "Channel not found"}), 404
    data = request.get_json()
    message = {"user": data['user'], "content": data['content']}
    channel['messages'].append(message)
    return jsonify({"message": "Message sent successfully", "channel": channel})

# API: Get messages from a channel
@app.route('/channels/<int:channel_id>/messages', methods=['GET'])
def get_messages(channel_id):
    channel = next((ch for ch in channels if ch['id'] == channel_id), None)
    if not channel:
        return jsonify({"error": "Channel not found"}), 404
    return jsonify(channel['messages'])

if __name__ == '__main__':
    app.run(debug=True)

How to Use the API

  1. Get All Channels

    • Method: GET

    • URL: /channels

  2. Create a New Channel

    • Method: POST

    • URL: /channels

{
  "name": "project-team",
  "type": "private"
}
  1. Post a Message to a Channel

  • Method: POST

  • URL: /channels/<channel_id>/messages

  • Payload

{
  "user": "John Doe",
  "content": "Hello, team!"
}
  1. Get Messages from a Channel

  • Method: GET

  • URL: /channels/<channel_id>/messages

Last updated