Knowledge found and lost while working with Microsoft Dynamics CRM
RSS icon Home icon
  • Marketing List Manager Screencast Uploaded

    Posted on July 20th, 2010 Mitch Milam Print Print No comments

    I took a break from recording some training videos tonight to record a quick screencast of the Marketing List Manager solution I created for CRM 4.0.

    I walk you through creating workflows that use the Marketing List Manager to add and remove a Contact from a marketing list.

    You may view it here, under the Additional Downloads section.

    Customization, Dynamics CRM, Workflow
    1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
    Loading ... Loading ...
    231 views
  • Marketing List Manager Add-On Updated

    Posted on July 6th, 2010 Mitch Milam Print Print 2 comments

    I’ve updated my Add To Marketing list add-on with additional functionality and a new Name.

    New Name

    The new name is Marketing List Manager for Dynamics CRM

     

    New Functionality

    Marketing List Manager is an plug-in that allows you to both add and remove members from a marketing list – a feature that is not currently available in Microsoft Dynamics CRM 4.0.

    Read more about it here.

    Dynamics CRM, Workflow
    1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
    Loading ... Loading ...
    286 views
  • More Processing Activities using Workflow and Queues

    Posted on March 24th, 2010 Mitch Milam Print Print 1 comment

    In the previous article we discussed how to use workflow to move activities between queues.

    We noticed and issue last week related to how the users were actually processing the activities that would result in the workflow failing.

    It turns out the users were changing the value of the picklist we use to move activities between queues and also closing the activity as completed.  This caused the workflow to fire because of the change in the picklist but since the activity was already closed, the workflow failed because it tried to update a closed record.

    To prevent this occurrence from happening, we need to insert a bit of code at the beginning of the workflow to check the activity status:

    image

    So when we start the workflow, we check the status of the activity ( a fax in this case ) and if it is either Completed or Canceled, then we stop the workflow with a status of Completed.

    This will prevent the workflow from attempting to update a closed activity.

    Dynamics CRM, Workflow
    1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 4.00 out of 5)
    Loading ... Loading ...
    612 views
  • Using CRM workflow to overcome laziness, I mean, become more efficient

    Posted on January 22nd, 2010 Mitch Milam Print Print 2 comments

    CRM workflow can be used for all sorts of interesting things and can sometimes help you do your job in a surprising number of ways.

    Let’s take the following example as a “surprising” way.  I have entered some sample data, but after I entered the data, I realize that I really didn’t make most of the records verbose enough to be useful, as you can see from the following screen shot:

    image

    I now have two choices: Edit by hand all of the single-word records or come up with some fancy bulk editing technique to get the work done for me.

    Let’s go with option number two and see where we end up.

    What Won’t Work

    I can’t use the bulk edit feature because I want all of my records to be different.

    I also don’t want to edit them by hand, as mentioned above.

    Finally, I don’t want to write any code because that would be a real waste of my time.

    How about a Workflow?

    Have you ever considered using workflows for editing?  No?  Well then, let’s give it a shot.

    Step 1: Create the workflow

    This is pretty basic workflow at this point.  We have given the workflow a name and selected the entity, which is a custom entity called News.

    We’re using CRM Online so the Scope defaults to Organization.

    Finally, we will be executing this workflow manually so we want to clear all of the check boxes except for On demand.

    image

    Step 2: Add a workflow step

    Now we need to add an Update step to our workflow.  In this step, we will be updating both the Headline attribute and the Body attribute, as you can see below:

    image

    If you look closely at what we’re updating we are adding new text into each field then we are adding the field to itself.  Huh?  Will that work?  You bet.

    Here is what is happening ( using the Headline attribute as an example ).  We are actually performing the following calculation:

    “This is important news headline number “

    +

    [the existing contents of Headline]

    Which results in something like:

    This is important news headline number one.

    We then perform a similar calculation on the Body attribute.

    After publishing our workflow, we can put it to use.

    Step 3: Executing the workflow

    After returning to our News View, we need to select all of the News records that need to be updated.  When you click run workflow button, the following dialog will appear:

    image

    You need to click OK to select the workflow then OK again to run actually it.

    Step 4: Viewing our results

    After waiting a short amount of time for the workflows to execute, we can then refresh the News view and see the results of our handiwork:

    image

    Is that not cool or what?

    Conclusion

    So what did you think?  Does that open up your eyes a little as to the possibility of using workflow to edit data?

    And how long did it take?  Less than two minutes. And that is with me taking screen shots and pasting them into Windows Live Writer so I could write this article.  Since it was only two fields, I could have actually done the whole thing in less than a minute if I was really trying.

    Good luck with your own workflow efforts.

    Dynamics CRM, Workflow
    1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
    Loading ... Loading ...
    742 views
  • Using Workflow to Create Marketing Lists

    Posted on January 19th, 2010 Mitch Milam Print Print 4 comments

    One of the more obscure facts when working with the CRM 4.0 workflow engine is the ability to actually create a marketing list.  Actually, you can create records for almost any entity, but I always found it interesting that Marketing Lists were on that list.

    So why would this be useful and how would you use it?

    That’s the question I have been asking myself for quite some time and to be quite honest, I really didn’t have an answer until a couple of weeks ago.  Here’s what I’m doing:

    The Scenario

    I am starting a new venture which involves providing Internet-based training for CRM users.  The training will be broken down into courses and lessons – pretty standard stuff.

    I decided that I would like to have a marketing list for each course so that I could communicate with each person who had purchased the course.

    The Solution

    Create a workflow that will automatically create the Marketing List when a new Course is created.  Here’s what the main workflow screen looks like:

    image

    The workflow needs to fire when the Course is created.  I also added On demand so that I could start the workflow manually.

    There is only one workflow step involved, which is the actual creation of the Marketing List record, and I’ve supplied the following fields:

    image

    The name is the Title from the Course.  The Member Type is Contact, since all of my users are Contacts. And finally, the Purpose is just a summary of reason for the Marketing List exists.

    Conclusion

    While it has always been easy to create new records using CRM workflow, I think the use of automatically created Marketing Lists is pretty unique and I hope this inspires you to rethink the use of CRM workflows.

    Finally, you are probably wondering how members of the Marketing List are maintained.  This is pretty simple: When you purchase a course, the code-behind the web site automatically adds you to the Marketing List for the specified course. This means there is zero used-intervention in this entire process.

    Dynamics CRM, Workflow
    1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
    Loading ... Loading ...
    941 views
  • Automating Task Notification

    Posted on November 2nd, 2009 Mitch Milam Print Print No comments

    If you have ever assigned a task to someone and wondered when or if they completed it, this workflow process may help.

    This workflow is based the Task activity, but you can perform the same process on other activities as well.

    The workflow will execute when the record’s status changes.

    Here is a quick picture of how it is configured.

    image

    Our first check is to see if the Task was closed with either a Completed or Canceled status.

    If so, then we check the owner.  Is it the same person who created it?  If not, then we will send an email to the creator of the Task, using the following email:

    image

    When published, the workflow will generate an email that looks like this:

    image

    Customization, Dynamics CRM, Workflow
    1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
    Loading ... Loading ...
    357 views
  • Processing Activities using Workflow and Queues

    Posted on August 13th, 2009 Mitch Milam Print Print 1 comment

    One of my customers has a fairly interesting process that I thought I would share with you.

    They move activities from one department to another by setting a Current Stage field to indicate the current state of the work being performed on the activity.  It looks something like this:

    image

     

    Routing Activities to Queues

    On of the rather interesting things about the CRM 4.0 workflow process is that you can actually route activities to a queue by simply assigning the activity to the desired queue.  I use that technique in the following workflow:

    workflow1

    This workflow works using the following criteria:

    • When an email is created
    • When the attribute Current Stage is modified

    The workflow will review the value of the Current Stage attribute then assign the email to the appropriate queue.

    Note: To make things easier for the user and administrator, we make the Current Stage picklist values and the names of the queues the same.

    For each activity type that you need this process performed on, you’ll need to add the Current Stage attribute to the form, then create a corresponding workflow rule to handle the routing.

     

    Conclusion

    While this solution may not seem like much at first, it does showcase the power of the CRM 4.0 workflow process and can save small amounts of time that add up to big overall savings.

    Customization, Dynamics CRM, Workflow
    1 Star2 Stars3 Stars4 Stars5 Stars (3 votes, average: 4.67 out of 5)
    Loading ... Loading ...
    907 views
  • Enhancing CRM 4: Workflows vs. Plugins

    Posted on June 4th, 2008 Mitch Milam Print Print 7 comments

    Back in the dark ages, like with CRM 3.0, we were often faced with writing .NET code to provide certain enhanced data manipulation capabilities as either Callouts or Workflow Assemblies.  CRM 4.0 totally changes that mind set – and as a solution developer, you really need to keep that in mind before you jump off into the depths of Visual Studio and the CRM SDK.

    An Example

    To illustrate my point, let's take the PostInvoicePlugin example from the CRM SDK ( v4.0.5 ).

    Note: this example is found in the SDK folder: sdkserverfullsamplepluginpostinvoice

    The purpose of this sample code is to show you how to update a custom field on the Account record whenever a user closes out an Invoice as Paid.  The plugin checks the state of the Invoice, and if Paid, it will update the value of a custom field on Account, using the following code:

    // If the Total Invoiced exists, update it... otherwise set it
    if (parentAccount.Properties.Contains("new_totalinvoiced"))
    {
        ((CrmMoney)parentAccount.Properties["new_totalinvoiced"]).Value += totalAmount;
    }
    else
    {
        parentAccount.Properties.Add(new CrmMoneyProperty("new_totalinvoiced",
                                     new CrmMoney(totalAmount)));
    }
    

    Pretty cool, huh?

     

    An Alternative

    If you haven't spent much time reviewing CRM 4.0 workflows, you should.  You can perform some amazing things without ever writing code.  Let's perform the exact same steps using CRM 4.0 workflow.

    First, we create a workflow based on the Invoice Entity that has the following properties:

    image

    Step 1:

    Create a Check Condition using the following information:

    image

    Step 2:

    Add and Update Record step, on the Related Entity Customer (Account):

    image

    Step 3:

    Click the Set Properties button, then set the Total Invoiced Attribute to the following:

    image 

    Note: Total Invoiced is a custom Money Field.

    By using the Increment by Operator, we are able to increment any existing Total Invoiced amount by the amount found in the Invoice's Total Amount field.

    Final Step:

    Save and Publish this workflow.

    Conclusion:

    So, is there a difference between these techniques?  Not really.  Both accomplish the job in a very similar manner but the Workflow solution requires zero code maintenance and a normal user or administrator can create the workflow.

    The biggest difference between the two techniques is in the timing of the actual update. Plugins can be executed either Synchronously or Asynchronously.   Workflows function in an asynchronous manner.

    The Synchronous operation will modify the data stream as it is being saved to the database, which can introduce a delay in the user's experience, but will provide results back to the user in a quicker fashion.

    Asynchronous operations will happen shortly after the data has been saved which will not impact the user, but which may result in a slight delay between the time the user saved the record and when the value will be updated.

    If you can live with the time delay, I feel that workflow is the way to go, in most cases.  If you can't, then download the SDK and start working through their examples.

    Customization, Development, Dynamics CRM, Workflow
    1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 4.00 out of 5)
    Loading ... Loading ...
    11,765 views
  • CRM 4.0 Workflow: Adding a timestamp to a field

    Posted on May 22nd, 2008 Mitch Milam Print Print No comments

    One of my current projects required that we have, more or less, an audit log for completion of tasks.  This can be easily accomplished using a CRM 4.0 workflow, using the following variables:

    image

    When the workflow is run, it will produce the following results:

    image 

    In this particular case, we are actually creating a task, then setting the Task Status to Completed so that it gets placed in the history for the record.

    Dynamics CRM, Workflow
    1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 4.00 out of 5)
    Loading ... Loading ...
    1,691 views
  • Guest article on CRM Team blog. 2/6/2008

    Posted on February 6th, 2008 Mitch Milam Print Print No comments

    I have an article on the CRM Team Blog describing how to automate the sending of a welcome email to new CRM users using CRM 4.0 workflow.

    Dynamics CRM, Workflow
    1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 3.00 out of 5)
    Loading ... Loading ...
    2,391 views