Understanding AI-Generated Smart Notes

Follow
Please note: This content is intended for Practifi System Administrators and is technical in nature.

Overview

This article outlines best practices for writing effective prompts for AI-generated Smart Note content blocks in Practifi, including formatting specifications, conditional logic and data handling rules. It also explains how the AI model prioritizes data through a three-phase system to generate relevant content while staying within system limits.

Please note: AI-powered Smart Notes are a part of our Practifi Intelligence add-on. To request access to this feature, please reach out to your Client Success Manager or Practifi contact. Enabling AI in Smart Notes requires signing additional data processing agreements due to our AI provider partnership.

Prompt Best Practices

The most effective prompts are highly specific about structure, formatting and logic while remaining flexible enough to handle varying data conditions. They balance precision with readability, ensuring the AI produces professional, scannable output that serves the end user's needs.

Here are some recommendations for writing effective prompts for AI content blocks:

Match Reasoning Effort to Complexity

Reasoning Effort refers to the amount of thinking the AI does when generating its response. The higher the effort, the longer it takes to generate, so choose the lowest amount of effort that still gives you the quality you need. More straightforward prompts (e.g., "List the client's assets") require less reasoning and might work well when set to Minimal.

Consider the cognitive load required:

  • Minimal: Simple tables or lists with straightforward sorting
  • Low: Basic conditional logic and formatting rules
  • Medium: Complex conditional logic, conversational synthesis, multi-source integration
  • High: Deep reasoning tasks 

This helps optimize processing time and token usage.

Start with Clear Structural Instructions

If you have a specific formatting style in mind, specify how the output should be organized. State the main heading, subheadings and how information should flow before diving into details.

Example: "Display all contact information under a 'Contact Information' heading, with three subheadings: 'Addresses', 'Phone Numbers', and 'Email Addresses'."

Define Formatting Explicitly

Be precise about visual presentation:

  • Bold font
  • Italics
  • Bulleted vs. numbered lists
  • Table structures with specific column names

Example: "Format field labels in bold with field values in regular font weight."

Specify Sorting and Ordering Logic

Indicate how data should be organized:

  • Sort by date (ascending/descending)
  • Alphabetical order
  • Priority-based sequencing
  • Grouping criteria

Example: "Sort Contacts: Primary Member first, then Spouse, then all others alphabetically by first name."

Handle Conditional Logic Clearly

When output varies based on data presence or entity type, use explicit if-then statements:

  • "If [field] is populated, then..."
  • "When [condition] exists..."
  • "For [entity type], display... For [other entity type], display..."

Example: Omit "with [Attendees]" if Attendees is not populated, and omit "in [Location]" if Location is not populated.

Avoid Redundancy with Deduplication Rules

When data might appear in multiple places, specify how to handle duplicates:

  • Which source takes priority
  • When to skip redundant information
  • How to recognize matching values

Example: "Display unique phone numbers, avoiding duplicate information between Entity and Contact records."

Specify Inclusion/Exclusion Criteria

Be explicit about filtering rules:

  • Active vs. historical records
  • Status-based filtering
  • Third-party vs. internal relationships

Example: "Only include open tasks - exclude any tasks with a status of Completed or Cancelled"

Make Prompts Modular and Self-Contained

Each prompt should:

  • Stand alone without requiring context from other prompts
  • Include all necessary instructions within itself
  • Be independently executable

Sample Prompts

There's no one way to write a prompt for an AI-generated content block. You can use natural language to create a straightforward list or table, or you can include detailed instructions that include deep reasoning, examples of good output and desired formatting. Here are examples of two different prompting styles:

Example 1: Simplified Prompt

Scenario: You want to see outstanding work items for the client.

Prompt: Create a table showing all open processes and tasks for this entity.

Reasoning Effort: Minimal

Example 2: Complex Prompt

Scenario: You want the AI to show both open processes and tasks and a history of past work items.

Prompt: Display all Processes and Tasks for this Entity with two subheadings: "Open Work" and "Work History".

  • Open Work Subheading:
    • Display in a table with four columns: Name, Status, Due Date, and Assignee.
    • Include all Processes where Stage Name is not "Completed" or "Cancelled". For each Process, display the Process Name in bold, then immediately below it display all related Tasks (both open and completed) nested underneath. Format task names with " • " prefix (two spaces followed by a bullet point) in regular weight to show the parent-child relationship.
    • Also include all standalone Tasks (Tasks without a Related Process Name) where Status is not "Completed" or "Cancelled". Display standalone tasks in regular weight without the bullet prefix.
    • Sort with Processes first (showing nested tasks immediately below each), then standalone tasks.
  • Work History Subheading:
    • Display in a table with four columns: Name, Status, Completed Date, and Assignee.
    • Include all Processes where Stage Name is "Completed" or "Cancelled". For each completed/cancelled Process, display the Process Name in bold, then immediately below it display all related Tasks nested underneath. Format task names with " • " prefix (two spaces followed by a bullet point) in regular weight.
    • Also include all standalone Tasks (Tasks without a Related Process Name) where Status is "Completed" or "Cancelled". Display standalone tasks in regular weight without the bullet prefix.
  • Formatting: Use standard table format with column headers. Process names should be bold. Task names should be regular weight with " • " prefix when nested under a process.  

