Class: Telerivet::RelativeScheduledMessage

Inherits:
Entity
  • Object
show all
Defined in:
lib/telerivet/relativescheduledmessage.rb

Overview

A relative scheduled message is a message that is scheduled relative to a date stored as a custom field for each recipient contact. This allows scheduling messages on a different date for each contact, for example on their birthday, a certain number of days before an appointment, or a certain number of days after enrolling in a campaign.

Telerivet will automatically create a [ScheduledMessage](#ScheduledMessage) for each contact matching a RelativeScheduledMessage.

Any service that can be manually triggered for a contact (including polls) may also be scheduled via a relative scheduled message, whether or not the service actually sends a message.

Fields:

- id (string, max 34 characters)
    * ID of the relative scheduled message
    * Read-only

- content
    * Text content of the relative scheduled message
    * Updatable via API

- time_of_day
    * Time of day when scheduled messages will be sent in HH:MM format (with hours from 00
        to 23)
    * Updatable via API

- date_variable
    * Custom contact variable storing date or date/time values relative to which messages
        will be scheduled.
    * Updatable via API

- offset_scale
    * The type of interval (day/week/month/year) that will be used to adjust the scheduled
        date relative to the date stored in the contact's date_variable, when offset_count is
        non-zero (D=day, W=week, M=month, Y=year)
    * Allowed values: D, W, M, Y
    * Updatable via API

- offset_count (int)
    * The number of days/weeks/months/years to adjust the date of the scheduled message
        relative relative to the date stored in the contact's date_variable. May be positive,
        negative, or zero.
    * Updatable via API

- rrule
    * Recurrence rule for recurring scheduled messages, e.g. 'FREQ=MONTHLY' or
        'FREQ=WEEKLY;INTERVAL=2'; see
        [RFC2445](https://tools.ietf.org/html/rfc2445#section-4.3.10).
    * Updatable via API

- end_time (UNIX timestamp)
    * Time after which recurring messages will stop (not applicable to non-recurring
        scheduled messages)
    * Updatable via API

- timezone_id
    * Timezone ID used to compute times for recurring messages; see [List of tz database
        time zones Wikipedia
        article](http://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
    * Updatable via API

- recipients_str
    * A string with a human readable description of the recipient
    * Read-only

- group_id
    * ID of the group to send the message to (null if the recipient is an individual
        contact)
    * Updatable via API

- contact_id
    * ID of the contact to send the message to (null if the recipient is a group)
    * Updatable via API

- to_number
    * Phone number to send the message to (null if the recipient is a group)
    * Updatable via API

- route_id
    * ID of the phone or route the message will be sent from
    * Updatable via API

- service_id (string, max 34 characters)
    * The service associated with this message (for voice calls, the service defines the
        call flow)
    * Updatable via API

- audio_url
    * For voice calls, the URL of an MP3 file to play when the contact answers the call
    * Updatable via API

- tts_lang
    * For voice calls, the language of the text-to-speech voice
    * Allowed values: en-US, en-GB, en-GB-WLS, en-AU, en-IN, da-DK, nl-NL, fr-FR, fr-CA,
        de-DE, is-IS, it-IT, pl-PL, pt-BR, pt-PT, ru-RU, es-ES, es-US, sv-SE
    * Updatable via API

- tts_voice
    * For voice calls, the text-to-speech voice
    * Allowed values: female, male
    * Updatable via API

- message_type
    * Type of scheduled message
    * Allowed values: sms, mms, ussd, ussd_session, call, chat, service
    * Read-only

- time_created (UNIX timestamp)
    * Time the relative scheduled message was created in Telerivet
    * Read-only

- replace_variables (bool)
    * Set to true if Telerivet will render variables like [[contact.name]] in the message
        content, false otherwise
    * Updatable via API

- track_clicks (boolean)
    * If true, URLs in the message content will automatically be replaced with unique
        short URLs
    * Updatable via API

- media (array)
    * For text messages containing media files, this is an array of objects with the
        properties `url`, `type` (MIME type), `filename`, and `size` (file size in bytes).
        Unknown properties are null. This property is undefined for messages that do not
        contain media files. Note: For files uploaded via the Telerivet web app, the URL is
        temporary and may not be valid for more than 1 day.
    * Read-only

- route_params (Hash)
    * Route-specific parameters to use when sending the message. The parameters object may
        have keys matching the `phone_type` field of a phone (basic route) that may be used to
        send the message. The corresponding value is an object with route-specific parameters
        to use when sending a message with that type of route.
    * Updatable via API

- vars (Hash)
    * Custom variables stored for this scheduled message (copied to each ScheduledMessage
        and Message when sent)
    * Updatable via API

- label_ids (array)
    * IDs of labels to add to the Message
    * Updatable via API

- project_id
    * ID of the project this relative scheduled message belongs to
    * Read-only

Instance Method Summary collapse

Methods inherited from Entity

#get, #initialize, #load, #set, #set_data, #to_s, #vars

Constructor Details

This class inherits a constructor from Telerivet::Entity

Instance Method Details

#audio_urlObject



283
284
285
# File 'lib/telerivet/relativescheduledmessage.rb', line 283

def audio_url
    get('audio_url')
end

#audio_url=(value) ⇒ Object



287
288
289
# File 'lib/telerivet/relativescheduledmessage.rb', line 287

def audio_url=(value)
    set('audio_url', value)
end

#contact_idObject



251
252
253
# File 'lib/telerivet/relativescheduledmessage.rb', line 251

def contact_id
    get('contact_id')
end

#contact_id=(value) ⇒ Object



255
256
257
# File 'lib/telerivet/relativescheduledmessage.rb', line 255

def contact_id=(value)
    set('contact_id', value)
end

#contentObject



175
176
177
# File 'lib/telerivet/relativescheduledmessage.rb', line 175

def content
    get('content')
end

#content=(value) ⇒ Object



179
180
181
# File 'lib/telerivet/relativescheduledmessage.rb', line 179

def content=(value)
    set('content', value)
end

#date_variableObject



191
192
193
# File 'lib/telerivet/relativescheduledmessage.rb', line 191

def date_variable
    get('date_variable')
end

#date_variable=(value) ⇒ Object



195
196
197
# File 'lib/telerivet/relativescheduledmessage.rb', line 195

def date_variable=(value)
    set('date_variable', value)
end

#deleteObject

Deletes this relative scheduled message and any associated scheduled messages.



167
168
169
# File 'lib/telerivet/relativescheduledmessage.rb', line 167

def delete()
    @api.do_request("DELETE", get_base_api_path())
end

#end_timeObject



223
224
225
# File 'lib/telerivet/relativescheduledmessage.rb', line 223

def end_time
    get('end_time')
end

#end_time=(value) ⇒ Object



227
228
229
# File 'lib/telerivet/relativescheduledmessage.rb', line 227

def end_time=(value)
    set('end_time', value)
end

#get_base_api_pathObject



355
356
357
# File 'lib/telerivet/relativescheduledmessage.rb', line 355

def get_base_api_path()
    "/projects/#{get('project_id')}/relative_scheduled/#{get('id')}"
end

#group_idObject



243
244
245
# File 'lib/telerivet/relativescheduledmessage.rb', line 243

def group_id
    get('group_id')
end

#group_id=(value) ⇒ Object



247
248
249
# File 'lib/telerivet/relativescheduledmessage.rb', line 247

def group_id=(value)
    set('group_id', value)
end

#idObject



171
172
173
# File 'lib/telerivet/relativescheduledmessage.rb', line 171

def id
    get('id')
end

#label_idsObject



343
344
345
# File 'lib/telerivet/relativescheduledmessage.rb', line 343

def label_ids
    get('label_ids')
end

#label_ids=(value) ⇒ Object



347
348
349
# File 'lib/telerivet/relativescheduledmessage.rb', line 347

def label_ids=(value)
    set('label_ids', value)
end

#mediaObject



331
332
333
# File 'lib/telerivet/relativescheduledmessage.rb', line 331

def media
    get('media')
end

#message_typeObject



307
308
309
# File 'lib/telerivet/relativescheduledmessage.rb', line 307

def message_type
    get('message_type')
end

#offset_countObject



207
208
209
# File 'lib/telerivet/relativescheduledmessage.rb', line 207

def offset_count
    get('offset_count')
end

#offset_count=(value) ⇒ Object



211
212
213
# File 'lib/telerivet/relativescheduledmessage.rb', line 211

def offset_count=(value)
    set('offset_count', value)
end

#offset_scaleObject



199
200
201
# File 'lib/telerivet/relativescheduledmessage.rb', line 199

def offset_scale
    get('offset_scale')
end

#offset_scale=(value) ⇒ Object



203
204
205
# File 'lib/telerivet/relativescheduledmessage.rb', line 203

def offset_scale=(value)
    set('offset_scale', value)
end

#project_idObject



351
352
353
# File 'lib/telerivet/relativescheduledmessage.rb', line 351

def project_id
    get('project_id')
end

#recipients_strObject



239
240
241
# File 'lib/telerivet/relativescheduledmessage.rb', line 239

def recipients_str
    get('recipients_str')
end

#replace_variablesObject



315
316
317
# File 'lib/telerivet/relativescheduledmessage.rb', line 315

def replace_variables
    get('replace_variables')
end

#replace_variables=(value) ⇒ Object



319
320
321
# File 'lib/telerivet/relativescheduledmessage.rb', line 319

def replace_variables=(value)
    set('replace_variables', value)
end

#route_idObject



267
268
269
# File 'lib/telerivet/relativescheduledmessage.rb', line 267

def route_id
    get('route_id')
end

#route_id=(value) ⇒ Object



271
272
273
# File 'lib/telerivet/relativescheduledmessage.rb', line 271

def route_id=(value)
    set('route_id', value)
end

#route_paramsObject



335
336
337
# File 'lib/telerivet/relativescheduledmessage.rb', line 335

def route_params
    get('route_params')
end

#route_params=(value) ⇒ Object



339
340
341
# File 'lib/telerivet/relativescheduledmessage.rb', line 339

def route_params=(value)
    set('route_params', value)
end

#rruleObject



215
216
217
# File 'lib/telerivet/relativescheduledmessage.rb', line 215

def rrule
    get('rrule')
end

#rrule=(value) ⇒ Object



219
220
221
# File 'lib/telerivet/relativescheduledmessage.rb', line 219

def rrule=(value)
    set('rrule', value)
end

#saveObject

Saves any fields or custom variables that have changed for this relative scheduled message.



160
161
162
# File 'lib/telerivet/relativescheduledmessage.rb', line 160

def save()
    super
end

#service_idObject



275
276
277
# File 'lib/telerivet/relativescheduledmessage.rb', line 275

def service_id
    get('service_id')
end

#service_id=(value) ⇒ Object



279
280
281
# File 'lib/telerivet/relativescheduledmessage.rb', line 279

def service_id=(value)
    set('service_id', value)
end

#time_createdObject



311
312
313
# File 'lib/telerivet/relativescheduledmessage.rb', line 311

def time_created
    get('time_created')
end

#time_of_dayObject



183
184
185
# File 'lib/telerivet/relativescheduledmessage.rb', line 183

def time_of_day
    get('time_of_day')
end

#time_of_day=(value) ⇒ Object



187
188
189
# File 'lib/telerivet/relativescheduledmessage.rb', line 187

def time_of_day=(value)
    set('time_of_day', value)
end

#timezone_idObject



231
232
233
# File 'lib/telerivet/relativescheduledmessage.rb', line 231

def timezone_id
    get('timezone_id')
end

#timezone_id=(value) ⇒ Object



235
236
237
# File 'lib/telerivet/relativescheduledmessage.rb', line 235

def timezone_id=(value)
    set('timezone_id', value)
end

#to_numberObject



259
260
261
# File 'lib/telerivet/relativescheduledmessage.rb', line 259

def to_number
    get('to_number')
end

#to_number=(value) ⇒ Object



263
264
265
# File 'lib/telerivet/relativescheduledmessage.rb', line 263

def to_number=(value)
    set('to_number', value)
end

#track_clicksObject



323
324
325
# File 'lib/telerivet/relativescheduledmessage.rb', line 323

def track_clicks
    get('track_clicks')
end

#track_clicks=(value) ⇒ Object



327
328
329
# File 'lib/telerivet/relativescheduledmessage.rb', line 327

def track_clicks=(value)
    set('track_clicks', value)
end

#tts_langObject



291
292
293
# File 'lib/telerivet/relativescheduledmessage.rb', line 291

def tts_lang
    get('tts_lang')
end

#tts_lang=(value) ⇒ Object



295
296
297
# File 'lib/telerivet/relativescheduledmessage.rb', line 295

def tts_lang=(value)
    set('tts_lang', value)
end

#tts_voiceObject



299
300
301
# File 'lib/telerivet/relativescheduledmessage.rb', line 299

def tts_voice
    get('tts_voice')
end

#tts_voice=(value) ⇒ Object



303
304
305
# File 'lib/telerivet/relativescheduledmessage.rb', line 303

def tts_voice=(value)
    set('tts_voice', value)
end