{"id":2591,"date":"2012-08-31T06:52:03","date_gmt":"2012-08-31T06:52:03","guid":{"rendered":"http:\/\/www.greytrix.com\/blogs\/sagecrm\/?p=2591"},"modified":"2012-08-31T06:52:03","modified_gmt":"2012-08-31T06:52:03","slug":"adding-document-filing-and-mail-merge-functionality-to-custom-entities","status":"publish","type":"post","link":"https:\/\/www.greytrix.com\/blogs\/sagecrm\/2012\/08\/31\/adding-document-filing-and-mail-merge-functionality-to-custom-entities\/","title":{"rendered":"Adding Document Filing and Mail Merge functionality to Custom Entities"},"content":{"rendered":"<p>SP2 patch for sage CRM version 7.2 comes with lots of functionalities we have been waiting for quite a long time. There are lots of enhancements done on document merging and filing functionality. Now the mail merge process is cross-browser compatible, which means you can now perform document merging with Sage CRM entities on browsers like Mozilla Firefox, Google Chrome, or Apple Safari etc. By using the merging feature we can create the predefined rich content templates to generate the letters on the fly.<br \/>\nThe cool thing about this is this feature can also be implemented for the custom entities we generate as a part of day to day customization work. We have to select \u201cHas Communications\u201d and \u2018Has Library\u2019 while creating a these entities as a prerequisite to have document and mail merge feature against them. Once you have these set you can follow below given steps to implement these features on your custom entity.<\/p>\n<ol>\n<li>Create the Mail Merge View for the Custom Entity as below:<\/li>\n<\/ol>\n<p>\u00a0a)\u00a0\u00a0\u00a0\u00a0\u00a0 Go to the <strong>Administration<\/strong><strong> | <\/strong><strong>Customization<\/strong><strong> | <\/strong><strong>Entity<\/strong><strong> | <\/strong><strong>Views<\/strong><strong> | <\/strong><strong>New View.<\/strong><br \/>\n<em>CREATE VIEW vMailMergeJob <\/em><em><br \/>\nAS<br \/>\nSELECT * FROM Job LEFT JOIN Company ON job_CompanyId = Comp_CompanyId LEFT JOIN Person ON job_PersonId = Pers_PersonId LEFT JOIN Opportunity ON job_opportunityId = Oppo_OpportunityId LEFT JOIN Orders ON job_OrderId = Orde_OrderQuoteId LEFT JOIN Quotes ON job_QuoteId = Quot_OrderQuoteId LEFT JOIN Lead ON job_LeadId = Lead_LeadId LEFT JOIN Cases ON job_CaseId = Case_CaseId WHERE job_Deleted IS NULL<\/em><br \/>\n<strong>Note:<\/strong> In the above view add your custom entity name instead of \u201c<strong>Job<\/strong>\u201d<br \/>\nb)\u00a0\u00a0\u00a0\u00a0\u00a0 Click on \u201c<strong>Save<\/strong>\u201d button.<br \/>\nc)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Perform Metadata refresh.<br \/>\nAs I said you need to have those checkboxes checked, there is a page Library.asp already generated for an entity.\u00a0 Some script needs to be added to that page as follows.<br \/>\n&lt;!&#8211; #include file =&#8221;..\\crmwizard.js&#8221; &#8211;&gt;<br \/>\n&lt;!&#8211; #include file =&#8221;..\\crmconst.js&#8221; &#8211;&gt;<br \/>\n&lt;%<br \/>\ntry<br \/>\n{<br \/>\n\u00a0\/\/&#8217;Initilization<br \/>\n\u00a0var sURL=new String( Request.ServerVariables(&#8220;URL&#8221;)() + &#8220;?&#8221; + Request.QueryString );<br \/>\n\u00a0var PersonKey = &#8221;;<br \/>\n\u00a0var CompanyKey = &#8221;;<br \/>\n\u00a0var OpportinityKey = &#8221;;<br \/>\n\u00a0var HasCommunication = &#8221;;<br \/>\n\u00a0var sLibraryId=&#8221;0&#8243;;<br \/>\n\u00a0var sCompanyId=&#8221;0&#8243;;<br \/>\n\u00a0var sPersonId=&#8221;0&#8243;;<br \/>\n\u00a0var sOpportinityId=&#8221;0&#8243;;<br \/>\n\u00a0var sUserAgent=&#8221;&#8221;;<br \/>\n\u00a0var sBrowserId =&#8221;&#8221;;<br \/>\n\u00a0<br \/>\n\u00a0\/\/&#8217;Get the value<br \/>\n\u00a0sUserAgent = new String(Request.ServerVariables(&#8220;HTTP_USER_AGENT&#8221;));<br \/>\n\u00a0if(sUserAgent==&#8221;&#8221; || sUserAgent==&#8221;null&#8221; || sUserAgent==&#8221;Undefined&#8221;)sUserAgent=&#8221;&#8221;;<br \/>\n\u00a0<br \/>\n\u00a0if(sUserAgent!=&#8221;&#8221;)<br \/>\n\u00a0\u00a0 sBrowserId = sUserAgent.indexOf(&#8220;MSIE&#8221;);<br \/>\n\u00a0\/\/&#8217;Get the container<br \/>\n\u00a0Container=CRM.GetBlock(&#8220;container&#8221;);<br \/>\n\u00a0List=CRM.GetBlock(&#8220;LibraryList&#8221;);<br \/>\n\u00a0List.prevURL=sURL;<br \/>\n\u00a0\/\/&#8217;Get the library id<br \/>\n\u00a0sLibraryId = new String(Request.Querystring(&#8220;job_JobID&#8221;));<br \/>\n\u00a0if(sLibraryId==&#8221;&#8221; || sLibraryId==&#8221;null&#8221; || sLibraryId==&#8221;Undefined&#8221;)<br \/>\n\u00a0{<br \/>\n\u00a0\u00a0sLibraryId = new String(Request.Querystring(&#8220;Key58&#8243;));<br \/>\n\u00a0\u00a0if(sLibraryId==&#8221;&#8221; || sLibraryId==&#8221;null&#8221; || sLibraryId==&#8221;Undefined&#8221;)sLibraryId=&#8221;0&#8243;;<br \/>\n\u00a0}<br \/>\n\u00a0\/\/&#8217;To set the context of library<br \/>\n\u00a0CRM.SetContext(&#8220;Job&#8221;, sLibraryId);<br \/>\n\u00a0if (sLibraryId!= &#8220;0&#8221; &amp;&amp; ( true || true || true) )<br \/>\n\u00a0{<br \/>\n\u00a0\u00a0\/\/&#8217;Get the current library record<br \/>\n\u00a0\u00a0sLibraryRecord = CRM.FindRecord(&#8220;Job&#8221;, &#8220;job_JobID=&#8221; + sLibraryId);<br \/>\n\u00a0\u00a0\/\/&#8217;get the current company id for the Job<br \/>\n\u00a0\u00a0if(true)\u00a0<br \/>\n\u00a0\u00a0{<br \/>\n\u00a0\u00a0\u00a0sCompanyId = new String(&#8220;&amp;Key&#8221; + iKey_CompanyId + &#8220;=&#8221; + sLibraryRecord.Item(&#8220;job_CompanyId&#8221;));\u00a0<br \/>\n\u00a0\u00a0\u00a0if(sCompanyId==&#8221;&#8221; || sCompanyId==&#8221;null&#8221; || sCompanyId==&#8221;Undefined&#8221;)sCompanyId=&#8221;0&#8243;;<br \/>\n\u00a0\u00a0}<br \/>\n\u00a0\u00a0<br \/>\n\u00a0\u00a0\/\/&#8217;get the current person id for the Job<br \/>\n\u00a0\u00a0if(true)\u00a0<br \/>\n\u00a0\u00a0{<br \/>\n\u00a0\u00a0\u00a0sPersonId = new String(&#8220;&amp;Key&#8221; + iKey_PersonId + &#8220;=&#8221; + sLibraryRecord.Item(&#8220;job_PersonId&#8221;));<br \/>\n\u00a0\u00a0\u00a0if(sPersonId==&#8221;&#8221; || sPersonId==&#8221;null&#8221; || sPersonId==&#8221;Undefined&#8221;)sPersonId=&#8221;0&#8243;;\u00a0<br \/>\n\u00a0\u00a0}<br \/>\n\u00a0\u00a0\/\/&#8217;get the current opportunity id for the Job<br \/>\n\u00a0\u00a0if(true)\u00a0<br \/>\n\u00a0\u00a0{<br \/>\n\u00a0\u00a0\u00a0sOpportinityId = new String(&#8220;&amp;Key&#8221; + iKey_OpportunityId + &#8220;=&#8221; + sLibraryRecord.Item(&#8220;job_OpportunityId&#8221;));<br \/>\n\u00a0\u00a0\u00a0if(sOpportinityId==&#8221;&#8221; || sOpportinityId==&#8221;null&#8221; || sOpportinityId==&#8221;Undefined&#8221;)sOpportinityId=&#8221;0&#8243;;\u00a0<br \/>\n\u00a0\u00a0}<br \/>\n\u00a0}<br \/>\n\u00a0if(true)<br \/>\n\u00a0{<br \/>\n\u00a0\u00a0\u00a0 HasCommunication = &#8220;&amp;MakeCommunicationYN=Y&#8221;;<br \/>\n\u00a0}<br \/>\n\u00a0Container.AddBlock(List);<br \/>\n\u00a0<br \/>\n\u00a0\/*<br \/>\n\u00a0\/\/&#8217;for adding the button<br \/>\n\u00a0Container.AddButton(CRM.Button(&#8220;New&#8221;, &#8220;new.gif&#8221;, CRM.URL(343)+&#8221;&amp;Key-1=&#8221;+iKey_CustomEntity+sPersonId+sCompanyId+sOpportinityId+HasCommunication+&#8221;&amp;PrevCustomURL=&#8221;+List.prevURL+&#8221;&amp;E=Job&#8221;));<br \/>\n\u00a0Container.DisplayButton(1)=false;<br \/>\n\u00a0*\/<br \/>\n\u00a0\/\/&#8217;url for the New Button<br \/>\n\u00a0var sNewButtonUrl= CRM.URL(343)+&#8221;&amp;Key-1=&#8221;+iKey_CustomEntity+sPersonId+sCompanyId+sOpportinityId+HasCommunication+&#8221;&amp;PrevCustomURL=&#8221;+List.prevURL+&#8221;&amp;E=Job&#8221;;<br \/>\n\u00a0<br \/>\n\u00a0if(sBrowserId.toString() == &#8220;-1&#8221; )<br \/>\n\u00a0{\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<br \/>\n\u00a0\u00a0\/\/&#8217;The &#8220;FILEUPLOAD&#8221; string below is NOT\u00a0 a CAPTION &#8211; it is a constant to indicate to the COM object that a FILEUPLOAD button is expected<br \/>\n\u00a0\u00a0Container.AddButton(CRM.Button(&#8220;FILEUPLOAD&#8221;, &#8220;FileUpload.gif&#8221;,sNewButtonUrl));<br \/>\n\u00a0}<br \/>\n\u00a0else<br \/>\n\u00a0{<br \/>\n\u00a0\u00a0Container.AddButton(CRM.Button(&#8220;FileUpload&#8221;, &#8220;FileUpload.gif&#8221;,sNewButtonUrl));<br \/>\n\u00a0}<br \/>\n\u00a0Container.DisplayButton(1)=false;<br \/>\n\u00a0<br \/>\n\u00a0if(true)<br \/>\n\u00a0{<br \/>\n\u00a0\u00a0\/\/&#8217;url for the Mail Merge button<br \/>\n\u00a0\u00a0sMailMergeUrl = CRM.URL(542);<br \/>\n\u00a0\u00a0Container.AddButton(CRM.Button(&#8220;ButtonMailMerge&#8221;, &#8220;MailMerge.gif&#8221;, sMailMergeUrl));<br \/>\n\u00a0}<br \/>\n\u00a0\/\/&#8217;if Library id is not blank<br \/>\n\u00a0if(sLibraryId != &#8220;&#8221;)<br \/>\n\u00a0{<br \/>\n\u00a0\u00a0 CRM.AddContent(Container.Execute(&#8220;Libr_JobId=&#8221;+sLibraryId));<br \/>\n\u00a0}<br \/>\n\u00a0CRM.GetCustomEntityTopFrame(&#8220;Job&#8221;);<br \/>\n\u00a0<br \/>\n}<br \/>\ncatch(e)<br \/>\n{<br \/>\n\u00a0Response.Write(&#8220;Error=&#8221;+e.message);<br \/>\n}<br \/>\nResponse.Write(CRM.GetPage());<br \/>\n%&gt;<br \/>\nImplementation of above two steps should get you started with using the Document filing and merging features for your custom entity (Refer screenshot below for Set Mail merge button click.).<br \/>\n<a href=\"https:\/\/www.greytrix.com\/blogs\/sagecrm\/wp-content\/uploads\/2012\/08\/Merge1.bmp\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-2599\" title=\"Merge\" src=\"https:\/\/www.greytrix.com\/blogs\/sagecrm\/wp-content\/uploads\/2012\/08\/Merge1.bmp\" alt=\"\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>SP2 patch for sage CRM version 7.2 comes with lots of functionalities we have been waiting for quite a long time. There are lots of enhancements done on document merging and filing functionality. Now the mail merge process is cross-browser compatible, which means you can now perform document merging with Sage CRM entities on browsers\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.greytrix.com\/blogs\/sagecrm\/2012\/08\/31\/adding-document-filing-and-mail-merge-functionality-to-custom-entities\/\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[92,122,228,332,336],"tags":[],"class_list":["post-2591","post","type-post","status-publish","format-standard","hentry","category-custom-entity","category-document-sage-crm","category-mailmerge","category-sage-crm","category-sage-crm-7-1-sp2"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Adding Document Filing and Mail Merge functionality to Custom Entities - Sage CRM \u2013 Tips, Tricks and Components<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.greytrix.com\/blogs\/sagecrm\/2012\/08\/31\/adding-document-filing-and-mail-merge-functionality-to-custom-entities\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Adding Document Filing and Mail Merge functionality to Custom Entities - Sage CRM \u2013 Tips, Tricks and Components\" \/>\n<meta property=\"og:description\" content=\"SP2 patch for sage CRM version 7.2 comes with lots of functionalities we have been waiting for quite a long time. There are lots of enhancements done on document merging and filing functionality. Now the mail merge process is cross-browser compatible, which means you can now perform document merging with Sage CRM entities on browsers\u2026 Read More &raquo;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.greytrix.com\/blogs\/sagecrm\/2012\/08\/31\/adding-document-filing-and-mail-merge-functionality-to-custom-entities\/\" \/>\n<meta property=\"og:site_name\" content=\"Sage CRM \u2013 Tips, Tricks and Components\" \/>\n<meta property=\"article:published_time\" content=\"2012-08-31T06:52:03+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.greytrix.com\/blogs\/sagecrm\/wp-content\/uploads\/2012\/08\/Merge1.bmp\" \/>\n<meta name=\"author\" content=\"greysagecrm\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"greysagecrm\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.greytrix.com\/blogs\/sagecrm\/2012\/08\/31\/adding-document-filing-and-mail-merge-functionality-to-custom-entities\/\",\"url\":\"https:\/\/www.greytrix.com\/blogs\/sagecrm\/2012\/08\/31\/adding-document-filing-and-mail-merge-functionality-to-custom-entities\/\",\"name\":\"Adding Document Filing and Mail Merge functionality to Custom Entities - Sage CRM \u2013 Tips, Tricks and Components\",\"isPartOf\":{\"@id\":\"https:\/\/www.greytrix.com\/blogs\/sagecrm\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.greytrix.com\/blogs\/sagecrm\/2012\/08\/31\/adding-document-filing-and-mail-merge-functionality-to-custom-entities\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.greytrix.com\/blogs\/sagecrm\/2012\/08\/31\/adding-document-filing-and-mail-merge-functionality-to-custom-entities\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/www.greytrix.com\/blogs\/sagecrm\/wp-content\/uploads\/2012\/08\/Merge1.bmp\",\"datePublished\":\"2012-08-31T06:52:03+00:00\",\"author\":{\"@id\":\"https:\/\/www.greytrix.com\/blogs\/sagecrm\/#\/schema\/person\/e7ff1c8f4763b47730d6bc5e74d59c1f\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.greytrix.com\/blogs\/sagecrm\/2012\/08\/31\/adding-document-filing-and-mail-merge-functionality-to-custom-entities\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.greytrix.com\/blogs\/sagecrm\/2012\/08\/31\/adding-document-filing-and-mail-merge-functionality-to-custom-entities\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.greytrix.com\/blogs\/sagecrm\/2012\/08\/31\/adding-document-filing-and-mail-merge-functionality-to-custom-entities\/#primaryimage\",\"url\":\"http:\/\/www.greytrix.com\/blogs\/sagecrm\/wp-content\/uploads\/2012\/08\/Merge1.bmp\",\"contentUrl\":\"http:\/\/www.greytrix.com\/blogs\/sagecrm\/wp-content\/uploads\/2012\/08\/Merge1.bmp\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.greytrix.com\/blogs\/sagecrm\/2012\/08\/31\/adding-document-filing-and-mail-merge-functionality-to-custom-entities\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.greytrix.com\/blogs\/sagecrm\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Adding Document Filing and Mail Merge functionality to Custom Entities\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.greytrix.com\/blogs\/sagecrm\/#website\",\"url\":\"https:\/\/www.greytrix.com\/blogs\/sagecrm\/\",\"name\":\"Sage CRM \u2013 Tips, Tricks and Components\",\"description\":\"Explore the possibilities with Sage CRM insights through our comprehensive blogs. As a leading Sage partner, Greytrix helps businesses maximize their Sage CRM potential with its rich expertise and immense knowledge. Here, you will find blogs that feature expert advice, tips &amp; tricks, best practices, and comprehensive guides on customizing and configuring Sage CRM for your business. Stay informed with our regular updates and expert insights!\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.greytrix.com\/blogs\/sagecrm\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.greytrix.com\/blogs\/sagecrm\/#\/schema\/person\/e7ff1c8f4763b47730d6bc5e74d59c1f\",\"name\":\"greysagecrm\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.greytrix.com\/blogs\/sagecrm\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c3b4325cb326e36467f945b9b9adf2bb85e907fe092d42eb36b39743b492e626?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c3b4325cb326e36467f945b9b9adf2bb85e907fe092d42eb36b39743b492e626?s=96&d=mm&r=g\",\"caption\":\"greysagecrm\"},\"url\":\"https:\/\/www.greytrix.com\/blogs\/sagecrm\/author\/greysagecrm\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Adding Document Filing and Mail Merge functionality to Custom Entities - Sage CRM \u2013 Tips, Tricks and Components","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.greytrix.com\/blogs\/sagecrm\/2012\/08\/31\/adding-document-filing-and-mail-merge-functionality-to-custom-entities\/","og_locale":"en_US","og_type":"article","og_title":"Adding Document Filing and Mail Merge functionality to Custom Entities - Sage CRM \u2013 Tips, Tricks and Components","og_description":"SP2 patch for sage CRM version 7.2 comes with lots of functionalities we have been waiting for quite a long time. There are lots of enhancements done on document merging and filing functionality. Now the mail merge process is cross-browser compatible, which means you can now perform document merging with Sage CRM entities on browsers\u2026 Read More &raquo;","og_url":"https:\/\/www.greytrix.com\/blogs\/sagecrm\/2012\/08\/31\/adding-document-filing-and-mail-merge-functionality-to-custom-entities\/","og_site_name":"Sage CRM \u2013 Tips, Tricks and Components","article_published_time":"2012-08-31T06:52:03+00:00","og_image":[{"url":"http:\/\/www.greytrix.com\/blogs\/sagecrm\/wp-content\/uploads\/2012\/08\/Merge1.bmp","type":"","width":"","height":""}],"author":"greysagecrm","twitter_card":"summary_large_image","twitter_misc":{"Written by":"greysagecrm","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.greytrix.com\/blogs\/sagecrm\/2012\/08\/31\/adding-document-filing-and-mail-merge-functionality-to-custom-entities\/","url":"https:\/\/www.greytrix.com\/blogs\/sagecrm\/2012\/08\/31\/adding-document-filing-and-mail-merge-functionality-to-custom-entities\/","name":"Adding Document Filing and Mail Merge functionality to Custom Entities - Sage CRM \u2013 Tips, Tricks and Components","isPartOf":{"@id":"https:\/\/www.greytrix.com\/blogs\/sagecrm\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.greytrix.com\/blogs\/sagecrm\/2012\/08\/31\/adding-document-filing-and-mail-merge-functionality-to-custom-entities\/#primaryimage"},"image":{"@id":"https:\/\/www.greytrix.com\/blogs\/sagecrm\/2012\/08\/31\/adding-document-filing-and-mail-merge-functionality-to-custom-entities\/#primaryimage"},"thumbnailUrl":"http:\/\/www.greytrix.com\/blogs\/sagecrm\/wp-content\/uploads\/2012\/08\/Merge1.bmp","datePublished":"2012-08-31T06:52:03+00:00","author":{"@id":"https:\/\/www.greytrix.com\/blogs\/sagecrm\/#\/schema\/person\/e7ff1c8f4763b47730d6bc5e74d59c1f"},"breadcrumb":{"@id":"https:\/\/www.greytrix.com\/blogs\/sagecrm\/2012\/08\/31\/adding-document-filing-and-mail-merge-functionality-to-custom-entities\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.greytrix.com\/blogs\/sagecrm\/2012\/08\/31\/adding-document-filing-and-mail-merge-functionality-to-custom-entities\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.greytrix.com\/blogs\/sagecrm\/2012\/08\/31\/adding-document-filing-and-mail-merge-functionality-to-custom-entities\/#primaryimage","url":"http:\/\/www.greytrix.com\/blogs\/sagecrm\/wp-content\/uploads\/2012\/08\/Merge1.bmp","contentUrl":"http:\/\/www.greytrix.com\/blogs\/sagecrm\/wp-content\/uploads\/2012\/08\/Merge1.bmp"},{"@type":"BreadcrumbList","@id":"https:\/\/www.greytrix.com\/blogs\/sagecrm\/2012\/08\/31\/adding-document-filing-and-mail-merge-functionality-to-custom-entities\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.greytrix.com\/blogs\/sagecrm\/"},{"@type":"ListItem","position":2,"name":"Adding Document Filing and Mail Merge functionality to Custom Entities"}]},{"@type":"WebSite","@id":"https:\/\/www.greytrix.com\/blogs\/sagecrm\/#website","url":"https:\/\/www.greytrix.com\/blogs\/sagecrm\/","name":"Sage CRM \u2013 Tips, Tricks and Components","description":"Explore the possibilities with Sage CRM insights through our comprehensive blogs. As a leading Sage partner, Greytrix helps businesses maximize their Sage CRM potential with its rich expertise and immense knowledge. Here, you will find blogs that feature expert advice, tips &amp; tricks, best practices, and comprehensive guides on customizing and configuring Sage CRM for your business. Stay informed with our regular updates and expert insights!","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.greytrix.com\/blogs\/sagecrm\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.greytrix.com\/blogs\/sagecrm\/#\/schema\/person\/e7ff1c8f4763b47730d6bc5e74d59c1f","name":"greysagecrm","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.greytrix.com\/blogs\/sagecrm\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c3b4325cb326e36467f945b9b9adf2bb85e907fe092d42eb36b39743b492e626?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c3b4325cb326e36467f945b9b9adf2bb85e907fe092d42eb36b39743b492e626?s=96&d=mm&r=g","caption":"greysagecrm"},"url":"https:\/\/www.greytrix.com\/blogs\/sagecrm\/author\/greysagecrm\/"}]}},"_links":{"self":[{"href":"https:\/\/www.greytrix.com\/blogs\/sagecrm\/wp-json\/wp\/v2\/posts\/2591","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.greytrix.com\/blogs\/sagecrm\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.greytrix.com\/blogs\/sagecrm\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.greytrix.com\/blogs\/sagecrm\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.greytrix.com\/blogs\/sagecrm\/wp-json\/wp\/v2\/comments?post=2591"}],"version-history":[{"count":0,"href":"https:\/\/www.greytrix.com\/blogs\/sagecrm\/wp-json\/wp\/v2\/posts\/2591\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.greytrix.com\/blogs\/sagecrm\/wp-json\/wp\/v2\/media?parent=2591"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.greytrix.com\/blogs\/sagecrm\/wp-json\/wp\/v2\/categories?post=2591"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.greytrix.com\/blogs\/sagecrm\/wp-json\/wp\/v2\/tags?post=2591"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}