How to assign activities to users inside of teams? - dynamics-crm-2013

The issue I'm having in Dynamics CRM 2013 is the ability to assign activities or appointments to a team and have those cascade downward into individual users. The end goal here would be after assigning a lead or activity to a team, the users within that team would receive notifications, emails, etc. and those records would integrate with their 'my' sections of CRM.
The issue I see with this is that only 1 'Owner' can be set for a new record in all areas of CRM, and the 'my' sections are based off of the Owner. Therefore the users within the team won't be notified.
We are currently using a service to pull from an existing database and populate CRM, assigning new leads to a Team which contains multiple users.
Does anyone have a recommended method to do this?
Thanks for your time.

Either give the users a view of "Leads owned by Teams of which I am a member" or possibly use Queues, which are pretty much designed for the scenario you describe.
New items assigned to a Team will be added to the Team's Queue. Users can see all Queue Items not yet being worked on (from all Queues they have access to, including all Teams they are members of). A user can "work on" an item to show they are dealing with it so it no longer appears in this list of items to be worked on, and instead appears in their own list of items they are working on. A user can either complete the item or 'release' it back into the queue.
Queues can contain items of different types, eg Leads, Tasks, Cases etc.

Related

How to schedule different reminders for different contacts and query them

I am making a CRM for my business as a Realtor. I currently have the database connected to the site and I can add, remove, and update the contacts. Each contact will be assigned a "type." Like one type of contact may be a FSBO or one may be a buyer.
What I want to do is have a page that tells me if I need to do something like send an email or text to one of them that day. I have a predetermined campaign for each type. The FSBO type needs to be sent certain text messages on certain days depending on when they were added to the database.
So my question is how do I setup reminders to be displayed on the page showing me who needs what sent to them? Just a little confused about how to set up adding the campaign to each contact and then how to query the database to get the reminders due.

How does one create database tables (MSSQL) to handle notifications to users and system notifications to all users?

I would like to create a notification system for a web application I'm working on. I'm having trouble designing a database that is laid out in a "correct" format. This is what I would like to accomplish:
Have different notification types, such as Office, User, Client, Vendors, and System. User, Client, and Vendors are different "classes" of users that can login to different portals on the site. They would each have notifications just to their login. Office and System would be notifications for a whole entire office, so every user would see it (like meeting notices) while system would be for every user in all systems (like website shutting down for maintenance).
I want a notification button that displays the number of unread notifications. A user can click on the notification to mark it as read to remove it from the list.
The user can go to a separate "all notifications screen" to see all the notifications they ever got and search them.
I have a single table like this:
*Table: Notifications
notification_id int primary key
entity_type varchar
entity_id int
title varchar
message varchar
created datetime
didRead bit
readDate datetime
The entity type is Office, User, Client, Vendors, or System. The id is the corresponding entity id. Since each user for users, client, and vendors are in a different table, it is possible for a separate user, client, and vendor to all have the same id like 4444 etc. The entity type lets me know what table to look into to use the id for.
This works well if the notification is for a user. One record for the one notification for the user. The user reads it and it is marked.
The problem is with system and office notifications. Once I create a single record for a system notification, I can show it to the user by doing a SQL for the their notifications OR system notifications OR office notifications. However, I have NO way of determining if that user read the system or office notification. Since the entity id in the case of system is null or in office it is the office id, if I mark it as read, it will be read for everyone in the office. Only the first person to see it gets alerted.
I could make it so every system notification creates an individual notification for a user, but lets say I have 8 million users. Doesn't that mean for every system notification that I have to create 8 million records? I may be wrong (as in maybe it is no big deal for SQL Server), but something tells me that is bad and will bloat the database fast. Especially since I can see office notifications take off.
I was thinking of making a notification read table containing entity id, entity type, and notification id, but then aren't I just moving the same issue to a different table? Also wouldn't a join to this table now need three items being the entity id, entity type, and notification id? I would assume that would kill performance once the table grew.
Main Question: How can I design the table so I am able to read/unread any notification that comes to any user, including their individual notifications and system/office wide notifications? I want system and office notifications to hit a broad range of users, while user, client, and vendor notifications only hit a specific user while allowing all cases to be readable/unreadable.
I use Microsoft SQL server if that makes a difference.
Edit:
Tried adding an image (crappy paint skills) to show what I was asking for.

Use SharePoint 2010 workflow to add permissions to a document library

I'm trying to create a register, in a way, so that users (who initially have read permissions) on a SharePoint site, can add themselves to a group which has contribute permissions to a document library. This is something similar to what Moodle can do, where users can enrol themselves on a course.
My thinking is that I'd setup a list that allows all users to have contribute permissions. A user would then add a very basic list item which would start a workflow. The workflow would add the said user to a group that already has contribute permissions to a document library.
If it helps, here's the reason:
We have a lot of students accessing our SharePoint site (well over 2000), and all students are under a general AD group. To use the SharePoint Learning Kit (and therefore make use of SCORM content), there has to be a SharePoint group with specific rights, and that group should, ideally, contain individual users rather than AD groups (depending on the size of the AD group). Unfortunately, there isn't a way to get our learner record system to expose a field which SharePoint could 'see' which is why all students are under a general AD group. Because there are so many students (some with similar names), it would be a hard task to get lecturers to filter through each student to add them manually to the SLK group that's needed. Which is where this idea comes in. A student could enrol themselves into the SLK group and get access to the SLK material.
And breathe.
There are a lot of possible ways to do this. For example you can create custom timer job which will run every 15 minutes and synchronize sharepoint group with list you mentioned. If you want to stick to workflow way you can create custom workflow action which will add user to sharepoint group and then create workflow which uses this activity using sharepoint designer.

