Add Outlook Toolbar Buttons to send Letters and E-mail to Business Contacts


Below are two macros to send e-mail or letters your Business Contacts.  Running these macros opens a new Marketing Campaign with all the fields filled out.  Click “Launch” on the Marketing Campaign form to open the letter or e-mail in Word, then click “Mailings | Finish and Merge” in the Word Ribbon.

To create these buttons on your Outlook toolbar:
1.) Verify that your security settings will prompt you to run unsigned macros by selecting “Tools | Trust Center…” from the main Outlook window.  Then click “Macro Security” and select “Warnings for all macros” and click “OK”
2.) Create a Macro from the main Outlook window by selecting “Tools | Macro | Macros…”
3.) Type “Email” as the Macro Name, then click “Create”
4.) The Visual Basic editing window will open.  On the left-hand side is a project navigation pane.  Right-click on the top-level item named “Project1” and select “Project1 Properties…”
5.) Change “Project1” to “Business” and click “OK”
6.) In the main code area, you’ll see “Sub Email()”, followed by “End Sub”.  Replace those two lines with the VBA code below, then click Save.
7.) Close the Visual Basic window to return to Outlook
8.) Right-click on the Outlook toolbar and click “Customize…”
9.) Select the “Commands” tab, select the “Macro” from the Categories list, then drag “Business.Letter” and “Business.Email” to the standard Outlook toolbar and click “Close” on the “Customize” dialog.
10.) Select a business contact or account, then click the “Business.Email” button.

‘//////////////////////////////////////////////////////////////////////////
‘ Create a New Business E-mail for selected Business Contact(s) or Contacts
‘ linked to the selected Account(s), Opportunity(s), or Busines Project(s)
Sub Email()
    ‘ E-MAIL TEMPLATE: If you use an e-mail template, enter its path here
    Const emailFilePath = “C:\E-mail Thank You.docx”
    OpenCampaign True, emailFilePath
End Sub


‘ Create a New Business Letter for selected Business Contact(s) or Contacts
‘ linked to the selected Account(s), Opportunity(s), or Busines Project(s)
Sub Letter()
    ‘ LETTER TEMPLATE: If you use a letter template, enter its path here
    Const letterFilePath = “C:\Thank You.docx”
    OpenCampaign False, letterFilePath
End Sub


