# Send a Thnks via Webhook Source: https://docs.thnks.com/api-reference/endpoint/create_gift_request POST https://api.thnks.com/api/v1/gift_requests This should always be `application/json` Variable containing Thnks ID of the Thnks to be sent Variable containing email address of the recipient Variable containing first name of the recipient (optional) Variable containing last name of the recipient (optional) Variable containing the Thnks message. Use `"Hello,\nThank you"` instead of `"Hello, Thank You"` for a multiline Thnks Always set to "email". # Create a Thnks Redemption URL via Webhook Source: https://docs.thnks.com/api-reference/endpoint/create_redemption_url POST /webhooks/gift_requests Use this Thnks webhook to automatically generate a unique Thnks Redemption URL for embedding in non-Thnks managed campaigns. This should always be `application/json` Variable containing Thnks id of the item(s) the Customer wants to send Optional campaign identifier for tracking attribution in non-Thnks managed campaigns Variable containing email address of the recipient Variable containing first name of the recipient (optional) Variable containing last name of the recipient (optional) Variable containing the Thnks message. Use `"Hello,\nThank you"` instead of `"Hello, Thank You"` for a multiline Thnks ## Response On success, the API returns a `200` response with the following JSON body. Success message. Returns `"GiftRequest created successfully."` when the gift request is created. The unique ID of the created gift request The unique ID of the recipient transaction Email address of the recipient Phone number of the recipient. Returns an empty string when not provided. Unique Thnks Redemption URL for the recipient to accept the Thnks URL for the recipient to donate the gift value to charity instead of redeeming it ```json Response theme={null} { "message": "GiftRequest created successfully.", "data": { "id": 123, "recipients": [ { "recipient_transaction_id": 456, "email": "some@test.com", "phone_number": "", "gift_redemption_url": "https://...", "gift_donation_url": "https://..." } ] } } ``` # Introduction Source: https://docs.thnks.com/api-reference/introduction Thnks API Documentation ## Welcome Welcome to the new Thnks API Documentation. As a Thnks Admin, you have access to many different automation features that are now being made public! ## Headers All API endpoints are authenticated using an Authorization API token. This token is tied to the sender’s account. Follow the instructions found in the [Get Started - Request an API Key](get-started/request) section. ```json theme={null} "headers": [ { "Authorization": "", "Content-Type": "application/json" } ] ``` # Data Model Source: https://docs.thnks.com/appexchange/datamodel ## Thnks Data Model ### Thnks Object Thnks Salesforce Object ### Thnks Record Creation The following events trigger a change on the Salesforce side (either creating or updating records): * A new Thnks is sent * The status of an existing Thnks is changed (e.g. opened, undelivered, redeemed, etc.) Upon creation, this is the general flow of what is occurring (note that a Task being created is possible at the very end, but this is not being shown in this diagram): Thnks Creation Flowchart ```mermaid theme={null} flowchart TD A[Thnks is Created] --> B["Query Contacts based on Email/Phone ★"] B --Yes--> C["Contact Match? ★"] C --Yes--> D["Query Opportunity Contact Roles"] D --Yes--> E["Open Opportunity?"] E --Yes--> F[Create Thnks record with Contact and Opportunity associated] E --No--> G[Create Thnks record with Contact associated] C --No--> H["Query Leads based on Email/Phone ★"] H --Yes--> I["Lead Match? ★"] I --Yes--> J[Create Thnks record with Lead associated] I --No--> K[Create Thnks record with no associations] H --No--> K style B fill:#CFF0C9,stroke:#333,stroke-width:2px style C fill:#CFF0C9,stroke:#333,stroke-width:2px style D fill:#CFF0C9,stroke:#333,stroke-width:2px style E fill:#CFF0C9,stroke:#333,stroke-width:2px style H fill:#CFF0C9,stroke:#333,stroke-width:2px style I fill:#CFF0C9,stroke:#333,stroke-width:2px subgraph key[Diagram Key] direction TB B1[Salesforce] style B1 fill:#CFF0C9 B2[Thnks] style B2 fill:#C9DFFF B3[★ Logic to be customizable by customer] style B3 fill:#FFD700 end ``` So as you can see, when a Thnks record is being created, Salesforce is checking the following: * Is there a Contact to match? * If no Contact is found, is there a Lead to match? * If a Contact is found, is there an open Opportunity to match? ### Thnks Record Updates After the initial Thnks is sent and the subsequent Thnks record in Salesforce is created (and potentially a Task), there will be no additional new records being created. Instead, all that will be changing is the Status field (API name of thnksdev1\_\_RecipientTransactionStatus\_\_c) on the Thnks record whenever the status on the Thnks side is updated ### Task Logging for Thnks If you have enabled “Task Syncing” in the Configuration tab, then every time a Thnks is sent, a Task will be automatically generated. There are two standard fields on Tasks for association with other records: Name and Related To (API Names of WhoId and WhatId, respectively). The WhoId (Name) field can only be related to Leads or Contacts. The WhatId (Related To) can be related to any other object. For our purposes, the WhatId will always be related to the Thnks record. * If the Thnks is associated with a Lead, then the Task will only be associated with the Thnks record via the Related To field (WhatId). The WhoId cannot be used in this scenario due to Salesforce limitations. Thnks Creation Flowchart * If the Thnks is associated with a Contact, then the Task will be associated with the Thnks record via the Related To field (WhatId), as well as the Contact via the Name (WhoId) field. Thnks Creation Flowchart * If the Thnks is not associated with a Lead nor a Contact, then the Task will only be associated with the Thnks record via the Related To field (WhatId), # FAQ Source: https://docs.thnks.com/appexchange/faq Use the latest version (v1.8) of the Thnks Salesforce AppExchange app to capture all of your company’s Thnks activity from the Thnks web and mobile app (as well as Chrome and LinkedIn extensions) and associate Thnks data with Salesforce Leads, Contacts, Accounts and Opportunities. ## Frequently Asked Questions ### v1.8 New Features * **Q. The "Send a Thnks" button isn't appearing on my record pages. How do I fix this?** * A. The "Send a Thnks" button requires manual setup. Go to **Setup** → **Object Manager** → select your object (Contact, Account, or Opportunity) → **Lightning Record Pages** → edit your page layout → drag the "Send Thnks" component to your desired location → save and activate the page. * **Q. I'm getting an authentication error when trying to send a Thnks from Salesforce. What's wrong?** * A. This typically happens when: 1. Your Salesforce email address doesn't match your Thnks account email address 2. You don't have an active Thnks account 3. You don't have the proper permission sets (Thnks Standard User or Thnks Admin) 4. The Organization Token hasn't been configured properly in **Manage Thnks Settings** → **Send Thnks** tab * **Q. How do I get the Organization Token needed for the Send Thnks feature?** * A. Contact your Thnks Account Manager or email [integrations@thnks.com](mailto:integrations@thnks.com) to obtain your Organization Token. This token is required to enable the Send Thnks functionality. * **Q. What's the difference between auto-approved and manual approval for Thnks Requests?** * A. **Auto-approved** requests are processed and sent immediately when triggered by a Salesforce Flow, perfect for marketing automation. **Manual approval** requests go to an approval queue where they can be reviewed, edited, and then approved by the appropriate person, ideal for sales cadences requiring personalization. * **Q. Can I create Thnks Requests manually or do they only work with Flows?** * A. Thnks Requests are primarily designed for Salesforce Flow automation. While the object exists, the recommended approach is to use Salesforce Flows to trigger Thnks Requests based on business events. * **Q. How do I set up automated Thnks workflows using Salesforce Flows?** * A. Create a Salesforce Flow that triggers on your desired event (e.g., Opportunity stage change), then use the "Create Record" action to create a Thnks Request record with the appropriate fields populated (Account, Opportunity, Thnks details, etc.). The system will process the request based on your auto-approval settings. ### General Questions * **Q. I can’t find my Thnks on a Contact record; how do I fix this?** Thnks Page Layout Customization * A. Thnks related lists will need to be manually added onto your relevant page layouts for the Contact object (as well as Lead, Account and Opportunity). To do this, your Salesforce Administrator must go into Setup, and then Object Manager. Find Contact, and then go into the Page Layouts tab. From there, click into the relevant page layout, and go to the “Related Lists” section, and manually drag Thnks in. * **Q. Why can’t my Users see Thnks records, but I can?** * A. Please see the permissions section above. Your users may not have access because they were not granted the correct permissions when you installed the Thnks app. * **Q. Why are Tasks not being created?** * A. Please ensure that “Task Syncing” has been enabled in the “Others” tab within the “Manage Thnks Settings” page. Check the “Thnks Configuration” section above. * **Q. I've upgraded to v1.8, but I don't see the new features. What do I need to do?** Thnks Page Layout Customization * A. After upgrading to v1.8, you'll need to: 1. Configure your Organization Token in **Manage Thnks Settings** → **Send Thnks** tab 2. Add the "Send Thnks" component to your Lightning Record Pages 3. Add Thnks Request related lists to relevant page layouts if desired 4. Update field mappings for any new ROI fields you want to track * **Q. Thnks are being associated with Contacts, but none of our open pipeline is being associated.** * A. For Thnks to be associated with Opportunities, a few things need to be happening: 1. Ensure that in the “Manage Thnks Settings'' tab, underneath “Opportunity Settings”, “Opportunity Matching” is toggled on. 2. Check that the Contacts in question are being related to Opportunities via the Opportunity Contact Role object. 3. Ensure that at the time of the Thnks being sent, the Opportunity was in an open stage. * **Q. I have a question or need support, who do I contact?** * A. Reach out to our team by emailing [integrations@thnks.com](mailto:support@thnks.com) and we will be happy to assist! * **Q. I have a feature or functionality request, who do I contact?** * A. Reach out to your Thnks account manager or our team by emailing [integrations@thnks.com](mailto:support@thnks.com), we'd love to hear from you! # Install Guide Source: https://docs.thnks.com/appexchange/install Use the latest version (v1.8) of the Thnks Salesforce AppExchange app to capture all of your company’s Thnks activity from the Thnks web and mobile app (as well as Chrome and LinkedIn extensions) and associate Thnks data with Salesforce Leads, Contacts, Accounts and Opportunities. **Thnks Plan Level**: Thnks' Salesforce AppExchange integration is available for organizations on the Enterprise or Enterprise+ plan level. Contact [sales@thnks.com](mailto:sales@thnks.com) for information on how to upgrade. ## System Requirements Below please find more information on the necessary requirements before installing our Salesforce App in your instance of Salesforce. ### Supported Salesforce Editions * **Professional** * **Enterprise** * **Unlimited** * **Developer** ## Installation In this section, we’ll walk through installing the AppExchange application in your Salesforce instance. These instructions are meant to be a high-level overview, please contact your Salesforce Administrator to discuss the process for installation onto your specific instance and to determine whether or not a Sandbox should be used first. ### Preparing Your Thnks Account for Salesforce Contact your Thnks Account Manager (or [integrations@thnks.com](mailto:integrations@thnks.com)) to enable the Salesforce App connection in your organization’s Thnks account. Thnks offers two ways to connect your users’ Thnks activity to Salesforce: * **User Connection** - each user must enable their own Thnks \<> Salesforce connection via their Thnks account profile. * Note: if a user does not enable their connection, their Thnks activity will not appear in Salesforce. * **Org Connection** - an SF admin can enable a single connection between Thnks and Salesforce. Individual users will not have to perform their own connections. * Note: For Thnks activity to appear in Salesforce, the email address of the Thnks user must match the email address of their Salesforce account. ### Installing from the AppExchange To install Thnks, you’ll need to navigate to the Thnks App listing in the Salesforce AppExchange. [Here](https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000FN7gUUAT\&preview=%222021-02-10T20%3A06%3A08.000Z%22) is a direct link. Click on **“Get It Now”**, make sure you’re logged into the correct account, and a dialog box will appear: Select the correct Salesforce instance, and decide whether you want to install in Production or in Sandbox, and proceed. After confirming details and agreeing to the terms and conditions, click “Confirm and Install” to continue. Lastly, determine which users you’d like to initially install the application for. We recommend installing for specific profiles or for admins only and reconfiguring as needed. Specific Profiles If selecting **“Install for Specific Profiles”**, you will be able to choose one of three options for each individual profile: * No Access (Users with this profile will not be able to see any Thnks data) * Thnks Standard User (Users with this profile will be able to view all Thnks data, but will not be able to configure the Thnks settings) * Thnks Admin (Users with this profile will be able to view and edit all Thnks data, as well as configure the Thnks settings) Access Levels At this point, you should receive an email from Salesforce confirming successful installation and should be redirected to this page with all of your installed packages. You’ve successfully installed the Thnks Salesforce App! ## Upgrading to v1.8 ### Upgrading from v1.3 to v1.8 of the AppExchange Listing **Good News!** Upgrading from v1.3 to v1.8 is seamless with no breaking changes, new required permissions, or manual data migration needed. To upgrade your existing Thnks AppExchange app: 1. Navigate to the [Thnks AppExchange listing](https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000FN7gUUAT) 2. Click **"Get It Now"** and select your Salesforce instance 3. Follow the same installation process as a new installation 4. The upgrade will preserve all your existing configuration and data #### What's New in v1.8 After upgrading, you'll have access to these new features: **🎯 Send Thnks from Salesforce** * Add the "Send Thnks" Lightning component to your record pages * Configure your Organization Token (contact [integrations@thnks.com](mailto:integrations@thnks.com)) * Enable users to send Thnks directly from Contact, Account, and Opportunity records **🔄 Thnks Request Object** * New object for automated Thnks workflows * Salesforce Flow integration capabilities * Configurable approval processes **📊 Enhanced ROI Tracking** * Improved field mapping for ROI data * "Backfill ROI Fields" functionality * Better reporting capabilities #### Post-Upgrade Steps 1. Contact your Thnks Account Manager or [integrations@thnks.com](mailto:integrations@thnks.com) to obtain your Organization Token 2. Navigate to **Manage Thnks Settings** → **Send Thnks** tab 3. Enter your Organization Token and configure settings 1. Use Lightning App Builder to add the "Send Thnks" component to your record pages 2. Configure component settings as needed 3. Test the functionality with your users 1. Add Thnks Request related lists to relevant page layouts 2. Configure new fields if using ROI tracking 3. Update user permissions as needed ### Upgrading from v1.1 to v1.8 of the AppExchange Listing If you have a very old version (v1.1) of the Thnks AppExchange app installed, please follow the same installation process as a new installation using [this link](https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000FN7gUUAT). The main considerations to keep in mind when upgrading from v1.1: * The Thnks Status Log object will no longer be syncing records (but the old records will remain) * There will be many new fields on the Thnks object, such as Opportunity and Account lookups, as well as several new date/time fields to replace the need of the Thnks Status Log * There is now a tab called “Manage Thnks Settings” to configure various settings in the integration (see “Thnks Configuration” section below) #### Backfilling Thnks Records in 1.3 If you have upgraded from 1.1 to 1.3, you will now notice that the Thnks Status Log object is no longer being used. Instead, there are new date/time fields to track the status of key events such as “Delivered Date/Time”, “Redeemed Date/Time”, etc. In order to backfill your historical Thnks records from 1.1 with the correct dates for these new fields, you’ll need to have a user with the Thnks admin permissions in Salesforce head to the “Manage Thnks Settings” and click “Enrich Old Thnks”. Enrich Thnks Data This will automatically scan all Thnks Status Log records, take the date/time for each key event, and then backfill the fields in this section on the Thnks object. Conact Record ### Permissions #### Install Conact Record #### Manually Updating Permissions If after installing the Thnks app following the install instructions above you need to change permissions, the recommended path is by assigning Permission Sets to the appropriate Users. Alternatively, you may also grant permissions to the Thnks objects at the Profile level. Specific Profiles Specific Profiles Specific Profiles Specific Profiles You can ignore Thnks Status Logs, as this is no longer used in the integration View All would be the recommended access for the majority of end users #### Permission Sets Alternatively, you can assign a Permission Set to individual users. From Setup, click into Users, and then choose any User which you wish to grant additional permissions to. Under “Permission Set Assignments”, click “Edit Assignments”. Specific Profiles There are two Permission Sets to choose from: * Thnks Admin (grants View/Modify All access to the Thnks object, as well as allowing this User to configure the Thnks settings) * Thnks Standard User (grants View All access to the Thnks object) Specific Profiles ## Thnks Configuration Once you have Thnks installed in your Salesforce environment, you will want to review the integration settings. If you click the App Launcher in Salesforce (this is the 9 dots in the top left), and then type in “Thnks”, the item “Manage Thnks Settings” should appear. Click into that. Specific Profiles Specific Profiles There are 5 tabs: * Contact Settings * Lead Settings * Opportunity Settings * Fields Mapping * Others Specific Profiles Each tab comes pre-configured with default settings. If you wish to change these settings, there is an “Edit” button in the top right corner. ### Contact Settings This tab is where you can customize the logic that Salesforce will use for matching Thnks records with existing Contacts in your Salesforce instance. Since Thnks are sent either using email or SMS, this means that there will be two different fields to match against: an email address or a phone number. By default, the email field being used is the standard Email field (API name of “Email”), and the phone field being used is the standard Phone field (API name of “Phone”). However, you can change these so that Thnks matches Contacts based on any other field that is of type Email or Phone, respectively. Specific Profiles Phone Matching On the right side, you will see the fields “Contacts Order By” and “Order Direction”. This is solely used for the purpose of determining which Contact to choose if you have duplicate Contacts. The definition of a duplicate is determined in this context by your Salesforce instance having more than one Contact that has the same value for the Email or Phone field you are using for matching. As an example, if you send a Thnks to someone with the email [johndoe@gmail.com](mailto:johndoe@gmail.com), you are matching using the standard Email field, and there are two Contacts with the exact email of [johndoe@gmail.com](mailto:johndoe@gmail.com), Salesforce will identify that there are two potential matches. The Contacts Order By field allows you to control what field you wish to use to determine which Contact to use, and the Order Direction controls the logic. Example: if you want to choose the oldest Contact based on Created Date, you would select “Created Date” as the “Contacts Order By” field, and “ASC” for ascending in the “Order Direction”. Created Date However, if you wanted to choose the Contact with the most recent activity, you would select “Last Activity” and “DESC”. Last Activity ### Lead Settings The concept of configuring the Lead matching is exactly the same as the Contact. Please see the above section on Contact Settings, and you can customize different logic for the Lead. Again, you can only use Email and Phone type fields for the matching logic. The matching logic you use for the Contact has no impact on the matching logic for the Lead, and vice versa. ### Opportunity Settings The Opportunity matching is even more simple. There are two things you can configure: 1. Whether or not you wish to match Opportunities 2. Similar to Leads and Contacts, how to decide which Opportunity you wish to match in the scenario that there is more than one matched Opportunity Opportunities can only be matched if the following criteria are met: 1. A Contact is matched to the Thnks record 2. That Contact is associated with 3. The Opportunity is open ### Fields Mapping The Fields Mapping tab enables you to map custom properties from within the Thnks app onto the Thnks object in Salesforce. These are custom, required fields that you can prompt users to enter when sending a Thnks. The below is just an example, as these field names will be unique to your Thnks account. Field Mapping If you create any fields on the Thnks side, you will also need to manually create the field in Salesforce with the appropriate field type (most likely these will be text or picklist). Contact your Thnks Account Manager to coordinate the addition of Thnks Required Fields. ### Others Other Settings The last tab is for miscellaneous settings, which for now consists of two primary features: * How to handle Thnks when no Lead or Contact match is found * Syncing Thnks as Activities (Tasks) In the scenario where a Thnks is sent and the phone number or email address used is unable to find a corresponding match with a Salesforce Lead or Contact, then you have one of two options: * Create Thnks (with no matching Lead or Contact) * Do not create a Thnks Create Thnks The other three fields in this section deal with the creation of Task records: * First, the Task Syncing field is a simple toggle of whether or not Tasks should be created. If this is checked, a Task will be created and it will be associated with both the Thnks record and a Contact. If the Thnks is associated with a Lead, then only the Thnks record will be associated (Tasks cannot be associated with a Lead and another object). More on the Task fields being set below. * The Default Task Type field allows you to specify what Type value should be populated on automatically created Tasks. * The Task Close Status field allows you to specify the status Tasks should be set to when the corresponding Thnks activity is considered complete. ### Send Thnks Send Thnks Settings **New in v1.8**, the Send Thnks tab enables users to send Thnks directly from within Salesforce. This powerful feature requires proper configuration: **Enable 'Send Thnks' Feature** Check this box to activate the ability for Salesforce users to send Thnks from within Salesforce records (like Contacts or Leads). **Default New Requests to Auto-Approve** When checked, new Thnks Request records created in Salesforce will automatically be marked for 'Auto-Approve'. This means they can be processed and sent without requiring a separate approval step. Note: Users can manually uncheck 'Auto-Approve' on individual Thnks Request records if specific approval is needed. **Thnks API Endpoint** (Required) The technical API address used by Salesforce to communicate with Thnks. Do not edit this value unless instructed by Thnks Support. * Default: `https://api.thnks.com/` **Thnks Sending Interface URL** (Required) The URL used to display the Thnks sending interface within Salesforce. Do not edit this value unless instructed by Thnks Support. * Default: `https://app.thnks.com/#/auto-login` **Thnks Organization Token** (Required) Enter the unique Organization Token provided by Thnks. This token authenticates your Salesforce organization with Thnks, enabling the 'Send Thnks' feature. Salesforce Admins can retrieve this token from the Salesforce Settings page within the Thnks platform. **Important**: You must obtain your Organization Token from your Thnks Account Manager or by contacting [support@thnks.com](mailto:support@thnks.com) before users can send Thnks from within Salesforce. ## Adding Send Thnks Component to Lightning Pages To enable the "Send a Thnks" button on your Salesforce records: 1. Go to **Setup** → **Object Manager** 2. Select the object where you want to add the component (Contact, Account, or Opportunity) 3. Navigate to **Lightning Record Pages** 4. Select the page layout you want to edit 1. In the Lightning App Builder, look for the **"Send Thnks"** component in the component palette 2. Drag and drop it to your desired location on the page 3. Configure any component-specific settings 4. Click **Save** 1. Click **Activation** to set the page as the default for your users 2. Choose the appropriate profiles and record types 3. Click **Next** and then **Save** ## User Requirements for Send Thnks Feature For users to successfully send Thnks from within Salesforce: 1. **Matching Email Addresses**: The user's Salesforce email address must match their Thnks account email address 2. **Active Thnks Account**: Users must have an active Thnks account 3. **Proper Permissions**: Users must have the "Thnks Standard User" or "Thnks Admin" permission set assigned 4. **Organization Token**: The Organization Token must be properly configured in the Send Thnks settings If any of these requirements are not met, users will receive an error message when attempting to use the Send Thnks feature. # Object Data Dictionary Source: https://docs.thnks.com/appexchange/objectdictionary *** ## Object Data Dictionary v1.8 Version 1.8 introduces the new Thnks Request object alongside the existing Thnks object, providing comprehensive workflow automation capabilities. ### Thnks Object Data Dictionary Below is a table with the default labels, API names and definitions for all fields that come with the AppExchange listing within the Thnks object. **Object Label**: Thnks **Object API Name**: thnksdev1\_\_Gift\_\_c | Field Label | API Name | Field Type | Purpose | | ---------------------- | ----------------------------------------------- | --------------------------- | ----------------------------------------------------------------------------------------------------- | | Account | thnksdev1\_\_Account\_\_c | Lookup(Account) | Account that Thnks is related with (only associated if a Contact match is made). | | Actual Sender | thnksdev1\_\_Actual\_Sender\_\_c | Lookup(User) | Internal Salesforce User that initiated the sending of the Thnks. | | Carbon Neutral Cost | thnksdev1\_\_Carbon\_Neutral\_Cost\_\_c | Currency(16, 2) | Cost for carbon-neutral Thnks delivery. | | Created By | CreatedById | Lookup(User) | Standard Salesforce field displaying what user created the record. Will be the same as Actual Sender. | | Deal Stage | thnksdev1\_\_Deal\_Stage\_\_c | Text(255) | If an Opportunity is matched, this is a stamp of the Opportunity’s Stage at the time of Thnks send. | | Delivered | thnksdev1\_\_Delivered\_\_c | Formula (Checkbox) | Indicates whether the Thnks has been delivered to the recipient. | | Delivered By | thnksdev1\_\_DeliveryType\_\_c | Picklist | Whether Thnks was sent via Email or SMS. | | Delivered Date/Time | thnksdev1\_\_Delivered\_Date\_Time\_\_c | Date/Time | Timestamp of when the Thnks was delivered. | | Description | thnksdev1\_\_Description\_\_c | Long Text Area(131072) | The item description of the Thnks that was sent. | | Donated Date/Time | thnksdev1\_\_Donated\_Date\_Time\_\_c | Date/Time | Timestamp of when the Thnks was donated. | | Expired Date/Time | thnksdev1\_\_Expired\_Date\_Time\_\_c | Date/Time | Timestamp of when the Thnks expired. | | Item Cost | thnksdev1\_\_Item\_Cost\_\_c | Currency(16, 2) | Base cost of the Thnks that was sent. | | Last Modified By | LastModifiedById | Lookup(User) | Standard Salesforce field. | | Link | thnksdev1\_\_RecipientTransactionLink\_\_c | URL(255) | Link to the Thnks within the Thnks app. | | Message | thnksdev1\_\_Message\_\_c | Long Text Area(131072) | The custom message that was entered when sending the Thnks. | | Name | Name | Text(80) | Standard Salesforce field. This is the name of the Thnks being sent. | | Opened | thnksdev1\_\_Opened\_\_c | Formula (Checkbox) | Indicates whether the Thnks has been opened by the recipient. | | Opened Date/Time | thnksdev1\_\_Opened\_Date\_Time\_\_c | Date/Time | Timestamp of when the Thnks was opened by the recipient. | | Opportunity | thnksdev1\_\_Opportunity\_\_c | Lookup(Opportunity) | Account that Thnks is related with (only associated if a Contact match is made) | | Owner | OwnerId | Lookup(User,Group) | Standard Salesforce field. | | Recipient Contact | thnksdev1\_\_RecipientContactId\_\_c | Lookup(Contact) | Contact that Thnks is related with. | | Recipient Email | thnksdev1\_\_Recipient\_Email\_\_c | Email | The actual email that the Thnks was sent to. | | Recipient Lead | thnksdev1\_\_RecipientLeadId\_\_c | Lookup(Lead) | Lead that Thnks is related with. | | Recipient Phone Number | thnksdev1\_\_Recipient\_Phone\_Number\_\_c | Phone | The actual phone number that the Thnks was sent to. | | Redeemed | thnksdev1\_\_Redeemed\_\_c | Formula (Checkbox) | Indicates whether the Thnks has been redeemed by the recipient. | | Redeemed Date/Time | thnksdev1\_\_Redeemed\_Date\_Time\_\_c | Date/Time | Timestamp of when the Thnks was redeemed. | | Refunded Date/Time | thnksdev1\_\_Refunded\_Date\_Time\_\_c | Date/Time | Timestamp of when the Thnks was refunded. | | Sender | thnksdev1\_\_SenderId\_\_c | Lookup(User) | Internal Salesforce User that initiated the sending of the Thnks. | | Sender Email | thnksdev1\_\_Sender\_Email\_\_c | Email | The actual email of the person sending the Thnks. | | Shipping Cost | thnksdev1\_\_Shipping\_Cost\_\_c | Currency(16, 2) | Shipping cost of the Thnks (physical items only). | | Status | thnksdev1\_\_RecipientTransactionStatus\_\_c | Picklist | Picklist field tracking the current status of the Thnks (controlled by Thnks app) | | Thnks Item Id | thnksdev1\_\_GiftId\_\_c | Number(18, 0) | Unique item ID of the Thnks. | | Thnks Sent At | thnksdev1\_\_RecipientTransactionCreatedAt\_\_c | Date/Time | Timestamp of when the Thnks was sent. | | Total Price | thnksdev1\_\_RecipientTransactionPrice\_\_c | Currency(16, 2) | Total cost of the Thnks send. | | Transaction Fee | thnksdev1\_\_Transaction\_Fee\_\_c | Currency(16, 2) | Transaction fee of the Thnks send. | | Transaction Id | thnksdev1\_\_RecipientTransactionId\_\_c | Number(18, 0) (External ID) | Unique transaction ID for Thnks send. | | Undelivered Date/Time | thnksdev1\_\_Undelivered\_Date\_Time\_\_c | Date/Time | Timestamp of when the Thnks was undelivered. | ### Thnks Request Object Data Dictionary **New in v1.8**, the Thnks Request object enables workflow automation and approval processes for Thnks sending. **Object Label**: Thnks Request **Object API Name**: Thnks\_\_Request\_\_c | Field Label | API Name | Field Type | Purpose | | --------------------------- | -------------------------------------------- | ------------------- | -------------------------------------------------------------------------------------- | | Account | Thnks\_\_Account\_\_c | Lookup(Account) | Account that Thnks Request is related with. | | Auto-Approved | Thnks\_\_Auto\_Approved\_\_c | Checkbox | Indicates if the request should be automatically approved without manual intervention. | | Created By | CreatedById | Lookup(User) | Standard Salesforce field displaying what user created the record. | | Credit Card Id | Thnks\_\_Credit\_Card\_Id\_\_c | Text(255) | Reference to the credit card used for payment processing. | | Gift Category Id | Thnks\_\_Gift\_Category\_Id\_\_c | Text(255) | Category identifier for the selected gift type. | | Gift Id | Thnks\_\_Gift\_Id\_\_c | Text(255) | Unique identifier for the specific gift selected. | | Gift Item Description | Thnks\_\_Gift\_Item\_Description\_\_c | Text(255) | Description of the gift item being sent. | | Include Amazon Shipping | Thnks\_\_Include\_Amazon\_Shipping\_\_c | Checkbox | Indicates if Amazon shipping should be included for physical gifts. | | Include Carbon Neutral Cost | Thnks\_\_Include\_Carbon\_Neutral\_Cost\_\_c | Checkbox | Indicates if carbon neutral shipping cost should be included. | | Item in Thnks | Thnks\_\_Item\_in\_Thnks\_\_c | URL(255) | Direct link to the gift item in the Thnks catalog. | | Last Modified By | LastModifiedById | Lookup(User) | Standard Salesforce field for tracking last modification. | | Opportunity | Thnks\_\_Opportunity\_\_c | Lookup(Opportunity) | Opportunity that Thnks Request is related with. | | Owner | OwnerId | Lookup(User,Group) | Standard Salesforce field for record ownership. | | Payment Method | Thnks\_\_Payment\_Method\_\_c | Text(255) | Payment method selected for the Thnks request. | | Request Status | Thnks\_\_Request\_Status\_\_c | Picklist | Current status of the Thnks request (Pending, Approved, Rejected, Sent). | | Root Gift Id | Thnks\_\_Root\_Gift\_Id\_\_c | Text(255) | Root identifier for gift categorization. | | Send Type | Send\_Type\_\_c | Text Area(255) | Type of send method (email, SMS, etc.). | | Third Party Gift Id | Thnks\_\_Third\_Party\_Gift\_Id\_\_c | Text(255) | Third-party vendor gift identifier. | | Third Party Vendor | Thnks\_\_Third\_Party\_Vendor\_\_c | Text(255) | Third-party vendor name for gift fulfillment. | | Thnks Error Log | Thnks\_\_Thnks\_Error\_Log\_\_c | Text(255) | Error log for troubleshooting failed requests. | | Thnks Request Number | Name | Auto Number | Auto-generated unique number for the Thnks request. | | Use User Balance | Thnks\_\_Use\_User\_Balance\_\_c | Checkbox | Indicates if user's account balance should be used for payment. | ### Field Usage Notes **Status Field Values:** * **Pending**: Request created but not yet processed * **Approved**: Request approved and ready for sending * **Rejected**: Request rejected by approver * **Sent**: Thnks successfully sent and Thnks record created **Auto-Approved Field:** * When checked, requests bypass manual approval process * Controlled by "Default New Requests to Auto-Approve" setting in Manage Thnks Settings * Can be manually unchecked on individual records if approval is needed **Gift ID Fields:** * Multiple gift ID fields support different gift catalog structures * Root Gift Id provides categorization * Third Party fields enable vendor-specific gift fulfillment # Overview Source: https://docs.thnks.com/appexchange/overview Use the latest version (v1.8) of the Thnks Salesforce AppExchange app to capture all of your company's Thnks activity and send Thnks directly from within Salesforce. The app provides comprehensive integration between Thnks and Salesforce Leads, Contacts, Accounts and Opportunities. The custom Thnks objects allow you to build more robust reporting and understand your ROI by pulling detailed reports on user activity and messaging effectiveness. ## What's New in v1.8 **🎯 Send Thnks Directly from Salesforce** * Send Thnks directly from Contact, Account, and Opportunity pages * Embedded Thnks interface within Salesforce using secure iframe technology * Automatic recipient detection from Salesforce records **🔄 Automated Thnks Workflows** * New Thnks Request object for workflow automation * Salesforce Flow integration for triggered Thnks sending * Configurable auto-approval or manual approval processes * Perfect for marketing automation and sales cadences **📊 Enhanced ROI Tracking** * Custom ROI field mapping from Thnks to Salesforce * Backfill capabilities for historical ROI data * Improved reporting on Thnks effectiveness **⚙️ Advanced Configuration** * Flexible matching logic for Contacts, Leads, and Opportunities * Enhanced Task creation and management * Improved field mapping capabilities * Organization-level authentication tokens ## Integration Overview Thnks has partnered with Salesforce to provide our clients with an application built specifically for Salesforce and available on the AppExchange. Version 1.8 introduces **bidirectional functionality**, allowing you to both: * **Send Thnks from Salesforce** → Initiate Thnks directly from Salesforce records * **Receive Thnks data in Salesforce** → Capture all Thnks activity from web, mobile, and extension usage ## What Does It Do? The Thnks Salesforce AppExchange application provides comprehensive Thnks management within your Salesforce environment through two main approaches: ### 1. Send Thnks from Salesforce * **Direct Sending**: Click "Send a Thnks" button on Contact, Account, or Opportunity pages * **Automated Workflows**: Configure Salesforce Flows to automatically trigger Thnks based on business events * **Approval Processes**: Set up approval workflows for Thnks requests before they're sent ### 2. Track Thnks Activity * **Comprehensive Reporting**: All Thnks activity is captured and associated with relevant Salesforce records * **Real-time Updates**: Status changes are automatically tracked with timestamps * **ROI Insights**: Custom field mapping provides detailed ROI analytics ### Data Model The application uses two primary objects: * **Thnks Object**: Tracks all sent Thnks with status updates and associations * **Thnks Request Object**: Manages workflow-triggered Thnks with approval processes Both objects automatically associate with Lead, Contact, Account, and Opportunity records using intelligent matching logic. Task creation provides visibility in Salesforce's standard activity feed. ## How Does It Work? ### Sending Thnks from Salesforce **Direct Sending Process:** 1. User clicks "Send a Thnks" button on a Salesforce record 2. Thnks interface opens in an embedded iframe 3. Recipient information is automatically populated from the Salesforce record 4. User selects Thnks, adds message, and sends 5. Thnks record is created in Salesforce with full tracking **Automated Workflow Process:** 1. Business event triggers a Salesforce Flow (e.g., demo scheduled, deal closed) 2. Flow creates a Thnks Request record with recipient and Thnks details 3. If auto-approval is enabled, Thnks is sent immediately 4. If manual approval is required, request goes to approval queue 5. Once approved, Thnks is sent and tracked in Salesforce ### Tracking Thnks Activity When a Thnks is sent from any source (Salesforce, web app, mobile app, Chrome extension, etc.), a Thnks record is created in Salesforce with: **Automatic Associations:** * Lead or Contact matching (never both) * Account association (when Contact is matched) * Opportunity association (when Contact has open Opportunity via Contact Role) * Task creation for activity timeline visibility **Real-time Status Updates:** * Status field updates as Thnks progresses (Delivered, Opened, Redeemed, etc.) * Timestamp fields capture exact date/time of each status change * ROI field data synchronization for custom analytics **Comprehensive Data Capture:** * Sender information and pricing details * Transaction ID and direct link to Thnks * Custom ROI fields configured in your Thnks account * Integration with Salesforce reporting and dashboards # Quick Install Source: https://docs.thnks.com/appexchange/quick_install Get up and running with Thnks v1.8 in minutes. This streamlined guide covers the essential steps for new installations. ## Prerequisites Before starting, ensure you have: * **Salesforce Edition**: Professional, Enterprise, Unlimited, or Developer * **Admin Access**: System Administrator permissions in your Salesforce org * **Thnks Account**: Active Thnks organization account with Enterprise or Enterprise+ plan level * **Email Matching**: User email addresses must match between Thnks and Salesforce accounts **New in v1.8**: Users must have matching email addresses between their Thnks and Salesforce accounts to use the "Send Thnks" feature within Salesforce. ## 5-Step Quick Install ### Step 1: Configure Thnks Platform Connection Contact your Thnks Account Manager or [integrations@thnks.com](mailto:integrations@thnks.com) to: * Enable Salesforce integration on your Thnks account * Choose your connection method: * **User Connection**: Each user enables their own Thnks ↔ Salesforce connection * **Org Connection**: Single admin-managed connection for all users ### Step 2: Install the Salesforce App 1. Navigate to the [Thnks AppExchange listing](https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000FN7gUUAT) 2. Click **"Get It Now"** and select your Salesforce instance 3. Choose installation option: * **Install for Admins Only** (recommended for initial setup) * **Install for Specific Profiles** (configure access levels) 4. Complete the installation process ### Step 3: Configure Organization Token **Required for Send Thnks Feature**: You must obtain an Organization Token from Thnks to enable sending Thnks from within Salesforce. 1. Contact your Thnks Account Manager or [integrations@thnks.com](mailto:integrations@thnks.com) to get your Organization Token 2. In Salesforce, go to **App Launcher** → search "Thnks" → **"Manage Thnks Settings"** 3. Navigate to the **"Send Thnks"** tab 4. Enter your Organization Token in the **"Thnks Organization Token"** field 5. Configure additional settings: * **Thnks API Endpoint**: `https://api.thnks.com/` (default) * **Thnks Sending Interface URL**: `https://app.thnks.com/#/auto-login` (default) * **Enable 'Send Thnks' Feature**: Check this box * **Default New Requests to Auto-Approve**: Check if you want automatic approval (Only applies to Thnks Requests send via Flow automation, not Thnks sent via iframe) ### Step 4: Add Send Thnks Component to Lightning Pages To enable the "Send a Thnks" button on record pages: 1. Navigate to **Setup** → **Object Manager** 2. Select **Contact**, **Account**, or **Opportunity** 3. Go to **Lightning Record Pages** 4. Edit the relevant page layout 5. In Lightning App Builder: * Drag the **"Send Thnks"** component to your desired location * Configure component settings as needed * **Save** and **Activate** the page Repeat for all object types where you want the Send Thnks functionality. ### Step 5: Add Thnks Related Lists (Optional) For better visibility of Thnks activity: 1. **Setup** → **Object Manager** → Select object (Contact, Account, Lead, Opportunity) 2. **Page Layouts** → Select the relevant layout 3. **Related Lists** section → Drag **"Thnks"** into the layout 4. Configure the related list fields and **Save** ## Post-Installation Checklist * Thnks app appears in App Launcher * "Manage Thnks Settings" is accessible * All tabs (Contact Settings, Leads Settings, etc.) are visible * Assign **"Thnks Admin"** permission set to administrators * Assign **"Thnks Standard User"** permission set to end users * Test access levels are working correctly * "Send a Thnks" button appears on configured record pages * Iframe loads correctly when clicked * User can authenticate and send test Thnks * Thnks record is created in Salesforce after sending ## Testing Your Installation ### Test Direct Sending 1. Navigate to a Contact record 2. Click **"Send a Thnks"** button 3. Verify the Thnks interface loads in the iframe 4. Send a test Thnks to yourself 5. Confirm the Thnks record appears in Salesforce ### Test Data Synchronization 1. Send a Thnks from the Thnks web app or mobile app 2. Verify the Thnks record is created in Salesforce 3. Check that the record is associated with the correct Contact/Lead 4. Confirm status updates as the Thnks progresses ## Common Issues & Solutions * Verify the Lightning component was added to the page layout * Check user has proper permission sets assigned * Ensure Organization Token is configured correctly * Confirm user's Salesforce email matches their Thnks account email * Verify user has an active Thnks account * Check Organization Token is valid and properly configured * Verify Thnks account has Salesforce integration enabled * Check Contact/Lead matching settings in Manage Thnks Settings * Confirm user connection is properly established ## Next Steps After successful installation: * Review the [Install Guide](https://docs.thnks.com/appexchange/install) for detailed configuration options * Configure [automated workflows](./datamodel#automated-workflows) using Salesforce Flows * Set up [custom field mapping](https://docs.thnks.com/appexchange/install#fields-mapping) for ROI tracking * Train users on the new Send Thnks functionality ## Support Need help? Contact us at [integrations@thnks.com](mailto:integrations@thnks.com) or reach out to your Thnks Account Manager. # Thnks ROI Reporting Guide Source: https://docs.thnks.com/appexchange/roi_guide Build powerful reports and dashboards to measure the ROI of your Thnks investment. Track pipeline acceleration, meeting show rates, and revenue impact to demonstrate business value. ## Overview Demonstrating the ROI of your Thnks investment is crucial for program success and expansion. This guide provides step-by-step instructions for building reports and dashboards that showcase how Thnks accelerates your sales pipeline, improves meeting show rates, and drives revenue growth. ## Key ROI Metrics to Track ### Pipeline Acceleration * **Meeting Show Rate Improvement**: % increase in meeting attendance when Thnks are sent * **Deal Velocity**: Average time from first contact to close (with vs. without Thnks) * **Stage Progression Speed**: Time spent in each pipeline stage * **Response Rate Enhancement**: Email/call response rates after Thnks delivery ### Revenue Impact * **Win Rate Analysis**: Opportunity close rates with and without Thnks * **Deal Size Correlation**: Average opportunity value when Thnks are involved * **Customer Lifetime Value**: Long-term value of customers who received Thnks * **Cost Per Acquisition**: Total cost including Thnks vs. customer value ### Sales Effectiveness * **Thnks Timing Impact**: Most effective times to send Thnks in the sales cycle * **Thnks Type Performance**: Which Thnks categories drive best results * **Rep Performance**: Individual sales rep effectiveness with Thnks * **Territory/Industry Analysis**: Performance by region or vertical ## Essential Reports to Build ### 1. Meeting Show Rate Analysis Report **Purpose**: Compare meeting attendance rates for opportunities with and without Thnks. **Report Type**: Tabular Report **Primary Object**: Event **Additional Objects**: Opportunity, Thnks 1. Navigate to **Reports** → **New Report** 2. Select **Events** as the primary object 3. Add **Opportunities** and **Thnks** as related objects 4. Set report format to **Tabular** Add these key fields: * **Event**: Subject, Start Date/Time, Status (Held/No Show) * **Opportunity**: Name, Stage, Amount, Close Date * **Thnks**: Name, Status, Thnks Sent At, Total Price * **Account**: Name, Industry, Territory * **Event Type**: Equals "Meeting" or "Demo" * **Event Start Date**: Last 3 months (or your preferred timeframe) * **Opportunity Stage**: Not equal to "Closed Lost" Add a summary formula to calculate show rate: ``` Show Rate = (Events with Status = "Held") / (Total Events) * 100 ``` **Key Insights**: * Compare show rates for events with associated Thnks vs. those without * Identify optimal timing for sending Thnks relative to meeting dates * Track trends over time to measure program effectiveness ### 2. Pipeline Velocity Dashboard **Purpose**: Measure how Thnks impact deal progression speed through pipeline stages. **Report Type**: Matrix Report **Primary Object**: Opportunity **Additional Objects**: Thnks, Opportunity History 1. **Reports** → **New Report** 2. Select **Opportunities** with **Thnks** and **Opportunity History** 3. Set format to **Matrix** * **Rows**: Opportunity Stage * **Columns**: "Has Thnks" (formula field: IF(Thnks > 0, "Yes", "No")) * **Values**: Average Days in Stage, Count of Opportunities * **Opportunity**: Name, Amount, Created Date, Close Date * **Thnks**: Count, Total Price, First Thnks Date * **Formula Fields**: * Days in Stage * Time to Close * Thnks Investment per Opportunity * **Close Date**: Last 6 months * **Opportunity Type**: New Business (exclude renewals) * **Stage**: Exclude "Closed Lost" **Key Metrics to Track**: * Average days in each stage (with vs. without Thnks) * Overall sales cycle length reduction * Stage progression rates * Investment per opportunity vs. deal value ### 3. ROI Summary Dashboard **Purpose**: High-level executive dashboard showing overall Thnks program ROI. **Dashboard Components**: #### Component 1: Investment vs. Revenue Impact **Report Type**: Summary Report **Chart Type**: Bar Chart **Metrics**: * Total Thnks Investment (sum of all Thnks costs) * Additional Revenue from Thnks-influenced deals * ROI Calculation: (Additional Revenue - Investment) / Investment \* 100 #### Component 2: Win Rate Comparison **Report Type**: Matrix Report **Chart Type**: Donut Chart **Structure**: * **Rows**: Opportunity Stage (Closed Won, Closed Lost) * **Columns**: "Thnks Sent" (Yes/No) * **Values**: Count of Opportunities, Win Rate % #### Component 3: Meeting Effectiveness **Report Type**: Summary Report **Chart Type**: Line Chart **Metrics**: * Meeting show rates over time * Average deal size for opportunities with meetings + Thnks * Meeting-to-opportunity conversion rate #### Component 4: Top Performing Reps **Report Type**: Matrix Report **Chart Type**: Horizontal Bar Chart **Structure**: * **Rows**: Opportunity Owner * **Columns**: Quarter * **Values**: Thnks ROI, Deals Closed, Average Deal Size ## Advanced ROI Analysis Reports ### 4. Customer Lifetime Value Impact Report **Purpose**: Measure long-term value of customers who received Thnks during sales process. 1. Primary Object: **Account** 2. Related Objects: **Opportunity**, **Thnks**, **Contract** (if applicable) 3. Report Type: **Summary** * Initial Deal Value * Total Account Value (all opportunities) * Contract Renewal Rate * Expansion Revenue * Customer Tenure Group accounts by: * **Thnks Received**: Yes/No during initial sales process * **Industry**: To identify sector-specific impacts * **Deal Size**: Small/Medium/Large initial deals ### 5. Seasonal and Timing Analysis **Purpose**: Identify optimal times to send Thnks for maximum impact. **Key Analysis Points**: * **Day of Week**: Which days see highest Thnks redemption rates? * **Time of Day**: Optimal sending times for different time zones * **Sales Cycle Stage**: When in the process are Thnks most effective? * **Seasonal Trends**: Holiday periods, quarter-end impacts ### 6. Thnks Type Performance Analysis **Purpose**: Understand which types of Thnks drive best ROI for different scenarios. **Report Structure**: * **Primary Object**: Thnks * **Related Objects**: Opportunity, Contact * **Grouping**: Thnks Category, Deal Size, Industry * **Metrics**: Redemption Rate, Subsequent Meeting Rate, Deal Closure Rate ## Dashboard Setup Best Practices ### Executive Summary Dashboard **Target Audience**: Sales Leadership, C-Suite **Refresh Frequency**: Weekly **Key Components**: 1. **Overall ROI Metric** (large number component) 2. **Revenue Impact Trend** (line chart) 3. **Win Rate Comparison** (bar chart) 4. **Meeting Show Rate** (gauge component) ### Sales Manager Dashboard **Target Audience**: Sales Managers, Directors **Refresh Frequency**: Daily **Key Components**: 1. **Team Performance** (matrix report) 2. **Pipeline Velocity** (trending chart) 3. **Thnks Utilization** (adoption metrics) 4. **Deal Stage Analysis** (funnel chart) ### Individual Rep Dashboard **Target Audience**: Sales Representatives **Refresh Frequency**: Real-time **Key Components**: 1. **Personal ROI Metrics** 2. **Upcoming Thnks Opportunities** 3. **Recent Thnks Performance** 4. **Best Practices Suggestions** ## Setting Up Automated ROI Reports ### Weekly ROI Email Report 1. Navigate to your ROI Summary Report 2. Click **Subscribe** 3. Set frequency to **Weekly** 4. Choose **Monday morning** delivery Add key stakeholders: * Sales Leadership * Marketing Team * Operations Team * Executive Sponsors Only send if: * New Thnks were sent this week * Deals closed this week * Significant changes in key metrics ### Monthly ROI Review Package Create a comprehensive monthly report package including: 1. **Executive Summary** (1-page overview) 2. **Detailed Metrics** (full dashboard export) 3. **Trend Analysis** (quarter-over-quarter changes) 4. **Recommendations** (optimization suggestions) ## Sample ROI Calculations ### Basic ROI Formula ``` ROI = (Revenue from Thnks-influenced deals - Total Thnks cost) / Total Thnks cost × 100 ``` ### Meeting Show Rate Impact ``` Show Rate Improvement = (Show Rate with Thnks - Show Rate without Thnks) / Show Rate without Thnks × 100 ``` ### Deal Velocity Improvement ``` Velocity Improvement = (Average days without Thnks - Average days with Thnks) / Average days without Thnks × 100 ``` ### Customer Lifetime Value Impact ``` CLV Impact = (Average CLV with Thnks - Average CLV without Thnks) / Average CLV without Thnks × 100 ``` ## Common ROI Reporting Challenges ### Challenge 1: Attribution Complexity **Problem**: Determining which deals were truly influenced by Thnks **Solution**: * Use clear tagging system for Thnks-influenced opportunities * Create custom fields to track Thnks impact * Implement consistent process for sales team ### Challenge 2: Data Quality Issues **Problem**: Incomplete or inconsistent data entry **Solution**: * Implement required field validation * Regular data hygiene audits * Sales team training on proper data entry ### Challenge 3: Long Sales Cycles **Problem**: ROI measurement difficult with 6-12 month cycles **Solution**: * Track leading indicators (meeting rates, response rates) * Use cohort analysis for long-term trends * Measure incremental improvements at each stage ## Best Practices for ROI Reporting ### Data Collection * **Consistent Tagging**: Use standardized tags for Thnks-influenced deals * **Complete Data Entry**: Ensure all relevant fields are populated * **Regular Audits**: Monthly data quality reviews ### Report Design * **Clear Visualizations**: Use charts that clearly show impact * **Consistent Metrics**: Standardize calculations across all reports * **Actionable Insights**: Include recommendations, not just data ### Stakeholder Communication * **Executive Summary**: One-page overview for leadership * **Detailed Analysis**: Comprehensive reports for operations * **Regular Updates**: Consistent reporting schedule ## Advanced Analytics Opportunities ### Predictive Modeling * **Thnks Timing Optimization**: When to send for maximum impact * **Deal Risk Assessment**: Early warning system for at-risk deals * **Customer Churn Prevention**: Identify expansion opportunities ### A/B Testing Framework * **Thnks Type Testing**: Compare different Thnks categories * **Message Testing**: Optimize Thnks messaging * **Timing Tests**: Find optimal sending windows ### Integration with Other Systems * **Marketing Automation**: Connect with lead scoring * **Customer Success**: Link to renewal predictions * **Finance Systems**: Tie to revenue recognition ## Support and Resources For help setting up these reports: * **Salesforce Reports & Dashboards Trailhead**: Learn advanced reporting techniques * **Thnks Account Manager**: Guidance on ROI best practices * **Support Team**: [support@thnks.com](mailto:support@thnks.com) for technical assistance Remember: The key to successful ROI reporting is consistency, accuracy, and actionable insights. Start with basic reports and gradually add complexity as your program matures. # Thnks Browser Extension Source: https://docs.thnks.com/browser-extension/overview For Thnks users, gratitude has never been easier—or more seamlessly integrated into your daily workflow. The **Thnks Browser Extension** for **Google Chrome** and **Microsoft Edge** enables you to show appreciation on the go, right from any webpage. Designed to streamline your Thnks-sending experience, this extension helps you stay efficient whether you’re browsing online or working within Salesforce. *** ## Send Thnks Instantly from Any Webpage The extension is always ready in your browser toolbar, allowing you to express gratitude in real time and keep your focus on what matters. Extension *** ## How to Start Using the Extension 1. **Install the Thnks Browser Extension** Get the extension from your browser’s extension store: * [Chrome Web Store](https://chromewebstore.google.com/detail/thnks-chrome-extension/panjhpcfdmjeicoiapnhhpbjblahgeak) * [Microsoft Edge - Chrome Extension Store](https://chromewebstore.google.com/detail/thnks-chrome-extension/panjhpcfdmjeicoiapnhhpbjblahgeak) 2. **Log in with your Thnks account credentials** Access your account to start sending Thnks directly from your browser. *** ## Enhanced Integrations The Thnks Browser Extension offers additional functionality for select web apps, enhancing your workflow: ### With Salesforce SF Extension For those who rely on Salesforce, the extension provides added efficiency: * A **built-in Salesforce trigger** allows you to send Thnks directly from a contact’s email address. * Simply click the **Thnks icon** next to any email field to open the extension and send a Thnks in seconds. ### With Gmail Gmail Extension Streamline your email gratitude process: * Click the **Thnks "T" icon** from within the Compose window to open the extension. * Select the desired Thnks, and it will be automatically embedded into your email message. ### With LinkedIn LinkedIn Extension Express appreciation directly from LinkedIn: * Click **Send a Thnks** on a LinkedIn contact page to automatically populate that contact’s email in the extension. *** Start using the Thnks Browser Extension today and make gratitude a seamless part of your workflow! # Overview Source: https://docs.thnks.com/concur/overview Connect your Thnks Account with SAP Concur to streamline expensing. # Thnks and SAP Concur Integration With **Thnks** and **SAP Concur**, you can seamlessly send personalized gestures of appreciation to your clients and partners while efficiently managing your expenses. This integration allows you to: * Automatically sync receipts with your Concur Expense account. * Match expenses with relevant transactions and credit card details. * Save time and focus on building stronger business relationships. ## Requirements * Thnks Enterprise or Enterprise+ Plan * SAP Concur account ## Integration Steps ### Step 1: Visit Your Thnks Profile * Navigate to your [Thnks profile](http://app.thnks.com/). ### Step 2: Connect Your Account * Click **Connect Account** next to the SAP Concur icon. ### Step 3: Sign In to SAP Concur * Log in with your Concur account credentials. * If using Single Sign-On (SSO), send an email to authenticate. * Once authenticated, your accounts will be connected. *** For more details, visit our Help Center [Thnks Help Center](https://help.thnks.com/en/articles/8042138-sap-concur-e-receipt-integration). *** # Requesting an API Key Source: https://docs.thnks.com/get-started/request How to request a Thnks API key. API access requires a Thnks **Team**, **Enterprise**, or **Enterprise+** plan. For more information, visit our [Plans page](https://thnks.com/platform/marketing/). # Request API Key Access for Thnks To request access to the Thnks API and obtain an API key, please follow these steps: ## 1. Send us an Email Send an email to [**developer@thnks.com**](mailto:developer@thnks.com) with the subject line: `API Key Request - [Your Company/Organization Name]` ## 2. Include Required Information In the body of the email, provide the following details: * **Thnks Account Email Address** Specify the email address of the Thnks account the API key will be tied to. Example: [`john.doe@company.com`](mailto:john.doe@company.com) * **Short Description of Use Case** Provide a brief explanation of how you plan to use the Thnks API. Example: "We plan to integrate Thnks with our CRM system to automate sending gestures of gratitude based on customer milestones." ## 3. Submit the Request Once you've included the required information, send the email. ## 4. Wait for Confirmation Our team will review your request and respond within 3-5 business days with further instructions. For any additional questions, feel free to contact us at [**developer@thnks.com**](mailto:developer@thnks.com). Thank you for your interest in the Thnks API! # Introduction Source: https://docs.thnks.com/introduction Thnks simplifies the act of showing gratitude allowing you to send thoughtful gestures of appreciation like a cup of coffee, a bottle of wine, or a rideshare instantly via email. Thnks Navy Logo # Overview Source: https://docs.thnks.com/single-sign-on/sso This documentation is recommended to be completed in conjunction with a member of the Thnks SSO team for exchanging sensitive information. Please complete the ‘Client to Provide’ section of your desired connection and send back to sso@thnks.com. A member of our team will follow up shortly. In your email back please be sure to provide the connectionName used as well. Thnks is committed to providing a seamless and secure experience for our enterprise clients. To achieve this, we leverage Auth0, a robust and versatile authentication solution, to enable Single Sign-On (SSO) connections to the Thnks platform. This instruction sheet will guide you through the process of configuring connections using OpenID Connect (OIDC), Security Assertion Markup Language 2.0 (SAML2.0), or Azure Active Directory, depending on your organization's preference and requirements. ## OIDC | IdP Field | URL | | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------- | | Post-back URL | [https://thnks.us.auth0.com/login/callback?connection=](https://thnks.us.auth0.com/login/callback?connection=)yourConnectionName | | Login Redirect URL | [https://thnks.us.auth0.com/login/callback](https://thnks.us.auth0.com/login/callback) | In order to establish a SSO connection, the client needs to provide the following: | IdP Information | Example | | --------------------------- | ---------------------------------------------- | | Client ID | 0oa4ntasdawevvpA2j697 | | Client Secret | EASf9W2MC-lFreJWVusZAWRQWFeOzvv4BgcOUKw | | Issuer URL | [https://acme.okta.com](https://acme.okta.com) | | Home Realm Discovery Domain | acme.com | Once Thnks has received the information from Step 2, we will create and test the connection in Auth0. Once connection has been finalized, Thnks will create or modify a user for the client test team to confirm SSO connection is complete. ## SAML 2.0 | IdP Field | URL | | ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | | Post-back URL | [https://thnks.us.auth0.com/login/callback?connection=](https://thnks.us.auth0.com/login/callback?connection=)yourConnectionName | | Recipient URL | [https://thnks.us.auth0.com/login/callback?connection=](https://thnks.us.auth0.com/login/callback?connection=)yourConnectionName | | Destination URL | [https://thnks.us.auth0.com/login/callback?connection=](https://thnks.us.auth0.com/login/callback?connection=)yourConnectionName | | Entity ID/Audience URI | urn:auth0:thnks:yourConnectionName | | Issuer URL | Example: [https://acme.okta.com](https://acme.okta.com) | In order to establish a SSO connection, the client needs to provide the following: | IdP Information | Example | | --------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Sign-In URL | Example: [https://sso.acme.com:9031/idp/SSO.saml2](https://sso.acme.com:9031/idp/SSO.saml2) | | X.509 Signing Certificate | Example: okta.cert | | Secure Hash Algorithim Preference | SHA1 or SHA256 (Default: SHA256) | | Mapping Schema | Example: `{ "user_id": [ "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"], "email": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", "name": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" }` | Once Thnks has received the information from Step 2, we will create and test the connection in Auth0. Once connection has been finalized, Thnks will create or modify a user for the client test team to confirm SSO connection is complete. ## Azure AD | IdP Field | URL | | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | | Microsoft Azure AD Domain | Example: your-azure-ad-domain.com | | Client ID | Example: 0oa4ntasdawevvpA2j697 | | Client Secret | Example: EASf9W2MC-lFreJWVusZAWRQWFeOzvv4BgcOUKw | | Entity ID | urn:auth0:thnks:yourConnectionName | | Redirect URI | [https://thnks.us.auth0.com/login/callback](https://thnks.us.auth0.com/login/callback) | | Identity API ([Why Upgrade to v2](https://docs.microsoft.com/en-us/azure/active-directory/develop/azure-ad-endpoint-comparison)) | Microft Identity Platform (v2) or Azure Active Directory (v1) | Once Thnks has received the information from Step 2, we will create and test the connection in Auth0. Once connection has been finalized, Thnks will create or modify a user for the client test team to confirm SSO connection is complete. # HubSpot Source: https://docs.thnks.com/thnks_integrations/hubspot Integrate Thnks with HubSpot workflows using custom code actions to automatically send gifts. # Integrating Thnks with HubSpot Using Python This guide shows you how to automatically send Thnks gifts through HubSpot workflows using custom code actions with Python. ## Prerequisites * HubSpot Operations Hub Professional or Enterprise license (required for custom code actions) * Thnks API Key (Authorization Token) * Thnks Gift ID for the gift you want to send * Access to HubSpot Workflows ## Python Code for HubSpot Custom Code Action Use the following Python code in your HubSpot custom code action to send Thnks gifts: ```python theme={null} import requests def main(event): url = "https://api.thnks.com/api/v1/gift_requests" # Get data from event email = event["inputFields"]["email"] first_name = event["inputFields"]["firstname"] owner_name = event["inputFields"]["hubspot_owner_id"] message = f"{first_name}, thank you for having a meeting with me. Please enjoy this box of delicious cookies as a token of my appreciation. I look forward to talking about your goals and objectives soon. - {owner_name}" payload = { "gift_id": , "recipients": [ { "email": email, "first_name": first_name, "last_name": event["inputFields"]["lastname"], "message": message, "gift_redeem_type": "email" } ] } headers = { "Authorization": "", "Content-Type": "application/json" } try: response = requests.request("POST", url, json=payload, headers=headers) response.raise_for_status() # Raise an exception for 4XX/5XX responses result = response.json() # Return the output data for later workflow actions return { "outputFields": { "email": email, "response_status": response.status_code, "response_data": str(result) } } except Exception as e: # Handle errors return { "outputFields": { "email": email, "error": str(e) } } ``` ## Setup Instructions 1. Log into HubSpot and navigate to **Automation** > **Workflows** 2. Create a new workflow or edit an existing one 3. Choose your enrollment trigger (e.g., after a meeting is logged, contact property change, etc.) 1. In the workflow editor, click the **+** button to add an action 2. Select **Custom code** from the action options 3. Choose **Python 3.9** as the language Set up the following input fields in the custom code action: * `email` - Contact's email address * `firstname` - Contact's first name * `lastname` - Contact's last name * `hubspot_owner_id` - The HubSpot owner's name or ID Map these to the appropriate contact properties using the dropdown menus. 1. Copy the Python code provided above 2. Paste it into the code editor 3. Replace the placeholders: * Replace `` with your actual Thnks gift ID (e.g., `12345`) * Replace `` with your Thnks API authorization token The code returns the following output fields that you can use in subsequent workflow actions: * `email` - The recipient's email address * `response_status` - HTTP status code from the API call * `response_data` - Full response from the Thnks API * `error` - Error message if the request fails 1. Save the custom code action 2. Use the **Test** feature to run the workflow with a test contact 3. Check the workflow execution logs to verify the gift was sent successfully 4. Look for a 200 or 201 status code in the response Once testing is successful, turn on the workflow to start automatically sending Thnks gifts based on your trigger criteria. ## Customization Options ### Dynamic Messages You can customize the message using any HubSpot contact properties. For example: ```python theme={null} # Use company name in the message company_name = event["inputFields"]["company"] message = f"Hi {first_name}, thank you for taking the time to discuss how {company_name} can benefit from our solutions. Please enjoy this gift! - {owner_name}" ``` ### Different Gifts for Different Scenarios You can use conditional logic to send different gifts: ```python theme={null} # Send different gifts based on deal size deal_amount = event["inputFields"]["deal_amount"] if deal_amount > 50000: gift_id = 12345 # Premium gift else: gift_id = 67890 # Standard gift ``` ### Multiple Recipients To send to multiple recipients, expand the recipients array: ```python theme={null} payload = { "gift_id": , "recipients": [ { "email": email, "first_name": first_name, "last_name": event["inputFields"]["lastname"], "message": message, "gift_redeem_type": "email" }, { "email": event["inputFields"]["manager_email"], "first_name": event["inputFields"]["manager_firstname"], "last_name": event["inputFields"]["manager_lastname"], "message": "Thank you for your team's time!", "gift_redeem_type": "email" } ] } ``` ## Error Handling The code includes error handling to catch and report issues: * Network errors * Invalid API credentials * Missing required fields * API rate limits Check the workflow execution history to see any errors returned in the `error` output field. ## Best Practices 1. **Test thoroughly** - Always test with a small group before rolling out to all contacts 2. **Secure your API key** - Never share your Thnks API token 3. **Monitor usage** - Keep track of gifts sent to manage your Thnks account balance 4. **Use delays** - Consider adding delays between enrollment and gift sending for better timing 5. **Add conditions** - Use workflow branches to send gifts only for qualified contacts ## Troubleshooting ### Common Issues * **401 Unauthorized** - Check your API token is correct and active * **400 Bad Request** - Verify all required fields are populated and gift ID is valid * **Network errors** - Ensure HubSpot can reach the Thnks API endpoint * **Missing data** - Confirm all input fields are mapped to existing contact properties ### Debug Tips 1. Use the `print()` function to log values during testing 2. Check the workflow history for detailed execution logs 3. Verify your gift ID is active in your Thnks account 4. Test with your own email first before sending to contacts ## References * [HubSpot Custom Code Actions Documentation](https://developers.hubspot.com/docs/api-reference/legacy/automation/workflow-actions/custom-code-actions) * [Thnks API Documentation](/api-reference/endpoint/create_gift_request) # Make (formerly Integromat) Source: https://docs.thnks.com/thnks_integrations/make This integration allows you to set up a scenario in Make that automatically triggers sending a Thnks via an HTTP module. # Configuring Make to Automatically Send a Thnks This guide walks you through automatically triggering the sending of a Thnks using Make scenarios. ## Prerequisites * Access to the Thnks API. * Thnks API Key (Authorization Token). * URL for Thnks API endpoint. * Administrative access to your Make account. ## Setup Before configuring your Make scenario, ensure you have the following details: `https://api.thnks.com/api/v1/gift_requests` `POST` Here’s an example of the JSON payload you will need to include in the HTTP module. Replace the placeholders with dynamic data from Make variables: ```json theme={null} { "gift_id": , "recipients": [ { "email": "{{email}}", "first_name": "{{first_name}}", "last_name": "{{last_name}}", "message": "Thank you for your time and support!", "gift_redeem_type": "email" } ] } ``` * Replace `` with the Thnks ID of the gift you want to send. * Use Make variables (e.g., `{{email}}`) to dynamically populate recipient data from earlier modules in the scenario. You will need to add the following headers in the HTTP module: * **Content-Type**: `application/json` * **Authorization**: Your Thnks API key (Authorization Token). Open Make, click **+ Create a new scenario**, and start building your automation. Select a trigger module to define the event that starts your scenario. Examples include: * **Webhook**: Use the **Custom Webhook** module to start the scenario via an external webhook. * **App-Specific Trigger**: Select a trigger from supported apps like Salesforce, HubSpot, or Google Sheets. * **Scheduled Trigger**: Use the **Scheduler** module to run the scenario at regular intervals. * Add the **HTTP** module to send the Thnks request. * Configure the HTTP module as follows: * **Method**: `POST` * **URL**: `https://api.thnks.com/api/v1/gift_requests` * **Headers**: * **Content-Type**: `application/json` * **Authorization**: Enter your Thnks API Key. * **Body**: Copy the JSON payload mentioned above and replace placeholders with Make variables. * Save the module configuration. Use additional modules to customize the scenario, such as: * **Filters**: Add a filter to control when the HTTP module executes based on specific conditions. * **Data Transformation**: Use the **Set Variable** or **Text Parser** modules to manipulate or transform data. * **Error Handling**: Add a **Router** module to handle errors or log failed requests. Use Make’s test mode to run the scenario with sample data and verify that the HTTP module sends data correctly to the Thnks API. Review the execution history in Make to confirm that the API call was successful and the Thnks gift was sent. Once verified, turn on the scenario to enable automated Thnks sending. Use error-handling features like routers or custom error paths to handle failed API calls. Store your API key securely using the **Data Stores** or **Environment Variables** feature in Make. Avoid hardcoding sensitive data in modules. Test the scenario with various data inputs to ensure all variables, conditions, and modules function as intended. Following this process, you can automatically trigger a Thnks gift to be sent as part of a Make scenario using the HTTP module. ## References * [HTTP Module Documentation](https://www.make.com/en/help/app/http) * [Make Scenarios Overview](https://www.make.com/en/help/scenarios/creating-a-scenario) * [Thnks API Documentation](/api-reference/endpoint/create_gift_request) # Marketo Source: https://docs.thnks.com/thnks_integrations/marketo This integration allows you to set up a webhook in Marketo that automatically triggers sending a Thnks through a Smart Campaign. # Configuring a Smart Campaign in Marketo to Automatically Send a Thnks This guide walks you through automatically triggering the sending of a Thnks as part of a Marketo Smart Campaign. ## Prerequisites * Access to the Thnks API. * Thnks API Key (Authorization Token). * URL for Thnks API endpoint. ## Setup Before setting up the webhook, ensure you have the following details: `https://api.thnks.com/api/v1/gift_requests` `POST` Here’s an example of the JSON payload you will need to include in the request. You’ll need to replace the placeholders with the appropriate tokens from your Marketo leads: ```json theme={null} { "gift_id": "", "recipients": [ { "email": "{{lead.Email Address}}", "first_name": "{{lead.First Name}}", "last_name": "{{lead.Last Name}}", "message": "Thank you for your time and support!", "gift_redeem_type": "email" } ] } ``` * Replace `` with the Thnks ID of the gift you want to send. * Use Marketo tokens (e.g., `{{lead.Email Address}}`) to populate dynamic lead information. You will need to add the following headers in the webhook: * **Content-Type**: `application/json` * **Authorization**: Your Thnks API key (Authorization Token). * **Webhook Name**: Give your webhook a meaningful name, e.g., `Thnks_Welcome_Program_CA`. * **URL**: Use the Thnks API URL:\ `https://api.thnks.com/api/v1/gift_requests` * **Request Type**: Set this to `POST`. * **Template**: Copy the JSON template mentioned above and adjust as needed with the correct tokens for dynamic data population. * **Request Token Encoding**: None. * **Response Type**: Set to `JSON`. * **Content-Type**: `application/json` * **Authorization**: Paste your Thnks API Key. If you want to capture response data, you can map response attributes to Marketo fields. For example, you can capture a response code or success status. Include error handling in your campaign to manage cases where the webhook might fail. Ensure your webhook is set up securely and tokens are protected. Run multiple tests with different scenarios to ensure all lead tokens and variables are working correctly. Following this process, you can automatically trigger a Thnks gift to be sent as part of a Marketo Smart Campaign using webhooks. ## References * [Use a Webhook in a Smart Campaign](https://experienceleague.adobe.com/en/docs/marketo/using/product-docs/core-marketo-concepts/smart-campaigns/flow-actions/use-a-webhook-in-a-smart-campaign) * [Create a Webhook](https://experienceleague.adobe.com/en/docs/marketo/using/product-docs/administration/additional-integrations/create-a-webhook) * [Thnks API Documentation](/api-reference/endpoint/create_gift_request) # Microsoft Power Automate Source: https://docs.thnks.com/thnks_integrations/msft_power_automate This integration allows you to set up a flow in Microsoft Power Automate that automatically triggers sending a Thnks via an HTTP action. # Configuring Microsoft Power Automate to Automatically Send a Thnks This guide walks you through automatically triggering the sending of a Thnks using Power Automate flows. ## Prerequisites * Access to the Thnks API. * Thnks API Key (Authorization Token). * URL for Thnks API endpoint. * Administrative access to your Microsoft Power Automate environment. ## Setup Before configuring your Power Automate flow, ensure you have the following details: `https://api.thnks.com/api/v1/gift_requests` `POST` Here’s an example of the JSON payload you will need to include in the HTTP action. Replace the placeholders with dynamic data from Power Automate tokens: ```json theme={null} { "gift_id": , "recipients": [ { "email": "@{triggerOutputs()?['body/email']}", "first_name": "@{triggerOutputs()?['body/firstName']}", "last_name": "@{triggerOutputs()?['body/lastName']}", "message": "Thank you for your time and support!", "gift_redeem_type": "email" } ] } ``` * Replace `` with the Thnks ID of the gift you want to send. * Use Power Automate expressions (e.g., `@{triggerOutputs()?['body/email']}`) to dynamically populate recipient data. You will need to add the following headers in the HTTP action: * **Content-Type**: `application/json` * **Authorization**: Your Thnks API key (Authorization Token). Open Power Automate and click **+ Create** to start building a new flow. Select a trigger to define the event that starts your flow. Examples include: * **When a record is updated**: Trigger the flow when a record is updated in a connected app like Microsoft Dynamics, Salesforce, or SharePoint. * **When an HTTP request is received**: Trigger the flow via an incoming webhook. * **Scheduled Flow**: Run the flow on a predefined schedule. * Click **+ New step** and search for **HTTP** to add an HTTP action. * Configure the HTTP action as follows: * **Method**: `POST` * **URI**: `https://api.thnks.com/api/v1/gift_requests` * **Headers**: * **Content-Type**: `application/json` * **Authorization**: Paste your Thnks API Key. * **Body**: Copy the JSON payload mentioned above and replace placeholders with Power Automate expressions. * Save the HTTP action. Use additional actions or conditions to enhance the flow, such as: * **Condition**: Add a condition to determine when the HTTP action should be executed. * **Data Operations**: Use the Compose or Parse JSON actions to transform or manipulate data before sending it. * **Error Handling**: Add a parallel branch to handle errors or log failed requests. Use Power Automate’s test feature to trigger the flow with sample data and ensure the HTTP action sends data correctly to the Thnks API. Review the flow’s **Run History** to verify the API call was successful and the Thnks gift was sent. Once verified, turn on the flow to enable automated Thnks sending. Add error-handling logic to retry failed API calls or log issues for manual review. Use Power Automate’s **Environment Variables** or **Key Vault** connectors to securely store your API Key and other sensitive data. Test the flow thoroughly with various scenarios to ensure all triggers, actions, and conditions work as intended. Following this process, you can automatically trigger a Thnks gift to be sent as part of a Power Automate flow using the HTTP action. ## References * [HTTP Action Documentation](https://learn.microsoft.com/en-us/power-automate/desktop-flows/actions-reference/web) * [Power Automate Triggers and Actions Overview](https://learn.microsoft.com/en-us/power-automate/get-started-logic-flow) * [Thnks API Documentation](/api-reference/endpoint/create_gift_request) # n8n Source: https://docs.thnks.com/thnks_integrations/n8n This integration allows you to set up a workflow in n8n that automatically triggers sending a Thnks via the HTTP Request node. # Configuring n8n to Automatically Send a Thnks This guide walks you through automatically triggering the sending of a Thnks using n8n workflows. ## Prerequisites * Access to the Thnks API. * Thnks API Key (Authorization Token). * URL for Thnks API endpoint. * Administrative access to your n8n instance. ## Setup Before configuring your n8n workflow, ensure you have the following details: `https://api.thnks.com/api/v1/gift_requests` `POST` Here’s an example of the JSON payload you will need to include in the HTTP Request node. Replace the placeholders with dynamic data from your workflow: ```json theme={null} { "gift_id": , "recipients": [ { "email": "{{ $json.email }}", "first_name": "{{ $json.firstName }}", "last_name": "{{ $json.lastName }}", "message": "Thank you for your time and support!", "gift_redeem_type": "email" } ] } ``` * Replace `` with the Thnks ID of the gift you want to send. * Use n8n variables (e.g., `{{ $json.email }}`) to dynamically populate recipient data from the workflow. You will need to add the following headers in the HTTP Request node: * **Content-Type**: `application/json` * **Authorization**: Your Thnks API key (Authorization Token). Open your n8n instance and click **+ New Workflow** to start creating a new workflow. Add a trigger node to specify the event that starts the workflow. For example: * **Webhook**: Trigger the workflow via an external webhook. * **Schedule Trigger**: Run the workflow on a schedule. * **App-Specific Trigger**: Use triggers from supported apps like Salesforce, HubSpot, or other CRMs. * Connect the HTTP Request node to your trigger node. * Configure the HTTP Request node as follows: * **Method**: `POST` * **URL**: `https://api.thnks.com/api/v1/gift_requests` * **Headers**: * **Content-Type**: `application/json` * **Authorization**: Paste your Thnks API Key. * **Body Type**: `JSON` * **JSON/RAW Parameters**: Copy the JSON payload mentioned above and adjust it using n8n variables. Use additional nodes to handle workflow logic, such as: * **Data Transformation**: Use the Set or Function nodes to transform or map data. * **Conditional Logic**: Use the If node to set conditions for sending a Thnks. * **Error Handling**: Add a Catch node to handle errors during the API call. Run the workflow using sample data to verify the HTTP Request node sends data correctly to the Thnks API. View the execution logs in N8n to verify the response from the Thnks API and confirm that the gift was sent successfully. Once verified, activate the workflow to enable automated Thnks sending. Use error-handling nodes in N8n to manage failed API calls and implement retries if necessary. Store your API key securely using N8n environment variables or credentials manager. Avoid hardcoding sensitive data in nodes. Test the workflow with different scenarios to ensure all tokens, variables, and data mappings are correct. Following this process, you can automatically trigger a Thnks gift to be sent as part of an N8n workflow using the HTTP Request node. ## References * [n8n Documentation](https://docs.n8n.io/) * [HTTP Request Node Guide](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/) * [Thnks API Documentation](/api-reference/endpoint/create_gift_request) # Overview Source: https://docs.thnks.com/thnks_integrations/overview Automating the Sending of Thnks via a POST Request Thnks enables customers to automate the sending of gestures of gratitude through a simple POST request to its webhook endpoint. This functionality allows seamless integration with marketing campaigns, survey completions, or other automated workflows, providing a straightforward way to enhance customer and partner relationships with genuine acts of appreciation. ## What is a Webhook? A webhook is a mechanism that allows one application to send real-time data to another. This is achieved via an HTTP POST request containing a JSON payload sent to a specified URL. In the case of Thnks, the webhook is used to trigger the sending of a Thnks, making the process efficient and automated. ## Setting Up the Thnks Webhook ### Webhook Details * **Endpoint URL**: [`https://api.thnks.com/api/v1/gift_requests`](https://api.thnks.com/api/v1/gift_requests) * **HTTP Method**: `POST` * **Headers**: * `Content-Type`: `application/json` * `Authorization`: `` * **Data Format (JSON)**: ```json theme={null} { "gift_id": , "recipients": [ { "email": "", "first_name": "", "last_name": "", "message": "", "gift_redeem_type": "email" } ] } ``` ### Required Fields The following fields are required in the JSON payload for the webhook: | **Field** | **Description** | | ------------------------- | -------------------------------------------------------------------------- | | `gift_id` | The identifier for the Thnks item the customer wants to send. | | `recipients` | An array containing recipient details. Each recipient object must include: | | - `email` | The email address of the recipient. | | - `first_name` (optional) | The first name of the recipient. | | - `last_name` (optional) | The last name of the recipient. | | - `message` | A personalized message to accompany the Thnks. | | - `gift_redeem_type` | Specifies the delivery method, always set to `"email"`. | **Note**: Avoid using `<` and `>` characters around variables. Simply enclose values in double quotes, except for `gift_id`. *** ### Finding `gift_id` To find the `gift_id` for a specific Thnks item: 1. Log into the [Thnks application](https://app.thnks.com). 2. Locate the Thnks item you want to send. 3. Navigate to the Thnks Details page. The URL will include the `gift_id`. Example: [https://app.thnks.com/#/send-thnks/thnks/5659](https://app.thnks.com/#/send-thnks/thnks/5659) Here, `5659` is the `gift_id`. *** ### Getting the Authorization Token An API key is required to authenticate webhook requests. This token is tied to the sender’s account. Follow the instructions found in the [Get Started - Request an API Key](get-started/request) section. # Salesforce Source: https://docs.thnks.com/thnks_integrations/salesforce This integration allows you to set up a process in Salesforce that automatically triggers sending a Thnks via an Apex callout. # Configuring Salesforce to Automatically Send a Thnks This guide walks you through automatically triggering the sending of a Thnks using Salesforce Process Builder or Apex triggers. ## Prerequisites * Access to the Thnks API. * Thnks API Key (Authorization Token). * URL for Thnks API endpoint. * Administrative access to Salesforce for creating custom fields and Apex classes. ## Setup Before setting up the integration, ensure you have the following details: `https://api.thnks.com/api/v1/gift_requests` `POST` Here’s an example of the JSON payload you will need to include in the request. You’ll need to replace the placeholders with the appropriate Salesforce tokens or field variables: ```json theme={null} { "gift_id": , "recipients": [ { "email": "{!Contact.Email}", "first_name": "{!Contact.FirstName}", "last_name": "{!Contact.LastName}", "message": "Thank you for your time and support!", "gift_redeem_type": "email" } ] } ``` * Replace `` with the Thnks ID of the gift you want to send. * Use Salesforce merge fields or dynamic data variables (e.g., `{!Contact.Email}`) to populate lead or contact information. You will need to add the following headers in the API call: * **Content-Type**: `application/json` * **Authorization**: Your Thnks API key (Authorization Token). Go to **Setup** and search for **Apex Classes**. Write an Apex class for making the API callout to the Thnks endpoint. Below is an example Apex class: ```apex theme={null} public class ThnksGiftSender { @future(callout=true) public static void sendGift(String giftId, String email, String firstName, String lastName, String message) { Http http = new Http(); HttpRequest request = new HttpRequest(); request.setEndpoint('https://api.thnks.com/api/v1/gift_requests'); request.setMethod('POST'); request.setHeader('Content-Type', 'application/json'); request.setHeader('Authorization', 'YOUR_API_KEY'); String requestBody = '{"gift_id": "' + giftId + '", "recipients": [{"email": "' + email + '", "first_name": "' + firstName + '", "last_name": "' + lastName + '", "message": "' + message + '", "gift_redeem_type": "email"}]}'; request.setBody(requestBody); HttpResponse response = http.send(request); if (response.getStatusCode() != 200) { System.debug('Error sending Thnks gift: ' + response.getBody()); } } } ``` Replace `YOUR_API_KEY` with your actual Thnks API Key. Save the class. * Create a **Process** in **Process Builder** or a **Flow** in Salesforce to trigger the Apex class. * Define the criteria for when the gift should be sent (e.g., Opportunity Stage Closed Won or Lead Status Changed). * Use the **Apex Action** to call the `ThnksGiftSender.sendGift` method, passing the required parameters (e.g., Gift ID, Contact Email, First Name, Last Name, and Message). If you prefer to automate via triggers, you can create a trigger to call the `ThnksGiftSender.sendGift` method based on object changes. Below is an example trigger for a Contact: ```apex theme={null} trigger ContactTrigger on Contact (after insert) { for (Contact contact : Trigger.new) { ThnksGiftSender.sendGift('GIFT_ID', contact.Email, contact.FirstName, contact.LastName, 'Thank you for your time and support!'); } } ``` Replace `GIFT_ID` with the appropriate Thnks gift ID. Test the Process Builder workflow, Flow, or Trigger using sample data to ensure the API callout works as expected. Verify the API callout response in the **Apex Logs** to ensure the gift was sent successfully. Update your Apex class, parameters, or process settings based on test results. Add error handling in your Apex class to manage failed API callouts. Store your API key securely using **Custom Metadata Types** or **Named Credentials** in Salesforce. Test the integration thoroughly to ensure tokens, parameters, and triggers function as intended. Following this process, you can automatically trigger a Thnks gift to be sent as part of a Salesforce workflow using an Apex callout. ## References * [Apex Callouts Overview](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_callouts.htm) * [Using Process Builder](https://help.salesforce.com/s/articleView?id=sf.process_overview.htm) * [Thnks API Documentation](/api-reference/endpoint/create_gift_request) # Workato Source: https://docs.thnks.com/thnks_integrations/workato This integration allows you to set up a recipe in Workato that automatically triggers sending a Thnks via an HTTP action. # Configuring Workato to Automatically Send a Thnks This guide walks you through automatically triggering the sending of a Thnks using Workato recipes. ## Prerequisites * Access to the Thnks API. * Thnks API Key (Authorization Token). * URL for Thnks API endpoint. * Administrative access to your Workato workspace. ## Setup Before configuring your Workato recipe, ensure you have the following details: `https://api.thnks.com/api/v1/gift_requests` `POST` Here’s an example of the JSON payload you will need to include in the HTTP action. Replace the placeholders with dynamic data from Workato variables: ```json theme={null} { "gift_id": , "recipients": [ { "email": "{{email}}", "first_name": "{{first_name}}", "last_name": "{{last_name}}", "message": "Thank you for your time and support!", "gift_redeem_type": "email" } ] } ``` * Replace `` with the Thnks ID of the gift you want to send. * Use Workato variables (e.g., `{{email}}`, `{{first_name}}`) to populate recipient data dynamically. You will need to add the following headers in the HTTP action: * **Content-Type**: `application/json` * **Authorization**: Your Thnks API key (Authorization Token). Open your Workato workspace and click **+ Create recipe** to start a new recipe. Choose a trigger based on the source system or event, such as: * **New Event**: Trigger when a new event occurs in a connected app like Salesforce, HubSpot, or a webhook. * **Scheduled Trigger**: Run the recipe at a specified interval. * Add an **Action step** and select **HTTP**. * Configure the HTTP action as follows: * **Method**: `POST` * **Endpoint URL**: `https://api.thnks.com/api/v1/gift_requests` * **Headers**: * **Content-Type**: `application/json` * **Authorization**: Enter your Thnks API Key. * **Request Body**: Copy the JSON payload mentioned above and replace placeholders with Workato variables. * Save the action. Use additional actions or conditions to customize the workflow, such as: * **Conditional Logic**: Add an **If/Else** condition to determine when the Thnks gift should be sent. * **Data Transformations**: Use the **Data Mapping** feature to format or manipulate variables. * **Error Handling**: Add steps to retry or log errors in case of API call failure. Use Workato’s test mode to simulate the recipe execution and ensure the HTTP action sends data correctly to the Thnks API. Verify the response from the Thnks API in the **Job History** or execution logs to ensure the gift was sent successfully. Once verified, activate the recipe to enable automated Thnks sending. Include error-handling steps to retry failed API calls or log issues for manual review. Use Workato’s **Lookup Table** or **Encrypted Fields** to securely store your API Key and other sensitive data. Test the recipe with various scenarios to ensure all dynamic variables, triggers, and conditions work as intended. Following this process, you can automatically trigger a Thnks gift to be sent as part of a Workato recipe using the HTTP action. ## References * [Workato HTTP Action Documentation](https://docs.workato.com/connectors/http.html#http-connector) * [Workato Recipes Overview](https://docs.workato.com/recipes/building-recipes.html) * [Thnks API Documentation](/api-reference/endpoint/create_gift_request)