Timeline event operations

Operations on individual properties

class TimelineEventOperation
__init__(event_type_id, strategy, event_id=None, source=None, date_time=None, identifier=None)

This class represents a BlueConic timeline event operation. Do note that the date_time is optional. When using SET, the date will be now when left empty. When using UPSERT/UPDATE and it’s left empty, all events with the given event ID and event type ID are updated, thus having an impact on the number of data operations.

Parameters
  • event_type_id (str) – The event type ID

  • strategy (blueconic.domain.TimelineStrategy) – Strategy for this operation

  • event_id (Optional[str]) – The event ID

  • source (Optional[str]) – The source of the timeline event (only used when using SET, ignored otherwise)

  • date_time (Optional[Union[date, datetime, str]]) – Datetime of the event (if not passed, all events matching the ID and event type ID are affected)

  • identifier (Optional[str]) – An external identifier which can be passed along with timeline event operation and is returned in the response

Usage:
>>> import blueconic
>>> # Create a TimelineEventOperation which will be executed on an event with and id "abandoned_basket_2"
>>> timeline_operation = blueconic.TimelineEventOperation(
>>>     "abandoned_basket", blueconic.TimelineStrategy.UPSERT, event_id="abandoned_basket_2"
>>> )
add_rule(property_id, values, strategy=None)

Add rule to apply on the timeline event.

Parameters
  • property_id (str) – The timeline event property ID to apply the rule on

  • values (Union[str, int, float, date, datetime, TimelineNestedItemOperation, Sequence]) – List of values or TimelineNestedItemOperation instances

  • strategy (Union[Strategy, TimelineStrategy]) – The strategy to apply (TimelineStrategy when using TimelineNestedItemOperation, Strategy otherwise)

Usage:
>>> import blueconic
>>> bc = blueconic.Client()
>>> # Create ProfileOperation which will be executed on profile with given profile_id
>>> profile_operation = blueconic.ProfileOperation(profile_id="29b138e2-9824-45c3-ace6-909ee308ceb1")
>>>
>>> # Create a TimelineEventOperation which will be executed on an event with and id "abandoned_basket_2"
>>> timeline_operation = blueconic.TimelineEventOperation(
>>>     "abandoned_basket", blueconic.TimelineStrategy.UPSERT, event_id="abandoned_basket_2"
>>> )
>>>
>>> # Create TimelineNestedItemOperation where identifier property is "id" with value "987644321"
>>> nested_property_operation = blueconic.TimelineNestedItemOperation("id", "987644321")
>>> nested_property_operation.add_rule("quantity", 100, blueconic.Strategy.SET)
>>>
>>> # There is a root level property "product", add nested-properties to it
>>> timeline_operation.add_rule("product", nested_property_operation, blueconic.TimelineStrategy.UPSERT)
>>>
>>> # There is a root level property "product", delete the product with id "567898" from it
>>> delete_product_operation = blueconic.TimelineNestedItemOperation("id", "567898")
>>> timeline_operation.add_rule("product", delete_product_operation, blueconic.TimelineStrategy.DELETE)
>>>
>>> # Add the timeline_operation to profile_operation
>>> profile_operation.add_timeline_operation(timeline_operation)
>>>
>>> # Save the updated property through profile bulkhandler
>>> with bc.get_profile_bulkhandler() as bh:
>>>     bh.write(profile_operation)
property date_time
Returns

Returns the datetime of the event.

Return type

Optional[Date]

property event_id
Returns

Returns the event id.

Return type

Optional[str]

property event_type_id
Returns

Returns the event type id.

Return type

str

property identifier
Returns

Returns the external identifier of the timeline event.

Return type

Optional[str]

property rules
Returns

Returns the rules to apply on the timeline event.

Return type

List[Dict[str, Any]]

property source
Returns

Returns the source of the timeline event.

Return type

Optional[str]

property strategy
Returns

Returns the timeline event operation strategy.

Return type

TimelineStrategy

Operation on nested items

class TimelineNestedItemOperation
__init__(identifier_property_id=None, value=None)

This class represents a BlueConic timeline nested operation.

