First Czech NGO Hackathon aka Build it Day

10 teams, 4 NGOs, 24 hours for delivery – basic ingredients of the first Salesforce hackathon in Czech Republic. I got the honor to be a mentor and sit in the jury, selecting the winner of this great event.

I did attend a few hackathons before and this one was different due to a several reasons.

  • Reason #1 being that people signed up for the event as teams, which – from my point – was good and bad at the same time. It is definitely good for the team, because you make sure all needed competencies will be there, bad because the people in community don’t mix, share knowledge and learn from each other. And as they worked most of the time they didn’t really have time to mingle or share the knowledge;
  • Reason #2 being that the organizers prepared things which needed to be build. The teams could still provide a lot of invention how to make the final solution better and nicer, but the borders were set;
  • Reason #3 being that teams were allocated to the tasks by lot, not by choosing what they want to do. And what really surprised me was that none of them left after finding what they should deliver, as some of the tasks were pretty complex. Just one team gave up during the night, as they had just 6 months of experience with Salesforce.

So from my experience I wouldn’t call it hackathon but rather build it day, partly also because we really plan to use the results to use in real life for real NGO customers.

The Tasks

Four different NGOs, selected by CRM pro neziskovky, four different tasks to complete.

  • ADRA needed a project management solution, linked with donations and some advanced features;
  • The Open Society Fund needed replacement for Google Forms, something linked directly with Salesforce, which they can also use to update data and be used as a way to sign up people for events;
  • Centrum Paraple wanted something similar but stressed different part of the process – wanted to automate as much as possible the process of setting campaign members whether they will or won’t attend and whether actually attended. As well as the ability to update their contact details when checking in or let them check in even without registering before
  • Army of Salvation had the most common request NGOs have – automate the process of sending gift receipt, we need at the end of fiscal year. One simple button, which will generate this receipt for thousands donors and send it via email or print it with one click. And at the same time it should work for individual donor who just called he need it.

At first I was sceptical about having just 4 problems and 10 teams, at the end I loved it. We really got totally different solutions and would we be able to combine them, we would get something awesome.

Szandor Knapp, the great MVP from Munich, who we had as a mentor here, considered all of them pretty complex and challenging, I – as always – thought about it as something simple.

Of course we are aware, that there are great applications on AppExchange we might use for these tasks, but to build something from scratch has its beauty.

How it went

All requestors were available to the teams for several hours and they could pass as many requests and information to them as possible. Mentors were available the whole time as well as food (plenty of it) and drinks. As night progressed some teams went to get some sleep, others continued nonstop. Was quite interesting to watch them and as I write this article I have no clue, whether they will provide better solutions to those who left. The beauty of different approaches, when you can work way less than others and still deliver something similar or maybe even better.

The Winners

The Jury – Jan, Aleš, Zuzana and me – had a hard time. The teams presented their solutions, trying to impress all of us. We had access to their orgs to see how they did it and could check whether it really works. Can ask additional questions.

First place was obvious to all of us. The rest was a bit more tricky. Should you prefer native features, which make it harder to customize by customer (eg. one team used VisualForce page to render the pdfs and we agree it is pretty easy to tweak such page, other team used Email template for the same thing and via code generated the pdf, which is even easier) or a bit of code, which makes it easier? Should we give bonus points for using custom metadata (as it is the prefered way) or custom object for configuration is better, as customers can find it more easily? Does it matter that one feature doesn’t work as the team hit some limit of Salesforce, while such features wasn’t needed?

All in all, Svatopluk, Eliška and Tadeáš from AspectWorks, were obviously the best one. You can also feel it from the presentation – Svatopluk was up and running the whole night and I still consider his presentation the best one. They used Labels in their solution, handled mass email limits, allowed users to choose which email template to use and which certificate template, dynamically define groups and much more.

Second place went to Petr, Martin and Petr, who worked on the solution for Centrum Paraple. They also involved little eshop as part of their solution, solved the process of registration to an event as well as simple links in an email you can just click and confirm/reject your attendance. Plus solution for speeding up the process at check-in, including ability to update contact details or allow people to register themselves on a shared tablet.

Third place was super hard to decide, so we decided to give it to two teams. Jan, Tomáš and Lukáš solved the problem of The Open Society Fund. Custom objects to define the structure of custom form, all the fields, their types, whether they are mandatory or not, validation rules and probably much more. Looked robust and really full of features.

Martin, Zuzana and Ondřej from AspectWorks solved the need of ADRA for project management. All the objects they needed, some custom Lightning Components to make it nicer, some triggers which automatically completed milestones when all task have been completed and so on and on.

