<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>gokubi.com &#187; CRM</title>
	<atom:link href="http://gokubi.com/archives/category/technology/crm/feed" rel="self" type="application/rss+xml" />
	<link>http://gokubi.com</link>
	<description></description>
	<pubDate>Wed, 03 Dec 2008 16:20:29 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Balsamiq nice mockups</title>
		<link>http://gokubi.com/archives/balsamiq-nice-mockups</link>
		<comments>http://gokubi.com/archives/balsamiq-nice-mockups#comments</comments>
		<pubDate>Wed, 03 Dec 2008 16:20:29 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
		
		<category><![CDATA[CRM]]></category>

		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://gokubi.com/?p=763</guid>
		<description><![CDATA[I downloaded Balsamiq&#8217;s Mockup tool last week and have played with it a bit. I&#8217;m pretty impressed as it smartly hits a sweet spot between quick and dirty and presentation ready.
Mockups is an Air app for doing interface designs very quickly. There is a library of common interface elements: web browser chrome, input field, google [...]]]></description>
			<content:encoded><![CDATA[<p>I downloaded Balsamiq&#8217;s <a href="http://www.balsamiq.com/products/mockups">Mockup tool</a> last week and have played with it a bit. I&#8217;m pretty impressed as it smartly hits a sweet spot between quick and dirty and presentation ready.</p>
<p>Mockups is an Air app for doing interface designs very quickly. There is a library of common interface elements: web browser chrome, input field, google map, tabs, etc. You simply drag these onto your mockup and go. Most have some simple configuration: title bar of the browser chrome, value showing in the drop down, etc.</p>
<p><img src="http://gokubi.com/wp-content/uploads/2008/12/campaign_inclusion_mockup.png" alt="" title="campaign_inclusion_mockup" width="500" height="339" class="centered" /></p>
<p>Yesterday a user of mine asked for a specific feature in Salesforce.com. <a href="http://gokubi.com/archives/campaign-inclusion-reports">I used Mockups to draw it for my post</a>, and for <a href="http://ideas.salesforce.com/article/show/10094370/Campaign_Inclusion_Reports">my Salesforce.com Idea post</a>. I think the image speaks volumes in support of the idea.</p>
<p>I&#8217;ve tried lots of other mockup tools: <a href="http://office.microsoft.com/en-us/visio">Visio</a>, <a href="http://dub.washington.edu:2007/denim/">Denim</a>, <a href="http://www.adobe.com/products/illustrator/">Illustrator</a>, <a href="http://www.evolus.vn/Pencil/Home.html">Pencil</a>, and many more that are now defunct. I like Balsamiq&#8217;s product a lot and I think you&#8217;ll see it in my posts for the foreseeable future.</p>
<p>I only wish someone would build some Salesforce.com widgets (like object lookups) and a <a href="http://trac.edgewall.org/">Trac</a> integration, I&#8217;d be in heaven!</p>
]]></content:encoded>
			<wfw:commentRss>http://gokubi.com/archives/balsamiq-nice-mockups/feed</wfw:commentRss>
		</item>
		<item>
		<title>Campaign Inclusion Reports</title>
		<link>http://gokubi.com/archives/campaign-inclusion-reports</link>
		<comments>http://gokubi.com/archives/campaign-inclusion-reports#comments</comments>
		<pubDate>Wed, 03 Dec 2008 14:59:48 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
		
		<category><![CDATA[CRM]]></category>

		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://gokubi.com/?p=761</guid>
		<description><![CDATA[When you&#8217;re doing complex relationship management, you&#8217;ve got a number of outreach activities going on. Parties, one-on-one meetings, special nurture tracks, etc. It can be very bad for the relationship you&#8217;re trying to develop if these activities are in conflict. You need to make sure they all play nice together as far a content, timing, [...]]]></description>
			<content:encoded><![CDATA[<p>When you&#8217;re doing complex relationship management, you&#8217;ve got a number of outreach activities going on. Parties, one-on-one meetings, special nurture tracks, etc. It can be very bad for the relationship you&#8217;re trying to develop if these activities are in conflict. You need to make sure they all play nice together as far a content, timing, and execution goes.</p>
<p>You also need a system to help you grab people depending on which activities they have been a part or, or have not been a part of. Example: give me everyone who attended our luncheon and isn&#8217;t on our special VIP nurture track. It&#8217;s these people who I want to reach out to with some special information. But I don&#8217;t want the VIPs to get this info, because they&#8217;re getting something in a couple weeks that is more in-depth.</p>
<p>Right now Salesforce.com can&#8217;t do this kind of reporting. I can look at inclusion on certain campaigns, but can&#8217;t look across campaigns. I wish I had a report with this kind of interface:</p>
<p><img src="http://gokubi.com/wp-content/uploads/2008/12/campaign_inclusion_mockup.png" alt="" title="campaign_inclusion_mockup" width="500" height="339" class="centered" /></p>
<p>This way I could pull out people based on what they have and haven&#8217;t done. If you agree that this is a worthwhile feature, <a href="http://ideas.salesforce.com/article/show/10094370/Campaign_Inclusion_Reports">please vote for this idea</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://gokubi.com/archives/campaign-inclusion-reports/feed</wfw:commentRss>
		</item>
		<item>
		<title>Ideas&#8211;fishing for votes</title>
		<link>http://gokubi.com/archives/ideas-fishing-for-votes</link>
		<comments>http://gokubi.com/archives/ideas-fishing-for-votes#comments</comments>
		<pubDate>Mon, 01 Dec 2008 16:41:30 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
		
		<category><![CDATA[CRM]]></category>

		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://gokubi.com/?p=759</guid>
		<description><![CDATA[Here are Ideas I&#8217;ve posted that I&#8217;d love to get implemented. I&#8217;d love your vote if you agree!
Allow APEX triggers on junction tables like CampaignMember
Make CampaignMember, Partner, and ContactRole tables Customizable
Show the Report Data Type on the saved Report
Show CampaignMember Related List on Campaign Layouts
Use VisualForce email templates in Mass Emails and in Apex Outbound [...]]]></description>
			<content:encoded><![CDATA[<p>Here are Ideas I&#8217;ve posted that I&#8217;d love to get implemented. I&#8217;d love your vote if you agree!</p>
<p><a href="http://ideas.salesforce.com/article/show/68704/Allow_APEX_triggers_on_junction_tables_like_CampaignMember">Allow APEX triggers on junction tables like CampaignMember</a></p>
<p><a href="http://ideas.salesforce.com/article/show/22710">Make CampaignMember, Partner, and ContactRole tables Customizable</a></p>
<p><a href="http://ideas.salesforce.com/article/show/66505/Show_the_Report_Data_Type_on_the_saved_Report">Show the Report Data Type on the saved Report</a></p>
<p><a href="http://ideas.salesforce.com/article/show/59299">Show CampaignMember Related List on Campaign Layouts</a></p>
<p><a href="http://ideas.salesforce.com/article/show/10094048/Use_VisualForce_email_templates_in_Mass_Emails_and_in_Apex_Outbound_email_method">Use VisualForce email templates in Mass Emails and in Apex Outbound email method</a></p>
<p><a href="http://ideas.salesforce.com/article/show/10093997/Sites_Allow_Unauthenticated_Users_to_Edit_Standard_Objects">Sites: Allow Unauthenticated Users to Edit Standard Objects</a></p>
<p><a href="http://ideas.salesforce.com/article/show/10091519/Fields_marked_Read_Only_on_Layouts_shouldnt_be_editable_for_Sysadmins">Fields marked Read Only on Layouts shouldn&#8217;t be editable for Sysadmins</a></p>
<p><a href="http://ideas.salesforce.com/article/show/10091122">Allow VisualForce Detail Page to be an edit form</a></p>
<p><a href="http://ideas.salesforce.com/article/show/101006/First_and_Last_in_Rollup_Summary_fields">First and Last in Rollup Summary fields</a></p>
<p><a href="http://ideas.salesforce.com/article/show/98366/Help_Text_for_Standard_Fields">Help Text for Standard Fields</a></p>
<p><a href="http://ideas.salesforce.com/article/show/74651/Make_Opportunity_Contact_Roles_RecordType_Specific">Make Opportunity Contact Roles RecordType Specific</a></p>
<p><a href="http://ideas.salesforce.com/article/show/73881/Allow_Reporting_on_Full_Activity_History">Allow Reporting on Full Activity History</a></p>
<p><a href="http://ideas.salesforce.com/article/show/23482">&#8220;Subtract from a Campaign&#8221; Button on Reports</a></p>
]]></content:encoded>
			<wfw:commentRss>http://gokubi.com/archives/ideas-fishing-for-votes/feed</wfw:commentRss>
		</item>
		<item>
		<title>Maildrop 2 beta released</title>
		<link>http://gokubi.com/archives/maildrop-2-beta-released</link>
		<comments>http://gokubi.com/archives/maildrop-2-beta-released#comments</comments>
		<pubDate>Thu, 20 Nov 2008 14:24:52 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
		
		<category><![CDATA[CRM]]></category>

		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://gokubi.com/?p=757</guid>
		<description><![CDATA[The brilliant Simon Fell, father of the Salesforce.com API but apparently not the father of Applescript, has just thrown a new beta release of Maildrop, his Mac application for getting emails into Salesforce.
If you&#8217;re a beta-testing kind of person, give it a shot and give Simon feedback!
]]></description>
			<content:encoded><![CDATA[<p>The brilliant Simon Fell, father of the Salesforce.com API but apparently <a href="http://twitter.com/superfell/status/1014219661">not the father of Applescript</a>, has just thrown <a href="http://tinyurl.com/55y3ch">a new beta release of Maildrop</a>, his Mac application for getting emails into Salesforce.</p>
<p>If you&#8217;re a beta-testing kind of person, give it a shot and give Simon feedback!</p>
]]></content:encoded>
			<wfw:commentRss>http://gokubi.com/archives/maildrop-2-beta-released/feed</wfw:commentRss>
		</item>
		<item>
		<title>Dave Manelski on Vertical Response Integration</title>
		<link>http://gokubi.com/archives/dave-manlski-on-vertical-response-integration</link>
		<comments>http://gokubi.com/archives/dave-manlski-on-vertical-response-integration#comments</comments>
		<pubDate>Tue, 18 Nov 2008 15:43:51 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
		
		<category><![CDATA[CRM]]></category>

		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://gokubi.com/?p=756</guid>
		<description><![CDATA[My co-worker Dave Manelski wrote some Apex to help the Salesforce.com / Vertical Response integration record bounced emails better. His code just got posted on the Vertical Response blog.
Nice work Dave!
]]></description>
			<content:encoded><![CDATA[<p>My co-worker Dave Manelski wrote some Apex to help the Salesforce.com / Vertical Response integration record bounced emails better. <a href="http://blog.verticalresponse.com/appexchange/2008/11/mark-bounced-records-as-bad-addresses.html">His code just got posted</a> on the Vertical Response blog.</p>
<p>Nice work Dave!</p>
]]></content:encoded>
			<wfw:commentRss>http://gokubi.com/archives/dave-manlski-on-vertical-response-integration/feed</wfw:commentRss>
		</item>
		<item>
		<title>Canadian Tax Receipts</title>
		<link>http://gokubi.com/archives/canadian-tax-receipts</link>
		<comments>http://gokubi.com/archives/canadian-tax-receipts#comments</comments>
		<pubDate>Tue, 18 Nov 2008 00:47:43 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
		
		<category><![CDATA[CRM]]></category>

		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://gokubi.com/?p=755</guid>
		<description><![CDATA[Canadian charitable organizations have to give out tax receipts for all donations, and these tax receipts have to have sequential numbers. No numbers can be skipped, and they must be unique.
So I built a way to do this back in the day of S-Controls. It was a big pain. I can&#8217;t use autonumbers, because we [...]]]></description>
			<content:encoded><![CDATA[<p>Canadian charitable organizations have to give out tax receipts for all donations, and these tax receipts have to have sequential numbers. No numbers can be skipped, and they must be unique.</p>
<p>So I built a way to do this back in the day of S-Controls. It was a big pain. I can&#8217;t use autonumbers, because we only want to assign them to real gifts that meet certain criteria.</p>
<p>But with Apex triggers, it&#8217;s much easier. I wrote a trigger that when an Opportunity is added or updated and meets certain criteria, it gets the next available tax receipt number. The tax receipt number field is also set to be Unique, so I won&#8217;t get duplicate values.</p>
<p>Here&#8217;s the code. First the Trigger:</p>
<pre class="syntax-highlight:java">
trigger ONEN_Opp_tax_receipt on Opportunity (before insert, before update) {
// Written by Steve Andersen, copyright (c) 2008 ONE/Northwest
// This program is released under the GNU General Public License. http://www.gnu.org/licenses/

	ONEN_RecordTypes rtlookup = new ONEN_RecordTypes (&#039;Opportunity&#039;);
	// get opp rectype id of gift from Constants
	Id giftRecordType =  rtlookup.GetRecordTypeId(ONEN_Constants.OPP_DEFAULT_RECTYPE_FORTESTS);
	//list to hold Opps to be receipted
	List&lt;Opportunity&gt; oppsNeedingReceipts = new List&lt;Opportunity&gt;();

	//loop through the trigger set
	for ( Opportunity thisOpp : Trigger.new ) {
		//get a tax receipt if it&#039;s a gift, it&#039;s won, and it doesn&#039;t already have one
		if(thisOpp.RecordTypeId == giftRecordType &amp;&amp; thisOpp.IsWon &amp;&amp; thisOpp.Tax_Receipt_Id__c==null)	{
			//add to the list for receipting
			oppsNeedingReceipts.add(thisOpp);
		}
	}
	//if we found any that need receipting, process them
	if(oppsNeedingReceipts.size()&gt;0){
		//instantiante the tax receipt class
		ONEN_Tax_Receipting taxReceipt = new ONEN_Tax_Receipting ();
		//loop through all the opps
		for (Opportunity updatingOpp : oppsNeedingReceipts) {
			//assign the next tax receipt id to the custom field
			updatingOpp.Tax_Receipt_Id__c = taxReceipt.getNextAvailableTaxReceipt();
		}
	}
}
</pre>
<p>And the Class:</p>
<pre class="syntax-highlight:java">
public class ONEN_Tax_Receipting {
// Written by Steve Andersen, copyright (c) 2008 ONE/Northwest
// This program is released under the GNU General Public License. http://www.gnu.org/licenses/

	//double to hold the highest tax receipt
	private Double highestUsedTaxReceipt;

	//constructor
	public ONEN_Tax_Receipting() {
		Opportunity[] higestTaxReceiptedOpp = [select Tax_Receipt_Id__c from Opportunity where Tax_Receipt_Id__c!=null order by Tax_Receipt_Id__c desc limit 1];
		//get the higest tax receipt number
		if (higestTaxReceiptedOpp.size()&gt;0) {
			highestUsedTaxReceipt = higestTaxReceiptedOpp[0].Tax_Receipt_Id__c!=null ? higestTaxReceiptedOpp[0].Tax_Receipt_Id__c : 0;
		} else {
			highestUsedTaxReceipt = 0;
		}
	}
	//get the next tax receipt number
	public Double getNextAvailableTaxReceipt() {
		highestUsedTaxReceipt++;
		system.debug(highestUsedTaxReceipt);
		return highestUsedTaxReceipt;
	}

	//this opp fits all the criteria and should get a tax receipt
	static testmethod void testNewOppGetsTaxReceipt () {

		ONEN_RecordTypes rtlookup = new ONEN_RecordTypes (&#039;Opportunity&#039;);

		Opportunity opp1 = new Opportunity(
			Name = &#039;test opp1&#039;,
			RecordTypeId = rtlookup.GetRecordTypeId(&#039;Gift&#039;),
			CloseDate = system.Today(),
			Amount = 1,
			StageName = &#039;Closed Won&#039;

		);
		insert opp1;
		Opportunity testOpp1 = [select Tax_Receipt_Id__c from Opportunity where id = :opp1.Id limit 1];

		System.AssertNotEquals ( null,testOpp1.Tax_Receipt_Id__c );
	}
	//this opp already has a tax receipt and it shouldn&#039;t be overwritten. The next opp should get the next number.
	static testmethod void testNewOppAlreadyHasTaxReceipt () {

		ONEN_RecordTypes rtlookup = new ONEN_RecordTypes (&#039;Opportunity&#039;);

		Opportunity opp1 = new Opportunity(
			Name = &#039;test opp1&#039;,
			RecordTypeId = rtlookup.GetRecordTypeId(&#039;Gift&#039;),
			CloseDate = system.Today(),
			Amount = 1,
			StageName = &#039;Closed Won&#039;,
			Tax_Receipt_Id__c = 99999

		);
		insert opp1;
		Opportunity testOpp1 = [select Tax_Receipt_Id__c from Opportunity where id = :opp1.Id limit 1];

		System.AssertEquals ( 99999,testOpp1.Tax_Receipt_Id__c );

		Opportunity opp2 = new Opportunity(
			Name = &#039;test opp2&#039;,
			RecordTypeId = rtlookup.GetRecordTypeId(&#039;Gift&#039;),
			CloseDate = system.Today(),
			Amount = 1,
			StageName = &#039;Closed Won&#039;

		);
		insert opp2;
		Opportunity testOpp2 = [select Tax_Receipt_Id__c from Opportunity where id = :opp2.Id limit 1];

		System.AssertEquals ( 100000,testOpp2.Tax_Receipt_Id__c );
	}
	//not won opp shouldn&#039;t get tax receipt
	static testmethod void testNewOppNotWon () {

		ONEN_RecordTypes rtlookup = new ONEN_RecordTypes (&#039;Opportunity&#039;);

		Opportunity opp1 = new Opportunity(
			Name = &#039;test opp1&#039;,
			RecordTypeId = rtlookup.GetRecordTypeId(&#039;Gift&#039;),
			CloseDate = system.Today(),
			Amount = 1,
			StageName = &#039;Closed Lost&#039;

		);
		insert opp1;
		Opportunity testOpp1 = [select Tax_Receipt_Id__c from Opportunity where id = :opp1.Id limit 1];

		System.AssertEquals ( null,testOpp1.Tax_Receipt_Id__c );
	}
	//non-gift opp shouldn&#039;t get tax receipt
	static testmethod void testNewOppNotGift () {

		ONEN_RecordTypes rtlookup = new ONEN_RecordTypes (&#039;Opportunity&#039;);

		Opportunity opp1 = new Opportunity(
			Name = &#039;test opp1&#039;,
			RecordTypeId = rtlookup.GetRecordTypeId(&#039;Grant&#039;),
			CloseDate = system.Today(),
			Amount = 1,
			StageName = &#039;Closed Lost&#039;

		);
		insert opp1;
		Opportunity testOpp1 = [select Tax_Receipt_Id__c from Opportunity where id = :opp1.Id limit 1];

		System.AssertEquals ( null,testOpp1.Tax_Receipt_Id__c );
	}

}
</pre>
<p>It&#8217;s not bomb-proof. If multiple people are assigning tax receipts at the same time I might have problems. But it&#8217;s simple, and it&#8217;s not a high volume group. Any feedback is welcome!</p>
]]></content:encoded>
			<wfw:commentRss>http://gokubi.com/archives/canadian-tax-receipts/feed</wfw:commentRss>
		</item>
		<item>
		<title>Visual Force Email Templates 2</title>
		<link>http://gokubi.com/archives/visual-force-email-templates-2</link>
		<comments>http://gokubi.com/archives/visual-force-email-templates-2#comments</comments>
		<pubDate>Fri, 14 Nov 2008 21:41:03 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
		
		<category><![CDATA[CRM]]></category>

		<category><![CDATA[Technology]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gokubi.com/?p=754</guid>
		<description><![CDATA[Using custom components makes lots of stuff possible. Here&#8217;s an example of a year-end giving thank you email:

This shows all gifts for 2008 and attaches a PDF of the giving history as well. Note that this is done just by connecting to the Contact, so this would work in the Salesforce.com mass mail interface.
Update: You [...]]]></description>
			<content:encoded><![CDATA[<p>Using custom components makes lots of stuff possible. Here&#8217;s an example of a year-end giving thank you email:</p>
<p><img src="http://gokubi.com/images/vf_email_ex.png" class="aligncenter" alt="screenshot"/></p>
<p>This shows all gifts for 2008 and attaches a PDF of the giving history as well. Note that this is done just by connecting to the Contact, so this would work in the Salesforce.com mass mail interface.</p>
<p><strong>Update:</strong> You cannot use vf templates in mass email or in the apex outboundemail method in Winter &#8216;09. Maybe next release&#8230;</p>
<p>Also note that it&#8217;s an ugly HTML email just because I&#8217;m not a designer. You can make this as professional as you&#8217;re willing to make it.</p>
<p>Here&#8217;s the relevant code:</p>
<p>The VisualForce Email Template</p>
<pre class="syntax-highlight:java">
&lt;messaging:emailTemplate subject=&quot;Thank you for your Support!&quot; recipientType=&quot;Contact&quot; &gt;
    &lt;messaging:htmlEmailBody &gt;
        &lt;html&gt;
        &lt;body&gt;
            &lt;p&gt;Hello {!recipient.Household_Greeting__c}--&lt;/p&gt;
            &lt;p&gt;Thank you so much for you giving this year. Every gift helps us make a difference in our envrionment...&lt;/p&gt;
            &lt;c:thisYearGivingTable ContactId=&quot;{!recipient.Id}&quot;/&gt;
            &lt;br/&gt;&lt;br/&gt;
            We look forward to seeing you in 2009!
            &lt;br/&gt;&lt;br/&gt;
            Best,
            Steve

            &lt;/body&gt;
        &lt;/html&gt;
    &lt;/messaging:htmlEmailBody&gt;
    &lt;messaging:attachment renderas=&quot;pdf&quot; filename=&quot;{!recipient.Household_Greeting__c}_2008_Giving.pdf&quot;&gt;
&lt;html&gt;
&lt;body&gt;
&lt;h3&gt;2008 Giving History for {!recipient.Household_Greeting__c}&lt;/h3&gt;
&lt;c:thisYearGivingTable ContactId=&quot;{!recipient.Id}&quot;/&gt;

&lt;/body&gt;
&lt;/html&gt;
&lt;/messaging:attachment&gt;
&lt;/messaging:emailTemplate&gt;
</pre>
<p>The VisualForce Component that is included in the Email Template:</p>
<pre class="syntax-highlight:java">
&lt;apex:component controller=&quot;thisYearGivingTableController&quot; access=&quot;global&quot;&gt;
	&lt;apex:attribute name=&quot;ContactId&quot; description=&quot;This is the Contact Id.&quot; type=&quot;Id&quot; assignTo=&quot;{!thisContactId}&quot;/&gt;
	&lt;table border=&quot;1&quot;&gt;
		&lt;tr&gt;
		    &lt;td&gt;&lt;apex:outputText value=&quot;Date&quot;/&gt;&lt;/td&gt;
		    &lt;td&gt;&lt;apex:outputText value=&quot;Amount&quot;/&gt;&lt;/td&gt;
		    &lt;td&gt;&lt;apex:outputText value=&quot;Check Number&quot;/&gt;&lt;/td&gt;
		    &lt;td&gt;&lt;apex:outputText value=&quot;Check Date&quot;/&gt;&lt;/td&gt;
		&lt;/tr&gt;
 	&lt;apex:repeat value=&quot;{!thisYearOpps}&quot; var=&quot;opp&quot; id=&quot;theRepeat&quot;&gt;
		&lt;tr&gt;
		    &lt;td&gt;&lt;apex:outputField value=&quot;{!opp.CloseDate}&quot;/&gt;&lt;/td&gt;
		    &lt;td&gt;&lt;apex:outputField value=&quot;{!opp.Amount}&quot;/&gt;&lt;/td&gt;
		    &lt;td&gt;&lt;apex:outputField value=&quot;{!opp.Check_Number__c}&quot;/&gt;&lt;/td&gt;
		    &lt;td&gt;&lt;apex:outputField value=&quot;{!opp.Check_Date__c}&quot;/&gt;&lt;/td&gt;

		&lt;/tr&gt;
	&lt;/apex:repeat&gt;
	&lt;/table&gt;
&lt;/apex:component&gt;
</pre>
<p>The Apex Controller that powers the logic for the VisualForce Component:</p>
<pre class="syntax-highlight:java">
public class thisYearGivingTableController {
	//capture the contact id
	public Id thisContactId {get;set;}
	//a list to hold this year&#039;s gifts
	public List&lt;Opportunity&gt; thisYearOpps = new List&lt;Opportunity&gt;();
	//get the gifts into the list
	public List&lt;Opportunity&gt; getThisYearOpps() {
		//criteria for opps
		thisYearOpps = [SELECT Id, Amount,CloseDate, Check_Date__c, Check_Number__c FROM Opportunity
			WHERE IsWon=true AND Year__c=:String.valueOf(system.Today().Year()) AND Id IN
			(SELECT OpportunityId FROM OpportunityContactRole WHERE ContactId = :thisContactId AND Role=&#039;Individual Donor&#039;)
			ORDER BY CloseDate];
		return thisYearOpps;
	}
}
</pre>
<p>Kudos to Andrew and the team for making the email template functionality so robust! This is killer stuff!</p>
]]></content:encoded>
			<wfw:commentRss>http://gokubi.com/archives/visual-force-email-templates-2/feed</wfw:commentRss>
		</item>
		<item>
		<title>VisualForce Email Templates</title>
		<link>http://gokubi.com/archives/visualforce-email-templates</link>
		<comments>http://gokubi.com/archives/visualforce-email-templates#comments</comments>
		<pubDate>Fri, 14 Nov 2008 14:37:16 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
		
		<category><![CDATA[Books]]></category>

		<category><![CDATA[CRM]]></category>

		<category><![CDATA[Louise]]></category>

		<category><![CDATA[Misc]]></category>

		<category><![CDATA[Photos]]></category>

		<category><![CDATA[Technology]]></category>

		<category><![CDATA[Triathlon]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gokubi.com/?p=753</guid>
		<description><![CDATA[When I saw that Winter &#8216;09 was going to include VisualForce email templates, I got really excited. I thought about all the cool things I could do with pages running custom controllers and getting whatever data I wanted.
And then I saw that VF email templates weren&#8217;t going to be able to use custom controllers and [...]]]></description>
			<content:encoded><![CDATA[<p>When I saw that Winter &#8216;09 was going to include VisualForce email templates, I got really excited. I thought about all the cool things I could do with pages running custom controllers and getting whatever data I wanted.</p>
<p>And then I saw that VF email templates weren&#8217;t going to be able to use custom controllers and I wrote them off.</p>
<p>Well, I&#8217;ve dug back into them and turns out they are going to be amazingly useful. And when we get custom controllers on them, they will be seriously butt-kicking.</p>
<p>Here&#8217;s a VF email template:</p>
<pre class="syntax-highlight:html">
&lt;messaging:emailTemplate subject=&quot;Thank you for your Support!&quot; recipientType=&quot;Contact&quot; &gt;
    &lt;messaging:htmlEmailBody &gt;
        &lt;html&gt;
        &lt;body&gt;
            &lt;p&gt;Hello {!recipient.Household_Greeting__c}--&lt;/p&gt;
            &lt;p&gt;Thank you so much for you giving this year. Every gift helps us make a difference in our envrionment...&lt;/p&gt;
            &lt;apex:outputPanel rendered=&quot;{!recipient.Total_Gifts_YTD__c&gt;0}&quot;&gt;
                &lt;apex:outputText rendered=&quot;{!recipient.Total_Gifts_YTD__c&gt;0}&quot;&gt;
                    &lt;table&gt;
                        &lt;tr&gt;
                            &lt;td&gt;Gift Date&lt;/td&gt;
                            &lt;td&gt;Check Number&lt;/td&gt;
                            &lt;td&gt;Check Date&lt;/td&gt;
                            &lt;td&gt;Amount&lt;/td&gt;
                        &lt;/tr&gt;
                &lt;/apex:outputText&gt;
                &lt;apex:repeat value=&quot;{!recipient.OpportunityContactRoles}&quot; var=&quot;opps&quot; id=&quot;theRepeat&quot;&gt;
                    &lt;apex:outputText rendered=&quot;{!opps.Role==&#039;Individual Donor&#039;&amp;&amp;opps.Opportunity.IsWon&amp;&amp;opps.Opportunity.Year__c==&#039;2008&#039;}&quot;&gt;
                        &lt;tr&gt;
                    &lt;/apex:outputText&gt;
                    &lt;apex:outputText rendered=&quot;{!opps.Role==&#039;Individual Donor&#039;&amp;&amp;opps.Opportunity.IsWon&amp;&amp;opps.Opportunity.Year__c==&#039;2008&#039;}&quot;&gt;
                        &lt;td&gt;&lt;apex:outputField value=&quot;{!opps.Opportunity.CloseDate}&quot;/&gt;&lt;/td&gt;
                        &lt;td&gt;&lt;apex:outputField value=&quot;{!opps.Opportunity.Check_Number__c}&quot;/&gt;&lt;/td&gt;
                        &lt;td&gt;&lt;apex:outputField value=&quot;{!opps.Opportunity.Check_Date__c}&quot;/&gt;&lt;/td&gt;
                        &lt;td&gt;&lt;apex:outputField value=&quot;{!opps.Opportunity.Amount}&quot;/&gt;&lt;/td&gt;
                    &lt;/apex:outputText&gt;
                    &lt;apex:outputText rendered=&quot;{!opps.Role==&#039;Individual Donor&#039;&amp;&amp;opps.Opportunity.IsWon&amp;&amp;opps.Opportunity.Year__c==&#039;2008&#039;}&quot;&gt;
                        &lt;/tr&gt;
                    &lt;/apex:outputText&gt;

                &lt;/apex:repeat&gt;
                &lt;apex:outputText rendered=&quot;{!recipient.Total_Gifts_YTD__c&gt;0}&quot;&gt;
                    &lt;/table&gt;
                &lt;/apex:outputText&gt;

            &lt;/apex:outputPanel&gt;
            &lt;/br&gt;&lt;/br&gt;
            We look forward to seeing you in 2009!

            Best,
            Steve

            &lt;/body&gt;
        &lt;/html&gt;
    &lt;/messaging:htmlEmailBody&gt;
&lt;/messaging:emailTemplate&gt;
</pre>
<p>In line 1 I connect this template to the Contact record as RecipientType. Then when I send to a Contact, I can merge fields. So in line 5 I&#8217;m pulling a custom field on Contact called Household_Greeting__c. So far so good.</p>
<p>On line 7 I start building an HTML table, and I only want to show it if this Contact has given money this year, so I render only if their Total_Gifts_YTD__c>0. Slick. No custom controller, but I can still put some logic in there.</p>
<p>On line 17 I create a repeat that will loop through all OpportunityContactRoles this Contact has. Whoa! I suddenly have access to all their donations!</p>
<p>On 18 I want to create a table row, but only when the opp we&#8217;re dealing with is won, was in this year, and this contact was the individual donor role on it. We have to repeat the same rendering logic on each field as well.</p>
<p>I&#8217;m looping through OpportunityContactRoles, but I want Opportunity information. That&#8217;s really easy. On line 22 I get {!opps.Opportunity.CloseDate}&#8211;the close date off the Opportunity on this contact role. Simple!</p>
<p>So with no controller, I can get any related list off the Contact and iterate through it. And I can traverse across multiple relationships. Only getting the records I care about requires some rendering hacks, but it works. Also, I don&#8217;t think I can sort the items at all.</p>
<p>I&#8217;m impressed with what VisualForce email templates can do with no controller. Check them out, they&#8217;re easy to use! And when they give us the ability to use Custom Controllers, we&#8217;ll be able to do crazy things.</p>
<p><strong>Update:</strong> In the comments Andrew sets me straight on a key feature&#8211;you can put custom VisualForce components in VisualForce email templates. Wow. We can now do just about anything we want. Seriously, there are very few limitations to what can be done now. Thanks Andrew for pointing out that killer feature!</p>
]]></content:encoded>
			<wfw:commentRss>http://gokubi.com/archives/visualforce-email-templates/feed</wfw:commentRss>
		</item>
		<item>
		<title>Lightweight Profile Management with Sites</title>
		<link>http://gokubi.com/archives/lightweight-profile-management-with-sites</link>
		<comments>http://gokubi.com/archives/lightweight-profile-management-with-sites#comments</comments>
		<pubDate>Wed, 12 Nov 2008 23:50:59 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
		
		<category><![CDATA[CRM]]></category>

		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://gokubi.com/?p=751</guid>
		<description><![CDATA[I&#8217;ve built a prototype app for managing email subscription preferences in Salesforce.com. Check out the movie to see it in action.
Right now Salesforce.com doesn&#8217;t allow unauthenticated users to modify standard object records like Contact. I had to write some tricky code to make this functionality work, but this code is actually in violation of the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve built a prototype app for managing email subscription preferences in Salesforce.com. Check out <a href="http://gokubi.com/images/sites_profile_management.swf">the movie to see it in action</a>.</p>
<p>Right now Salesforce.com doesn&#8217;t allow unauthenticated users to modify standard object records like Contact. I had to write some tricky code to make this functionality work, but this code is actually in violation of the current license agreement.</p>
<p>I&#8217;ve posted a <a href="http://ideas.salesforce.com/article/show/10093997/Sites_Allow_Unauthenticated_Users_to_Edit_Standard_Objects">Salesforce Idea for this licensing change</a>. Vote it up!</p>
]]></content:encoded>
			<wfw:commentRss>http://gokubi.com/archives/lightweight-profile-management-with-sites/feed</wfw:commentRss>
		</item>
		<item>
		<title>Dreamforce 08 Sessions Online</title>
		<link>http://gokubi.com/archives/dreamforce-08-sessions-online</link>
		<comments>http://gokubi.com/archives/dreamforce-08-sessions-online#comments</comments>
		<pubDate>Tue, 11 Nov 2008 15:15:52 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
		
		<category><![CDATA[CRM]]></category>

		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://gokubi.com/?p=750</guid>
		<description><![CDATA[All the sessions from Dreamforce 08 are now online.
I was a part of two sessions. First was &#8220;The Platform to Change the World,&#8221; where I got to present with my Bari Samad of Green for All. We start our part of the talk about 3/4 of the way through. We&#8217;re a bit rushed because we [...]]]></description>
			<content:encoded><![CDATA[<p>All the sessions from Dreamforce 08 are now <a href="http://www.salesforce.com/community/crm-best-practices/resource-training.jsp">online</a>.</p>
<p>I was a part of two sessions. First was &#8220;The Platform to Change the World,&#8221; where I got to present with my Bari Samad of Green for All. We start our part of the talk about 3/4 of the way through. We&#8217;re a bit rushed because we got squeezed for time by the folks who presented before us. You can use the slider in the movie player to cut directly to Bari&#8217;s presentation if you wish.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="643" height="616" id="URLvariables" align="middle"><param name="allowScriptAccess" value="sameDomain" /><param name="movie" value="http://www.salesforce.com/community/assets/swf/breakoutVideoPlayerEmbed.swf?vid=110308_AM/NEP001.flv /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><embed src="http://www.salesforce.com/community/assets/swf/breakoutVideoPlayerEmbed.swf?vid=110308_AM/NEP001.flv" quality="high" bgcolor="#ffffff" width="643" height="616" name="URLvariables" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object></p>
<p>I then got to present with Lisa and Marc about all the community aspects of our Salesforce.com work. There is great content in this talk, so check it out.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="643" height="616" id="URLvariables" align="middle"><param name="allowScriptAccess" value="sameDomain" /><param name="movie" value="http://www.salesforce.com/community/assets/swf/breakoutVideoPlayerEmbed.swf?vid=110408_2PM/nep004.flv /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><embed src="http://www.salesforce.com/community/assets/swf/breakoutVideoPlayerEmbed.swf?vid=110408_2PM/nep004.flv" quality="high" bgcolor="#ffffff" width="643" height="616" name="URLvariables" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object></p>
]]></content:encoded>
			<wfw:commentRss>http://gokubi.com/archives/dreamforce-08-sessions-online/feed</wfw:commentRss>
		</item>
		<item>
		<title>Fun with APIs</title>
		<link>http://gokubi.com/archives/fun-with-apis</link>
		<comments>http://gokubi.com/archives/fun-with-apis#comments</comments>
		<pubDate>Sun, 09 Nov 2008 06:56:10 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
		
		<category><![CDATA[CRM]]></category>

		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://gokubi.com/?p=748</guid>
		<description><![CDATA[I just made my clipping system much cooler using TinyURL, Sites, and Twitter.
]]></description>
			<content:encoded><![CDATA[<p>I just made my <a href="http://gokubi.com/archives/storing-media-clippings-in-salesforce">clipping system</a> much <a href="http://gokubi.com/images/clipping_2.swf">cooler</a> using TinyURL, Sites, and Twitter.</p>
]]></content:encoded>
			<wfw:commentRss>http://gokubi.com/archives/fun-with-apis/feed</wfw:commentRss>
		</item>
		<item>
		<title>Force.com Sites Announced</title>
		<link>http://gokubi.com/archives/forcecom-sites-announced</link>
		<comments>http://gokubi.com/archives/forcecom-sites-announced#comments</comments>
		<pubDate>Mon, 03 Nov 2008 16:08:25 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
		
		<category><![CDATA[CRM]]></category>

		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://gokubi.com/?p=747</guid>
		<description><![CDATA[Salesforce.com today announced Salesforce.com Sites, the ability to write web interfaces on the Force.com platform and make them available to users via the web.
For an example of Sites in action, navigate over to the Dreamforce Attendee Portal.
This is a major breakthough for Salesforce.com on one of it&#8217;s weak areas&#8211;as CRM relationships become increasingly bi-directional, and [...]]]></description>
			<content:encoded><![CDATA[<p>Salesforce.com today announced Salesforce.com Sites, the ability to write web interfaces on the Force.com platform and make them available to users via the web.</p>
<p>For an example of Sites in action, navigate over to the <a href="https://dreamforcereg.force.com/">Dreamforce Attendee Portal</a>.</p>
<p>This is a major breakthough for Salesforce.com on one of it&#8217;s weak areas&#8211;as CRM relationships become increasingly bi-directional, and more reliant on interactions with the public, it has been hard to give the public access to data inside Salesforce.com.</p>
<p>No longer. Now, full-fledged web applications can be written on top of your core CRM database. You can construct portals for customers, authenticated or not, with an amazing degree of flexibility. Force.com&#8217;s Model-View-Controller architecture is in use, giving the developers a full stack in the cloud for writing web apps.</p>
<p>The web experience is written with VisualForce, Salesforce.com&#8217;s web templating language. These web pages may have whatever structure and look-and-feel you desire&#8211;VisualForce spits out XHTML just like any other web templating language.</p>
<p>Your data lives in Salesforce.com objects, and is accessible via controllers you write in Apex, the server-side language of Force.com.</p>
<p>These programatic pieces are not new as of today they&#8217;ve been put into place over the last 3 years. But today Salesforce.com ties them together as a platform for building public web applications that are 100% hosted by Salesforce.com.</p>
<p>When you enable a Site, you get a force.com URL and can also map it to your own branded URL. You set a VisualForce page to act as your home page and you&#8217;re off. Hitting that URL now displays the VisualForce to the web user.</p>
<p>Permissions are robust and allow for multiple levels of access. You can have publicly accessible pages, that are available to the unauthenticated masses. You can also integrate with Salesforce.com&#8217;s Customer Portal functionality to create sites that authenticate against Contact records in your Salesforce.com CRM. This gives you the power to create multiple customer portals that have the exact web experience you desire.</p>
<p>Because it&#8217;s all built right on Salesforce.com, the web user can add/edit/delete any data you have in Salesforce.com, according to the access you give them. This is incredibly powerful, and can be used in myriad business cases where end user input is helpful.</p>
<p>I was given a chance to build an application to help show the power of Sites. I built a <a href="http://gokubi.com/images/phonebank_skinned_demo.swf">distributed phone banking site</a>, based on <a href="http://my.barackobama.com/page/content/phonebankmap">my.barackobama.com</a>. Distributed phone banking is the practice of allowing your supporters to make phone calls on behalf of your issue. For Obama, it was about calling voters to find out if they were going to vote for him. For an environmental nonprofit, it may be having members call other members to see if they will attend an important hearing, or about calling people who live near a proposed development that will harm the environment.</p>
<p>In my phone banking app, you can give access to any Contacts in your database. They can then login and make calls to people on the call list. It&#8217;s a pretty simple application, but the power of extending the business process across the outside edge of the organization is evident.</p>
<p>Sites enables this blurring of the organizational boundry that is incredibly exciting (because&#8230; ?). At ONE/Northwest, we&#8217;re doing this kind of thing with our Plone Salesforce.com integration and will continue because there is sometimes real value to having your external portal be a part of your web content management system.</p>
<p>For many use cases, Sites will be enough to get the job done. Some ideas that come to mind:</p>
<ul>
<li>build major donor portals for enabling donor-fundraising</li>
<li>create a fully hosted, publicly-accessible, REST web service interface</li>
<li>create public landing pages for marketing campaigns</li>
<li>build public forms for information capture</li>
<li>create an RSS feed for public consumption, or to loosely integrate with your website or anyone else&#8217;s</li>
</ul>
<p>Sites is a big breakthrough, but different from the Apex announcement of 2006 or the VisualForce announcement of 2008. This is a way to extend what you&#8217;re already doing to the world. Sites enable opening up your database in controlled ways to your constituents, with the exact look and feel you want. Prepare yourself for a wave of innovative add on products that take advantage of this new way of thinking.</p>
<p>I hope we learn more shortly about the Sites pricing model. At this point all we know is that there will be two models&#8211;one based on traffic and another based on user count. I like that Salesforce.com is working on their pricing with respect to Sites&#8211;there are many scenarios where the old per-user-only pricing model just won&#8217;t work.</p>
<p>Nice work Salesforce.com on coming up with another big Dreamforce announcement. I&#8217;ve got a couple groups who will want in on a pilot&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://gokubi.com/archives/forcecom-sites-announced/feed</wfw:commentRss>
		</item>
		<item>
		<title>Real-time Dreamforce updates</title>
		<link>http://gokubi.com/archives/real-time-dreamforce-updates</link>
		<comments>http://gokubi.com/archives/real-time-dreamforce-updates#comments</comments>
		<pubDate>Sun, 02 Nov 2008 15:07:56 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
		
		<category><![CDATA[CRM]]></category>

		<category><![CDATA[Technology]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gokubi.com/?p=746</guid>
		<description><![CDATA[Come back to this post over the next 4 days because it&#8217;s a real-time feed of everything Dreamforce. Sonny Cloward set it up over at FriendFeed. Thanks Sonny!

]]></description>
			<content:encoded><![CDATA[<p>Come back to this post over the next 4 days because it&#8217;s a real-time feed of everything <a href="http://salesforce.com/dreamforce">Dreamforce</a>. Sonny Cloward set it up over at <a href="http://friendfeed.com/rooms/dreamforce-08/realtime">FriendFeed</a>. Thanks Sonny!</p>
<p><iframe style="border: 1px solid rgb(67, 126, 199);" src="http://friendfeed.com/rooms/dreamforce-08/realtime?embed=1" frameborder="0" height="600" width="635"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://gokubi.com/archives/real-time-dreamforce-updates/feed</wfw:commentRss>
		</item>
		<item>
		<title>Force.com IDE v.14 released today</title>
		<link>http://gokubi.com/archives/forcecom-ide-v14-released-today</link>
		<comments>http://gokubi.com/archives/forcecom-ide-v14-released-today#comments</comments>
		<pubDate>Tue, 28 Oct 2008 15:16:17 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
		
		<category><![CDATA[CRM]]></category>

		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://gokubi.com/?p=742</guid>
		<description><![CDATA[All I can say is Bravo to Jon Plax and his team over at Salesforce.com. On first look the new IDE released this morning is absolutely excellent.
My main issue with the v.13 IDE had to do with the organization of source files. This has been fixed in v.14 with a new reorganization based on type [...]]]></description>
			<content:encoded><![CDATA[<p>All I can say is Bravo to Jon Plax and his team over at Salesforce.com. On first look <a href="http://blog.sforce.com/sforce/2008/10/announcing-forc.html">the new IDE released this morning</a> is absolutely excellent.</p>
<p>My main issue with the v.13 IDE had to do with the organization of source files. This has been fixed in v.14 with a new reorganization based on type (class, trigger, static resrouce, etc.) Things are much, much easier to find now. Thank you!</p>
<p>On project setup you are now greeted with a wizard that allows you to select different types of objects. This is brilliant, because there are now 25 different types available! Pulling all of them for every project would have gotten tiresome.</p>
<p>Two massive time-savers come from the addition of reports and dashboards as metadata types. Here&#8217;s an example use case: Each of our consulting staff has a dashboard of key performance indicators specific to them. The dashboards are identical in look, but the reports are different. Now, we can set up one set of dashboards with underlying reports and then use the IDE to essentially clone them for each staff member, changing them slightly.</p>
<p>I can&#8217;t wait to use it more deeply&#8211;as I&#8217;ll have the chance to do over the next couple days. It already feels like this is a tool I&#8217;ll be much happier to be using every day. Excellent work Salesforce.com!</p>
]]></content:encoded>
			<wfw:commentRss>http://gokubi.com/archives/forcecom-ide-v14-released-today/feed</wfw:commentRss>
		</item>
		<item>
		<title>Seattle Nonprofit Salesforce User Group</title>
		<link>http://gokubi.com/archives/seattle-nonprofit-salesforce-user-group</link>
		<comments>http://gokubi.com/archives/seattle-nonprofit-salesforce-user-group#comments</comments>
		<pubDate>Mon, 27 Oct 2008 17:38:58 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
		
		<category><![CDATA[CRM]]></category>

		<category><![CDATA[Technology]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gokubi.com/?p=741</guid>
		<description><![CDATA[The folks over at NPower Seattle have created a Salesforce User Group for nonprofits. Go to the first meeting on November 19th. I&#8217;ll be there, and you should be, too. Come to share, learn, and network!
Wednesday, November 19, 8:00am - 9:00am

View Larger Map
]]></description>
			<content:encoded><![CDATA[<p>The folks over at NPower Seattle have created a Salesforce User Group for nonprofits. Go to the first meeting on November 19th. I&#8217;ll be there, and you should be, too. Come to share, learn, and network!</p>
<p>Wednesday, November 19, 8:00am - 9:00am</p>
<p><a target="_blank" href="http://www.google.com/calendar/event?action=TEMPLATE&amp;tmeid=YzA5bHYycDE5MGtnYWFiYWE4NGEwbGM1cW8gZ29rdWJpQG0&amp;tmsrc=Z29rdWJpQGdtYWlsLmNvbQ"><img border=0 src="http://www.google.com/calendar/images/ext/gc_button1_en.gif"></a></p>
<p align=center><iframe width="635" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=q&amp;hl=en&amp;geocode=&amp;q=NPower+Seattle,+403+23rd+Avenue+S.,+seattle,+wa&amp;sll=47.599233,-122.302229&amp;sspn=0.010143,0.027895&amp;g=403+23rd+Avenue+S.,+seattle,+wa&amp;ie=UTF8&amp;ll=47.599227,-122.302223&amp;spn=0.006295,0.006295&amp;output=embed&amp;s=AARTsJoImRIy1fkF6FGvTKOi3rsyQkzH_g"></iframe><br /><small><a href="http://maps.google.com/maps?f=q&amp;hl=en&amp;geocode=&amp;q=NPower+Seattle,+403+23rd+Avenue+S.,+seattle,+wa&amp;sll=47.599233,-122.302229&amp;sspn=0.010143,0.027895&amp;g=403+23rd+Avenue+S.,+seattle,+wa&amp;ie=UTF8&amp;ll=47.599227,-122.302223&amp;spn=0.006295,0.006295&amp;source=embed" style="color:#0000FF;text-align:left">View Larger Map</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://gokubi.com/archives/seattle-nonprofit-salesforce-user-group/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
