ListMailPRO Email Marketing Software Forums

ListMailPRO Email Marketing Software Forums => Development, Suggestions => Topic started by: BGSWebDesign on September 06, 2006, 01:28:30 am

Title: Selectively SKIPPING followups based on Products?
Post by: BGSWebDesign on September 06, 2006, 01:28:30 am
Hi,

I had an interesting situation come up.  

[a bit of BACKGROUND]
---------------------------
 I sell about 15-20 different products, of course my Followups are all based on promoting these products sequentially.  I also have about 30-40 lists, for example Newsletter List, and Free Signup list, etc, etc...

[problem]
---------------------------
Here's the problem, someone recently emailed saying, I recently purchased PRODUCT1, but keep getting emails promoting it, isn't there a way you could remove me from getting those emails, but still send me other email promotions?


So, now to the question... I know about the xtra folder, and the signup-xtra.php, is there some way to selectively setup SKIPS in that file related to these Followups?

I guess I wonder then, to do this, wouldn't I need SEPARATE signups/lists for every single product I offer, and then trigger the skips (followup skipping) in the other lists by automatically signing up the user to the appropriate product list that they have purchased?

Secondly, what if they purchase 2,3 products at once, I'm guessing I would need to trigger multiple signups/REMOVALS - actually not that big of a deal as it rarely happens (maybe 1% of the time) that someone purchases multiple products.

Has anyone else done this, is it doable, without too much overhead?

Thanks in advance for any ideas or thoughts on this....
Title: Selectively SKIPPING followups based on Products?
Post by: DW on September 06, 2006, 01:44:34 am
How will ListMail know your client has purchased a product?  I think the only way to do this will be with some custom script in your payment processing routine.  The custom script could remove buyers, based on case-insensitive email address, from a certain list and add them to another.
Title: Selectively SKIPPING followups based on Products?
Post by: BGSWebDesign on September 06, 2006, 02:07:58 am
Hi DW,

man you stay up late!

Quote
How will ListMail know your client has purchased a product?


There are several ways, as you mentioned...

Right now I have a way of doing it this way - in my shopping cart when a purchase is made I can automatically have an email sent anywhere I want, one of the places I have one sent is to a custom email address, the information I need for adding to one list, or removing from another appear in the subject/body of this email (all automated by the shopping cart).  

The reason this is necessary - because my shopping cart resides on a different server from my LMP lists.

So, you see I have one way of knowing, but this is for one product, I currently don't have a way of knowing for multiple product purchases, it only uses the first product purchased.

In light of what I described above, it seems the best way to do this would be to setup a LMP List for each product, when that list gets an email (via the automated process above), then I need to selectively skip a specific followup, from 2 or 3 other lists... . now, here's where the real problem comes in, the followup I need to skip may not be the next followup, it could be 3 weeks later, or even 3 months later!  

So, it seems a list needs to be kept track of, skip this followup (or these two, really I need to skip 2 followups that are in succession for example skip followup 15,16 on list 23)....  

As you see, this is not as easy as it sounds....  It seems a database, or list needs to be kept track of, or actually, how about this, Dailymail when updating the followups would need to LOOK AT THIS SPECIAL DATABASE (skip database), the skip database includes records (email address, list#, followup#) to skip... Dailymail processes the special SKIP DATABASE every time that it is ran, this would happen BEFORE the normal dailymail routines are executed... make sense?  

Is it possible, what do you think?   One other thing, to keep maintenance issues at hand, the SKIP DATABASE would also need to have records removed if someone REMOVES their email address from all lists, that way it doesn't keep growin  :)

Let me know what you think?
Title: Selectively SKIPPING followups based on Products?
Post by: DW on September 07, 2006, 02:49:22 am
Quote
So, it seems a list needs to be kept track of, skip this followup (or these two, really I need to skip 2 followups that are in succession for example skip followup 15,16 on list 23)....

This is getting complicated but I think you're on the right track... I could probably develop this in several hours - $75 sounds about right.  The question is: when will I be able to find the time :?  I'm trying to develop an update and am currently dealing with an unprecedented amount of support - things are getting a little overwhelming around here right now :shock: but I'm plugging away at it enthusiastically. (It's all I can do) :)  If you want to explore this further feel free - it could give me some ideas for making the would-be script easier (and cheaper)

Regards
Title: Selectively SKIPPING followups based on Products?
Post by: DW on September 15, 2006, 04:16:09 am
Brett,

I got your email and am considering doing this for you.  Revisiting your problem:
Quote
Here's the problem, someone recently emailed saying, I recently purchased PRODUCT1, but keep getting emails promoting it, isn't there a way you could remove me from getting those emails, but still send me other email promotions?

