I'm looking to do an app that will essentially give new users to my Sharepoint 2013 portal a small 'guided' tour of the system and some of its key features.

How would you go about detecting a users initial access to the page? I'm currently thinking of setting a cookie but wanted to see what ideas people had of doing it.



For me, I would have the values stored on a list or in a SQL table that would have a column to check against! It can contain a simple bool yes for been here before and no for new user!

When the use logs in it checks up against the list or SQL table, depending on the value will determin wether they see an intro or not!

For me I would go with SQL and a custom stored procedure returning true or false from the column, its faster and not that taxing on resources!

Simple and easy ;).... im sure there are other ways like through AD (active directory) check the flag if "change password at next logon" is checked. If checked then show the intro if its not checked than dont ;)

there you go three ways! i would still go with SQL but AD is a good contender (no need to add an extra value/table/column) and no calls to DB but its easier to develop!

  • I'm not keen on SQL table purely because it will need to check on every load to see whether the user needs to see the tour. I do like the list idea and this is something that would probably work as my next attempt to tackle the issue. I'm assuming I'd just store the user profile name and a bool of whether they have seen the popup. This also has the benefit of being able to manually override. – PipBoy Apr 12 '13 at 11:39
  • yes its just a simple list that noone have access to appart from admin/site authors! you can add remove user or bool. So in your case you can have just the names/Id and if they are on the list than show intro or using a bool ;) either way is simple and efficent! yes SQL means a trip to the server for each login! for that reason i would go for AD method as its going to get called anyway and an if fuction just checks a bool or do the list witch is the same! – Ali Jafer Apr 12 '13 at 11:55
  • Marking as the answer as this is my likely method of doing this. – PipBoy Apr 15 '13 at 8:14

I would recommend two options:

  1. Leverage the User Profile of the user to track first visits as long as you don't want to present the user with the guided tour everytime they hit the site on a new device (desktop vs tablet)

  2. You can use also use cookies in combination with the user profile tracking. If the user has already gone through the tour on one device and the user profile Boolean is set, but a cookie has not also been written on the new device, you can offer the guided tour with a more subtle option to the user (e.g. "Would you like to take the tour again on your new device?"

  • I like the user profile idea but to modify it would require server object model use which then becomes a bit heavy for the requirements. It is however all then nicely hidden in their User Profile area and doesn't mean maintaining a list or DB. – PipBoy Apr 12 '13 at 11:40
  • Good point. Looks like in 2013 changing the user profile properties in CSOM or Rest is not supported :( Probably done for mitigate security risks. – Johnson Joseph Apr 12 '13 at 13:20

I second the idea of leveraging the User Profile service. Just add a custom property that sets a flag indicating whether or not they've visited the site before.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.