Releases: talon-one/talon_one.py
v3.3.0: Multiple personal coupons creation endpoint, Loyalty and Referrals counters and Export Endpoints
Summary
Management API
Introduce createCouponsForMultipleRecipients
Endpoint
An endpoint to allow creation of multiple coupons of the same configuration for up to 1,000 recipients at once.
Expose export endpoints as integral part of the SDK
All of our CSV export endpoints are accessible via the Web Application from the corresponding entity pages (refer to our Help Center for an example regarding Coupons).
Now these are also available endpoints as part of the SDK (links to our developer docs):
- Coupons Export
- Customer Sessions Export
- Effects Export
- Customer Loyalty Balance Export
- Customer Loyalty Ledgers Log Export
Example code snippet demonstrating consuming and printing the lines of a Customer Loyalty Balance Export:
# ...preparing api client...
# An example could be seen at the repository's README file: https://github.com/talon-one/talon_one.py#management-api
loyalty_program_id = '1'
export_contents = management_api.export_loyalty_balance(loyalty_program_id)
csv_reader = csv.reader(export_contents.splitlines())
for line in csv_reader:
# do something with line...
pprint(line)
Expose destroySession
Endpoint
Expose an existing endpoint to allow destroying a bearer token used in the context of the management-api.
This endpoint imitates a "logout" function and will make the attached token invalid for consequent requests.
Introduce loyalty effects related and referrals creation counters on Campaign entities
As part of the newly added budgets to campaigns (see relevant Help Center Section), we have added new counters on campaigns with regard to loyalty and referrals:
created_loyalty_points_count
: Total number of loyalty points created by rules in this campaigncreated_loyalty_points_effect_count
: Total number of loyalty point creation effects triggered by rules in this campaignredeemed_loyalty_points_count
: Total number of loyalty points redeemed by rules in this campaignredeemed_loyalty_points_effect_count
: Total number of loyalty point redemption effects triggered by rules in this campaignreferral_creation_count
: Total number of referrals created by rules in this campaign
⚠️ ⚠️ Breaking Change: Fix Campaign's discount_count
type from int
to float
Campaign's discount_count
counter property was all along calculated as a floating decimal number by our system.
From this release on the returned values will be floating decimals and not cut-off integers:
- **discount_count** | **int** | Total amount of discounts redeemed in the campaign. | [optional]
+ **discount_count** | **float** | Total amount of discounts redeemed in the campaign. | [optional]
Integration API
Improve Responses Transparency
We are constantly extending and improving our integration API to provide our consumers with the best transparency regarding what exactly has happened within their requests.
We have added new data points to our v2 endpoints effects in order to improve the transparency we aspire for:
- If an effect was triggered because of a specific coupon the effect will now include this coupon ID, see
Effect.md
- When a coupon is rejected we attach more details regarding the origin of the failure in
RejectCouponEffectProps
:condition_index
- The index of the condition that caused the rejection of the couponeffect_index
- The index of the effect that caused the rejection of the coupondetails
- More details about the failure (if available)
- The same applies for referrals, when a referral is rejected we attach more details regarding the origin of the failure in
RejectReferralEffectProps
:condition_index
- The index of the condition that caused the rejection of the referraleffect_index
- The index of the effect that caused the rejection of the referraldetails
- More details about the failure (if available)
Moreover, we have introduced a new response content, ruleFailureReasons
, which when requested will attach to the response a collection containing all failed rules, with details (see the ruleFailureReason
model to help narrowing down failures and further debugging efforts to a specific single condition or effect that caused the failure.
One "gotcha" to keep in mind: in order to maximize transparency, and due to the fact that we do not know in advance which campaign in the application the request targets, the list contains a collection of all failure reasons.
Meaning that, it might have "white noise" with data about failures that could be considered as "obvious" to the consumer. Therefore, we suggest always filtering the list by the campaign id that was expected to trigger and did not.
Attach Loyalty Program ID in responses
When the consumer requires that the response will contain the details of loyalty programs involved in processing the requests, we now attach the identifier of the loyalty program to the returned loyaltyProgramLedgers
models.
The idea behind attaching the identifier is to help streamline further potential requests to our Management API with regard to details about a Loyalty Program, for example getLoyaltyStatistics or getLoyaltyPoints, that require the program identifier as part of the URI of the endpoint.
⚠️ A reminder of The Deprecation Notice: Integration API@v1 endpoints
The deprecation was introduced already in the last release of the SDK, here is a kind reminder of the deprecation notices for Integration API@v1 endpoints:
These endpoints will be flagged deprecated on 15.07.2021, meaning support for requests to these endpoints will end on that date. We will not remove the endpoints, and they will still be accessible for you to use.
We highly encourage migrating to the correspondent v2 endpoints for easier and more granular integration, as well as new features support (See our developer docs section about API V2.0).
v3.2.0: Loyalty Programs pending points & statistics, Introducing Loyalty customer inventory, customer profiles v2 integration dry runs
Summary
Integration API
- Introduce
loyalty
flag ingetCustomerInventory
endpoint to retrieve also profile's loyalty programs subscription and stats upon querying the endpoint - Introduce flags to control whether a customer profile update request v2 should be a "dry run" or force it to "run rule engine"
⚠️ Deprecation Notice: Integration API@v1 endpoints
This version also introduced the deprecation notices for Integration API@v1 endpoints:
These endpoints will be flagged deprecated on 15.07.2021, meaning support for requests to these endpoints will end on that date. We will not remove the endpoints, and they will still be accessible for you to use.
We do encourage migrating to the correspondent v2 endpoints for easier and more granular integration, as well as new features support (See our developer docs section about API V2.0).
Loyalty Programs
Introduce Loyalty Program pending points: points that belong to the program's balance but will become active in the future:
- Introduce Loyalty Program setting to control default points' pending duration
- Introduce a couple of new attributes to communicate better a ledger's points status (pending, active, expired and spent)
- Introduce Loyalty Programs statistics endpoint to get a loyalty program stats snapshot
⚠️ ⚠️ Breaking Change: Loyalty Program points addition payload
This version also introduced the ability to set both loyalty points pending and validity durations.
In order to communicate these more clearly, we have renamed the former expiry_duration
attribute of LoyaltyPoints
entity to validity_duration
:
program_id = '1'
integration_id = 'Customer_Profile_ID'
body = talon_one.LoyaltyPoints(
points = 42.42,
name = 'Points that expire after 3 days',
- expiry_duration = '72h'
+ validity_duration = '72h'
)
try:
api_instance.add_loyalty_points(program_id, integration_id, body)
# ...
⚠️ Deprecation Notice: Loyalty Program Ledger's total
property
Please note that we are deprecating the total
property of the LoyaltySubLedger
entity. In order to be more transparent and express better distinction between a customer's balance in a program (active, pending, and expired points).
We will remove this property in the next version of the SDK, please use the new totalActivePoints
property instead.
Sandbox/Live Applications & Account Analytics
Applications now can be flagged as live or sandbox (available only via the web application):
- This can be seen via the
sandbox
attribute of the Application entity - Account analytics now respect this separation and reports new data points:
liveApplications
,sandboxApplications
andliveActiveCampaigns
Misc: OpenAPI Generator version upgrade
We have upgraded the OpenAPI Generator used to release this SDK from v4.2.3 to v4.3.1 which includes a few subtle improvements in the generated code, for full list of changes, please consult the release logs' under the Python section.
v3.1.0: Dry Runs & Coupons discount limits
- Introduce "dry runs" for Integration API endpoints (See more details below)
- Add support to retrieve coupons as part of requesting customer profile inventories
- Add support for setting the
discountLimit
when creating or editing coupons - Fix
LoyaltyLedgerEntry
'stype
property values, failing to parse when retrieving values from the API
Introducing "dry runs" for Integration API endpoints
You can read more about the concept and where this feature could apply in your integration and workflow in our developers documentation center: https://developers.talon.one/Integration-API/dry-requests
v3.0.0: Integration API V2
- Replace code generator to OpenAPITools generator@v.4.2.3
- Add our new v2 integration api endpoint for customer sessions. Read more here: https://developers.talon.one/Getting-Started/APIV2
- Add v2-related management endpoints for managing AdditionalCosts
v2.3.0
- Expose new profile inventory endpoint. Consult our developer docs for more information: https://developers.talon.one/Integration-API/API-Reference#getCustomerInventory
- Expose more attributes handling endpoints (create, update, get all)
copyCampaignToApplications
endpoint extended and now allows to override original campaign's description scheduling details and tags as part of the copy functionality. See parameters here: https://developers.talon.one/Management-API/API-Reference#copyCampaignToApplications
v2.2.0
v2.1.0
v2.0.2
v2.0.1
v2.0.0
- Move generation to swagger codegen cli stable version 2.4.7
- Add proper management api endpoints supported by the public api of Talon.One
- New loyalty Programs api, entities and handling
- Add coupons reservation endpoints for the integration api
- Updated code examples for both Integration and Management API