Could this be solved more simply with the "simpler PHP insertion script" as this guy is using it (http://listmailpro.com/forum/index.php?topic=1459.0)?

I don't understand why you'd want to go through the trouble of 'skipping followups'... Why not just switch or add/remove from lists?

The simpler PHP insertion script (http://listmailpro.com/forum/index.php?topic=1160.0) can also overwrite dupes and set the seq, del, so the user could stay on the same list with a new Seq/Del #.

Regards
Title: Selectively SKIPPING followups based on Products?
Post by: BGSWebDesign on September 15, 2006, 04:21:43 am
Hi Dean,

Quote
Could this be solved more simply with the "simpler PHP insertion script" as this guy is using it?

I don't understand why you'd want to go through the trouble of 'skipping followups'... Why not just switch or add/remove from lists?


No, this person has ONLY ONE PRODUCT!  Of course if you have only one product you just 'remove someone' when they purchase, as you don't have anything else to offer them!

This would be very similar to your own situation with LMP and marketing.

I have over 20 products, and all of them are in the same market, of course, if someone buys one of these, it doesn't mean they don't want another one, in fact probably 20-30% will purchase another one...  and of those about 50% or more will purchase 2 or more, BUT, they do so over time, they don't do it right away.  I would be 'throwing money away' to NOT continue sending them marketing information for additional products.

Think about it again, if I know WHICH products they have already purchased I speed up the additional revenue, AND help the customer by NOT sending them duplicate promotions over and over for products they have already purchased.

Is it clearer now?   Let me know...
Title: Selectively SKIPPING followups based on Products?
Post by: chufford on September 17, 2006, 08:11:00 am
I have thought about this issue as well. I haven't come up with a complete solution, but I had an idea. Perhaps we could maintain a single user field with a list of product codes owned by the user. Then followups (as well as mass emails) could use user selection rules to choose appropriate followups. One trick there is making a procedure to keep the product field up-to-date.

Just my 2 cents.
Title: Selectively SKIPPING followups based on Products?
Post by: DW on September 17, 2006, 08:25:48 am
I'll be revisiting this as soon as I can - hopefully it's possible somehow!
Title: Selectively SKIPPING followups based on Products?
Post by: BGSWebDesign on September 17, 2006, 11:07:11 am
Hi DW, Chris,

Quote
could use user selection rules to choose appropriate followups


This is NOT an option for me, I have followups go out for over 20 products, I need to be able to move those AHEAD for products already purchased.

Quote
hopefully it's possible somehow!


I've already presented the method for doing this (of course it's possible), what are you having trouble understanding?

As I said, a TAG for each Followup (ProductCode field, or whatever) lets you assign a Product Code to each Followup.  Then a list is maintained - PRODPURCHASED (really a table in the database) that you add rows to, each record contains the UserID field, AND the Product Code for each product they have purchased.  When Followups are sent this table has to be checked and each row read, if the userID matches and the followup is going to that user, AND the TAG for that Followup matches one of the TAGS for that User, then SKIP that Followup and move that user to next Sequence #/delay indicated for the next Followup.

DW, consider this, I know that pulling this with SQL may be a bit of challenge, there is another alternative, for me, DURING the send mail function, check EACH User before they are sent - not sure, that may be too slow - and bog down mailing... probably the best option, write a SQL statement that reads the PRODPURCHASED TABLE and removes users from the Queue, THEN another SQL statement moves those users to the next Sequence #, THEN start the mailing... a two step process.

Let me know when I can PayPal you the money to complete this?  I'm ready to have this as a feature, or I'll write it myself... but I don't see that as the best option because I KNOW that others will benefit from this...
Title: Selectively SKIPPING followups based on Products?
Post by: mr.trevor on September 17, 2006, 11:46:36 am
Hi... It seems obvious, but the idea of assigning a product code tag to each follow up falls in line with the other use Brett requested of tagging each follow up for 'Campaign Tracking'. They could be considered together so that a tag identifying a campaign would also identify the product, or the other way around.
This might not be a good idea but I just thought I would mention it.
Title: Selectively SKIPPING followups based on Products?
Post by: BGSWebDesign on September 17, 2006, 12:04:04 pm
Hi Trevor,

Quote
product code tag to each follow up falls in line with the other use Brett requested of tagging each follow up for 'Campaign Tracking'.


Thanks, I thought it was obvious too!  

That's exactly right, and why I'm asking DW to do this, adding a simple 'Campaign Tag' to each followup could also be used as a way of keeping track of purchases by keeping track of purchased products (product tag) that match the campaign...  in other words, give the Campaign and Product the same tag and you instantly have a way to get better stats AND add selective product Followup skipping.

I'm glad someone - 'sees the light' - halelujah!   :roll:
Title: when will you answer this?
Post by: BGSWebDesign on September 20, 2006, 12:23:52 pm
bump...

what is taking you so long to answer this DW????


Thanks,
-Brett
Title: Overwhelmed... :(
Post by: DW on September 20, 2006, 08:18:49 pm
Brett,

I'm really sorry for the no response for upwards of 5 days now - It's been overwhelmingly busy lately. I've been answering at least 30 emails per day, both pre-sales questions and tech support... I've had about 20 new forum requests... I've had about 8 installation orders and a couple 'warranty' jobs (where I've offered or it was ordered in the past)... I've had to troubleshoot a number of frustratingly-elusive bugs on a number of hosts, taking many hours... I've had to deal with repairing a couple dedicated servers I've been managing... Add all that to being busy in the "real-world" (a funeral, fridge & car repair, etc) and I'm struggling to sleep regularly and find time for family... :(

Your request is one that would take pretty much an entire workday so it seems like Mt. Everest to me at this point.  I will hopefully be all caught up on things and be able to take a serious look at it soon.  As you know I do always try to accomodate with thoughtful and comprehensive solutions no matter how time-consuming.  I would have liked to have done this for you shortly after your initial request but I just haven't had any extra time at all to accomodate something so complicated and requiring so much communication (I know you like to have a lot of input:) )...

One automated server repair script + instructional email, one installation and, possibly, one straightforward custom shopping cart integration to go and I feel like I might be in a position to revisit your request.  Please understand we may not be able to do exactly as you like.. For instance, I had not planned on modifying LMP much, if at all - we may have to discuss alternatives to some of your suggestions, which I haven't fully perused yet.  Hopefully what you want to do can be done without much trouble or modification to LMP directly.

After this, a couple other simpler custom jobs I have coming up (for new clients), and after I catch up on other things (as they are likely to keep coming in and pile up) I hope to finally get started on improving Link Tracking! :?

Regards
Title: Re: Overwhelmed... :(
Post by: BGSWebDesign on September 21, 2006, 07:26:42 am
Hi DW,

Quote from: "DW"
I'm really sorry for the no response for upwards of 5 days now - It's been overwhelmingly busy lately. I've been answering at least 30 emails per day, both pre-sales questions and tech support... I've had about 20 new forum requests... I've had about 8 installation orders and a


Wahh, wahh,  everyone has told you about ways to prevent those type of things, if you're doing that good you must be making a 6 figure income  :P   so why should we be worried?

Quote from: "DW"
haven't had any extra time at all to accomodate something so complicated and requiring so much communication


Where is this coming from?  So complicated, what are you talking about, this requires ONE FIELD to be added to Followups and on the followup screen!  That's it, and a little bit of SQL.  The reason I require communication is because I have to explain to you several times what I want - when it seems I'm fairly clear the first time.

Quote from: "DW"
Please understand we may not be able to do exactly as you like.. For instance, I had not planned on modifying LMP much, if at all - we may have to discuss alternatives to some of your suggestions, which I haven't fully perused yet.  Hopefully what you want to do can be done without much trouble or modification to LMP directly.


Again, where is this coming from?  When did you become that rigid, not planned on modifying LMP much?   Obviously you are not able to see the benefits that such a simple change would allow 1.) stats, Stats, STATS that anyone using your software will need, 2.) Better able to handle mailings to people for lists that offer multiple products (and I don't mean 1, 2 or 3 products).  

Anyone in this business knows that there are a lot of companies offering MORE than one product, and MORE than 2 or 3.  Once you get beyond that you can't do the simple things you suggest for tracking sales, and for skipping followups based on purchases.  When your website sells 20 or 30 different products things get harder, but that's life...  Are you suggesting that everyone who uses your product use it for only 1 product?

Here's where we're going to have to split, if you are not willing to make such simple changes to enhance your script than I'll be outta here pretty quick, and you know why, because I'll gladly write this thing myself if you can't see how this would help your end users.  

I've stuck with you for these last few years because in the past you've been willing to listen and see how things can be improved - but not seeing how this one simple change can affect things is beyond me - it's like you've become someone's Uncle Bob in the Basement  :twisted:  

Really, what is so hard to see about this, adding one field to Followups is going to give ANYONE the ability to get full Stats, all you would have to do is build a simple Stats page based on the ProductID that appears for each Followup and pull out the data - do you have your blinders on today, or did your household problems suddenly cloud your vision?????

Look at the replies to these posts, it's obvious to even your users what this can do!  Honestly, as I've said before, I'm not sure what you do during your day, if LMP is your only product you should be able to make changes like those mentioned fairly quickly, you should have a handle on support issues/updates and be able to make money from them, we have all went round and round with you on this, if you're not, then something is wrong - either you are not listening (most likely), or your busy doing something else - most of the day - because you're not around here posting anything.  I work an 8-10 hour day or more, I rarely see you post more than once/day?

Quote from: "DW"
After this, a couple other simpler custom jobs I have coming up (for new clients), and after I catch up on other things (as they are likely to keep coming in and pile up) I hope to finally get started on improving Link Tracking! :?


Frankly, I doubt your ability to get this completed anytime soon, and/or if you do I doubt it will have the desired capabilities that I or anyone else up here requires to get good data out - especially if you're not interested in changing LMP!

I wish you luck my friend, but it seems it's about time I head out on my own - have a look at the FCK Editor that the other user up here implemented on his own, it didn't take him forever and it works just fine... those are the kind of things you should be accomplishing - when instead it seems you spend your entire day on support issues????

Good luck...
Title: Selectively SKIPPING followups based on Products?
Post by: dbowen1 on September 26, 2006, 12:37:56 pm
Seriously dude, what else do you want? Dean clearly laid out his reasons for being unavailable for your customization. You are not his only customer. I know he appreciates suggestions but you are crossing the line into DEMANDING things which isn't fair to him or his customers. Lay off!

As I see it you don't get to demand things unless they were promised to you when you bought LMP (things like support, bug fixes, etc.). This feature clearly wasn't there when you bought LMP so treat it as it is... a feature request. You are at DW's mercy for getting it implemented unless he accepts a payment from you to get it done.

Bug fixes, demand away. Feature requests, take it easy man! Sure, we'd all like to see our requests make it into a major release yesterday, but feature requests should be prioritized after bug fixes and support.

I've seen you proclaim over and over again "how hard can it be?". You clearly know nothing about software that must be deployed to hundreds of users all of whom will be using different versions of php, mysql, web hosts, etc. There is a long process of coding, alpha testing, beta testing, and public release. I've been coding php for a long time and seemingly simple features are never as easy as they seem.

Just my 2 cents...
Title: Selectively SKIPPING followups based on Products?
Post by: DW on September 26, 2006, 01:59:13 pm
Thanks Dan... I just don't know what to say, really.  I did make a mistake in that I offered the service for a set rate before realizing the time and effort involved.  I also was not able to predict some of the time-consuming and emotionally-draining things happening in my life right now.  I provide custom scripts on occasion as a one-off service - for simpler jobs and integration, usually.  As per a discussion some time ago I believe we all decided I should do less paid-for-features.  Now, for the benefit of all I try to spend my time focused on support, bugs, improvement and planned/unfinished development.  I most certainly do not have time to argue about business practices or implementation...  This is why I've been pretty much avoiding response - I don't have the time or energy to argue :(  I have thought about revisiting this request but would really rather avoid the drama at this point... :?  I prefer to work with those who can understand and respect my position as a one-man-operation and are patient and supportive of my efforts to help them as best I can.  I try to please everyone all the time but it's inevitable it will fail on occasion.  I still greatly appreciate any and all suggestions, especially from thoughtful individuals who push my program to the limits.  Even though he can be hard on me I still appreciate Brett as a client and hope to implement at least some of his requests in the immediate future, for the benefit of all.

Regards
Title: Selectively SKIPPING followups based on Products?
Post by: mr.trevor on September 27, 2006, 07:10:40 am
Well, there's a turn up for the books...  :o

I was slated previously by Brett for suggesting that once simple data was put in the database it could be pulled out to provide more comprehensive reports.
It was said at that time that I did not appreciate how much work it took and that:
"That's over a one year job to guarantee a fully debugged and working version of Click-through rates, etc, etc, etc... do you have a year to wait around for that, with all the other features asked for, it's more likely a two year job."

As there seems to be a 'demand' for adding 'simple' features and a number of PHP programmers using the forum that would benefit from these additions, I wonder if there would be any system that would allow them to donate any solutions they code to DW for consideration and inclusion in the distributed 'official' code.

Maybe this could speed up non-essential but desirable additions.

Just a thought...  :wink:
Title: Selectively SKIPPING followups based on Products?
Post by: AlanT on February 28, 2007, 01:54:13 pm
This has been a very interesting thread.  

The concept of promoting multiple products is one that has been around for a while, and one that I have been considering for some time.

Please forgive me if I'm way off base here, but from my newbie perspective, it seems to be a fairly easy problem to solve, and one that doesn't require much (if any) custom programming.

Why not set up separate prospect lists for each product, and when someone is initially added to the system, have them subscribed to all lists at once.  Then, as they purchase each product, they are removed from that one list, thus never again receiving promotions for that product.

For instance, if I have 20 products to promote, a prospect gets signed up to 20 different prospect lists.

Each list has a different delay for the initial followup, so that the prospect only gets 1 message at a time.  For this example, let's say that list1 has the first followup set for a 0 delay, list2 has a delay of 1, and so on.

Thus, our prospect gets a new message once a day for 20 days, each promoting a different product.

Then each succeeding followup is set for a delay of 20 days.

If each list has 10 followup, the prospect gets a daily message for 200 days.

If we also have a separate list for each product that a customer gets added to after they purchase that product, then we can use the signup rules to remove them from the prospect list when they are added to the customer list.  For the above example, we now have 40 lists.  The customer lists don't have to have any followups, but can be used simply to manage the prospect lists.

And using the signup code available elsewhere on this forum, we can easily have this process automated.

What am I missing?
Title: Here's what you are missing...
Post by: BGSWebDesign on February 28, 2007, 05:05:08 pm
Hi Allen,

Quote
What am I missing?


Here's exactly what you are missing, and why you, or others can't see this is beyond me.

If I have 10 products (prod1, prod2, ... etc, prod10).  

Your system works - EXCEPT for one major flaw, the flaw is this.  I want my prospects to be MOVED UP in the list to the next product that is poromoted AFTER they have purchased any product.   This can ONLY be handled with ONE LIST, and with a field in the list that tracks WHICH PRODUCT the customer has purchased (somewhere in a custom field for the customer).

(*Keep in mind, my list CYCLES, so the user could be anywhere in the list, or they could be cycled back to prod1, after having seen the prod10 promotion.)

Here's a very detailed example.  Customer starts the list, gets promoted to for prod1, then prod2, (CUSTOMER PURCHASES prod3), let's say for the purpose of example, this customer has already cycled through the list and not purchased anything the first time round - but they saved the emails with the promotions... AFTER the customer received their prod2 promotion - they purchase prod3, and get even more excited and go through their old promotion emails even further and also purchase prod4 and prod6 (and YES this really does happen).   NOW - here's exactly what needs to happen, this customer has purchased:
prod3, prod4, prod6 (but they are currently on seq prod2 - ready to be moved up to prod3).

Using your example of 1 product/day (which is not likely in my scenario anyway, but I'll use it), instead of this prospect receiving prod3 promotion tomorrrow, they now need to receive prod5 promotion, after prod5 promotion they need to receive prod7 promotion.

As you can see - there is NO WAY you can handle this simply with 10 different lists, here's why, let's say you had
prod1
prod2
prod3
prod4
prod5
prod6
prod7
prod8
prod9
prod10

If you remove the user from lists prod3, prod4, prod6, that user (IN YOUR EXAMPLE) would NOT receive their next promotion until prod5 (which is 3 days away), and not anywhere near the correct sequence (this is probably fine for 1 day delays - but expand your thinking, my delays are 3-4 weeks, using this example they would miss 9-12 weeks of promotions waiting for their prod5 promotion, as they would be skipping prod3 and prod4.  

So (using your way of doing it Allan), EVEN IF you had a script to look say, they bought a product, you would need to know they bought 2 products, or 3 products AND THEN you would need to move that user ahead the number of products they bought (from the current day -> to the next prod promotion day FOR the total number of products they have bought today), secondly, you'd have to save this information somewhere, AND your script would have to remember that they bought prod3, and prod4 ON THE SAME DAY (and NOT on different days), so that you could advance your Seq# and Del# the correct number of days....

If you think this IS a convenient way to do this, I'd sure like to see your script - and while your at, ALL OF THE TIME - think about how much easier it would be managing TWO LISTs - and not 20 LISTs as you propose - and by the way, I have nearly 30 products, so as I add more products your methods require double the number of lists, over and over again, imagine 100 products, you'd need 200 lists!  

Do you REALLY, REALLY think this is efficient way to handle it?  

Let me explain (for about the TWENTY-FIFTH time) WHY (and how) you could do this very easily with one list.   You simply add ONE FIELD, that's it ONE FIELD to the Followup Database, that field is called Campaign (which in our example above would contain prod1, prod2, etc - but always ONLY one CampaignID for each followup - so for example the first Followup in the list would have "prod1" in it's CampaignID field, the second would have "prod2" in it's field, etc..), and could be used to tie any Followup sent out - to a specific campaign, then what you do - is you use ONE SINGLE FIELD in your Custom Customer Fields to store your campaigns that user has purchased (for example see above - it would contain "prod3,prod4,prod6," exactly like that).

Now, what you do when the user purchases, you add the CampaignID to the Custom Customer field every time the user purchases - so that you can get a record of the past purchases - NOW that you have that simple thing setup (1 field added to the Followup table, and 1 custom customer field used for purchases), when you run your DAILYMAIL function, you add an 'extra' script (or whatever it's called) that also runs with DAILYMAIL - LMP is currently already setup to do this...  When the extra script runs - it looks at the current sequence the user is on (prod2 would be correct in our example), and it looks at the NEXT COMING FOLLOWUP (prod3 in our exampe) at the newly added campainID field for the correct campaign (if it finds a match with this campaign, "prod3" in our example,  IN the Custom Customer field) where you store the purchased campaigns - indicating that customer has already purchased that product, instead of going to the next product in the sequence (prod3 in our example) this user now needs to be moved up to the next Seq# after prod3, (continue doing this until there is NO MATCH in the custom customer field). When you have cycled through the upcoming Followups and NOT FOUND a campaignID that matches a campaign in the custom customer field, you know the user is setup to receive the next upcoming product that they HAVE NOT PURCHASED, and continue correctly on in the list, the script may need to run through 2, 3, 4 or 10 next followups looking for one that the user HAS NOT PURCHASED and set them up for that Seq# in the list (it also needs to loop if the Followups are setup to loop), also the script needs to do one other thing - WHEN THE Customer has purchased every single product in the list of all products in the Followup Sequence (as it currently stands), the User can be removed from the list entirely, or be added to a different list of 'SUPER Purchasers' or something similar...

I hope I'm VERY Clear this time, don't make me repeat this a million times, as it will be very inefficient, just as your method of using 20 different lists to promote 10 different products is inefficient...

IS IT CLEAR NOW????????????????????????
Title: Selectively SKIPPING followups based on Products?
Post by: DW on February 28, 2007, 07:12:12 pm
I'm moving this to development because it seems to contain a lot of good information about this suggestion.  When a number of other promised features are done for the next update I will be able to take another look at this.

Eventually I would like to modularize followups and allow multiple followup sets to be applied to a single list - perhaps this feature could help.  When the user purchases one product they could be removed from that followup set and move on to the next, if any.  I don't expect to modularize followups very soon, however, and I will likely look into this again before then.

Regards
Title: Selectively SKIPPING followups based on Products?
Post by: AlanT on February 28, 2007, 07:21:45 pm
If it's so easy, why don't you do it yourself?  Or hire a coder for $35/hr and have it done for $10?

Okay, so I hear that you don't want to promote the products concurrantly, but sequentially.

I certainly don't claim to be an expert here, nor do I claim to have the 'perfect' answer.  I'm simply offering a possible solution using what LM currently has to offer.  

There's usually more than one way to solve a problem, and I've gotten the impression that maybe you're hung up on only one possibility.  I've certainly been there myself, as Dean witnessed when I first converted to LM.  I now realize that there was another way to do what I thought HAD to be done only one way.

It feels as if you have been berating everyone here because they can't see it your way.  Have you tried seeing it from another perspective yourself?

It just seems to me that the answer lies in using multiple lists somehow and the LM feature of switching a subscriber from one list to another under certain conditions.  That would certainly be less resource intensive than trying to add more comparisons to every mailing that goes out.  After all, very few of us need such a feature.

Since LM gives us the ability to move a subscriber from one list to another in sequence, this would take care of the "one product at a time" requirement, and working with the delays will produce any required timing.  And with the "unsubscribe from list X when user subscribes to this list" feature, that would automatically jump a user ahead in the sequence when they make a purchase, using code that is available here on the forum.

Just offering suggestions for what I see as possibilities.  Take from it what you will and leave what doesn't meet your demands.
Title: Selectively SKIPPING followups based on Products?
Post by: BGSWebDesign on March 01, 2007, 07:54:28 am
Hi Alan,

Quote
Have you tried seeing it from another perspective yourself?


Yes, and as I appreciate that you offered that, I'm sorry if it came across a little 'abrasive'.  But, as I indicated, I have 30+ products, I don't want another 60 lists to manage those products, and secondly, as indicated above, writing the script to handle that using your method would be next to impossible, and much more work than handling it the way I've indicated.

I have considered writing it myself, and probably will, BUT, consider this, when you write it yourself, you've pretty much locked yourself into your own version, since when the next version comes out you'd have to 'rewrite'everything again to the standards of that version, so hence, the hesitancy to write it myself, I certainly would be comfortable doing it, but the time involved every time a new version came out would not be fun, now would it?

Part of the other reason I don't see WHY this is such a big deal is because the change I ask for would not take that much time to code, the testing would take some time, but when I ask DW and pay DW to do things (and yes, I am going to pay him extra to make these changes, they are not free support), then I generally do all of the testing myself, saving him that time.  Secondly, I wouldn't be recommending it if I didn't feel it could be used by others, and thirdly DW, I don't believe Modularizing the Followups will help **unless you're going to give me a custom field for the followup, in which case it very much could help, as I could use that field for my 'CampaignID' as indicated above, and I very much could then write my own 'extra' script to handle the updates on the Seq/Delays as indicated....

Quote
It just seems to me that the answer lies in using multiple lists somehow and the LM feature of switching a subscriber from one list to another under certain conditions. That would certainly be less resource intensive


No, it doesn't lie in multiple lists, as it that would create more problems to manage, and make writing the script to handle the Seq/Del updates more difficult, and it is not less resource intensive, unless you consider managing about 60-100 lists less resource intensive than managing 1?  See below...  Also, I'm not 'new' to this, and I'm not a 'newbie', I have a degree in computer science with a concentration in database management systems - many times I see these type of 'questions'/issues come up with people who do not have experience in this area and believe that they know a 'better way' to handle/manipulate data.  I've studied databases for many years and ran my own company doing custom database development - so I know how to formulate needs requirements and make them into working products - this requires knowledge of how to optimize and relate databases reduce them to 3NF (third normal form) and understand how they work together to solve a problem - in other words...  I'm talking from experience.

Regarding your question about seeing it another way, sure, many times there are 'other', 'easier' ways, but most of the time those come at a price, as indicated above the price this time is handling huge numbers of lists (60 or more) to do what I want, which is not pleasant at all  :twisted:  so, you see, the 'other way' is usually some inefficient or 'hacked' way of handling something which could be handled much more elegantly to the benefit of all involved....

Hope that all makes sense and thanks for the input, I do appreciate it...

DW - please do consider the 'modularizing' of the followups if this will include the ability of anyone to add a 'custom field' to the Followup, that way I can tie the Followup to a specific Campaign.

Oops, I just had a closer look at what you said:
Quote
I would like to modularize followups and allow multiple followup sets to be applied to a single list


I don't believe that is going to help - what would help is one simple change, please consider it (and then I'll write everything else myself) - what I need is ONE CUSTOM FIELD in the Followup that I can assign a CampainID to, that's it... make it at least 20 chars long...  if you do that, I'll be able to achieve everything else I want by myself and everyone else can let this rest... until someday they find that they do need it  :?
Title: Selectively SKIPPING followups based on Products?
Post by: AlanT on March 01, 2007, 09:39:40 am
Hi Brett,

You've got me intrigued now.  The example of daily emails was just an example because I didn't know your system.

When I proposed a collection of lists, my thoughts were that the lists would be set up once and then forgotten about.  I'm not sure what type of 'management' they require on an ongoing basis.  My lists (12 of them) are for single products only, and I never spend any time with them after setting them up.  The prospect of having 1000 lists doesn't intimidate me, especially since I can create User Selection groups where I can mail to everyone at once.

I think I understand now that in your system, you promote one product at a time for several weeks before moving on to the next product in the sequence, and then restarting the whole process as in a loop.  I also understand now that you simply want to remove the product promotions from the sequence that the customer has previously purchased, while maintaining a steady flow of communication.

{Forgive my ignorance here, your posts were so long I only skimmed them instead of actually READING them.  I've gone back and actually READ them now.}

To do that, the system WOULD need to keep track of which products were purchased and skip the followup sequences that relate to those products.  As I see it, this could still be done with multiple lists or a single list as you mentioned.  

The only thing I see in your proposal is that multiple data items would be stored in a single field, which I imagine takes more processing than using a separate table.  (The resources I mentioned were the processing cycles of the server, not the administration time involved, which I also try to minimize as much as possible.)

To my mind, using multiple lists still makes more sense, as the list itself can be used as a CampaignID, thus eliminating a core database change.  In fact, it's possible to do this without ANY LM database changes.

In fact, the only thing that would be required would be an extra check when a customer makes a purchase, or when they have completed a product specific followup sequence (which is easier to track with multiple lists).

I realize that all of your prospects are in a single list and separating them out into separate lists would require massaging the database to Update the user table in order to move them.  I figure that a small script could be written to make the process go smoother, so you can update cseq and cdel numbers as well.  Maybe a series of Update queries like:

Update lm_users where ((cseq > x) and (cseq < y)) set list = NEWLIST, cseq = cseq - z

(This may be syntactically incorrect, but you get the idea.)

Okay, so here's what I see at this point, and I hope it provides a helpful clue.

What if....

30 products, each with a followup sequence that covers 3-4 weeks.

30 lists, each for a different product.  Each list is set so that when the subscriber has completed the list, they are automatically moved to the next list in the sequence, as set in the List Settings screen (Followup Options #2 - I figure it's there for a reason).    

The last list in the sequence points back to the first list to 'round robin' the user.  When a new product is added to the set, its list points back to the first list and what was the last list is edited to point to the new last list.  60 seconds of administration beyond the creation of the list and followup sequence.  Adding a product to the middle of the sequence takes almost the same amount of time.

What we need is a table that relates products purchased to a user ID, and after each sale, a new row is added that stores the user ID and something that identifies the product, which could be the list id associated with that product.  It could also be the sales data in your sales system (shopping cart or other).  A LM custom field can identify the user in the other software, thus eliminating any LM database changes.

Next, we need LM to perform a maintenance script when moving the user from one list to the next, to check if the user has already purchased that product, and if so, to move them to the following list, where the checks are performed again.  If all products have been purchased, then the user is moved to a 'waiting' list, where you can promote future products.

{Doing the checks when a user reaches the end of a list is much less demanding of server resources than doing the checks for every followup that goes out.  The custom script that checks for products purchased can check data stored in either the LM database OR the sales system database, using a custom user field to identify the user.}

I suppose that LM can be easily edited to process another Xtra script at this point where all the custom processing occurs.  This would eliminate much of the "upgrade hassle" that you're worried about.  And maybe Dean will see this as valuable enough to add in to the system as a normal feature.

Outside of LM, the sales system would need to relate the sales data to a LM user id.  This could be in the creation of a sales entry in a new LM table, or storing the LM user id in the sales system, or storing the customer ID (from the sale system) in the LM user table as a custom field.

We also need to trigger the moving of the customer to the end of the sequence, thus triggering the series of checks to get them to the right list.

Within LM, a new Xtra script to process the custom requirements, and possibly a new table to relate the user to products purchased.  (This would be even easier if LM stored the custom field data in a separate table, thus allowing for an unlimited number of options.)

In total, the extra code required would be the series of checks you've proposed, and some code after a sale that adds an entry to a database and moves the user to the end of their current list (which is known based on the product purchased.)

Administration time required outside of setting up the system is vitually nil.
Title: Selectively SKIPPING followups based on Products?
Post by: BGSWebDesign on March 01, 2007, 11:45:00 am
Hi Alan,

Yes, having read this I see your point (enlightenment)!  

Yes, a tiny lighbulb went off when I saw that you mentioned you can point users to be moved to another list when the sequence ends, I forgot about that being in LMP.

It does make sense, but as far as managing 30 lists instead of one, it's not as much fun for me, I know you say it's not time-consuming, but I'd much rather work with 1 list than try to track down users in 30 lists, but, I can live with it.

Regarding this:
Quote
would be the series of checks you've proposed, and some code after a sale that adds an entry to a database and moves the user to the end of their current list (which is known based on the product purchased.)


I would have to store in a database separate from LMP, I run Miva shopping cart which uses proprietary dbf (dBase) format so I can't get to the data in that cart very easily, unless you can think of something there, I would probably do this - pull the data from the DBF database file one time (when I initially load up a MySQL table) with the user email address, and product they have purchased, one row for each purchase.  Then from now on, any purchases that take place I call a simple script that runs via Email - since my LMP runs on an entirely different host from my shopping cart.  Basically I do something similar to that now - using a procmail script to handle signups: the shopping system sends an email when purchase is made, and the script inserts the user via a simple LMP insert script.  

This is the one thing I'm not clear on:
Quote
Next, we need LM to perform a maintenance script when moving the user from one list to the next, to check if the user has already purchased that product, and if so, to move them to the following list, where the checks are performed again. If all products have been purchased, then the user is moved to a 'waiting' list, where you can promote future products.


DW, is there any way to have a script when a user is moved from one list to another?  Would the "extra" script work here?

You've inspired me to make this work now, and I have users clamoring to stop getting promotions for something they've already purchased, so that will help to.

Thanks for taking the time to give me a different viewpoint.
Title: Selectively SKIPPING followups based on Products?
Post by: AlanT on March 01, 2007, 11:55:02 am
Glad that my ideas weren't totally worthless, and doubly glad that they have inspired you.

Take care.
Title: Selectively SKIPPING followups based on Products?
Post by: BGSWebDesign on March 01, 2007, 12:02:48 pm
Alan,

There's one little thing I'm not sure of, DW may have to answer this...  see above, I added some text.  Regarding the 'little script' that runs when a user is moved from one list to the next...

Will signup-xtra.php work for this???  

There's not much I find on it, but this is in the file itself:
Code: [Select]
 NOTE: This script will run after every non-manual signup to every list.

Please tell me DW, will this script run when users are being moved from one list to the other using the List Settings option:
Code: [Select]
Move users who reach end of followup sequence to list

Please let me know, if it does not, a quick change in code somewhere, and perhaps it can be ran, OR, better yet, setup a different script, move-xtra.php to be ran every time a user is being moved from one list to another?

How about it DW?   Really, I think it's better suited to having a move-xtra.php script, can you please add that to the LMP code so that it calls move-xtra.php every time a user is being moved?
Title: Selectively SKIPPING followups based on Products?
Post by: AlanT on March 01, 2007, 12:40:58 pm
I'm not exactly sure of the details, but it looks like you're on a constructive path.  I guess that doing a text search on the PHP files will reveal when the signup-xtra.php file is being called.

And I'm also guessing that when you find how that one is being called, you can add a similar bit to call a separate move-xtra.php file once you find where that is being done, if that is indeed a separate process.
Title: Selectively SKIPPING followups based on Products?
Post by: BGSWebDesign on March 01, 2007, 12:58:15 pm
Hi Alan,

Quote
you can add a similar bit to call a separate move-xtra.php file once you find where that is being done, if that is indeed a separate process.


Thanks, I know that, what I'd like to hear is from DW that he will add a call to move-xtra.php in LMP, that way I don't have to go in and hand edit the file that I have to change every time a new version comes out.
Title: Selectively SKIPPING followups based on Products?
Post by: DW on March 01, 2007, 11:23:07 pm
I have replied in another thread, here:

http://listmailpro.com/forum/index.php?topic=1731.0

Regards