Organize This!

ContentOrganizerFeaturedImageThe Content Organizer is a beneficial feature in SharePoint used to automatically route documents to the right place. Sometimes users don’t always know where documents should be stored or how they should be organized. This feature takes the guesswork out of document placement and ensures the content is automatically organized based on a set of rules. This post will explain how to enable and configure it and give a practical example of using it.

As with most things SharePoint, nothing is perfect. The Content Organizer is no exception.  At the end of this post I share some limitations this feature has that you should be aware of before deciding to use it in your environment.

I’ve used this feature in SharePoint 2010, 2013, and SharePoint Online.

EXAMPLE SCENARIO: A large department with many teams is wanting to standardize and organize their customer documentation across multiple teams. They want staff to go to one place to upload customer documents and have them automatically organized by team. There will be common (cross-team) documentation in the department site, with team-specific documentation in each of the team subsites. They want all department staff to quickly find any document across all teams for a specific customer. NOTE: Although this example is routing documents from a parent to a child site, the content organizer can be used to route to any site in the same or another site collection.

Best way to start is by creating a Customer Document content type at the root site. It will be comprised of the following site columns:

  • Document Title: required
  • Team Name: required, managed metadata (a list of terms each corresponding to a team)
  • Customer Name: required, managed metadata (a list of customers for your organization – assign an administrator to keep this list up-to-date)
  • Document Type: required, managed metadata (a list of terms for each team could go here; one of the ‘Document Types’ will be identified as ‘Common’)

We will route each document into a customer-named folder within each document library on the team site corresponding to the team name selected. In this solution, that’s the ONLY folders being created. You could turn off folder creation at the library level to ensure this.

Below is a diagram that depicts the document flow for this solution.

ContentOrganizer

Configuration steps for this solution follow.


 

OneENABLE CONTENT ORGANIZER SITE FEATURE

In order for one site to automatically route documents to another site, you must enable this feature in both the department parent site and on each of the team sub sites.

SiteFeature

When enabled, a “Drop-off library” is automatically created for you and 2 additional site settings will appear under Site Administration.

SiteAdminSettings

The Drop-off library is where everything will be routed thru. There is a setting that controls this and I recommend you set it to force all content (other than pages) to ALWAYS go thru this Drop-off library. You can also set up one site to automatically route content to another site by checking the box below. That’s the scenario I’m walking thru in this post.

SendToAnotherSite


TwoDEFINE CONTENT ORGANIZER RULES ON TEAM SITES

As a general rule, I define the content organizer rules at the subsite level prior to the parent site level. On each team subsite, define a content organizer rule to route all incoming ‘Customer Document’ content types to a document library on the team site in a customer-named subfolder.

Note: you could have your rules set up to go to different document libraries if you want. This is driven by your own requirements.

Here is a screenshot of what the rule will look like for each team site:

TeamSiteRule


ThreeGET WEB SERVICE URL

When the Content Organizer feature is activated, a webservice endpoint is automatically created for your site in order for content to submit to it.

It follows this URL format:   https://yoursiteurl/_vti_bin/OfficialFile.asmx

On each team subsite, you will see this URL from the Content Organizer settings in the Submission Points section as shown below.  Copy this Web service URL.

SubmissionPoints


FourCONFIGURE ‘SEND TO CONNECTIONS’

In SharePoint 2010 and 2013: Go to Central Administration, General Application Settings, External Service Connections, Configure send to Connections

In SharePoint Online: Go to SharePoint Admin Center, Records Management, Send to Connections

For each team subsite, enter a friendly name for the connection (Eg. Team Name) and paste the Web service URLs from the previous step to indicate the site you want the content sent to. (Optionally, this location can appear on the item’s drop-down menu and the ribbon, but for this example we will not enable that)

ConfigureSendToConnection


FiveDEFINE CONTENT ORGANIZER RULES ON PARENT SITE

Set up Content Organizer rules on the parent (Department) site to route all incoming ‘Customer Document’ content types to the appropriate “send to” location based on the Team Name set. Since the Team Name is a required column on the content type, we can use it for a routing rule. Also, since you’ve configured the ‘send to’ location for each team site they appear as a valid location to send content to as you can see below.

SpecifyTargetLocation

NOTE: if a document is uploaded and the user does NOT fill in the team name (perhaps they hit Cancel after uploading it) it will stay in the Drop Off library until all required metadata has been filled in. This ensures the routing rules will fire correctly. Users will be notified if they have a document sitting in the Drop Off library as well as the Rule Managers.

When complete, there will be 1 routing rule for every team subsite we want to route content to. At this point we could also route common documentation to a library on the parent site if ‘Common’ was selected as the document type. This rule would have to be a higher priority than the others to ensure it would fire first so the document wouldn’t be routed to a team site.

Here’s the complete list of rules set up at the department (parent) site:

DepartmentOrganizerRulesFinal


SixTEST

If you upload a document to the parent site, its content organizer rules will fire and the document will be routed to the appropriate team subsite. When it hits the team subsite, the team site content organizer rule(s) will fire and it will be routed to the correct document library in a subfolder named the customer name. It will create the folder if it doesn’t yet exist.