Parameters
  • identifier_property_id (str) – The ID of the timeline event property which is the identifier (e.g. productID in products).

  • value (Union[str, int, float]) – Value for identifier property

Usage:
>>> import blueconic
>>> bc = blueconic.Client()
>>>
>>> # Create TimelineNestedItemOperation where identifier property is "id" with value "987644321"
>>> blueconic.TimelineNestedItemOperation("id", "987644321")
add_rule(property_id, values, strategy=None)

Add rule to apply on the timeline event.

Parameters
  • property_id (str) – The timeline event property ID to apply the rule on

  • values (Union[str, int, float, date, datetime, TimelineNestedItemOperation, Sequence]) – List of values or TimelineNestedItemOperation instances

  • strategy (Union[Strategy, TimelineStrategy]) – The strategy to apply (TimelineStrategy when using TimelineNestedItemOperation, Strategy otherwise)

Usage:
>>> import blueconic
>>> bc = blueconic.Client()
>>> # Create ProfileOperation which will be executed on profile with given profile_id
>>> profile_operation = blueconic.ProfileOperation(profile_id="29b138e2-9824-45c3-ace6-909ee308ceb1")
>>>
>>> # Create a TimelineEventOperation which will be executed on an event with and id "abandoned_basket_2"
>>> timeline_operation = blueconic.TimelineEventOperation(
>>>     "abandoned_basket", blueconic.TimelineStrategy.UPSERT, event_id="abandoned_basket_2"
>>> )
>>>
>>> # Create TimelineNestedItemOperation where identifier property is "id" with value "987644321"
>>> nested_property_operation = blueconic.TimelineNestedItemOperation("id", "987644321")
>>> nested_property_operation.add_rule("quantity", 100, blueconic.Strategy.SET)
>>>
>>> # There is a root level property "product", add nested-properties to it
>>> timeline_operation.add_rule("product", nested_property_operation, blueconic.TimelineStrategy.UPSERT)
>>>
>>> # There is a root level property "product", delete the product with id "567898" from it
>>> delete_product_operation = blueconic.TimelineNestedItemOperation("id", "567898")
>>> timeline_operation.add_rule("product", delete_product_operation, blueconic.TimelineStrategy.DELETE)
>>>
>>> # Add the timeline_operation to profile_operation
>>> profile_operation.add_timeline_operation(timeline_operation)
>>>
>>> # Save the updated property through profile bulkhandler
>>> with bc.get_profile_bulkhandler() as bh:
>>>     bh.write(profile_operation)
property date_time
Returns

Returns the datetime of the event.

Return type

Optional[Date]

property event_id
Returns

Returns the event id.

Return type

Optional[str]

property event_type_id
Returns

Returns the event type id.

Return type

str

property identifier
Returns

Returns the external identifier of the timeline event.

Return type

Optional[str]

property identifier_property_id
Returns

Returns the identifier property for the nested timeline event (e.g. productID in products).

Return type

Optional[str]

property rules
Returns

Returns the rules to apply on the nested timeline event operation.

Return type

List[Dict[str, Any]]

property source
Returns

Returns the source of the timeline event.

Return type

Optional[str]

property strategy
Returns

Returns the timeline event operation strategy.

Return type

TimelineStrategy

property value
Returns

Returns the value for this nested timeline event operation.

Return type

Optional[Union[str, Date, int, float]]

TimelineStrategy

class TimelineStrategy

This enumeration defines all possible strategies for timeline events. This defines the strategy for the entire event and nested properties of a timeline event (not for the individual timeline event properties).

SET

Default. Indicates an upsert for the timeline event. If the event already exists it is overwritten (updated), otherwise inserted. The strategy set on individual properties will be ignored.

UPSERT

Indicates a partial update (upsert). If the event is not found it is equal to a SET, otherwise the strategy set on individual properties will determine how the update is performed.

UPDATE

Indicates a partial update. If the event is not found, nothing will happen, otherwise the strategy set on individual properties will determine how the update is performed.

DELETE

Indicates a delete. Will delete the given event or item in a nested property.