Predict time of dispatch for marketing campaign What would be appropriate models/algorithms/strategies for predicting best individual send times for marketing campaigns based on past response timestamps? 

Data:

Given for example 

===========================================================
  customer campaign    campaign_time       response_time   
-----------------------------------------------------------
1   100       a     2017-01-01 06:50:01 2017-01-01 08:02:21
2   101       a     2017-01-01 06:50:01 2017-01-01 16:45:31
3   101       a     2017-01-01 06:50:01 2017-01-02 07:20:00
4   100       b     2017-01-07 06:30:21 2017-01-08 08:15:21
5   101       b     2017-01-07 06:30:21 2017-01-07 17:00:12
6   100       c     2017-01-14 06:43:55 2017-01-14 07:59:44
7   101       d     2017-01-21 14:02:01 2017-01-21 16:50:01
-----------------------------------------------------------



two customers 100&amp;101,  
four past campaigns a-d. 
with each campaign having different times of dispatch,   
and multiple,one or no response time(s) (e.g. buying a product) for customers and campaigns


Goal:

Assuming that 


campaign_time can vary for 100 and 101 (personalized times
of dispatch), and
past response times are an indicator for when
customers are most receptive for a campaign


I would like to predict the best next campaign_time ( 2017-01-28 ??:??:??) for each customer based on past response_times, so that the number of respondents per campaign is maximized. 

Anyone having any experience with something similar or any ideas where to start? I'd be happy to hear some ideas. 

To simplify things, I'd consider the first response_time the most valuable one (=> should be predicted) and I'd also abstract from weekdays (=> it's about predicting time 0:00-23:59, marked by the ? above); however it would be nice to have a continous prediction instead of a discretized one (like suggested here).
I might suggest a change to your theoretical setup:

It sounds like you are trying to maximize an equation f(t), where t is the time of dispatch, and f(t) is the risk adjusted chance of purchasing (as you note it can be 0-many).

In that case, it is likely better to use a setup like this:

===========================================================
  customer campaign    campaign_time       total_responses_within_1week   
-----------------------------------------------------------
1   100       a     2017-01-01 06:50:01       0
2   101       a     2017-01-01 06:50:01       3
3   101       a     2017-01-01 06:50:01       2
4   100       b     2017-01-07 06:30:21       1
5   101       b     2017-01-07 06:30:21       1
6   100       c     2017-01-14 06:43:55       1
7   101       d     2017-01-21 14:02:01       1
-----------------------------------------------------------


Unless you have specific internal data or journal research that directly indicates a relationship between speed of response and likelihood/number of purchases, I might avoid including it.

Now, if you need to estimate time of response for issues like labor or inventory, you could use a probabilistic model, but I'll avoid making specific recommendations there, as my relative strength is in regression models. You'd want the function to output a probabilistic curve over a given time period, and then sum all of those curves together (e.g. to estimate that during Weds morning, you will have 80-109 orders, so need 5 customer service reps).

If your goal is purely response frequency (within a relevant time), time of response doesn't need to be modeled, however.