Collaborating with External Users Using the Sharing Feature of Office 365 (SharePoint Online) – Part1

In this article I am going to talk about how Office 365 external sharing can be used to increase productivity by collaborating with your external partners and vendors.

We are currently living in a world where collaborating and communicating with external vendors and partners has become essential in order to effectively run your business. With that in mind, sharing content with users outside of the organization is becoming commonplace. Office 365 can help organizations do this by facilitating this collaboration with external users safely and securely.

In this post I am going to focus on SharePoint Online External Sharing. I’ll be covering the following topics when it comes to External Sharing in SharePoint Online.

  • Different ways to share content with External users.
  • External Sharing Approvals

Please note – this post assumes that you currently have external sharing enabled on your Office 365 tenant.

Different ways to share content with External users

When using SharePoint online you can share content with External users in three different ways.

  1. Sharing a specific site with an external user:

You can invite External users to share a specific SharePoint site. When you share a specific SharePoint site with an external user it will send an invite via email to the user with a link to the site that you would like to share. Once the external user clicks on the link in the invitation, they are prompted to sign-in using their own Microsoft account.

By default, users are not required to sign-in using the account that was used for the invitation. E.g. If you invited an external user using [email protected] as the email and the user signed-in using [email protected]; the user would still be able to access the site. However, Microsoft recently added a setting at the tenant level which prevents this and forces users to login using the same account that was used for the invitation.

Also, depending on role of the user inviting the external users, there will be an additional step for requesting approval before the email gets sent to an external user. This information is covered in the “External Sharing Approvals” section.

  1. Sharing a specific document with an external user:

In certain scenarios you would only want to share a specific document with an external user. You can achieve this by selecting the document and clicking the “share” option from within the dropdown menu. Sending an invitation to share a document is a similar process to above in regard to sharing a site in that an external user would also be required to sign-in before accessing the shared document. The only difference is that the user would only get access to the document you shared.

  1. Using the guest link:

If you would prefer to give an external user access to a document without being required to sign-in, you can use the guest link option. To generate the guest link, select the document and then click guest link option from the drop-down list.


I hope this gives you some overview of sharing feature. In the next part I will cover the external user approval process.

Using Javascript Object Model (JSOM) with Nintex Forms

Recently working on a project I came across an interesting scenario where I had to use Nintex form. As a part of the process the form will be querying multiple lists and displaying data on the form.

You can achieve this using the Nintex Form out of the box controls but there were specific requirements which could be achieved using the out of the box controls.

I decided to use the JSOM to complete the task and plugged in my JSOM code into Form’s custom JavaScript section. To my surprise when I ran the Nintex form nothing happened.

Quickly I figured that my code was getting executed before SharePoint finish loading all the files and required SP.js file was missing at the time of code execution.

So I tried Script on Demand to make sure that my function only gets executed after the SP.js is available.

Here is the code I have added to my Nintex form.

NWF.FormFiller.Events.RegisterAfterReady(function () {

               SP.SOD.executeFunc('sp.js', 'SP.ClientContext', myFunction);


function myFunction() {






Once I added that one line my code worked like a charm. So if you are working with Nintex forms and would like to use JavaScript Object Model then you might run into the same issue and in that case just make sure to use Script On-Demand.