Import into organization's collection

It would be nice to be able to import entries directly into a specific collection.

Use Case: Credentials related to specific clients and teams are organized in a collection. When migrating from a different password manager a password file might need to be imported directly into a specific collection. Since many Entries are named similar but come from different sources, importing all files and then assigning them afterwards is tididious or even impossible.

Therefore: Importing all entries of a file and assigning them to a specific collection would be useful.

I second this. Especially because there is no option to move multiple entries into a collection.
When migrating from another PWmanager it’s very troublesome to open/move one entry after the other (I have 500+ entries to move).

(I wonder there are not more people asking for this option).

I worked around this missing feature by exporting the old keepass database as xml and transformed it using excel to export it as bitwarden csv. The Bitwarden csv allows you to specify collections to which an entry belongs.

But there is a caveat: The import does not check whether a collection already exists and creates new collections for each imported csv file.

How did you do that Tobias? :slight_smile:

I exported the KeePass database as xml and used Excel’s Power Query feature to import it into a sheet. I created a second sheet to convert the entries to a table that could be exported in a csv that bitwarden could understand. It required some cross references.

Unfortunately I cannot share my excel files and don’t have time to create a step by step guide. In hindsight, I wish I had written a script that does not require excel instead.

Here is what the Power Query Editor used as a configuration. The configuration depends on how you organized your KeePass folders and entries. Just to give you an idea:

let
    Source = Xml.Tables(File.Contents("C:\PATH\TO\KeePass-export.xml")),
    Table1 = Source{1}[Table],
    Table0 = Table1{0}[Table],
    #"Changed Type" = Table.TransformColumnTypes(Table0,{{"UUID", type text}, {"Name", type text}, {"Notes", type text}, {"IconID", Int64.Type}, {"IsExpanded", type logical}, {"DefaultAutoTypeSequence", type text}, {"EnableAutoType", type text}, {"EnableSearching", type text}, {"LastTopVisibleEntry", type text}}),
    Group1 = #"Changed Type"{0}[Group],
    #"Changed Type1" = Table.TransformColumnTypes(Group1,{{"UUID", type text}, {"Name", type text}, {"Notes", type text}, {"IconID", Int64.Type}, {"IsExpanded", type logical}, {"DefaultAutoTypeSequence", type text}, {"EnableAutoType", type logical}, {"EnableSearching", type logical}, {"LastTopVisibleEntry", type text}}),
    #"Expanded Entry" = Table.ExpandTableColumn(#"Changed Type1", "Entry", {"UUID", "IconID", "ForegroundColor", "BackgroundColor", "OverrideURL", "Tags", "Times", "String", "AutoType", "History"}, {"Entry.UUID", "Entry.IconID", "Entry.ForegroundColor", "Entry.BackgroundColor", "Entry.OverrideURL", "Entry.Tags", "Entry.Times", "Entry.String", "Entry.AutoType", "Entry.History"}),
    #"Expanded Entry.String" = Table.ExpandTableColumn(#"Expanded Entry", "Entry.String", {"Key", "Value"}, {"Entry.String.Key", "Entry.String.Value"}),
    #"Expanded Entry.String.Value" = Table.ExpandTableColumn(#"Expanded Entry.String", "Entry.String.Value", {"Element:Text", "Attribute:ProtectInMemory"}, {"Entry.String.Value.Element:Text", "Entry.String.Value.Attribute:ProtectInMemory"})
in
    #"Expanded Entry.String.Value"

This feature would be incredibly useful. I seem to be having very similar issues when attempting to bulk import records to my company’s organization. I’ve used an export of our existing data to ensure the format is correct for each of the CSV and JSON options. However…

  1. When using CSV import (which uses collection names) the collection names are duplicated with every import.
  2. When using the JSON format (which uses collection IDs - far better idea) the collection IDs are ignored.
2 Likes

Wow! That’s terrible. Just minutes ago I purchased a Family Organization and immediately wish I had chosen to self host.

I’m shocked this isn’t a feature - it just didn’t occur to me to check if this was possible.

1 Like

Agreed.

The really annoying part is that it looks like you can do this by:

  1. Select multiple items by clicking their checkbox
  2. From the multi-select menu, choose “Move Selected to Organization”

But when I do this, I get the warning:

You have selected 4 item(s). 0 item(s) can be moved to an organization, 4 cannot.

And the Save button is disabled.

Aaagh!

Any plans to fix this in the near future?

We need to import a large number of logins. Our organization users shall have different access. Some shall have access to all logins, some to just a few, etc. We can solve this with the collection and groups features, but when it is not possible to import into a collection, it is a real showstopper for us.
Hope this feature will be implemented soon.

It should also be possible to move multiple items to a collection. That would also make it a lot easier.

Hey @j0n is this an enterprise account? The integration team can also assist with scripts to assist in this progress in the meantime, you can connect here.