We didn’t decide on the order of the rest of the teams. Nikita, Alexandra and Michal from Bluewolf worked on the Open Society Fund as well, incorporated Field Sets and some other features, had a nice corporate presentation, but the we liked the winning solution more.

Michal and Milan from Enehano Solutions with Jakub solved the ADRA requirement, we missed a bit better cost tracking but like the idea of uploading files directly to Salesforce. Pitty that the base LC doesn’t work in anonymous community.

Diego Perez, Stanislav and Martin from MSD worked on Salvation Army and really went with the 80 % customization, 20 % development process. Visualforce for printing the PDF file, email templates, workflow rules, which fire when specific flag is set in the record.

Iryna, Kamila and Anežka from MSD worked on the ADRA project as well. And they went mostly customization route as well, with a nice touch of free app for visualization of the timeline (and we still have no idea why it shows months names in Czech when everything we checked was set to English).

Take aways

Being mentor doesn’t mean you don’t learn new things. I learnt a lot, at least that:

  • it is hard to come up with a correct validation rule at 5am, especially if it involves PRIORVALUE function and picklist field (hint you need to use it with TEXT or ISPICKVAL), but Szandor was able to do it;
  • the anonymous communities, which are part of Enterprise licence, are awesome, but doesn’t allow to upload a file (even the default component to create a case);
  • Napili template really requires a Chatter and My Domain, otherwise isn’t available. On contrary to Partner Portal and other templates;
  • not having My Domain means even standard components are not available in communities;
  • @AuraEnabled is needed to have APEX variables available in Lightning Components (of course I know it, just forget it at 8am after sleepless night).


This event wouldn’t take place without partners. Clouderia, who came with the idea, organization and main price; MSD, who provided place and catering; CRM pro neziskovky, who get in touch with NGOs and helped them define their needs.

As well as Enehano Solutions, who donated price for second place (Tesla for the weekend) and AspectWorks, who paid additional expenses.

I should also mention the Salesforce, who provided swags for attendees!

Next time?

Will see, whether there will be next time, I’m really curious about it. The attendence was pretty good, all the big partners here, and the question is, whether they will be willing to attend again, as I don’t think we can find another such a big group of people. I spoke with a few of them and looks like they will take some sleep and are quite willing to do it again. Which is awesome.

All photos from Stanislav Krupar, are available.

Napiš komentář, díky!

O Salesforce s Pavlem Riško

V sérii „O Salesforce s …“ jsem si dal za cíl během celého roku vyzpovídat alespoň 52 lidí, kteří se v České a Slovenské republice pohybují okolo Salesforce. Jedno, zda jde o lidi od partnerů, zákazníka nebo dokonce někdo přímo ze Salesforce. Máte tip na někoho, koho bych měl určitě vyzpovídat? Sem s ním! děkuji

Další v sérii mých rozhovorů s lidmi ze Salesforce komunity je Pavel Riško, který před mnoha lety nastoupil jako project manager do firmy Sprinx Systems, která se od roku 1996 zaměřuje na vývoj obchodních systémů. Za tu dobu prošel několik různých pozic a nakonec zakotvil v dceřinné firmě Sprinx Consulting jako specialista ohledně všeho co se u nich děje kolem Salesforce.

Jak ses k Salesforce dostal a jaká je tvoje role?

O Salesforce jsme poprvé slyšel někdy kolem roku 2007, kdy jsme toto CRM sledovali jako konkurenční produkt. Od roku 2011 se aktivně pohybuji na tomto poli. A dnes jsem zodpovědný za rozvoj týmu a za konzultace procesů. To mi zabere každý den nejvíce pracovního času.

Jak se vzděláváš, které zdroje doporučíš?

Dříve jsem doporučoval, kde nováček dostal rychlý přehled o tom, co to vlastně Salesforce a jaké jsou jeho možnosti. Dnes využívám Salesforce help, Trailhead a communities. Takže shrnuto vše, co lze nalézt v rámci Partner Portal.

Jak se díváš na certifikační zkoušky, máš pocit, že je důležité je absolvovat nebo žádný test praxi nenahradí?

S certifikacemi je to stejné jako s řidičským průkazem. I když se jím prokazuješ, tak nikdo nemá jistotu, že umíš řídit. Ale vážně, je to takový ukazatel o nějakých dovednostech, kdy v rámci přípravy na certifikaci se většinou dozvíš, že něco bys mohl dělat lépe a snáze než jsi to dělal doposud. A k čemu by bylo sbírání certifikací bez praktického uplatnění? Tu opravdovou kompetenci člověk nezíská certifikací, ale chybami a úspěchy, které cestou nasbíral.