Reasoning Effort: Low


System Prompt Instructions

In addition to the prompts you enter to generate content blocks, Practifi sends instructions to the AI to help it understand our data model. You can see how Practifi objects are defined in the table below.

Object Definition
Additional Addresses Captures any addresses that didn't fit into the fields available on the Contact or Entity record directly. Also used to track addresses that are no longer active, or seasonal ones.
Additional Emails Captures any email addresses that didn't fit into the fields available on the Contact or Entity record directly. Also used to track email addresses that are no longer active, or seasonal ones.
Additional Phone Numbers Captures any phone numbers that didn't fit into the fields available on the Contact or Entity record directly. Also used to track phone numbers that are no longer active, or seasonal ones.
Asset & Liability Roles How specific assets and liabilities relate to the members of the household/organization, including roles such as owner, beneficiary and trusted contact, and ownership percentages.
Assets Everything the client owns that has significant financial value, such as share portfolios, managed funds, private investments and real estate.
Calls Conversations held on the phone with either the entity or one of its members. Can also be used to log when voicemail messages are left, rather than actual conversations.
Client Entities Groups which the parent entity has some sort of financial stake in, such as trusts and charitable foundations. Often legal entities, but not always.
Contacts Either the members of the household or the employees of the organization.
Deals An opportunity to close new business with the Entity, either by providing new services or increasing wallet share.
Deliverables Configuration logic for the work items that must be delivered as part of executing a specific Service for the Entity. Each Deliverable contains the scheduling settings for a specific type of work item, such as annual portfolio reviews or quarterly check-in calls.
Emails Communication with the Entity and/or its members sent via email.
Entity The household, organization or individual person that the advisory firm has a direct relationship with.
Events Meetings held with the client, either one-on-one such as an annual review, or group-based such as a webinar.
External Relationships Connections between the Entity and third parties, such as people they refer to the firm, their accountants or their attorney.
Feed Posts Internal conversations between employees, such as when following up on work items or providing general status updates. Is also sometimes used to log conversations.
Goals High-level, long-term outcomes, such as having enough money for retirement, or being able to pay for their child's college tuition.
Holdings The specific holdings within financial accounts that the client owns. These represent different things depending on the account and where the data is sourced from, such as securities, cash and mutual funds.
Income & Expense An itemized breakdown of the client's recurring income and expenditure, such as salaries, loan repayments and share dividends.
Income & Expense Roles How specific income and expenditure items relate to the members of the household/organization.
Installments Deposits of revenue from the client to the firm in return for services rendered.
Liabilities Everything the client owes to other parties, such as a mortgage or line of credit.
Notes Internal documents that relate to the firm's relationship with the entity, such as meeting notes.
Noticeboard Posts Important alerts shared internally among team members, such as recent life events, standing instructions for financial accounts or contact preferences. Can be used for capturing notes from conversations.
Objective Relations Junction object used to relate Objectives to Assets, Liabilities, Goals & Retirement Income records.
Objectives Specific, short-term outcomes that help realise long-term goals, such as selling an investment property.
Policies Insurance policies held by the Entity.
Policy Coverage Area Roles The owners and beneficiaries of policy coverage areas.
Policy Coverage Areas The individual line items or benefits contained within an insurance policy, such as Total or Permanent Disablement Cover.
Policy Roles The owners and beneficiaries of insurance policies.
Processes A complex work item that requires multiple tasks to be executed by various employees in a predefined manner.
Questionnaires Responses to questionnaires issued by the firm, typically related to risk profile assessments, but not always.
Reference Documents Important documents related to the Entity, such as identity documents like passports and driver's licenses, or regulatory documents like Financial Services Guides or Form-CRS. Typically for a document to be tracked here, there's either a Status e.g. sent/accepted or a Date e.g. issue/expiry date, that's relevant for tracking purposes.
Retirement Incomes A type of retirement account that pays the account holder a regular recurring amount, rather than a lump sum.
Services An agreement between the client and the firm where the firm delivers a service such as investment management or financial planning in exchange for a fee.
Servicing Team Employees who directly manage the relationship with the client, such as their financial advisor or client service associate.
Smart Notes Internal documents that relate to the firm's relationship with the entity, such as meeting notes and point-in-time snapshots of client data. Can also be used as collaboration tool between employees, such as when preparing for client meetings.
Tasks Work done by internal employees to manage the relationship, such as scheduling meetings, executing custodial transactions or researching investment options.


Data Usage Optimization

When generating content blocks based on CRM data, the AI model pulls information from multiple Practifi objects to create comprehensive client summaries. To ensure optimal performance and stay within system limits, Practifi uses a sophisticated algorithm to calculate and distribute data usage across all objects.

Prioritization

The system prioritizes Practifi data into three levels to ensure users receive the most relevant information for Smart Notes.

Phase 1: Core Entity Data