‘ Open a new Marketing Campaign with the appropriate settings
Sub OpenCampaign(Email As Boolean, contentFilePath As String)
   
    ‘ Get a reference to the MAPI namespace
    Dim objNS As Outlook.NameSpace
    Set objNS = Application.GetNamespace(“MAPI”)


    ‘ Make sure at least one item is selected
    If Application.ActiveExplorer Is Nothing Then
        MsgBox “Please select at least one item”
        Exit Sub
    End If
    If Application.ActiveExplorer.selection Is Nothing Then
        MsgBox “Please select at least one item”
        Exit Sub
    End If


    ‘ Get a reference to the currently selected item
    Dim oItem As Object
    Set oItem = Application.ActiveExplorer.selection(1)
    If oItem Is Nothing Then
        MsgBox “Please select at least one item”
        Exit Sub
    End If
   
    ‘ Get a reference to the currently selected Outlook folder
    Dim currentFolder As Outlook.Folder
    Set currentFolder = Application.ActiveExplorer.currentFolder
    If currentFolder Is Nothing Then
        MsgBox “Please select at least one item”
        Exit Sub
    End If
   
    ‘ Verify that this folder is located in the Business Contact
    ‘ Manager Outlook Store
    If 1 <> InStr(1, currentFolder.FullFolderPath, _
       “\\Business Contact Manager\”, vbTextCompare) Then
        MsgBox “Please select at least one Business Contact, Account, ” & _
                “Opportunity, or Business Project”
        Exit Sub
    End If
   
    ‘ Get the root BCM folder
    Dim olFolders As Outlook.Folders
    Dim bcmRootFolder As Outlook.Folder
    Set olFolders = objNS.Session.Folders
    If olFolders Is Nothing Then
        MsgBox “Unable to get the list of Outlook Session folders”
        Exit Sub
    End If
    Set bcmRootFolder = olFolders(“Business Contact Manager”)


    ‘ Get an XML recipient list
    Dim strRecipientXML As String
    strRecipientXML = _
        GetRecipientXML(objNS, _
                        Application.ActiveExplorer.selection, _
                        bcmRootFolder)
    If Trim(strRecipientXML) = “” Then
        MsgBox “Please select at least one Business Contact, Account, ” & _
                “Opportunity, or Business Project”
        Exit Sub
    End If
   
    ‘ Locate the Marketing Campaigns folder
    Dim marketingCampaignFolder As Outlook.Folder
    Set marketingCampaignFolder = _
        bcmRootFolder.Folders(“Marketing Campaigns”)


    ‘ Create a new Marketing Campaign
    Const MarketingCampaignMessageClass = “IPM.Task.BCM.Campaign”
    Dim newMarketingCampaign As Outlook.TaskItem
    Set newMarketingCampaign = _
        marketingCampaignFolder.Items.Add(MarketingCampaignMessageClass)
   
    ‘ Campaign Code
    Dim campaignCode As Outlook.userProperty
    Set campaignCode = newMarketingCampaign.ItemProperties(“Campaign Code”)
    If campaignCode Is Nothing Then
        Set campaignCode = _
            newMarketingCampaign.ItemProperties.Add(“Campaign Code”, _
                                        olText, False, False)
    End If
    campaignCode.value = CStr(Now())
   
    ‘ Campaign Type
    Dim campaignType As Outlook.userProperty
    Set campaignType = _
        newMarketingCampaign.ItemProperties(“Campaign Type”)
    If campaignType Is Nothing Then
        Set campaignType = _
            newMarketingCampaign.ItemProperties.Add(“Campaign Type”, _
                                        olText, False, False)
    End If
   
    ‘ Delivery Method
    Dim deliveryMethod As Outlook.userProperty
    Set deliveryMethod = _
        newMarketingCampaign.ItemProperties(“Delivery Method”)
    If deliveryMethod Is Nothing Then
        Set deliveryMethod = _
            newMarketingCampaign.ItemProperties.Add(“Delivery Method”, _
                                        olText, False, False)
    End If
   
    ‘ See if this is an e-mail or print letter
    Dim title As String
    If Email Then
        title = “E-mail to “
        campaignType.value = “E-mail”
        deliveryMethod.value = “Word E-Mail Merge”
    Else
        title = “Letter to “
        campaignType.value = “Direct Mail Print”
        deliveryMethod.value = “Word Mail Merge”
    End If
   
    ‘ Marketing Campaign Title
    Select Case oItem.MessageClass
        Case “IPM.Contact.BCM.Contact”:
            title = title & oItem.FullName
        Case “IPM.Contact.BCM.Account”:
            title = title & oItem.FullName
        Case “IPM.Task.BCM.Opportunity”:
            title = title & oItem.subject
        Case “IPM.Task.BCM.Project”
            title = title & oItem.subject
    End Select
   
    newMarketingCampaign.subject = title
   
    ‘ Content File
    Dim contentFile As Outlook.userProperty
    Set contentFile = newMarketingCampaign.ItemProperties(“Content File”)
    If contentFile Is Nothing Then
        Set contentFile = _
            newMarketingCampaign.ItemProperties.Add(“Content File”, _
                                        olText, False, False)
    End If
    contentFile.value = contentFilePath
   
    ‘ FormQuerySelection
    Dim formQuerySelection As Outlook.userProperty
    Set formQuerySelection = _
        newMarketingCampaign.ItemProperties(“FormQuerySelection”)
    If formQuerySelection Is Nothing Then
        Set formQuerySelection = _
            newMarketingCampaign.ItemProperties.Add(“FormQuerySelection”, _
                                        olInteger, False, False)
    End If
    formQuerySelection.value = 9 ‘ Custom Query


    ‘ Recipient List XML
    Dim recipientListXML As Outlook.userProperty
    Set recipientListXML = _
        newMarketingCampaign.ItemProperties(“Recipient List XML”)
    If recipientListXML Is Nothing Then
        Set recipientListXML = _
            newMarketingCampaign.ItemProperties.Add(“Recipient List XML”, _
                                        olText, False, False)
    End If
     
    ‘ Set the Recipient List XML
    recipientListXML.value = strRecipientXML


    ‘ Save the marketing campaign
    newMarketingCampaign.Save


    ‘ Launch the new marketing campaign
    newMarketingCampaign.Display (False)
   
    Set recipientListXML = Nothing
    Set formQuerySelection = Nothing
    Set deliveryMethod = Nothing
    Set contentFile = Nothing
    Set campaignType = Nothing
    Set campaignCode = Nothing
    Set newMarketingCampaign = Nothing
    Set marketingCampaignFolder = Nothing
    Set bcmRootFolder = Nothing
    Set olFolders = Nothing
    Set oItem = Nothing
    Set currentFolder = Nothing
    Set objNS = Nothing
End Sub