Oddělil bys tvrdě administrátory od vývojářů nebo je fajn, že se to prolíná? A prolíná?

Svět kolem nás není černobílý. Za celou dobu svého působení jsem nezaznamenal, že by to byly naprosto oddělené role. Spíše se jedná o jakýsi průnik, kdy vývojář nemůže odvádět kvalitní práci bez základních znalostí administrátora a na druhou stranu administrátor si musí umět poradit i s trochou „programování“.

Používáš aplikace třetích stran? Která je ta nejoblíbenější?

Vzhledem k tomu, že už se mnoho let nezabývám programováním, tak se dnes z vlastního zájmu udržuji na pozici administrátora, konzultanta a tvůrce reportů. Pro svou denní práci využívám hodně naše AppExchange doplňky. A jako nejpoužívanější jsou LeadyMerk.

Jedna funkce, kterou máš nejraději?

Tak to je taková otázka maličko pod pás. Velice špatně se vybere jenom jedna jediná věc. Ale z praxe vím, že to je mnohem lepší možnost nastavení vzhledu stránky a rozmístění jednotlivých objektů.

Kdyby sis mohl přát jednu věc, kterou by Salesforce mohl od zítra nově dělat, co by to bylo?

Těch věcí mám za ta léta celkem slušně dlouhý seznam. Ale jedna taková drobnost tam visí už hodně let, která má na Success k dnešnímu dni mnoho podporovatelů (počítáno v tisících). A opět je to požadavek z praxe: konečně se dopracovat k tomu, že bude možné mít v Dashboradu dynamické Gauge grafy.

Co bylo/je na zavádění Salesforce nejtěžší?

To se tak úplně nedá globalizovat, je to případ od případu. Jako velké riziko vidím dostat data „rozesetá po vše možných čertech“ do Salesforce. U spousty zákazníků je to User Adoption, protože najednou mají lidé pocit, že jsou pod neustálým dohledem managementu. Jindy je to pro změnu problém nikoli technický, ale lidský, kdy zákazník chce mít ten svůj božský excelovský soubor se všemi těmi barvičkami, na které je po léta zvyklý.

Jak drží zákazníci krok s rychlým rozvojem funkcionality Salesforce, zavádí nové funkce tak jak přicházejí nebo je nové funkcionality nezajímají?

Tak tohle je malinko dvousečné. Na jedné straně Salesforce zavede nějakou novou funkcionalitu a zákazníci raději vyčkávají až si to tzv. sedne. Na druhé straně znám dost zákazníků, kteří nově zavedenou funkcionalitu nemohou využít, protože něco takového si museli sami již dávno naprogramovat a teď jim to spíš komplikuje život. A potom je otázka zda a kdy se odhodlají k tomu, že to toho „šlápnou“ a proběhne generační obměna stávající implementace. Ale v každém případě jsou všichni zvědaví na novinky v každém release a co by jim to mohlo přinést v jejich každodenním používání.

Lightning – co tě přitahuje/odrazuje? Doporučil bys zákazníkům přechod?

Hezká otázka 🙂

Veškeré nové implementace již děláme v Lightning a postupně se snažíme převádět zákazníky na Lightning. Na počátku musíme pečlivě zvážit, zda si to opravdu můžeme dovolit. To, že spousta věcí prostě v Lightning nefunguje, mi dost vadí. Pokud je to jen to, že dopad to má pouze na administrátora, že si občas musí odskočit do Classic, tak je to v pohodě.

Takže závěrem: Lightning ANO. Ale nejdřív to dobře rozmyslet společně s implementátorem jestli tomu něco opravdu závažného nebrání.

Ta Salesforce nebo ten Salesforce?

A proč ne „to“? Nechť si to každý přebere sám. Salesforce funguje v cloudu, takže je imaginární. A jak vidíš, tak jsem v předchozí větě žádný rod nepoužil. Ale uvědomuji si, že to nijak nerozlišuji. Někdy je to ten a jindy zase to.


Napiš komentář, díky!

User group o automatizaci

26. dubna večer se opět potkáme v pražském Impact Hubu a budeme si povídat o automatizaci, jak může šetřit hodně práce a jak snadné může být ji v Salesforce nastavit. A tentokrát bych tam chtěl mít trochu víc té praxe.

Gábor Felker nám poví jak automatizovali v Sitě (přednáška bude v angličtině), pak mám přislíbeného řečníka, který je v procesu zavádění Salesforce, ale automatizuje co se dá.