This information is always included because it's essential for understanding the client's current situation. These are the core records that form the foundation of every Smart Note:

  • Main Record - The primary Account or Contact you're viewing
  • Client Entities - Related client accounts and organizations
  • Holdings - Current investment positions and portfolio data

Phase 2: Activity and Relationship Data

After core entity data, up to 150 records are processed (sorted by Last Modified Date) for the following objects:

  • Account Team Member
  • Asset & Liability
  • Asset & Liability Role
  • Attributed Revenue
  • Contact
  • Contact Point Address
  • Contact Point Email
  • Contact Point Phone
  • Deal
  • Deliverable
  • Event
  • Feed Post
  • Goal
  • Income & Expense
  • Income & Expense Role
  • Installment
  • Objective
  • Objective Relation
  • Policy
  • Policy Coverage
  • Policy Coverage Role
  • Policy Role
  • Process
  • Questionnaire
  • Reference Document
  • Relationship
  • Retirement Income
  • Service
  • Task (includes Calls as a separate section)

Please note: Objects are processed in a predefined order for optimal organization and efficiency.

Phase 3: Big Objects

Up to 100 records (sorted by Last Modified Date) are processed for the following objects:

  • Email Message: Email messages with potentially large body content (TextBody, HtmlBody fields)
  • Content Document: Files and notes (ContentNote) with large content
  • Smart Note: Smart Notes with potentially large text fields
  • Noticeboard Post: Noticeboard posts with large content fields

These objects require special handling because they contain Long Text Area fields of up to 132,000 characters. This can quickly consume processing capacity. The system uses a fair distribution approach (also known as Round Robin) to ensure all content types are represented.

Instead of processing all emails first (which might use up all available capacity), the system rotates through each content type. An example rotation might look like this:

  • Process one email
  • Process one note
  • Process one Smart Note
  • Process one Noticeboard post
  • Repeat until capacity is reached

The rotation continues until all records from all big objects are processed or there is insufficient capacity to process the next record. This ensures users get a balanced view across all content types rather than just seeing one type of information. 

Record Limits Summary

Object Type

Record Limit

Sorting

Processing Method
Core Entity Data All records N/A Sequential
Activity and Relationship Data 150 records Descending by Last Modified Date Sequential
Big Objects 100 records Descending by Last Modified Date Round Robin

Custom Field Handling in Smart Notes

One of the configuration options for AI Smart Notes gives Practifi Administrators control over which fields are included when your organization's CRM data is sent to our AI model.

The Include Custom Fields in CRM Data checkbox in the Smart Note Settings custom setting in Salesforce Setup controls whether local custom fields are included when our AI model processes your CRM data to generate Smart Notes.

2025-11-21_08-31-12.png

In some organizations, local custom fields have been created with API names identical to Practifi packaged fields. When our AI model encounters fields with duplicate API names, it can lead to conflicts that affect data processing and note generation accuracy. This setting helps prevent these conflicts while giving you flexibility in how Smart Notes accesses your CRM data. 

Here's how it works:

  • When the setting is enabled, the AI model includes all local custom fields in the CRM data, except those that share the same API name as standard Practifi fields. Custom fields with duplicate API names are automatically excluded to prevent conflicts.
  • When the setting is disabled, all local custom fields are excluded from Smart Notes CRM data.

We recommend reviewing your organization's custom field naming conventions to ensure that local custom fields don't use the same API names as standard Practifi fields, as they will be excluded from CRM data when generating AI Smart Notes. If you notice any issues with field data in Smart Notes, check for duplicate API names in your local custom fields and consider renaming them.

This setting is enabled by default. To disable the setting:

  1. Navigate to Salesforce Setup by clicking the gear icon in the upper right-hand corner of the page and selecting Setup.

    2025-11-21_09-13-37.png
  2. From Salesforce Setup, use the Quick Find search bar to search for and select Custom Settings.

    2025-11-21_09-14-47.png
  3. In Custom Settings, scroll down and select the Manage link next to Smart Note Settings.

    2025-11-21_09-15-25.png
  4. On the Smart Note Settings page, click the Edit button.

    2025-11-21_09-16-54.png
  5. On the edit screen, uncheck the Include Custom Fields in CRM Data box.

    2025-11-21_08-31-12.png
  6. Click Save.

Troubleshooting

Why are some records missing from Smart Notes?

Records can be excluded from Smart Notes for the following reasons:

  • Token Limit Reached: If all tokens are consumed, remaining records are skipped.
  • Record Limit Reached: Only the most recent 150 activity and relationship objects or 100 big object records are considered.
  • Access Permissions: The system excludes records that the running user cannot access.

How do I see token usage?

Check Debug Logs for messages like:

  • "Tokens consumed by main entity, client entities, and holdings: X"
  • "FeedItem consumed X tokens. Total consumed: X"
  • "Total tokens consumed after processing other objects (including FeedItem): X"
  • "Round Robin processing completed. Tokens used: X/Y"
0 out of 0 found this helpful

Comments

0 comments

Article is closed for comments.