How to create an Approval Workflow associated to a List in SharePoint 2010?

I was recently tasked with taking over the SharePoint administration for my company, but I have very limited SharePoint experience. I'm using SharePoint 2010.
I have a List with a few built-in columns (like Status, Assigned To, etc) and I'd like to perform a few actions when a new List item is created: change the Status and Assigned To columns of the List item, send out an email, and then create a task for the user's manager to approve it. However, in SharePoint Designer, I cannot figure out how to create a Reusable Approval Workflow and associate it to a List, or a List Workflow and add an Approval Task to it.
If I create a Reusable Approval Workflow, when I try to use the "Set Field in Current Item" Action, I don't have any of the List Columns available (to set the Status, Assigned To, etc).
And when I create a List Workflow, I can access the columns for the list (Status, Assigned To, etc) but I can't figure out how to make the new List item go through the Approval process.
So my question is: how do I Associate a Workflow to a List, change some of the List column properties, and create an Approval Task for the Manager when a new item is created?
Am I missing something here or am I not approaching this correctly?
The easy way is just opening your site with designer and configure the approval workflow from there. You can select the list and make all the changes. I would give you a step by step guide, but some did this awesome article, so check it out http://plexhosted.com/billing/knowledgebase/226/How-to-create-a-simple-approval-workflow-in-SharePoint-Designer.html
I discovered the answer to this question on my own. It's due to the way SharePoint handles Tasks during a workflow. I was using the "Assign a Task" or "Assign a To-Do" when I needed to use COLLECT DATA FROM USER. This will return the Id of the task, which can be used later to retrieve the user's Approval or Rejection.
Did you end up creating a custom workflow to do all tasks yourself?
I have also tried a List WorkFlow and a Reusable Workflow and started by copying the "Approval - SharePoint 2010" workflow as a model in both cases. The caveat then is the users are tied to completing both the task and workflow items that are created.
An approver wants to receive the email to Approve or Reject a request on a Calendar from the Approve/Reject View in SharePoint and let that be it. They do not want to track tasks on Approval.
A requestor only wants to receive an email that their request was Approved or Rejected and enter another for a different time if the initial request was rejected.

Automate Opening Multiple Calendars in Outlook

I have a situation where an office just created a couple of dozen shared meeting room calendars for all of their office meeting rooms. There are about 100 or so employees. The plan right now is to send a document around to all of them explaining how to add all of these shared calendars to their outlooks. We are running a mixed environment with some outlook 2010 and some 2007 clients and the exchange server is 2010. IS there anyway to "push" all those calendars out automatically from exchange or is there a VB script that we could run on each computer to automate the process of all 100 people adding dozens of calendars?
My recommendation is don't!
When you open your copy of Outlook, there is a pause while Outlook synchronises everything. One of the things it has to synchronise is any calendars. This can be a slooooow process particularly with busy calendars which I assume your meeting room calendars will be.
I have experienced slowdowns when utilizing more than 12 calendars in shared mode if the access is higher than reviewer. However, I have created my own workaround. Don't use direct booking. Use an auto-attendant based access.
If you want many people to be able to alter the events, then you can do so by checking out the following:
Situation: When allowing multiple people to access and send the same event, you give them access to one another's account in most cases. This is unacceptable by security standards.
The fix:
Create an equipment calendar that can be used as a Department Calendar. This is essentially the Exchange version of the corkboard calendar. Everybody can add notes and send the updates through from this calendar. How? Follow this paradigm: Everybody is a part of some grouping for security. This security grouping in AD is Universal. In Exchange you tie a Distribution list to the Security Group that's in AD. Now you can email the group. The group is the department.
The calendar you create as an equipment calendar will have some extra functions built in, right out of the box. Using a shared calendar or folder in public listing, you'd have to script it all yourself. Grant the group (not a single user) full access, and send as.
For the delegate, only the managers of the group or calendar (which could be a separate group that you set up to include a receptionist and the manager for scheduling purposes). Allow the boss to auto-book, along with the receptionist. The others do not.
Set the recurring policy and other policy settings. Let nobody book out of policy. This is not a room, it is a cork board. When people don't follow the rules, they can lose access. Grant access to the Distro group to the boss and receptionist. Then, allow them to add anybody on premises that's in the department. Now you have the calendar set up.
When they need to lock an appointment for editing, they go to the receptionist and have them book it, Sending it As their own personal ID, or go to the boss and have that person do it. If it's a team shared meeting that will be noted and continually edited by all, you have anybody book it and send as the cork-board.
Since they all have full access to the cork-board, they can edit the calendar, and since they have send as, they can send the updates to everybody. Now you just add the group as a recipient and they all get an invite. Set them up with sync, and they'll always be able to respond.
Have the responses marked read then autoredirect to the receptionist who can remove those who are busy from the attendees. Now you know who's at the meeting. Anybody can add themselves by clicking Copy to My Calendar, and they'll show up as an attendee, forwarding their response to the receptionist, who can make any other arrangements necessary. And so on.
If you make sure that the Calendar attaches the name of the booking ID to those events that are booked from outside it (receptionist and boss), they'll know which events they shouldn't delete. Want to forgo that ability? Script a change in their access to the calendar, set the Calendar itself to be able to EDIT OWN, DELETE OWN. Set all but manager and reception to Edit OWN, Delete OWN. Set Manager and reception to Owner access.
Now they can all still edit and send using the calendar, but only the manager and Receptionist can actually lock events.