If your team is planning to optimize activation and retention funnels within your accounting product, your team will certainly be interested in the lifecycle events tracked within the Tight ecosystem, by way of Data Lakes, webhooks, and native analytics integrations including Mixpanel.
Irrespective of what mechanism you're using to consume the lifecycle events, the following data is available to you on each event:
Field | Description | Format |
---|
id | The unique id of this lifecycle event | Numeric |
userId | The id in your DB of the client who triggered this event, as passed in when initially registering a user in the Tight API | String |
date | The timestamp, in milliseconds since the Unix epoch, of this event | Numeric |
event | The name of this lifecycle event | String |
Additionally, event-specific metadata attributes are also provided as documented below. Events marked with * are only available via the Embedded Experience.
📘
Custom Lifecycle Events
The Tight API team can customize events to power your ideal user experience. Don't hesitate to email us at [email protected] if you are looking for something that you don't see below.
accountingClosingHistoricalDashShown
accountingClosingCreated
›
Field |
Description |
Format |
entityId |
Id of the created closing |
Numeric |
period |
Period of the closing |
One of the following: "YEAR_END_CLOSING", "MONTH_END_CLOSING" |
accountId |
Id of the account being closed |
Numeric |
transactionCount |
Number of transactions in the closing |
Numeric |
startDate |
Start date of the closing period, in milliseconds since the Unix epoch |
Numeric |
endDate |
End date of the closing period, in milliseconds since the Unix epoch |
Numeric |
accountingClosingCreationCanceled*
›
Field |
Description |
Format |
accountId |
Id of the account being closed |
Numeric |
period |
Period of the closing |
One of the following: "YEAR_END_CLOSING", "MONTH_END_CLOSING" |
transactionCount |
Number of transactions in the closing |
Numeric |
startDate |
Start date of the closing period, in milliseconds since the Unix epoch |
Numeric |
endDate |
End date of the closing period, in milliseconds since the Unix epoch |
Numeric |
accountingClosingCompleted
›
Field |
Description |
Format |
entityId |
Id of the completed closing |
Numeric |
period |
Period of the closing |
One of the following: "YEAR_END_CLOSING", "MONTH_END_CLOSING" |
accountId |
Id of the account being closed |
Numeric |
transactionCount |
Number of transactions in the closing |
Numeric |
startDate |
Start date of the closing period, in milliseconds since the Unix epoch |
Numeric |
endDate |
End date of the closing period, in milliseconds since the Unix epoch |
Numeric |
accountingClosingEdited
›
Field |
Description |
Format |
entityId |
Id of the edited closing |
Numeric |
period |
Period of the closing |
One of the following: "YEAR_END_CLOSING", "MONTH_END_CLOSING" |
accountId |
Id of the account being closed |
Numeric |
transactionCount |
Number of transactions in the closing |
Numeric |
startDate |
Start date of the closing period, in milliseconds since the Unix epoch |
Numeric |
endDate |
End date of the closing period, in milliseconds since the Unix epoch |
Numeric |
accountingClosingEditCanceled*
›
Field |
Description |
Format |
entityId |
Id of the closing being edited |
Numeric |
period |
Period of the closing |
One of the following: "YEAR_END_CLOSING", "MONTH_END_CLOSING" |
accountId |
Id of the account being closed |
Numeric |
transactionCount |
Number of transactions in the closing |
Numeric |
startDate |
Start date of the closing period, in milliseconds since the Unix epoch |
Numeric |
endDate |
End date of the closing period, in milliseconds since the Unix epoch |
Numeric |
accountingClosingDeleted
›
Field |
Description |
Format |
entityId |
Id of the deleted closing |
Numeric |
period |
Period of the closing |
One of the following: "YEAR_END_CLOSING", "MONTH_END_CLOSING" |
accountId |
Id of the account being closed |
Numeric |
transactionCount |
Number of transactions in the closing |
Numeric |
startDate |
Start date of the closing period, in milliseconds since the Unix epoch |
Numeric |
endDate |
End date of the closing period, in milliseconds since the Unix epoch |
Numeric |
accountingCoAShown*
accountingCoABalanceSheetPressed*
accountingGLShown*
›
Field |
Description |
Format |
entityId |
Id of the GL account being viewed |
Numeric |
accountNo |
Account number of the GL account being viewed |
Numeric |
type |
Type of the GL account being viewed |
One of the following: "ASSET", "LIABILITY", "EQUITY", "INCOME", "EXPENSE", "COGS", "OTHER_INCOME", "OTHER_EXPENSE", "SUSPENSE" |
accountingGLAccountCreated
›
Field |
Description |
Format |
entityId |
Id of the created GL account |
Numeric |
accountNo |
Account number of the created GL account |
Numeric |
type |
Type of the created GL account |
One of the following: "ASSET", "LIABILITY", "EQUITY", "INCOME", "EXPENSE", "COGS", "OTHER_INCOME", "OTHER_EXPENSE", "SUSPENSE" |
accountingGLAccountEdited
›
Field |
Description |
Format |
entityId |
Id of the edited GL account |
Numeric |
accountNo |
Account number of the edited GL account |
Numeric |
type |
Type of the edited GL account |
One of the following: "ASSET", "LIABILITY", "EQUITY", "INCOME", "EXPENSE", "COGS", "OTHER_INCOME", "OTHER_EXPENSE", "SUSPENSE" |
accountingGLAccountDeleted
›
Field |
Description |
Format |
entityId |
Id of the deleted GL account |
Numeric |
accountNo |
Account number of the deleted GL account |
Numeric |
type |
Type of the deleted GL account |
One of the following: "ASSET", "LIABILITY", "EQUITY", "INCOME", "EXPENSE", "COGS", "OTHER_INCOME", "OTHER_EXPENSE", "SUSPENSE" |
accountingGLDownloaded
›
Field |
Description |
Format |
entityId |
Id of the GL account downloaded |
Numeric |
accountingImportScreenShown*
accountingImportStarted
›
Field |
Description |
Format |
apiName |
Name of the service the data was imported from |
One of the following: "QBO", "XERO", "BENCH" |
hasChartOfAccounts |
Whether a chart of accounts was provided |
Boolean |
hasJournalReport |
Whether a journal report was provided |
Boolean |
hasBeginningBalanceSheet |
Whether a beginning balance sheet was provided |
Boolean |
hasEndingBalanceSheet |
Whether an ending balance sheet was provided |
Boolean |
hasInvoiceFile |
Whether an invoices file was provided |
Boolean |
hasEndingProfitAndLoss |
Whether an ending profit and loss statement was provided |
Boolean |
accountingImportMappingStepCompleted
›
Field |
Description |
Format |
apiName |
Name of the service the data was imported from |
One of the following: "QBO", "XERO", "BENCH" |
accountingImportCompleted
›
Field |
Description |
Format |
apiName |
Name of the service the data was imported from |
One of the following: "QBO", "XERO", "BENCH" |
transactionCount |
Number of transactions imported |
Numeric |
invoiceCount |
Number of invoices imported |
Numeric |
accountingJournalShown*
accountingJournalTrialBalancePressed*
accountingJournalEntryCreated
›
Field |
Description |
Format |
entityId |
Id of the created journal entry |
Numeric |
accountingJournalEntryEdited
›
Field |
Description |
Format |
entityId |
Id of the edited journal entry |
Numeric |
accountingJournalEntryDeleted
›
Field |
Description |
Format |
entityId |
Id of the deleted journal entry |
Numeric |
biTilePressed*
›
Field |
Description |
Format |
name |
Name of the Business Intelligence Tile that was pressed |
String |
biTileBannerPressed*
›
Field |
Description |
Format |
name |
Name of the Business Intelligence Onboarding Banner that was pressed |
String |
bankAccountCreated
›
Field |
Description |
Format |
entityId |
Unique identifier of the bank account |
Number |
apiName |
Name of the API, e.g. "PLAID", that the bank account belongs to |
String |
type |
Type of bank account |
One of the following: "CREDIT", "DEPOSITORY" |
bankAccountEdited
›
Field |
Description |
Format |
entityId |
Unique identifier of the bank account |
Number |
apiName |
Name of the API, e.g. "PLAID", that the bank account belongs to |
String |
type |
Type of bank account |
One of the following: "CREDIT", "DEPOSITORY" |
bankAccountDeleted
›
Field |
Description |
Format |
entityId |
Unique identifier of the bank account |
Number |
apiName |
Name of the API, e.g. "PLAID", that the bank account belongs to |
String |
type |
Type of bank account |
One of the following: "CREDIT", "DEPOSITORY" |
bankAccountMerged
›
Field |
Description |
Format |
entityId |
Unique identifier of the bank account |
Number |
apiName |
Name of the API, e.g. "PLAID", that the bank account belongs to |
String |
type |
Type of bank account |
One of the following: "CREDIT", "DEPOSITORY" |
mergedIntoId |
Unique identifier of the account this account was merged into |
Number |
bankLinkScreenShown*
bankLinkBankSelected*
›
Field |
Description |
Format |
bankName |
Name of the selected bank |
String |
apiName |
Name of the API, e.g. "PLAID", used for the bank connection |
String |
bankLinked
›
Field |
Description |
Format |
entityId |
Unique identifier of the bank connection |
Number |
apiName |
Name of the API, e.g. "PLAID", used for the bank connection |
String |
numAccounts |
Number of accounts linked in this connection |
Number |
bankUnlinked
›
Field |
Description |
Format |
entityId |
Unique identifier of the bank connection |
Number |
apiName |
Name of the API, e.g. "PLAID", used for the bank connection |
String |
numAccounts |
Number of accounts unlinked in this connection |
Number |
bankLinkError
›
Field |
Description |
Format |
entityId |
Unique identifier of the bank connection |
Number |
apiName |
Name of the API, e.g. "PLAID", used for the bank connection |
String |
bankLinkRepaired
›
Field |
Description |
Format |
entityId |
Unique identifier of the bank connection |
Number |
apiName |
Name of the API used for the bank connection |
String |
businessCreated
›
Field |
Description |
Format |
entityId |
Unique identifier of the created business |
Numeric |
businessEdited
›
Field |
Description |
Format |
entityId |
Unique identifier of the edited business |
Numeric |
businessDeleted
›
Field |
Description |
Format |
entityId |
Unique identifier of the deleted business |
Numeric |
clientCreated
›
Field |
Description |
Format |
entityId |
Unique identifier of the created client |
Number |
businessId |
Unique identifier of the associated business |
Number |
clientEdited
›
Field |
Description |
Format |
entityId |
Unique identifier of the edited client |
Number |
businessId |
Unique identifier of the associated business |
Number |
clientDeleted
›
Field |
Description |
Format |
entityId |
Unique identifier of the deleted client |
Number |
businessId |
Unique identifier of the associated business |
Number |
invoiceCanceled
›
Field |
Description |
Format |
entityId |
Id of the invoice canceled |
Numeric |
type |
Type of the invoice before it was canceled |
One of the following: "OPEN", "CANCELLED", "DRAFT", "REFUNDED", "SCHEDULED" |
invoiceDashShown*
invoiceDrafted
›
Field |
Description |
Format |
entityId |
Id of the invoice drafted |
Numeric |
invoiceEdited
›
Field |
Description |
Format |
entityId |
Id of the invoice edited |
Numeric |
type |
The type of the invoice edited |
One of the following: "DRAFT", "OPEN", "SCHEDULED", "RECURRING" |
invoicePaid
›
Field |
Description |
Format |
entityId |
Id of the paid invoice |
Numeric |
dueDate |
Due date of the invoice, in milliseconds since the Unix epoch |
Numeric |
paymentMethod |
Payment method used to pay the invoice |
One of the following: "DIRECT", "CREDIT", "ACH" |
autoCharge |
Whether this invoice was automatically charged to a stored payment method |
Boolean |
invoicePaymentProcessingSetupStarted*
›
Field |
Description |
Format |
paymentProcessor |
Which
payment processor
the user is starting to set up
|
One of the following: "STRIPE", "QUALPAY", "MOOV" |
source |
Where the user entered payment processing setup from |
One of the following: "INVOICE_DASH", "INVOICE_SETTINGS", "INVOICE_SETUP", "INVOICE_FORM"
|
invoicePaymentProcessingSetupCompleted
›
Field |
Description |
Format |
paymentProcessor |
Which
payment processor
the user set up
|
One of the following: "STRIPE", "QUALPAY", "MOOV" |
invoiceRefunded
›
Field |
Description |
Format |
entityId |
Id of the invoice refunded |
Numeric |
invoiceScheduled
›
Field |
Description |
Format |
entityId |
Id of the scheduled invoice |
Numeric |
scheduledDate |
Date the invoice is scheduled to send, in milliseconds since the Unix epoch |
Numeric |
invoiceSent
›
Field |
Description |
Format |
entityId |
Id of the invoice sent |
Numeric |
frequency |
The recurrence frequency of the invoice |
One of the following: "ONE_TIME", "WEEKLY", "BI_WEEKLY", "MONTHLY", "YEARLY",
"AFTER_TWO_MINS"
Note that "AFTER_TWO_MINS" is solely for dev/testing purposes |
sendMethod |
How the invoice was sent |
One of the following: "CREATE_LINK", "SEND_EMAIL", "SEND_QUOTE" |
acceptCash |
Whether the invoice can be paid with cash |
Boolean |
acceptCredit |
Whether the invoice can be paid with a credit card |
Boolean |
acceptACH |
Whether the invoice can be paid with an ACH payment |
Boolean |
autoCharge |
Whether the invoice will automatically charge a stored payment method |
Boolean |
invoiceSettingsEdited*
›
Field |
Description |
Format |
brandColorEdited |
Whether the user edited their custom brand color |
Boolean |
logoEdited |
Whether the user edited their custom logo |
Boolean |
defaultNoteEdited |
Whether the user edited their default invoice note |
Boolean |
defaultTermEdited |
Whether the user edited their default invoice term |
Boolean |
defaultMarkupPercentEdited |
Whether the user edited their default expense markup percent |
Boolean |
defaultHourlyRateEdited |
Whether the user edited their default hourly rate |
Boolean |
hasDueDateReminder |
Whether the user automatically sends a reminder to pay on the invoice's due date |
Boolean |
hasThreeDayReminder |
Whether the user automatically sends a reminder to pay three days after the invoice's due
date |
Boolean |
hasWeeklyReminder |
Whether the user automatically sends a reminder to pay an invoice weekly after the invoice's due date |
Boolean |
invoiceSetupStarted*
invoiceSetupBusinessInfoStepCompleted*
›
Field |
Description |
Format |
firstNameAdded |
Whether the user added their first name to their invoices |
Boolean |
lastNameAdded |
Whether the user added their last name to their invoices |
Boolean |
address1Added |
Whether the user added a first line to their business address |
Boolean |
address2Added |
Whether the user added a second line to their business address |
Boolean |
cityAdded |
Whether the user added a city to their business address |
Boolean |
stateAdded |
Whether the user added a state to their business address |
Boolean |
zipAdded |
Whether the user added a zip code to their business address |
Boolean |
phoneAdded |
Whether the user added a business phone number to their invoices |
Boolean |
invoiceSetupCustomizationStepCompleted*
›
Field |
Description |
Format |
logoAdded |
Whether the user added a custom logo to their invoices |
Boolean |
colorAdded |
Whether the user added a custom brand color to their invoices |
Boolean |
skipped |
Whether the user skipped this step of invoice setup |
Boolean |
invoiceSetupCompleted
invoiceSetupCanceled*
›
Field |
Description |
Format |
step |
Which step of invoice setup the user canceled from |
One of the following: "BUSINESS_INFO", "CUSTOMIZATION", "PAYMENT_PROCESSING" |
invoiceViewedByClient*
›
Field |
Description |
Format |
entityId |
Id of the invoice viewed |
Numeric |
invoiceViewedByUser*
›
Field |
Description |
Format |
entityId |
Id of the invoice viewed |
Numeric |
integrationLinked
›
Field |
Description |
Format |
entityId |
Unique identifier of the integration |
Number |
apiName |
Name of the API integration, e.g. "UNIT", "SQUARE" |
String |
integrationUnlinked
›
Field |
Description |
Format |
entityId |
Unique identifier of the integration |
Number |
apiName |
Name of the API integration, e.g. "UNIT", "SQUARE" |
String |
integrationError
›
Field |
Description |
Format |
entityId |
Unique identifier of the integration |
Number |
apiName |
Name of the API integration, e.g. "UNIT", "SQUARE" |
String |
integrationRepaired
›
Field |
Description |
Format |
entityId |
Unique identifier of the integration |
Number |
apiName |
Name of the API integration, e.g. "UNIT", "SQUARE" |
String |
mileageDashShown*
mileageCreated
›
Field |
Description |
Format |
entityId |
Unique identifier of the mileage entry |
Number |
count |
Number of mileage entries created |
Number |
mileageEdited
›
Field |
Description |
Format |
entityId |
Unique identifier of the mileage entry |
Number |
mileageDeleted
›
Field |
Description |
Format |
entityId |
Unique identifier of the mileage entry |
Number |
payrollDashShown*
payrollAccountCreated
›
Field |
Description |
Format |
entityId |
Unique identifier of the payroll account |
Number |
apiName |
Name of the payroll provider |
One of the following: "GUSTO", "CHECK" |
payrollIngestionStarted
›
Field |
Description |
Format |
apiName |
Name of the payroll provider |
One of the following: "GUSTO", "CHECK" |
type |
Method of ingestion: "AUTO" for direct integration, "MANUAL" for API upload |
One of the following: "AUTO", "MANUAL" |
payrollIngestionCompleted
›
Field |
Description |
Format |
apiName |
Name of the payroll provider |
One of the following: "GUSTO", "CHECK" |
type |
Method of ingestion: "AUTO" for direct integration, "MANUAL" for API upload |
One of the following: "AUTO", "MANUAL" |
reportDownloaded
›
Field |
Description |
Format |
reportName |
Name of the report that was downloaded |
String |
fileFormat |
Format of the downloaded report file |
One of the following: "PDF", "CSV", "XLS", "XLSX" |
reportRowPressed*
›
Field |
Description |
Format |
reportName |
Name of the report where the row was pressed |
String |
rowName |
Name of the row that was pressed |
String |
reportSent
›
Field |
Description |
Format |
reportName |
Name of the report that was sent |
String |
fileFormat |
Format of the sent report file |
One of the following: "PDF", "CSV", "XLS", "XLSX" |
reportShown*
›
Field |
Description |
Format |
reportName |
Name of the report being viewed |
String |
startDate |
Start date of the report's date range |
Date |
endDate |
End date of the report's date range |
Date |
grouping |
How the report data is grouped |
String |
taxDashShown*
taxDashScheduleCPressed*
taxDashTaxDetailsPressed*
taxDashFileTaxesPressed*
taxSetupStarted*
taxSetupStateStepCompleted*
›
Field |
Description |
Format |
state |
State or Province selected in the setup process |
String |
taxSetupFilingStatusStepCompleted*
›
Field |
Description |
Format |
federalStatus |
Federal filing status selected in the setup process |
String |
skipped |
Whether this step was skipped |
Boolean |
taxSetupSalaryStepCompleted*
›
Field |
Description |
Format |
hasSalaryIncome |
Whether the user has income from a full-time job or other employment |
Boolean |
taxSetupDisclaimerStepCompleted
taxSetupCompleted
taxSetupEdited
›
Field |
Description |
Format |
countryCode |
Country code, ex: "US", "CA" |
String |
federalStatus |
Federal filing status, ex: "SINGLE", "MARRIED" |
String |
stateStatus |
State filing status, ex: "SINGLE", "MARRIED" |
String |
state |
State or Province |
String |
hasSalaryIncome |
Whether the user has income from a full-time job or other employment |
Boolean |
useUserWageWitholdingEstimate |
Whether to use user's wage withholding estimate instead of the app's estimate |
Boolean |
useMileageDeduction |
Whether to use the Standard Mileage Rate method for mileage deduction |
Boolean |
useSimpleHomeOfficeDeduction |
Whether to use simple home office deduction |
Boolean |
useUserBusinessIncomeEstimate |
Whether to use user's business income estimate instead of the app's estimate |
Boolean |
numDependents |
Number of dependents |
Number |
automateSalesTax |
Whether to automate sales tax (CA only) |
Boolean |
useUserVehicleUsePercent |
Whether to use user's vehicle use percentage instead of the app's estimate |
Number |
taxSetupCanceled*
›
Field |
Description |
Format |
step |
Step at which the setup was canceled |
One of the following: "STATE", "FILING_STATUS", "SALARY", "DISCLAIMER" |
taxFilingStarted
›
Field |
Description |
Format |
apiName |
Name of the tax filing service |
String |
taxFilingCompleted
›
Field |
Description |
Format |
apiName |
Name of the tax filing service |
String |
transactionDashShown*
›
Field |
Description |
Format |
type |
Which transaction dash is being viewed |
One of the following: "EXPENSE", "REVENUE", "ALL" |
transactionCreated
›
Field |
Description |
Format |
entityId |
Unique identifier of the transaction |
Number |
apiName |
Name of the integration or source of the transaction |
String |
type |
Type of transaction |
One of the following: "EXPENSE", "REVENUE", "BANK_TRANSFER", "TAX_PAYMENT" |
reviewStatus |
Current review status of the transaction |
One of the following: "PARTNER_REVIEW_REQUIRED", "USER_REVIEW_REQUIRED", "ACCOUNTANT_REVIEW_REQUIRED", "RECONCILIATION_DISCREPANCY" |
category |
Category of the expense, not applicable for other transaction types |
String |
count |
Number of transactions created |
Number |
needsReviewCount |
Number of transactions that need review |
Number |
transactionEdited
›
Field |
Description |
Format |
entityId |
Unique identifier of the transaction |
Number |
apiName |
Name of the integration or source of the transaction |
String |
type |
Type of transaction |
One of the following: "EXPENSE", "REVENUE", "BANK_TRANSFER", "TAX_PAYMENT" |
reviewStatus |
Current review status of the transaction |
One of the following: "PARTNER_REVIEW_REQUIRED", "USER_REVIEW_REQUIRED", "ACCOUNTANT_REVIEW_REQUIRED", "RECONCILIATION_DISCREPANCY" |
category |
Category of the expense, not applicable for other transaction types |
String |
count |
Number of transactions edited |
Number |
transactionDeleted
›
Field |
Description |
Format |
entityId |
Unique identifier of the transaction |
Number |
apiName |
Name of the integration or source of the transaction |
String |
type |
Type of transaction |
One of the following: "EXPENSE", "REVENUE", "BANK_TRANSFER", "TAX_PAYMENT" |
reviewStatus |
Current review status of the transaction |
One of the following: "PARTNER_REVIEW_REQUIRED", "USER_REVIEW_REQUIRED", "ACCOUNTANT_REVIEW_REQUIRED", "RECONCILIATION_DISCREPANCY" |
category |
Category of the expense, not applicable for other transaction types |
String |
count |
Number of transactions deleted |
Number |
transactionIngestStarted
›
Field |
Description |
Format |
apiName |
Name of the integration or source being ingested |
String |
transactionIngestCompleted
›
Field |
Description |
Format |
apiName |
Name of the integration or source being ingested |
String |
count |
Number of transactions ingested |
Number |
transactionReceiptAdded
›
Field |
Description |
Format |
entityId |
Unique identifier of the transaction |
Number |
transactionReceiptDeleted
›
Field |
Description |
Format |
entityId |
Unique identifier of the transaction |
Number |
📘
Events marked with * are only available via the Embedded Experience