‘ Returns an XML string that specifies the recipients
Function GetRecipientXML(objNS As Outlook.NameSpace, _
                    selectionList As Outlook.selection, _
                    bcmRootFolder As Outlook.Folder) As String
    ‘ Initialize the retun value to empty string
    GetRecipientXML = “”
    ‘ Make sure we have a valid parameters
    If objNS Is Nothing Or _
       selectionList Is Nothing Or _
       bcmRootFolder Is Nothing Then
        Exit Function
    End If
   
    ‘ Build the recipient XML
    Dim strRecipientXML
    strRecipientXML = “<ArrayOfCampaignRecipient>”
       
    ‘ Add all selected items to the recipient list
    Dim oItem As Object
    Dim astrContactEntryIDs() As String
    ReDim Preserve astrContactEntryIDs(0)
    Dim contactEntryID As Variant
    Dim oParentEntryID As Object
    Dim oParent As Object
   
    For Each oItem In selectionList
        If oItem Is Nothing Then
            MsgBox “Warning: Item not found”
        Else
            ‘ Only get the EntryID if this is a Business Contact, Account,
            ‘ Opportunity, or Business Project
            Select Case oItem.MessageClass
                ‘ Business Contact
                Case “IPM.Contact.BCM.Contact”:
                    AddCampaignRecipient astrContactEntryIDs, oItem.EntryID
                ‘ Account
                Case “IPM.Contact.BCM.Account”:
                    AddCampaignRecipient astrContactEntryIDs, oItem.EntryID
                    ‘ Add Business Contacts associated with this Account
                    AddContactEnryIdsFromAccount objNS, bcmRootFolder, _
                                                 CStr(oItem.EntryID), _
                                                 astrContactEntryIDs
                ‘ Opportunity
                Case “IPM.Task.BCM.Opportunity”:
                    ‘ Get the parent item
                    Set oParentEntryID = _
                        oItem.UserProperties(“Parent Entity EntryID”)
                    If oParentEntryID Is Nothing Then
                        MsgBox (“This opportunity is not linked to a ” & _
                                “Business Contact or Account”)
                    Else
                        AddCampaignRecipient astrContactEntryIDs, _
                                             oParentEntryID.value
                        ‘ Add Business Contacts associated with Account
                        AddContactEnryIdsFromAccount objNS, _
                                bcmRootFolder, _
                                CStr(oParentEntryID.value), _
                                astrContactEntryIDs
                    End If
                ‘ Business Project
                Case “IPM.Task.BCM.Project”:
                        AddContactEntryIDsFromProject objNS, _
                            bcmRootFolder, oItem, astrContactEntryIDs
                Case Else:
                    ‘ Invalid BCM type
                    Exit Function
            End Select
        End If
    Next ‘ Add selected items
   
    ‘ Add recipients
    If astrContactEntryIDs(0) = “” Then
        ‘ Unable to find recipient
        Exit Function
    Else
        For Each contactEntryID In astrContactEntryIDs
            If contactEntryID = “” Then
               MsgBox “Warning: Contact not found”
            Else
                strRecipientXML = strRecipientXML & _
                ”  <CampaignRecipient>” & _
                ”    <EntryID>” & contactEntryID & “</EntryID>” & _
                ”  </CampaignRecipient>”
            End If
        Next
    End If
   
    ‘ Close the recipient list
    strRecipientXML = strRecipientXML & “</ArrayOfCampaignRecipient>”
       
    ‘ Example XML for an external list of leads
    Dim strExternalRecipientXML
    strExternalRecipientXML = _
        “<ArrayOfCampaignRecipient>” & _
        ”  <CampaignRecipient>” & _
        ”    <FileAs>Ashton, Chris</FileAs>” & _
        ”    <EmailAddress>cashton@contosopharm.com</EmailAddress>” & _
        ”  </CampaignRecipient>” & _
        “</ArrayOfCampaignRecipient>”
       
    Set oParent = Nothing
    Set oParentEntryID = Nothing
    Set oItem = Nothing
   
    ‘ Return the Recipient List XML
    GetRecipientXML = strRecipientXML
End Function


