Skip to main content
U.S. flag

An official website of the United States government

Dot gov

The .gov means it’s official.
Federal government websites often end in .gov or .mil. Before sharing sensitive information, make sure you’re on a federal government site.

Https

The site is secure.
The https:// ensures that you are connecting to the official website and that any information you provide is encrypted and transmitted securely.

Slack

Slack is a chat client that provides us with a centralized way to communicate without overloading our inboxes.

Setup

Because Slack is a web application, there’s no installation necessary. You can login online or download the desktop or mobile clients from the App Store.

Rules

Usage of TTS’s Slack

Slack is required for all TTS staff. We can also invite people outside TTS to have access to a single channel on our Slack account. These single-channel users are free, and don’t need financial authorization from TeamOps or security clearance from Infrastructure. These users may include:

Usage of other Slack workspaces

You may be invited to other Slack workspaces operated by government entities, or entities under contract to the government. You’re allowed to join those workspaces as necessary for your work. You should join those workspaces with your government email address and ensure your avatar and profile information are consistent across Slack workspaces. If you’re invited to Slack workspaces unrelated to your job, you must join those workspaces with a personal email address.

Adding people

TTS staff

Fill out the user request form.

External collaborators

You can invite government partners, contractors, etc. to specific project channels to foster collaboration and asynchronous communication with the team. Several projects have created specific channels that end with -partners. Our partners may be invited as single-channel guests at no cost to the project or agency. Giving partners access to more than one channel will be billed the normal Slack user rate to your IAA. When possible, we prefer to set up shared channels with partners over having multi-channel guests.

  1. Create a <project>-partners channel, if you don’t want them in an existing channel.
  2. Fill out the user request form.

A small number of close TTS collaborators at GSA may be full Slack members at the discretion of the head of infrastruture. Examples might include the Chief Information Officer or FAS Commissioner. Ask in #admins-slack if you’d like to add someone to this category.

Friends

Friends with .gov/.mil email addresses who aren’t collaborating on a project can be invited into #friends, or any of the public channels. Fill out the user request form.

The public

TTS has specific channels in Slack that are open to the public to join. These channels end with -public. (Note: In Slack’s parlance, all channels in a workspace are either public, allowing any full member to find/join, or private. However, when we say “public channels” on this page, we mean channels open to all members of the public.)

What

Treat these channels like you would a livestreamed event on GSA’s YouTube page or other type of public meeting open to guests. Materials and documents should not be shared only in public channels; instead, they should be published on TTS websites and then linked to from the public channels so that access to Slack isn’t required to see the document. Members of the public must also comply with GSA standards and the TTS Code of Conduct. For all shared and public channels, it’s not a good idea to invite people into a shared channel that aren’t there witout a heads up. Instead, please DM them the link to an interesting message. Pulling them in without their consent (where others can @ or DM them) may not be fair to their schedule if they need to be heads down.

Inviting

To invite people to a public Slack channel, send them to chat.18f.gov and have them select the appropriate channel from the drop-down. Note that these users are added as single-channel guests.

Add a new public channel

See the instructions.

Offboarding

Slack users need to be offboarded in the following situations:

An admin will then do one of the following:

*NOTE: When a TTS Slack user is converted to a Single-channel user, they maintain access to their direct message chat history but are unable to search for or create new direct messages with folks that they’ve never messaged before. Unless another channel is specified, the only channel that will still be accessible is #alumni.

If they were a partner, the admin will also set their Downgraded/disabled on date in the user request spreadsheet.

Slack Admins

Here are the resources used by Slack Admins to track and manage Slack accounts:

Records policy

Per the mandatory General Records Schedule 3.1 issued by the National Archives and Records Administration (NARA), everything in Slack channels and groups is considered at minimum a temporary record.

To ensure compliance with the possibility that we might create permanent or long-lived records in Slack, the records retention policy is set to retain all messages forever AND also retain edit and deletion logs for all messages. Users are prohibited from deleting messages. Do not abuse the edit command in Slack to effectively delete your message by replacing it with null or symbolic content. Edits for clarity or typos are fine. If any bot or integration ever posts something inappropriate, please call for a clean-up in #admins-slack using @slackadmin.

This policy applies to all types of Slack communications: public channels, private groups, even direct messages. Nothing is private. We use the Corporate Export capability in Slack to get the data and filter using the slack-export-handling tool.

During regular operations, only the Slack Owners have access to the exports. There is no regular monitoring of these messages, but they have been reviewed in the past. Various legal actions (for example, a Freedom of Information Act (FOIA) request) or security operations approved by the Infrastructure Director have required others to view the exports. The team will continue to be notified at the earliest possible time that the exports have been accessed. Notifications of access may not be made in realtime.

Exporting channel contents

There is not an easy way to export the contents of a single channel, for partners or otherwise. If you really want, you can:

  1. Open the Slack channel in Chrome
  2. Take a screenshot
  3. Scroll up
  4. Repeat

These, of course, will be images, so they unfortunately won’t be searchable.