Po přestávce Zdeněk Pejcel prakticky ukáže, jak nám může práci zjednodušit Process Builder a že je velmi snadné v něm ty věci nastavit. No a pak vás zkusím o tom samém prakticky přesvědčit u Flow, kde Salesforsáci mají pocit, že lidé mají velký problém do něj proniknout a moc nechápou proč. A přitom s tím jdou dělat naprosto skvělé věci a vyřešit minimálně půlku věcí, kterou normálně zadáváte vývojářům, protože máte pocit, že to jinak nejde.

Pokud vás téma zaujalo tak se prosím přihlašte, ať vím, kolik lidí čekat. Těším se na viděnou.

PS: a měla by být spousta dárků, pokud vás to snad přitáhne 😉

Napiš komentář, díky!

O Salesforce s Patrikem Diamantem

V sérii „O Salesforce s …“ jsem si dal za cíl během celého roku vyzpovídat alespoň 52 lidí, kteří se v České a Slovenské republice pohybují okolo Salesforce. Jedno, zda jde o lidi od partnerů, zákazníka nebo dokonce někdo přímo ze Salesforce. Máte tip na někoho, koho bych měl určitě vyzpovídat? Sem s ním! děkuji

Další v sérii mých rozhovorů s lidmi ze Salesforce komunity je Patrik Diamant, výrobce džín na míru.

Nebavilo mě chodit do obchodů zkoušet džíny. A tak jsem je začal vyrábět a dnes pod značkou Patrik Diamant šijeme košile a džíny na míru.

Jak ses k Salesforce dostal a jaká je tvoje role?

Jak rostl počet mých zákazníků, věděl jsem, že někde musím uchovávat poznámky o veškeré komunikaci, abych měl přehled. Několik dní jsem hledal to pravé CRM, četl příspěvky na internetu, ptal se známých. Nejlépe vyšlo Salesforce, i když jeho pravou hodnotu začínám poznávat až nyní, když jej postupně ohýbáme.

Jak se vzděláváš, které zdroje doporučíš?

Jediný zdroj pro Salesforce je pro mě můj obchodní partner Mooza, která mi Salesforce upravuje. Když něco nevím, ptám se.

Používáte Salesforce celá organizace nebo jenom pár lidí? K čemu ho používáte, je to klíčová aplikace nebo jedna z mnoha?

Aktuálně jej využívám sám, ale velmi brzy dokoupím další licenci. Postupně očekávám, že nás bude více, jak firma poroste. CRM je základ pro budování vztahu s klientem. Vedle mailu a aplikací Google je pro mě Salesforce denním chlebem.

Dokážeš si tipnout, kolik procent funkcionality používáš?

To vůbec netuším, ale předpokládám, že to může být tak jedno promile (smích).

Co bylo na zavádění nejtěžší?

Z počátku jsem Salesforce využíval velmi omezeně. Nejtěžší (ale zároveň ty nejlepší chvíle) přišly při upravování pro moje potřeby. Tam je potřeba přemýšlet do budoucna a říct si, co budu potřebovat za pár měsíců, abychom poté nemuseli zpětně dopisovat data pro správné fungování a měření.

Máš v zásadě standardní implementaci nebo sis ji nechal masivně upravit a vyvinout hodně věcí na míru? Pokud vyvinuto, co klíčového ti chybělo?

O masivních úpravách zatím nemůžu mluvit. Pár jich ale bylo, velmi pomáhají a rozhodně nekončíme. Nejvíce mi chyběla automatizace v určitých fázích nákupního procesu mého zákazníka, ale zároveň i naší interní výroby. Hodí se např. notifikace, pokud něco neudělám (např. 14 dní nekontaktuji zákazníka).

Používáš aplikace třetích stran? Která je ta nejoblíbenější?

Aktuálně jedinou externí aplikací je Mailchimp pro hromadné mailingy. Brzy přidáme i Fakturoid pro automatizovanou fakturaci.

Jedna funkce, kterou máš nejraději.

Rozhodně tasky. Snažím se co nejvíc operativních úkolů dostat z hlavy. A takhle se mi připomenou v tu pravou chvíli.

Kdyby sis mohl přát jednu věc, kterou by Salesforce mohl od zítra nově dělat, co by to bylo?

Jak jsem zmínil dříve, myslím, že využívám tak jedno promile Salesforce. Nevím, s čím novým by měli lidé ze Salesforce přijít, protože si stejně myslím, že s tím už dávno přišli.

Jak držíš krok s rychlým rozvojem funkcionality Salesforce, zavádíš nové funkce tak jak přicházejí nebo tě nové funkcionality nezajímají?