‘ Returns an array of Business Contact EntryID’s for the given Account
Sub AddContactEnryIdsFromAccount(objNS As Outlook.NameSpace, _
                                 bcmRootFolder As Outlook.Folder, _
                                 strAccountID As String, _
                                 astrContactIDs() As String)
    ‘ Check for a valid BCM root folder and Account EntryID
    If objNS Is Nothing Or _
       bcmRootFolder Is Nothing Or _
       Trim(strAccountID) = “” Then
        Exit Sub
    End If
   
    ‘ Ensure that this is a BCM Account
    On Error Resume Next
    Dim oItem As Object
    Set oItem = objNS.GetItemFromID(strAccountID)
    If Err.Number <> 0 Then
        Exit Sub
    End If
    If oItem Is Nothing Then
        Exit Sub
    End If
    If oItem.MessageClass <> “IPM.Contact.BCM.Account” Then
        Exit Sub
    End If
    Set oItem = Nothing
    On Error GoTo 0
   
    ‘ Locate the Business Contacts folder
    Dim businessContacts As Outlook.Folder
    Set businessContacts = _
        bcmRootFolder.Folders(“Business Contacts”)
    If businessContacts Is Nothing Or _
       businessContacts.Items Is Nothing Then
        Exit Sub
    End If
   
    ‘ Setup the filter restriction string
    Dim strRestriction As String
    strRestriction = “[Parent Entity EntryID] = ‘” & strAccountID & “‘”
    Dim accountContacts As Outlook.Items
    Set accountContacts = businessContacts.Items.Restrict(strRestriction)
    If accountContacts Is Nothing Then
        Exit Sub
    End If
   
    ‘ Add each contact to the list of Account contacts
    Dim oContact As Object
    Dim i As Integer
    For Each oContact In accountContacts
        If oContact Is Nothing Then
            MsgBox (“Invalid contact”)
        Else
            AddCampaignRecipient astrContactIDs, oContact.EntryID
        End If
    Next
    Set accountContacts = Nothing
    Set businessContacts = Nothing
End Sub


‘ Get EntryID’s for Project’s related Business Contacts and Accounts
Sub AddContactEntryIDsFromProject(objNS As Outlook.NameSpace, _
                                  bcmRootFolder As Outlook.Folder, _
                                  oProject As Outlook.TaskItem, _
                                  astrContactIDs() As String)
    ‘ Check parameters
    If objNS Is Nothing Or _
       bcmRootFolder Is Nothing Or _
       oProject Is Nothing Then
        Exit Sub
    End If
   
    ‘ Get the project’s parent item
    Dim oParentEntryID As Object
    Set oParentEntryID = oProject.UserProperties(“Parent Entity EntryID”)
    If oParentEntryID Is Nothing Then
        MsgBox (“This project is not linked to a ” & _
                “Business Contact or Account”)
        Exit Sub
    Else
        AddCampaignRecipient astrContactIDs, oParentEntryID.value
        ‘ If the parent is an Account, add its contacts too
        AddContactEnryIdsFromAccount objNS, bcmRootFolder, _
                                     oParentEntryID.value, astrContactIDs
       
    End If
   
    ‘ Get associated contacts
    Dim associatedContacts As Outlook.userProperty
    Set associatedContacts = _
        oProject.UserProperties(“Associated Contacts”)
    If (associatedContacts Is Nothing) Then
        Exit Sub
    End If
    projectContacts = associatedContacts.value
    Dim projectContactID As Variant
    Dim i As Integer
    On Error Resume Next
    For Each projectContactID In projectContacts
        If IsObject(projectContactID) Then
            MsgBox (“Invalid contact”)
        Else
            AddCampaignRecipient astrContactIDs, CStr(projectContactID)
            ‘ If the related contact is an Account, add its contacts too
            AddContactEnryIdsFromAccount objNS, bcmRootFolder, _
                                         CStr(projectContactID), _
                                         astrContactIDs
        End If
    Next
    On Error GoTo 0
    Set associatedContacts = Nothing
    Set oParentEntryID = Nothing
End Sub


‘ Add a unique campaign recipient to the given array
Sub AddCampaignRecipient(ByRef astrRecipientIDs() As String, _
                        recipientID As String)
    Dim arrFilter() As String
    ‘ Check to see if this is a duplicate recipient
    arrFilter = Filter(astrRecipientIDs, recipientID, True, vbTextCompare)
    If UBound(arrFilter) < 0 Then
        Dim i As Integer
        i = UBound(astrRecipientIDs)
        ‘ See if we need to grow the array length
        If i > 0 Or astrRecipientIDs(0) <> “” Then
            i = i + 1
            ReDim Preserve astrRecipientIDs(0 To i)
        End If
        ‘ Add this recipient to our list
        astrRecipientIDs(i) = recipientID
    End If
End Sub
‘//////////////////////////////////////////////////////////////////////////


 

