Creating embeds on Discord using Carl Bot.

Priya Sharma
6 min readAug 30, 2021

Discord has become increasingly popular this year. It has features that are appreciated by gamers and study groups alike. What makes discord so special is the ability to automate various tasks using bots. There are several popular bots each special in their own way with new ones releasing every day.

One bot-specific feature is the ability to post embeds. Embeds are rich-text messages that allow markdown as well as the ability to add authors, titles, and footers. Embeds are systematic messages that make your server look professional. They can be used to create custom announcements, custom welcome messages, or even add a list of roles that can be attained by reactions. In this article, we’ll be learning how to create embeds using carl-bot with minimum coding.

Example of an embed message

The rawest way to create an embed would be by using JSON and then posting it using your custom bot. But, not all of us are familiar with JSON or deploying custom bots for that matter. That’s where pre-built bots come in. The most user-friendly bot interface I have found so far is of carl bot although you can also look into other options like Dyno. Make sure you invite carl bot into your server by using this link.

Carl bot supports both text commands as well as passing instructions through its web interface. We will look into the web dashboard in this article. Once you head over to https://carl.gg/, log in to your discord account by clicking on the login button. Authorize carl bot to access details like servers you are in and your avatar (this is necessary for the web dashboard to get linked to your account so that everything happens in the right server). Once that’s done, you’ll see all the servers you can manage (make sure you have the manage servers permission before trying to send embed messages).

Post login screen contains all servers where the user has “manage server” permission

Grayed-out servers mean that you have the necessary permission but the carl bot isn’t in the server. For example, in the image above, AI adda, Choices After Dark, etc. are colored and hence ready to be customized. Array Alacrity, Bot banaenge, etc. don’t have carl bot invited. Click on the server of your choice to open a detailed dashboard that looks like this —

Dashboard for “test” server

The side menu has all the different categories you can customize. For this article, our category of interest is “Embeds” which is at the bottom left of the screen.

The embed builder

Here’s some info about various fields you can customize:
1. Normal text with the embed: This text is sent as the message along with the embed. It looks like a normal text message.
2. Toggle Colour Picker: Clicking it opens a color editor that allows you to customize embed color. The embed color is the color of the strip on the left of the embed. The top embed example has an embed color of orange. You can also choose to provide the hex code or RGBA value if the color picker is not convenient.
3. Icon Url: Here, you can provide the URL (link) to the image you want to display as an icon beside the author/name field. It is the smallest image on an embed after the footer icon. Make sure the URL you enter ends with .png or .jpg
4. Name: Name of the author or authority that is sending the embed. Appears on the very top of the embed with size smaller than that of title.
5. Name URL: URL that is to be hyperlinked with Name field text. Could be the company website or information about the author.
6. Title:
The title of the embed, appears right below Author and is the largest text in size.
7. Title URL:
URL that is to be hyperlinked with Title field text. Can be an external link to embed information.
8. Description:
The heart and soul of your embed where you can post all information. This field supports markdown as well.
9. Adding Fields:
If your description happens to have several sub-topics, it is recommended to use fields. Right below the description section, there’s a button to add a field. You can create a maximum number of 25 fields.
9.1. Field Title:
A field title is the sub-title or sub-heading to your embed. It is bolder and slightly larger than the description text. Though, it does not support hyperlinks.
9.2. Field Description:
Description for that sub-topic.
9.3. Inline Toggle:
The inline toggle when enabled, allows you to create multiple columns each having different fields. Useful to save space and display content sideways. If it is disabled, the fields appear one below the other.
10. Image URL:
URL for the big image at the bottom of the embed. Just like the Icon URL, make sure your link ends with .png or .jpg (or .gif). This big image can also be a gif.
11. Thumbnail URL:
Thumbnails are small images displayed on top right corner of the Embed. It is larger than Icon but much smaller than Image.
12. Footer:
The footer represents the tiny text at the very bottom of embed that can be used as log message or disclaimer.
13. Footer Icon:
The footer icon is a tiny icon image on bottom left corner of screen, right besides the footer. This field requires a URL with .png or .jpg.
14. Date:
This date is to be printed besides the footer, you can either use current date and time or a specific date. Useful for logging.
15. Destination:
This drop-down has a list of all the channels in your server and you can select the one where you want to post your embed message in. This is also the last option in our embed builder.

Example of filled out embed with corresponding output. Here Field 1 and 2 are inline.

None of the fields mentioned above are necessary so you can play with a combination of different field types to create various kinds of embed messages.

Some embeds I made using carl-bot

Things to take care of when writing embeds using carl bot’s embed builder —

  • URL fields must be an HTTP/HTTPS formatted URL (begins with http:// or https://).
  • All Title fields, the (Author’s) Name field, and the Footer cannot properly display Discord mentions or named links, and have limited support of markdown formatting.
  • If an additional field exists, neither the title nor the description can be empty.
  • “Name” must have a value for “Name URL” to work.
  • “Title” must have a value for “Title URL” to work.
  • “Name” must have a value for “Icon URL” to display.
  • “Footer” must have a value for the “Footer icon” to display.
  • In addition to the stated character limits for each field provided below the embed builder’s text boxes, the sum of all characters in an embed must not exceed 6000 characters.
  • Do not put values in the JSON “timestamp”: field if you don’t know the correct format for them. The correct format is ISO 8601: yyyy-mm-ddTHH:MM:SS.000Z
  • It is advisable to save the JSON code of your embed by clicking on the COPY TO CLIPBOARD option below preview (on right side) and then pasting it somewhere you can easily access. This will be helpful when we’d want to edit the embed (tutorial coming soon!)

Thank you so much for hanging this long. If you followed along the tutorial, you must have made some beautiful embeds. You can look for more information about embeds in carl bot’s documentation.

Do let me know what discord topic should I write about next! Byeeee!

PS. I will make a separate post about markdown language supported by discord text and embed messages.

--

--

Priya Sharma

A curious soul who loves harnessing the power of python to make her life easier. Spends most of her time on discord.