Nové funkcionality neřeším. Určitě jich bude velká řada, ale to bych nedělal nic jiného. Řeším jen ty, které aktuálně potřebuji a s tím mi vždy pomůže partner z branže.

Chystáš přechod na Lightning? Co tě přitahuje/odrazuje?

Mám už od začátku.

Ta Salesforce nebo ten Salesforce?

To…? 🙂

Napiš komentář, díky!

Federated Search

V únoru jsem měl na konferenci London’s Calling prezentaci na téma Federated Search, což mi přijde jako úžasná věc, kterou jsem ale zatím v praxi neviděl nikde používat. Přitom to velmi snadno umožňuje integrovat externí systémy, je to dostupné již v edici Professional a má to slušnou paletu funkcí. Chcete příklad?


Snad v každé implementaci, kterou dělám, to chtějí – napojení na ARES případně Merk. Existují aplikace, které to řeší (ta na ARES se již neaktualizuje) a jsou skvělé, ale díky Federated Search můžeme něčeho podobného dosáhnout také. Některé věci fungují lépe, jiné hůře.

Věc, která mi přijde naprosto geniální je ta, že se ta věc napojuje přímo do vyhledávání. Mohu definovat sloupce, které jsou ve vyhledávání vidět, měnit page layout, přidávat nová tlačítka. No dobrá, narážíme hned na několik limitací:

  • ARES podporuje omezený počet volání denně (což v normální firmě nebude tak velký problém) a vy se nedozvíte, zda už se neblížíte k jejich vyčerpání;
  • ARES umožňuje vrátit maximálně 200 záznamů, kdyby jich měl vrátit víc tak raději vrátí chybu – kterou nejste schopni uživateli zobrazit – než aby vrátil alespoň něco;
  • externí objekty, kterými se to hledání řeší, umožňují jenom některou funkcionalitu – třeba je nepoužijete ve Flow nebo Process Builderu, abyste mohli nalezenou firmu rychle uložit mezi ty vaše. Takže musíte programovat Visualforce stránku, která by to zkonvertovala.

Jak na to

Pokud budete věřit mé bezplatné instanci Heroku, tak půjdete do nastavení, dáte External Data Sources, zvolíte Federated Search a jako adresu zadáte Uložit, zvolit Validate and Sync a už to jede.

Pokud nevěříte, tak si můžete spustit vlastní Heroku (nebo to hostovat kdekoliv jinde, kde běží https). Celá ta věc je postavena na node.js a Mustache.

Vlastní kód si odchytí váš požadavek, dotáže se webu ministerstva, XML zkonvertuje do JSON a ten prožene Mustache šablonou, která vrátí finální XML, které umí Salesforce zpracovat.

Žádný složitý kód, až vám bude vývojář říkat, že to je týden práce, tak to vidíte na vlastní oči, kolik toho asi tak musí napsat.

Mustache projde předaný JSON a zformátuje ho jak potřebujete. Tahle věc se mi hodně líbí, je jednoduchá a jdou s ní dělat kouzla. Pozor na to, že ve výsledném souboru nesmí být žádné prázdné řádky. Drobnost, kvůli které mi to dvě hodiny nefungovalo. Developer Guide také zmiňuje, že některé z položek jsou povinné, ale není to tak horké.

Poslední co potřebujete je definice OpenSearchDescription souboru, kde specifikujete jaká všechna pole jsou ve výsledném souboru. I u něj jsem měl zásek, neboť jsem ho odněkud zkopíroval a přitom zkopíroval i skrytý znak na začátku souboru, díky kterému to celé nefungovalo. Takže kopírujte opatrně.


Když jsem si prezentaci připravoval, tak jsem se naučil víc nejenom o Federated Search, ale také jsem se naučil základy node.js, pronikl trochu do Mustache a (znovu) objevil Heroku. Virtuální servery normálně hostuji jinde, ale nebyl jsem tam schopen nakonfigurovat node.js a https dohromady (holt Linux není moje silná stránka). Heroku jede na https automaticky, zbývalo se naučit, jak tam dostat souboru. Heroku CLI, Git a spousta dalších věcí, ze kterých mi vstávaly vlasy hrůzou na hlavě.

A pak jsem zjistil, že Heroku je možné spojit s Dropboxem a cokoliv nahraju na Dropbox tak pak mohu uživatelsky nasadit na Heroku. Voilá, hnedle jsme byli kamarádi a během chvíle mi ty věci běžely.

Prezentace na různých konferencí vás donutí se učit nové věci. A to je super. Jaké použití byste pro tuhle věc měli vy?

Napiš komentář, díky!