# GPTTeams: How I Used OpenAI to Empower Team Collaboration

**URL:** <https://community.openai.com/t/gptteams-how-i-used-openai-to-empower-team-collaboration/818666>\
**Category:** Community\
**Tags:** project\
**Created:** [June 14, 2024, 1:02am UTC](https://community.openai.com/t/gptteams-how-i-used-openai-to-empower-team-collaboration/818666 "2024-06-14T01:02:20Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![aliboukaroui](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/aliboukaroui/32/396579_2.png) [@aliboukaroui](https://community.openai.com/u/aliboukaroui)\
**Post date:** [June 14, 2024, 1:02am UTC](https://community.openai.com/t/gptteams-how-i-used-openai-to-empower-team-collaboration/818666/1 "2024-06-14T01:02:20Z")

</div>

Hello,

My team has been regular use ChatGPT, and over the past 2 years, we’ve eagerly awaited additional features to enhance our workflow.

In response to these needs, I developed [GPTTeams.ai](https://gptteams.ai/)—a platform aimed at revolutionizing team collaboration using advanced AI models like those from OpenAI 🔥.

**My primary challenge** was ensuring our AI could accurately understand diverse team communications across various topics while facilitating real-time collaboration. This involves providing instant updates and seamless communication across chats, documents, tools etc, using WebSockets technology:

```auto
    const eventName = `XXXXX_${selectedChatId}`;
    const handleMessageUpdate = (data: string) => {
      const parsedData = JSON.parse(data);
    
      setChatMessages((prevMessages) => {
        let updatedMessages = [...prevMessages];
    
        if (!parsedData.isEditing) {
          parsedData.messagesData.forEach((newMessageData: any) => {
            const messageIndex = updatedMessages.findIndex((msg) => msg.message.id === newMessageData.message.id);
            if (messageIndex > -1) {
              updatedMessages[messageIndex] = newMessageData;
            } else {
              updatedMessages.push(newMessageData);
            }
          });
        } else {
          const messageIndex = updatedMessages.findIndex((msg) => msg.message.id === parsedData.messageId);
          if (messageIndex > -1) {
            updatedMessages = updatedMessages.map((msg) =>
              msg.message.id === parsedData.messageId ? { ...msg, message: { ...msg.message, content: parsedData.editedContent } } : msg
            );
          }
        }
    
        scrollToBottom()
        setIsAtBottom(true)
        return updatedMessages;
      });
      
    };

 //Rest code.....

  return chatMessages
    .sort((a, b) => a.message.sequence_number - b.message.sequence_number)
    .map((chatMessage, index, array) => {
      const messageFileItems = chatFileItems.filter(
        (chatFileItem, _, self) =>
          chatMessage.fileItems.includes(chatFileItem.id) &&
          self.findIndex(item => item.id === chatFileItem.id) === _
      )

      return (
        <Message
          key={chatMessage.message.sequence_number}
          message={chatMessage.message}
          fileItems={messageFileItems}
          isEditing={editingMessage?.id === chatMessage.message.id}
          isLast={index === array.length - 1}
          onStartEdit={setEditingMessage}
          onCancelEdit={() => setEditingMessage(undefined)}
          onSubmitEdit={handleSendEdit}
        />
      )
      
    })

```

* * *

I spent 3 months working with OpenAI models like GPT-3.5 and GPT-4. to improved how these AI models understands and personalizes responses based on team member preferences.

```auto
              <div className="space-y-1">
                <Label className="text-sm">
                  What would you like the AI to know about you to provide better
                  responses?
                </Label>

                <TextareaAutosize
                  value={profileInstructions}
                  onValueChange={setProfileInstructions}
                  placeholder="Profile context... (optional)"
                  minRows={6}
                  maxRows={10}
                />

                <LimitDisplay
                  used={profileInstructions.length}
                  limit={PROFILE_CONTEXT_MAX}
                />
              </div>

```

**I used memory capabilities—both short-term and persistent—to keep costs low while maintaining high performance.** Also using words like “Memorize, learn etc”, it helps to capture and remember key information better, delivering accurate and relevant responses efficiently.

# Real Use Case:

Imagine a marketing professional responsible for ensuring the tone of cold emails aligns with specific criteria based on the company agenda. By entering all these preferences into a personalized profile context (you can also include a whole workspace profile context), you guide the AI to craft responses that meet these criteria and reduce costs over time as it keeps learning about the entire team.

_ **PS: Of course, you can disable this feature in few chats that don’t need such an option.** _

> **Testimonial from Arjun Zane (AI Marketing Specialist)** 🤩  
> As a marketer, I’m selective about my AI tools. I switched to GPTTeams from another platform, drawn by its chat feature’s potential to simplify complex ideas. GPTTeams exceeded my expectations in crafting concise content, providing a seamless experience.

* * *

**Although delivering accurate responses is crucial, teams also require additional features, so we also implemented:**

- Efficiently manage chats, prompts, bots, tools, and presets with organized folders.
- Define permissions across workspaces to control visibility and access rights.
- Create personalized AI bots tailored to specific data and interaction needs.

```auto
      createState={
        {
          image: selectedImage,
          user_id: profile.user_id,
          name,
          description,
          include_profile_context: assistantChatSettings.includeProfileContext,
          include_workspace_instructions:
            assistantChatSettings.includeWorkspaceInstructions,
          context_length: assistantChatSettings.contextLength,
          model: assistantChatSettings.model,
          image_path: "",
          prompt: assistantChatSettings.prompt,
          temperature: assistantChatSettings.temperature,
          embeddings_provider: assistantChatSettings.embeddingsProvider,
          files: selectedAssistantRetrievalItems.filter(item =>
            item.hasOwnProperty("type")
          ) as Tables<"files">[],
          collections: selectedAssistantRetrievalItems.filter(
            item => !item.hasOwnProperty("type")
          ) as Tables<"collections">[],
          tools: selectedAssistantToolItems
        } as TablesInsert<"assistants">
      }

```

- Quickly extract information from documents using OpenAI embedding features.
- Compile and organize information for easy team access and reference through knowledge bases.
- Create external data extraction tools through custom plugins for tailored solutions. For example integrate Dall-E 3:

```auto
{"Authorization":"Bearer API_KEY"}

```

```auto
SCHEMA
{
  "openapi": "3.1.0",
  "info": {
"title": "Dall-E 3",
    "description": "Generate Images",
    "version": "v1.0.0"
  },
  "servers": [
    {
      "url": "https://api.openai.com"
    }
  ],
  "paths": {
    "/v1/images/generations": {
      "post": {
        "description": "Generate Images",
        "operationId": "generateImage",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "model": {
                    "type": "string",
                    "description": "dall-3-e"
                  },
                  "prompt": {
                    "type": "string",
                    "description": ""
                  },
                  "size": {
                    "type": "string",
                    "description": "512x512"
                  },
                  "n": {
                    "type": "integer",
                    "description": "1"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {}
  }
}

```

Looking forward to hearing your thoughts and feedback!

* * *

**As a gesture of appreciation to this community, I’m delighted to offer the first 20 users a free one month subscription with unlimited features. Feel free to send us a DM! 🤩**

---

<div class="post-metadata">

**Author:** ![noumanjavaid](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/noumanjavaid/32/349208_2.png) [@noumanjavaid](https://community.openai.com/u/noumanjavaid)\
**Post date:** [June 14, 2024, 2:38am UTC](https://community.openai.com/t/gptteams-how-i-used-openai-to-empower-team-collaboration/818666/2 "2024-06-14T02:38:38Z")

</div>

Awesome!! Thank you! So much!

---

<div class="post-metadata">

**Author:** ![noumanjavaid](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/noumanjavaid/32/349208_2.png) [@noumanjavaid](https://community.openai.com/u/noumanjavaid)\
**Post date:** [June 14, 2024, 3:58am UTC](https://community.openai.com/t/gptteams-how-i-used-openai-to-empower-team-collaboration/818666/3 "2024-06-14T03:58:31Z")

</div>

Heyaa !!! It seems that I don’t have the required permissions to generate images. Is there something else I can help you with, perhaps describing the scene in detail or another type of assistance?

 ![image](https://us1.discourse-cdn.com/openai1/original/4X/7/0/b/70b8c1ace7c99f2d20573f17f4274b451b2ec99a.png)

 ![image](https://us1.discourse-cdn.com/openai1/original/4X/8/9/3/89339201be2ec87aa673e7d59f8f45b503bd2b7c.png)

---

<div class="post-metadata">

**Author:** ![aliboukaroui](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/aliboukaroui/32/396579_2.png) [@aliboukaroui](https://community.openai.com/u/aliboukaroui)\
**Post date:** [June 14, 2024, 7:35am UTC](https://community.openai.com/t/gptteams-how-i-used-openai-to-empower-team-collaboration/818666/4 "2024-06-14T07:35:11Z")

</div>

@noumanjavaid Thanks for trying out GPTTeams.

After reviewing your tool, I noticed that you were missing ‘Bearer’ (I fixed it for you).

**It should be something similar to this:**  
 ![CustomHeader](https://us1.discourse-cdn.com/openai1/original/4X/9/d/5/9d5c4b38a26f07b205f660df7060c02531c36157.png)

---

<div class="post-metadata">

**Author:** ![noumanjavaid](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/noumanjavaid/32/349208_2.png) [@noumanjavaid](https://community.openai.com/u/noumanjavaid)\
**Post date:** [June 14, 2024, 7:39am UTC](https://community.openai.com/t/gptteams-how-i-used-openai-to-empower-team-collaboration/818666/5 "2024-06-14T07:39:49Z")

</div>

Fixed it

How can I add tool code\_interpreter to create files?

---

<div class="post-metadata">

**Author:** ![aliboukaroui](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/aliboukaroui/32/396579_2.png) [@aliboukaroui](https://community.openai.com/u/aliboukaroui)\
**Post date:** [June 14, 2024, 7:53am UTC](https://community.openai.com/t/gptteams-how-i-used-openai-to-empower-team-collaboration/818666/6 "2024-06-14T07:53:31Z")

</div>

@noumanjavaid I would love to have a call with you now if you are available so I can help you better. 😇

---

<div class="post-metadata">

**Author:** ![noumanjavaid](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/noumanjavaid/32/349208_2.png) [@noumanjavaid](https://community.openai.com/u/noumanjavaid)\
**Post date:** [June 14, 2024, 8:36am UTC](https://community.openai.com/t/gptteams-how-i-used-openai-to-empower-team-collaboration/818666/7 "2024-06-14T08:36:42Z")

</div>

Sure Let’s start it at the 30 minute mark of the next hour as I am just going to have lunch now ?

Which timezone are you in Btw?

---

<div class="post-metadata">

**Author:** ![aliboukaroui](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/aliboukaroui/32/396579_2.png) [@aliboukaroui](https://community.openai.com/u/aliboukaroui)\
**Post date:** [June 14, 2024, 11:08am UTC](https://community.openai.com/t/gptteams-how-i-used-openai-to-empower-team-collaboration/818666/8 "2024-06-14T11:08:23Z")

</div>

@noumanjavaid Sure!

**Few minor changes to check:**

- Change “Dall-E 3” to “dall-e-3” in the model description.
- Keep the prompt empty so the tool will use the one that you entered in the text input.

**RESULT:**

 ![image.PNG](https://us1.discourse-cdn.com/openai1/original/4X/8/7/d/87de32a484eebb019b7c415374b567b5c3ac5a7a.jpeg)