Infrastructure security

Slack is currently built on Amazon Web Services (AWS), which from a federal security perspective, already has a host of protections verified through GSA’s FedRAMP program. GSA IT and 18F have also conducted a review of Slack’s security operations and vulnerability scanning.

However, there are currently no assurances that Slack employees can’t read any and all of the messages sent via Slack. In fact, Slack makes it clear that its employees do have this ability, and just don’t use it without customer permission:

All of our employees are bound to our policies regarding customer data and we treat these issues as matters of the highest importance within our company. If, in order to diagnose a problem you are having with the service, we would need to do something which would expose your data to one of our employees in a readable form, we will always ask you prior to taking action and will not proceed without your permission. Our platform will automatically generate an audit entry of any such access.

This is the case with most software as a service offerings. Slack has multiple mechanisms in place to audit this access, and ensure it is only done with the appropriate authorizations. Regardless, we currently do not, and may never, authorize Slack to handle sensitive information).

Integrations

…or “Apps” or “bots”.

You can add new “configurations” of pre-approved integrations to Slack, for things like posting Trello or GitHub notifications to a Slack channel. You can also freely add new configurations for “Incoming WebHooks,” which is on a different page. For any new integration types, please follow the process below.

Approval of New Integrations

Integration request form

Note this is only necessary for new bots or types of integrations—approval is not needed for new “configurations” of a previously-approved App. The form should filled out again if the nature of the connection changes, e.g. a webhook connection changes to using OAuth.

Before completing this form, you might need to research how the integration interacts with Slack. For example, does the integration have read access to channels or not? Reach out to #admins-slack and/or Slack support for help.

New integrations being built/hosted by GSA should be developed against the test Slack—ask in #admins-slack for access. When ready to be integrated into the TTS Slack, fill out the form.

Responses will be reviewed in this spreadsheet. The form can be edited here.

Approval

New integrations/bots need approval from the following:

Considerations

Shared Channels

Slack offers a feature to create shared channels with other workspaces. Shared channels are a more efficient and economic way to work with people in other Slack workspaces than managing them in our Slack workspace as guests, especially when we using multiple channels for a project. All records in shared channels are retained and available for Corporate Exports.

Requesting a new shared channel

When you are interested in a shared channel, please drop into #admins-slack to request it. Please specify if you want to use a new channel or want us to share an existing channel. Please also give us a heads up before partners send us a sharing request.

Guidance for using Shared Channels

When participating in shared channels, please keep in mind:

Likewise, when setting up shared channels, we will look to set these expectations with workspaces with which we connect:

If a shared channel does not produce good results, or causes a burden, we don’t need to continue it. That won’t be the end of our collaboration - just recognizing that a particular tool isn’t effective for achieving the results that we want. If the shared channel is with a private entity (contractor or vendor) we will not continue sharing a channel after the agreement covering our work elapses.

Groups

Slack Groups allow you to direct messages to a specific list of people in a more precise way than an @-channel or @-here. Any full member can view, create, and edit Slack groups at will.

Groups are a great way to alert people who might not be in a channel about something that needs their attention or make sure urgent incidents are directed to the right people and not an entire channel. For example, you can ping @github-admins in #admins-github if you have an urgent issue instead of using an @channel or use @federalist-team to alert that group of a conversation in another channel that we should see immediately.

Tips

How to make an announcement in #news

Use #news for vital team announcements. #news is an announcement-only channel where only administrators can post. If you have a post you’d like to go up in #news:

Please keep #news posts limited to information that the entire team needs to know. This includes things like:  

When to use @channel and @here

In general, the larger a channel is, the more careful you should be about using broadcast notifications.

Some channels may have particular guidance for getting help, which you can usually check in the channel status. Regardless, if you don’t have an urgent need or a message that everyone needs to see, try posting your message without a broadcast notification.

Frequently used emoji

:check: = I did this or verified it was done

:plus: = I am a +1 for the above

:100: = I am a SUPER +1 to the above OR this comment is keeping it 100 (as in, keeping it real, speaking the 100% truth)

:thumbsup: = Sounds good

:question: = I don’t understand this/needs followup

:point_up: = I would also say this (can mean “this is correct” if you are the decider)

:raccoon: ===> Slack channel = Please consider moving this conversation to a different channel. (It’s a raccoon because of this image referenced in this article.)

:raised_hand: = I volunteer

:raising_hand: = Have time for a question? (Keep in mind that many folks strongly prefer that you also add what your question is about so they can determine its urgency.)

:thanks: = A picture of Tom Hanks (T. Hanks -> thanks) used as a shortcut to say “thanks”

:facepalm: = Disbelief, shame, or exasperation.

:troll: = I’m intentionally trolling you or making a joke

Bots

If you’re interested in learning more about the bots, or perhaps contributing to them, pop into #bots.

Channel names and handy shortcuts

Clusters of channels

Channel naming conventions

Shortcuts


Still have questions?

Ask in Slack: #admins-slack, #it-issues, #questions, #teamops