If you upload a document directly to the team subsite, the content organizer rule(s) will fire on the subsite and it will move the document to the correct document library in a subfolder named the customer name.


SevenPRESENTATION

Once you have the documentation standardized and routed to the right place, you can surface this content in useful and interesting ways to the department staff. You can use the Content Query Webpart, Content Search Webpart, Search Results Webpart and build in search refiners on teamname, customer name, and document type.

You could customize the item display template for the ‘Customer Document’ content type to visually distinguish each team’s customer documents, or do a lookup to the customer rating and show a bronze/silver/gold icon beside each document.  The possibilities are endless.


Circle4ADDITIONAL TIP

Of course this can be extended far beyond one content type.  For example, you may want to organize Product and Work Order Documents across your teams in a similar manner. One nice usability tip is to create a button on the parent site for each type of content you want to upload:

 

AddNewButtonsV3

Each upload button will target a specific content type which will default the content type dropdown on the editform to the content type ID you specify. The document will be automatically routed thru the Drop-Off library and into the right place! Associate this javascript with each button as follows:

javascript:OpenPopUpPage(‘/DropOffLibrary/Forms/Upload.aspx?RootFolder=/DropOffLibrary&ContentTypeId=contenttypeID‘);

where contenttypeID is the ID of the content type you’re uploading to the Drop Off Library.  You can get this by selecting the Content Type from the Document Library Settings of the Drop Off Library and looking for ‘&ctype=’ at the end of the URL.


LIMITATIONS

Here are some limitations when using the Content Organizer feature in SharePoint:

  • this feature can only work on content types that are, or derive from, a Document content type.  You CANNOT use it to organize list items.
  • if you save a new document from Word directly to a network drive mapped to the parent drop-off library the rules engine will NOT fire when using another target site in your routing rules!  If you upload directly to the parent drop-off library thru the SharePoint UI or if the routing rules stay within the same site, the rules engine fires perfectly fine. You can get around this by 1 of 2 ways: edit and save the document once it is in the drop-off library.  The routing rules will then fire.  Alternatively, you can run the ‘Content Organizer Processing’ timer job to initiate the routing rules.  By default this job runs once a day, but you may want to run it more frequently to ensure documents are routed without intervention.
  • there is a limit of six conditions per Content Organizer rule
  • the Content Organizer will move a document to the target site whether or not the contributing user has access to the destination location. Whoa!

THE END

I hope you found this an easy-to-follow example of using the Content Organizer in SharePoint. I believe it’s an important tool to add to your SharePoint tool belt to be used when suitable.

Thanks for reading.

Advertisements

2 thoughts on “Organize This!

  1. Hello, thank you for this insightful post! Have you got any information on when a Content Organizer Rule (COR) executes instantly or it waits for the (night time) Content Organizer Processing Timer Job (TJ)?

    I am testing this right now as follows. I set up a Record Center (RC) with Record Libraries (RL). From my regular Document Libraries (DL) I am able, using the ribbon Send-to button to send files to the RC which do end up into the correct RL. Routing happens based on content type, or content type AND condition.

    Here are my findings so far:
    – COR with content type, processes right away. Send file from DL to RC, result is instantly visible
    – COR with content type and 1 condition, processes right away too.

    But:
    – COR with two conditions, leaves the file in the drop off library, and next day I see the file has moved to RC into correct RL

    Same goes for Document Set.
    – From DL, I send a Document Set to RC. What happens is that the Document Set shows immediately in the Drop Off Library as a zip. I don’t touch it. And next day I see it is gone from Drop Off library, and the Document Set is found in the correct RL inside RC.

    … based on my 3 day long trial I suspect that the above is how it works. I tried to find technical documentation describing this behavior… but none out there.

    I was hoping to could comment on the above, or perhaps direct me to online documentation.

    Many thanks!
    Avinash

    1. Hello Avinash,
      I apologize for my tardy response. Although I’ve never tried routing a Document Set before, I did find an excerpt from an MSDN article that explains why it waits for the Timer Job to process the Drop Off library…

      “if you submit a Document Set or employ an ICustomRouter to change the routing experience or perform some other action to modify the content when it hits the Drop Off library, the behaviour of the Content Organizer is slightly different. Instead of the submitted item being immediately processed, which is the normal mode of operation, a Document Set or document that meets a rule that employs a custom router, will sit in the library waiting for a timer job. This is because SharePoint does not know what the Document Set contains and hence what it needs to unpack or, in the case of a custom router, does not know what that process load will be. Each of these actions could potentially be a long running operation. To ensure that there is no blocking of the Content Organizer, these types are only processed when the Web applications “Content Organizer Processing” job runs from the timer service ”

      This covers off both a custom ICustomRouter solution as well as a Document Set so I think this is why you’re seeing it sit there in a zipped state until the Timer Job runs. This may also explain your multiple condition scenario you first describe as well. It may be a way to mitigate any “long running operation” that would impact performance.

      Here’s a direct link to the article: https://blogs.msdn.microsoft.com/uksharepoint/2011/12/02/content-organizer-icustomrouter-pending-state-issue/

      Hope this helps!
      Joanne K

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s