Comments (31)

  1. mureren says:

    I have tryed to make that macro but it will not work

    in module 1 i get a yellow arow and this text is mark in yellow to

    "Set marketingCampaignFolder = _

           bcmRootFolder.Folders("Marketing Campaigns")"

    can it be that i have a danish version. and how do i fix it

  2. rrve says:

    delete the underscore (and all others) at the end of a line: the underscore indicates that the line had to be wrapped for print, but after pasting should be deleted to merge the entire statement on one line:

    Set marketingCampaignFolder =  bcmRootFolder.Folders("Marketing Campaigns")

  3. jwnparadise says:

    Worked great for me and it was exactly what I was looking for…one of those"how is it not possible to create a fax cover sheet from a contact?"

    Thanks again!

  4. iNET45 says:

    This is great. But.. Can you give a sample of how to grab a custom field from a form called CustomField1

    I was able to find it in the db under dbo_ContactIMAPVIEW.UserField3

    But Can you give us a sample db or sample word doc with mailmerge for custom fields??

    Mike

  5. bcmteam says:

    Good question, Mike.  This is not currently supported very well and we’re working to address this.  The workaround is to export selected contacts to a .CSV file, then use that file as the source for your mail merge.

    To do this, go to Outlook’s main window.  

    1.) On the menu, click "File | Import and Export | Business Contact Manager for Outlook…"

    2.) Choose "Export a file" and click Next

    3.) Choose "Comma Separated Values (.csv)" and click Next

    4.) Select Specific Records and complete the export

    5.) From Word’s Ribbon menu, click the Mailings tab, click the "Select Recipients" button and select "Use Existing List…"

    6.) Browse to the file exported in step 4

    7.) Select Other Encoding | Unicode (UTF-8) and click OK to convert the file

    8.) From Word’s Mailings ribbon, click Insert Merge Field and select your custom field

  6. iNET45 says:

    Will this allow me to see the custom fields?

  7. bcmteam says:

    Yes.  When you export Business Contacts to the CSV file, the custom fields are also exported.  Word mail merge will allow you to insert these fields into your document.

    Hope that helps!

  8. iNET45 says:

    Is there a way to automate an export to csv for a specific contact? Something like the above macro? If so.. That would help everyone out. We can setup our Word mail to grab from there..

    Also, is there a diagram of the BCM database out there?

    Mike

  9. iNET45 says:

    Any chance of getting a database layout.

  10. bcmteam says:

    You can use any SQL tool to view the database tables but we don’t recommend that. if you are interested in getting the names of all properties on BCM item, I would recommend using UserPropties collection on the contact item.

  11. iNET45 says:

    I am trying to write custom mail merge templates that use user defind fields and would like to know exactly where things go instead of hunting for it. Do you have any that documents the layout of the db?  When will the merge’s support custom fields? Big + for ACT and Goldmine.. BCM really needs the feature built in.

  12. bcmteam says:

    iNET45, We have heard this request from several customers.The the mail merge doesn’t support BCM custom field out of the box. This is definitely in the list of things planned for next BCM.

    If you are doing some custom work it could be possible. Regarding BCM DB layout, as I have replied earlier we don’t recommend and support direct data access through DB. So no schema is published.

    Your best shot is us use Outlook Object Model. The sample code would look something like this that prints name of all UserDefined properties. This includes all custom properties BCM adds to Outlook contact (such as Active, Area of Interest) and any custom field users add to BCM entity.

    Sub Test()

       Dim cti As ContactItem

       Dim usps As UserProperties

       Dim usp As UserProperty

       Set cti = Application.ActiveExplorer.Selection(1)

       Set usps = cti.UserProperties

       For Each usp In usps

           Debug.Print usp.Name

      Next

    End Sub

  13. Crosby says:

    I am not getting this to work, and suspect this is due to localization. On my first attempt (I have removed the underscores) I got the same error as first poster:

    Set marketingCampaignFolder =  bcmRootFolder.Folders("Marketing Campaigns")

    This folder is called "Markedsføringskampanjer" in my norwegian installation. When I pointed this line to the correct folder, I get a runtime error with the response (translated) "This Marketing Campaign cannot be saved without a campaign code"

    Any help appreciated, Im having a customer with great need for this button.

    /Crosby

  14. aj95 says:

    I got some problems with this macro in the german version. All campaign field names used in this macro are in English but I need them in German.

    For example: newMarketingCampaign.ItemProperties("Campaign Code") -> newMarketingCampaign.ItemProperties("Kampagnencode")

    Where can I find a list of the right fieldnames used in the campaign input mask?

  15. tyrwhite says:

    Why can’t emailing a business contact be as simple as emailing normal outlook contacts. Sometimes i just want to send a note to someone without running a campaign. i don’t want to have to copy their email address into a new email. i just want to press a button.

  16. tigger6 says:

    Hello aj,

    have you solve the problem with the german fieldnames?

    I have the same problem.

    Can you help me?

  17. bcmteam says:

    Hello everyone,

    Please look at the sample code and examples in the link:

    http://msdn2.microsoft.com/en-us/library/aa431857.aspx

    Let me know if you still run into issues.

    -Sateesh

  18. aj95 says:

    hi trigger6,

    here is the translation for the fieldnames:

    Marketing Campaigns = Marketingkampagnen

    Campaign Code = Kampagnencode

    Campaign Type = Kampagnentyp

    Delivery Methodb = Liefermethode

    Word E-Mail Merge = Word-Serien-E-Mail

    Direct Mail Print = Direktsendung

    Word Mail Merge = Microsoft Word-Seriendruck

    Content File = Inhaltsdatei

    Recipient List XML = XML-Empfängerliste

    search and replace them…

  19. aj95 says:

    hi bcmteam,

    if I use the letter macro in the german version and create a word template some merge fields are missing i.e. I can’t choose the title of a business contact. But the title is in a letter indispensable. any suggestions?

  20. mmcgill says:

    I have also tried to follow the directions above, but everytime I try to launch a marketing campaign it gives me an error that says "The content file specified does not exist. Please ensure the file is present before launching a marketing campaign." I have tried to delete everything and start over and I am still getting the same error. I even tried deleting the underscore at the end and this did not work either. Any help would be appreciated.

  21. bcmteam says:

    Hi mmcgill,

    Make sure the paths to in the below code point to documents on your computer.

    Sub Email()

       ‘ E-MAIL TEMPLATE: If you use an e-mail template, enter its path here

       Const emailFilePath = "C:E-mail Thank You.docx"

       OpenCampaign True, emailFilePath

    End Sub

    ‘ Create a New Business Letter for selected Business Contact(s) or Contacts

    ‘ linked to the selected Account(s), Opportunity(s), or Busines Project(s)

    Sub Letter()

       ‘ LETTER TEMPLATE: If you use a letter template, enter its path here

       Const letterFilePath = "C:Thank You.docx"

       OpenCampaign False, letterFilePath

    End Sub

  22. edprov says:

    I followed the instructions. Remove underscores and edited. the macro so the strings did not produce red error codes. When I ran the macro.  It would get stuck on the exit sub.. end if command. I have tried to delete the macros in outlook. and they keep coming back.

    Thanks    

  23. edprov says:

    I was able to run the macro. But right at the end when I serlect Launch. I get an error message that says BCM could could not complete your last transactions please try again.

    Thanks

  24. marisozz says:

    Hello,

    Whenever I try to launch a marketing campaign after selecting the users and creating or selecting the word file  (*.docx) I receive the following message:"Business Contact Manager for Outlook could not complete your last action or actions".

    I’m working with the Spanish trial version.

    I have already installed the SP1 for Outlook with BCM, I reboot the computer and the message keeps showing. I opened the log file but it seems that nothing is wrong:

    [V] [18:15:10.5000000]Iris.Mapi.MessageStore: IMSCapabilities::GetCapabilities:Enter: 0x02f04d8c

    [V] [18:15:10.5468750]Iris.Mapi.MessageStore: IMSCapabilities::GetCapabilities:Return: 0x02f04d8c, 0x00000000

    [V] [18:15:10.5937500]Iris.Mapi.MessageStore: IMSCapabilities::GetCapabilities:Enter: 0x02f04d8c

    [V] [18:15:10.5937500]Iris.Mapi.MessageStore: IMSCapabilities::GetCapabilities:Return: 0x02f04d8c, 0x00000000

    [V] [18:15:10.6562500]Iris.Mapi.MessageStore: IMSCapabilities::GetCapabilities:Enter: 0x02f04d8c

    [V] [18:15:10.6562500]Iris.Mapi.MessageStore: IMSCapabilities::GetCapabilities:Return: 0x02f04d8c, 0x00000000

    [V] [18:15:39.8281250]Microsoft.BusinessSolutions.eCRM.OutlookAddIn: moMnuHelpAboutBusinessContactManager_Click: Exit

    [V] [18:15:39.8593750]Microsoft.BusinessSolutions.eCRM.OutlookAddIn: MenuBarBase:moCommandBarsEvents_OnUpdate: Enter

    [V] [18:15:39.8593750]Microsoft.BusinessSolutions.eCRM.OutlookAddIn: MenuBarBase:moCommandBarsEvents_OnUpdate: Exit

    [V] [18:15:39.9687500]Microsoft.BusinessSolutions.eCRM.OutlookAddIn: MenuBarBase:moCommandBarsEvents_OnUpdate: Enter

    [V] [18:15:39.9687500]Microsoft.BusinessSolutions.eCRM.OutlookAddIn: MenuBarBase:moCommandBarsEvents_OnUpdate: Exit

    [V] [18:15:42.1250000]Microsoft.BusinessSolutions.eCRM.OutlookAddIn: MenuBarBase:moCommandBarsEvents_OnUpdate: Enter

    [V] [18:15:42.1250000]Microsoft.BusinessSolutions.eCRM.OutlookAddIn: MenuBarBase:moCommandBarsEvents_OnUpdate: Exit

    [V] [18:15:42.3281250]Microsoft.BusinessSolutions.eCRM.OutlookAddIn: MenuBarBase:moCommandBarsEvents_OnUpdate: Enter

    [V] [18:15:42.3281250]Microsoft.BusinessSolutions.eCRM.OutlookAddIn: MenuBarBase:moCommandBarsEvents_OnUpdate: Exit

    [V] [18:15:42.4375000]Microsoft.BusinessSolutions.eCRM.OutlookAddIn: MenuBarBase:moCommandBarsEvents_OnUpdate: Enter

    [V] [18:15:42.4375000]Microsoft.BusinessSolutions.eCRM.OutlookAddIn: MenuBarBase:moCommandBarsEvents_OnUpdate: Exit

    [V] [18:15:43.9687500]Microsoft.BusinessSolutions.eCRM.OutlookAddIn: MenuBarBase:moCommandBarsEvents_OnUpdate: Enter

    [V] [18:15:43.9687500]Microsoft.BusinessSolutions.eCRM.OutlookAddIn: MenuBarBase:moCommandBarsEvents_OnUpdate: Exit

    [V] [18:15:44.3125000]Microsoft.BusinessSolutions.eCRM.OutlookAddIn: ExplorerWrapper:moExplorer_Close: Enter

    [V] [18:15:44.8906250]Microsoft.BusinessSolutions.eCRM.DataSync: OfflineManager.StopPollingForSharedDBConnectivity: Entry

    [V] [18:15:44.8906250]Microsoft.BusinessSolutions.eCRM.DataSync: OfflineManager.StopPollingForSharedDBConnectivity: Exit

    [V] [18:15:45.0937500]Microsoft.BusinessSolutions.eCRM.OutlookAddIn: ExplorerWrapper:moExplorer_Close: Exit

    [V] [18:15:45.6562500]Iris.Mapi.MessageStore: IMAPITable::Unadvise:Enter: 0x02effd90

    [V] [18:15:45.6718750]Iris.Mapi.MessageStore: MAPITable::Unadvise:Return: 0x02effd90, 0x00000000

    I’m getting really desperate because I have looked up in other blogs but no one seems to have the answer. My client wanted to purchase this tool but after all the problems we have had to get BCM installed we are considering to choose a different software. Could you please give us a hand. We would really appreciate any help.

    Marisol

  25. marisozz says:

    Hello,

    Whenever I try to launch a marketing campaign after selecting the users and creating or selecting the word file  (*.docx) I receive the following message:"Business Contact Manager for Outlook could not complete your last action or actions".

    I’m working with the Spanish trial version, Windows XP and selecting only 3 contacts for my email list.

    I have already installed the SP1 for Outlook with BCM, I reboot the computer and the message keeps showing. I opened the log file but it seems that nothing is wrong:

    [V] [18:15:10.5000000]Iris.Mapi.MessageStore: IMSCapabilities::GetCapabilities:Enter: 0x02f04d8c

    [V] [18:15:10.5468750]Iris.Mapi.MessageStore: IMSCapabilities::GetCapabilities:Return: 0x02f04d8c, 0x00000000

    [V] [18:15:10.5937500]Iris.Mapi.MessageStore: IMSCapabilities::GetCapabilities:Enter: 0x02f04d8c

    [V] [18:15:10.5937500]Iris.Mapi.MessageStore: IMSCapabilities::GetCapabilities:Return: 0x02f04d8c, 0x00000000

    [V] [18:15:10.6562500]Iris.Mapi.MessageStore: IMSCapabilities::GetCapabilities:Enter: 0x02f04d8c

    [V] [18:15:10.6562500]Iris.Mapi.MessageStore: IMSCapabilities::GetCapabilities:Return: 0x02f04d8c, 0x00000000

    [V] [18:15:39.8281250]Microsoft.BusinessSolutions.eCRM.OutlookAddIn: moMnuHelpAboutBusinessContactManager_Click: Exit

    [V] [18:15:39.8593750]Microsoft.BusinessSolutions.eCRM.OutlookAddIn: MenuBarBase:moCommandBarsEvents_OnUpdate: Enter

    [V] [18:15:39.8593750]Microsoft.BusinessSolutions.eCRM.OutlookAddIn: MenuBarBase:moCommandBarsEvents_OnUpdate: Exit

    [V] [18:15:39.9687500]Microsoft.BusinessSolutions.eCRM.OutlookAddIn: MenuBarBase:moCommandBarsEvents_OnUpdate: Enter

    [V] [18:15:39.9687500]Microsoft.BusinessSolutions.eCRM.OutlookAddIn: MenuBarBase:moCommandBarsEvents_OnUpdate: Exit

    [V] [18:15:42.1250000]Microsoft.BusinessSolutions.eCRM.OutlookAddIn: MenuBarBase:moCommandBarsEvents_OnUpdate: Enter

    [V] [18:15:42.1250000]Microsoft.BusinessSolutions.eCRM.OutlookAddIn: MenuBarBase:moCommandBarsEvents_OnUpdate: Exit

    [V] [18:15:42.3281250]Microsoft.BusinessSolutions.eCRM.OutlookAddIn: MenuBarBase:moCommandBarsEvents_OnUpdate: Enter

    [V] [18:15:42.3281250]Microsoft.BusinessSolutions.eCRM.OutlookAddIn: MenuBarBase:moCommandBarsEvents_OnUpdate: Exit

    [V] [18:15:42.4375000]Microsoft.BusinessSolutions.eCRM.OutlookAddIn: MenuBarBase:moCommandBarsEvents_OnUpdate: Enter

    [V] [18:15:42.4375000]Microsoft.BusinessSolutions.eCRM.OutlookAddIn: MenuBarBase:moCommandBarsEvents_OnUpdate: Exit

    [V] [18:15:43.9687500]Microsoft.BusinessSolutions.eCRM.OutlookAddIn: MenuBarBase:moCommandBarsEvents_OnUpdate: Enter

    [V] [18:15:43.9687500]Microsoft.BusinessSolutions.eCRM.OutlookAddIn: MenuBarBase:moCommandBarsEvents_OnUpdate: Exit

    [V] [18:15:44.3125000]Microsoft.BusinessSolutions.eCRM.OutlookAddIn: ExplorerWrapper:moExplorer_Close: Enter

    [V] [18:15:44.8906250]Microsoft.BusinessSolutions.eCRM.DataSync: OfflineManager.StopPollingForSharedDBConnectivity: Entry

    [V] [18:15:44.8906250]Microsoft.BusinessSolutions.eCRM.DataSync: OfflineManager.StopPollingForSharedDBConnectivity: Exit

    [V] [18:15:45.0937500]Microsoft.BusinessSolutions.eCRM.OutlookAddIn: ExplorerWrapper:moExplorer_Close: Exit

    [V] [18:15:45.6562500]Iris.Mapi.MessageStore: IMAPITable::Unadvise:Enter: 0x02effd90

    [V] [18:15:45.6718750]Iris.Mapi.MessageStore: MAPITable::Unadvise:Return: 0x02effd90, 0x00000000

    I’m getting really desperate because I have looked up in other blogs but no one seems to have the answer. My client wanted to purchase this tool but after all the problems we have had to get BCM installed we are considering to choose a different software. Could you please give us a hand. We would really appreciate any help.

    Marisol

  26. ToniBaloni says:

    Why cant i launch marketing campaigns? All my options and functions for this one, final action to send it are shaded (disabled). Why is that? Does it have to do with email credits? I have never used a single one…

    Thanks for your help.

  27. aacinc@aol.com says:

    Hi!

    We have some data that we need to capture on a contact and would like the information Masked or hidden after entry. Is there a way for us to get to the screen and set the field so it is masked? It is a user defined field. Or do we have to locate the field in the database and do something with it there?

    Thanks.

  28. gabainbridge says:

    When typing a letter to a contact is there anyway to import their address details into the letter rather than lookin them up and doing a copy paste. Is there a write letter to contact function. I have read the above comments but as they are quite old wondered if things had moved on?

  29. Natalie Kee says:

    I assume this macro will not work for Outlook 2010? What to do?…

  30. Natalie Kee says:

    I assume this macro will not work for Outlook 2010? What to do?…

  31. Jerry says:

    Hi Natalie Kee,

    It's not needed in 2010.  Just select your contacts / accounts /or clone types and hit the mail merge button in the Communicate tab of the ribbon.  This will start the outlook mail merge flow with your bcm contacts/accounts/clone items selected.

    –Jerry [MSFT]