[{"data":1,"prerenderedAt":293},["ShallowReactive",2],{"project-4714088":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":34,"aspects":35,"strip":41,"post_text":43,"what":44,"said":85,"maker_in_thread":170,"shape":180,"grid":185,"attempts":257,"same_week":258,"maker_shows":32,"maker_hidden":285,"reader_version":286,"card":287},"4714088","Django drip","we open sourced our Django drip email app","title","Show HN: we open sourced our Django drip email app","https:\u002F\u002Fgithub.com\u002Fzapier\u002Fdjango-drip","github.com","bryanh",1351539823,2012,126,33,156,1677,10,"notable","web_saas","email marketing","library",[24,25,26,27],"django","drip campaign","email automation","open source","loved",0.484,{"positive":31,"neutral":32,"mixed":33,"critical":33},9,8,0,17,{"idea":36,"design":38,"execution":40},{"positive":37,"critical":33},5,{"positive":39,"critical":33},1,{"positive":39,"critical":33},[33,33,33,33,42,33,33,33,33,42,42,37,37,37,37,33,37,42,42,33,33,42,37,33,37,33,33,42,33,42,33,37,37],3,null,{"problem":45,"audience":56,"pricing":43,"motivation":65,"time_to_build":43,"stack":69,"openness":82,"stage":83,"team_size":84},{"value":46,"source":47,"evidence":48},"Scheduling drip email campaigns based on data in the app's own database","commenter",[49,53],{"id":50,"by":51,"text":52},"4714260","WadeF","The key things I love about an Drip vs. commercial options is that since it's a django app it hooks right into our database and I can dynamically schedule an email based on…",{"id":54,"by":51,"text":55},"4714560","While I typically agree that buying is better than building this was one case where building still made the most sense for us. See the post below:…",{"value":57,"source":58,"evidence":59},"Django developers who need to send segmented email campaigns","inferred",[60,61],{"id":50,"by":51,"text":52},{"id":62,"by":63,"text":64},"4714363","marcrosoft","How difficult would it be to tie this to an arbitrary user model. I am thinking along the lines of using this on a rails app.",{"value":66,"source":47,"evidence":67},"Third-party email services could not access internal database data without heavy API replication",[68],{"id":54,"by":51,"text":55},[70,78],{"value":71,"source":72,"evidence":73},"Django","maker",[74,75],{"id":50,"by":51,"text":52},{"id":76,"by":11,"text":77},"4714334","The mechanism for doing this is a total hack on Django's ORM. We build a bigass list of all possible JOINs and concat them together: ``` some_model__another__title…",{"value":79,"source":47,"evidence":80},"Mailgun",[81],{"id":54,"by":51,"text":55},"open_source","launched","team",{"praise":86,"objections":110,"requests":118,"questions":136,"alternatives":148},[87,95],{"value":88,"source":47,"evidence":89},"Useful for segmenting emails using the app's own database",[90,91],{"id":50,"by":51,"text":52},{"id":92,"by":93,"text":94},"4715582","Jarshwah","I love this mainly for the crafting of the query. It would probably be worth extracting that piece out into a separate application of its own, so other Admin models are able to…",{"value":96,"source":47,"evidence":97},"Thanks for open sourcing it",[98,102,106],{"id":99,"by":100,"text":101},"4714254","jtchang","Thank you so much for releasing this. I can definitely see a use for it and will look into it in the near future.",{"id":103,"by":104,"text":105},"4715034","almost","Thanks guys, this looks great!",{"id":107,"by":108,"text":109},"4718235","bussiere","Thanks a lot. Bussiere",[111],{"value":112,"source":47,"evidence":113},"Buying a hosted service like Customer.io is usually better than building",[114],{"id":115,"by":116,"text":117},"4714506","sudonim","Thanks guys. Colin, co-founder of http:\u002F\u002FCustomer.io here. The build vs. buy decision for people is always an interesting one. Taking a quick look at the app, if you're using…",[119,125],{"value":120,"source":72,"evidence":121},"Event-driven triggering via signals",[122],{"id":123,"by":11,"text":124},"4715278","We have an open issue to work off of signals [1]. What would definitely make it more event driven, but might make it a lot less efficient. [1]…",{"value":126,"source":47,"evidence":127},"Support for custom user models and profiles",[128,132],{"id":129,"by":130,"text":131},"4714401","zalew","soon to be released Django 1.5 (currently in alpha 1) will have custom user models https:\u002F\u002Fgroups.google.com\u002Fforum\u002F#!topic\u002Fdjango-developers\u002FEI-ihJ4CLqw I guess then you could…",{"id":133,"by":134,"text":135},"4717572","bedspax","It would be cool if Drip support also custom Profiles",[137,141],{"value":138,"source":47,"evidence":139},"Can it tie to a non-Django user model such as Rails",[140],{"id":62,"by":63,"text":64},{"value":142,"source":47,"evidence":143},"Can it trigger drip campaigns from event data",[144],{"id":145,"by":146,"text":147},"4716682","mtrimpe","Does customer.io also support drip campaigns based on event-data? I've evaluated a number of solutions and started looking at build vs buy because we need to start a drip…",[149,157,163],{"value":150,"source":47,"evidence":151},"Customer.io",[152,156],{"id":153,"by":154,"text":155},"4714278","yesimahuman","Just wanted to add Customer.io, which is a similar service we have been evaluating. It'll be interesting comparing this with that.",{"id":115,"by":116,"text":117},{"value":158,"source":72,"evidence":159},"GetVero, Intercom.io and Mixpanel",[160],{"id":161,"by":11,"text":162},"4714165","In the spirit of GetVero, Intercom.io and Mixpanel, here is our done-is-better-than-perfect take on drip campaigns. Definitely check out the docs [1] and the demo [2] for a…",{"value":164,"source":47,"evidence":165},"brennandunn\u002Fdripper",[166],{"id":167,"by":168,"text":169},"4715661","bdunn","I wrote this a few months back: https:\u002F\u002Fgithub.com\u002Fbrennandunn\u002Fdripper It depends on resque-scheduler, but let's you setup a drip campaign against an ActiveRecord model pretty…",{"comments":31,"answered":171,"key":172},2,[173,174,177],{"id":161,"text":162},{"id":175,"text":176},"4714972","Again, we would like to reiterate: we would have loved to buy this. But Wade outlined the reasons we couldn't scratch our itch with products like yours (or your competitors).",{"id":178,"text":179},"4716225","No worries, we love the ideas around your product. To be honest, its not even a direct need of \"database level integration\", that is just where it ends up. Going to the DB level…",{"commenters":181,"max_depth":182,"maker_replies":31,"first_comment_mins":183,"lifespan_hours":184},21,7,15,22,[186,188,190,193,195,197,198,201,202,205,208,209,212,216,219,220,222,223,225,226,228,229,233,235,237,240,243,244,248,250,251,253,255],[161,33,33,187,11,39],"project\u002Fpositive\u002Fidea",[153,33,33,189,154,33],"other\u002Fneutral\u002Fnone",[191,33,33,189,192,33],"4714336","jmathai",[115,33,33,194,116,33],"other\u002Fneutral\u002Fidea",[54,33,42,196,51,33],"project\u002Fneutral\u002Fidea",[175,33,33,196,11,39],[199,33,33,200,116,33],"4715902","commenter\u002Fneutral\u002Fnone",[178,33,33,196,11,39],[203,33,33,189,204,33],"4715954","twakefield",[206,33,42,207,51,33],"4716135","project\u002Fneutral\u002Fnone",[145,33,42,196,146,33],[210,33,37,187,211,33],"4715021","SoftwareMaven",[213,33,37,214,215,33],"4715928","project\u002Fpositive\u002Fdesign","eupharis",[217,39,37,187,218,33],"4714408","patio11",[50,171,37,187,51,33],[76,171,33,221,11,39],"project\u002Fneutral\u002Fexecution",[99,42,37,187,100,33],[62,224,42,196,63,33],4,[129,224,42,196,130,33],[227,224,33,196,11,39],"4714457",[167,224,33,189,168,33],[230,224,42,231,232,33],"4718375","maker\u002Fneutral\u002Fnone","cmer",[92,37,37,234,93,33],"project\u002Fpositive\u002Fexecution",[236,37,33,234,11,39],"4715604",[238,239,37,187,154,33],"4714275",6,[241,182,33,189,242,33],"4715023","antihero",[123,182,33,221,11,39],[245,32,42,246,247,33],"4714844","project\u002Fneutral\u002Fdesign","mrharrison",[249,32,33,246,11,39],"4714942",[133,31,42,196,134,33],[252,31,33,221,11,39],"4718551",[103,18,37,254,104,33],"project\u002Fpositive\u002Fnone",[107,256,37,254,108,33],11,[],[259,264,269,274,277,281],{"id":260,"name":261,"points":262,"category":263},"4723591","Circular",160,"productivity",{"id":265,"name":266,"points":267,"category":268},"4725210","Introducting C+",148,"languages",{"id":270,"name":271,"points":272,"category":273},"4725396","Python Tools for Visual Studio (PTVS)",139,"dev_tools",{"id":275,"name":276,"points":14,"category":273},"4713110","Propeller",{"id":278,"name":279,"points":280,"category":273},"4706037","violin",105,{"id":282,"name":283,"points":284,"category":20},"4715237","Userfox (YC S11)",100,false,"v2",{"id":288,"name":5,"line":6,"ai":285,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":289,"top":18,"kw":290,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":291,"url":9,"mix":292,"praise":88,"objection":112,"sub":21},4714088,0.48,[24,25,26,27],"000030000335555053300350500303055",[31,32,33,33],1793990886840]