- AI for Business Newsletter
- Posts
- A new CRM paradigm: from structured to unstructured user interactions
A new CRM paradigm: from structured to unstructured user interactions
How GenAI can save time spent on low value-added data entry activities.

As suggested in an earlier post, salespersons spend too much time inputting data into CRM tools during the sales cycle. Key account managers spend 5-10 hours/week updating platforms like Salesforce and bringing stakeholders up to speed, or hire sales assistants to do the work.
With AI-powered CRM, salespersons should be able to dump information into the CRM’s lap and let the CRM organize, format and store it. Similarly, when they need information about a company or contact, they should be able to ask a single question and get all the relevant information displayed in a neat dashboard. No more navigating drop-down menus and filling multiple form boxes.
By improving CRM workflows, companies can save hours of weekly data entry tasks.
Let’s review this approach in more detail. A demo notebook is provided at the end of the post.
The new CRM paradigm
Most CRMs already support email BCC. This means that salespersons can BCC a dedicated email address when they contact a customer, enabling the email’s content to be logged into the CRM.
However, not much more is done with the email. Salespersons must complete dozens of CRM form fields with information about the contact, the company, and the potential deal: contact name, address fields, industry sector, web links, deal details, next steps, etc.
In an ideal world, the CRM should just be able to listen into all conversations across channels (e.g., video conference, email, DM), or receive conversation dumps from the salesperson, and pre-populate all data.
The CRM should be able to:
Automatically create contacts, companies, and interactions.
Parse email signatures.
Scrape social media platforms and the customer’s websites for information.
Understand conversations to identify potential deals and next steps.
Automatically create reminders for the sales team.
Query financial systems to understand invoices and late payments.
Summarize all the above data in response to salespersons’ requests.
Proactively identify new sales opportunities when new product offerings are launched.
The target architecture looks like this:

Migrate to a new CRM?
Many AI startups have identified the need for this new paradigm and are working to develop brand new CRM platforms powered by AI.
Does it make sense to migrate to these new CRM platforms?
In the long run, it will likely make sense to migrate to platforms created with an AI-first approach, because these platforms will be able to release new features faster, at a lower cost, than CRM platforms that are bogged down by legacy infrastructure and technical debt.
However, in the short term, migrations may not make sense. They require heavy manual work that negates AI’s business benefits for a year or more and expose the company to a dependency risk over fledging vendors.
Thus, in the short term, it makes more sense to build GenAI-powered interfaces on top of existing platforms and databases, communicating with them through APIs. After delivering the business benefits, then consider a migration.
The diagram below illustrates how the GenAI-powered interface can stand on top of existing systems:

How to demo this approach
You can easily create a demo of this next-generation CRM.
The demo will:
Create a Telegram bot that can be added to Telegram discussion groups.
Listen to conversations and store them.
At regular intervals, summarize and organize conversations to extract relevant data and store it into a CRM database.
Answer questions about leads and deals.
Create a Telegram bot
To create a Telegram bot, you need to have a Telegram account and converse with the @BotFather, starting with the command /newbot
. You can find many online tutorials about this. Write down the bot’s API token, you will need it later.
To make sure that the bot can listen to conversations, go to Bot Settings, Group Privacy, and Turn off.
Listen to conversations
Once the bot is created, you can invite it into Telegram groups with other people. Then you must make sure that the bot listens to messages and store them into a database. There are many ways to do this. You can ask an AI chatbot to code the bot for you or use a no-code platform such as Pipedream, N8N or Make.
To get started, I recommend using:

Once the Telegram bot listener is wired up, conversations will start appearing in the aiforbiznews-crm-conversations
database.
Create a dummy conversation for development purposes
To get started, you can ask an AI chatbot to generate a fictional conversation for you. Here’s a prompt:
Create a fictional sales conversation between two characters.
Richard is the customer from company "CRYPTOPROJECT". They are interested in purchasing AI consulting services to make their technical documentation easier to access and understand.
Aaron is the key account manager, selling AI consulting services.
The conversation takes place on a messaging app like Telegram. It is a follow-up from a face-to-face meeting that Richard and Aaron had at a conference. Richard mentioned their needs briefly to Aaron, who now wants to better understand the requirements.
The conversation should include around 15 messages. It should include details about Richard's company, his address and contact information, as well as their needs, and a discussion about a potential proposal and budget.
Please provide the conversation as a CSV file. The CSV should be comma separated, with quotation marks around each text string. The columns should be message_sender as the name of the sender, and message as the content of the message. Column values should be quotation marks around each text string. Do not include anything else in your response.
You can see an extract of the conversation below:
Conversation history for chat_id C-123456789:
Message from Aaron Henderson (chat_username: aaron ) at 2025-03-01 00:00:05+00:00: Hi Richard, it's Aaron from AIEXPERT. Great meeting you at the BlockTech Conference last week! I wanted to follow up on our conversation about helping CRYPTOPROJECT with your technical documentation challenges. Do you have some time to discuss your needs in more detail?
Message from Richard Rory (chat_username: richard ) at 2025-03-01 00:00:10+00:00: Hey Aaron, thanks for reaching out. Yes, I've been meaning to follow up with you as well. We definitely need help making our technical documentation more accessible. When would be a good time to chat?
Message from Aaron Henderson (chat_username: aaron ) at 2025-03-01 00:00:15+00:00: I'm available tomorrow afternoon or Thursday morning. Alternatively, we could also discuss via messages here if that's more convenient for you right now?
Message from Richard Rory (chat_username: richard ) at 2025-03-01 00:00:20+00:00: Messages work fine for now. Let me give you a bit more context about our situation. We've built a complex blockchain platform with various APIs and SDKs, but developers are struggling to understand and implement our documentation. We need to make it more intuitive and searchable.
Message from Aaron Henderson (chat_username: aaron ) at 2025-03-01 00:00:25+00:00: Thanks for the additional context. That's certainly something we can help with. Could you share a bit more about your current documentation structure? Is it primarily API references, implementation guides, or a mix of both? Also, what formats are you currently using?
Message from Richard Rory (chat_username: richard ) at 2025-03-01 00:00:30+00:00: It's mostly a mix of API references and implementation guides. Currently hosted on GitHub with markdown files and some auto-generated API docs. The main issues are fragmentation, inconsistent terminology, and lack of practical examples. Also, finding specific information is chal
...
Extract data from conversations
The AI agent must be able to access external services like the CRM database to extract, organize and store data from conversations. This is called “tool calling” or “function calling” depending on the LLM platform (see OpenAI docs here).
To get started, you must equip the AI agent with the following functions:
For the CRM’s contact database:
create_contact: create a new contact.
get_contact_by_id: get contact details.
query_contacts: retrieve existing contacts by name and company.
get_contact_by_chat_username: get contact details from Telegram username.
update_contact: update the information of a contact.
For the CRM’s company database:
get_industry_sectors: get the list of industry sectors.
create_company: create a new company.
get_company_by_id: get company details.
get_company_by_chat_id: get company details from Telegram group ID.
update_company: update the information of a company.
For the CRM’s interactions database:
get_interaction_types: get the list of interaction types.
create_interaction: log a customer interaction.
get_interaction_by_id: get interaction details.
get_interactions_by_company_id: get interactions associated with company.
For the CRM’s deal database:
get_deal_stages: get the list of deal stages.
create_deal: create a new deal opportunity.
get_deal_by_id: get deal opportunity details.
get_deals_by_company_id: get deals associated with company.
update_deal: update the information of a deal.
The following prompts illustrates how you can instruct the AI agent to extract data from recent conversations and store structured data into the various CRM databases.
First, we have the system prompt:
You are a CRM Assistant for the company AIEXPERT. Your primary role is to:
1. Record information from conversations into the CRM's database tables:
- Contacts: Store personal and professional details about external individuals (each contact has a unique contact_id). Internal salespeople are not contacts.
- Companies: Maintain information about organizations (each company has a unique company_id)
- Interactions: Track all communications and interactions with external individuals (each interaction has a unique interaction_id). An interaction is the summary of a conversation, not a single message. The summary should put particular emphasis on decisions agreed and next steps.
- Deals: Manage business opportunities and sales pipeline (each deal has a unique deal_id)
2. Retrieve information from these tables in response to user queries
3. Ignore requests that are unrelated to CRM functions
Your focus is on maintaining accurate and up-to-date CRM data. When processing conversations, prioritize extracting relevant business information and relationships. When responding to queries, provide clear, data-driven answers based on the CRM database.
Then, we have the actualy conversation processing prompt:
A customer conversation, captured from a Telegram chat, is provided below between the <customer_conversation> tags.
Use the conversation to create or update the CRM database, including the contacts, companies, interactions and deals tables.
Remember that an interaction is the summary of a conversation, not a single message.
When you are done, respond with a summary of the actions you took, and the data you created or updated in the CRM database.
<customer_conversation>
{customer_conversation}
</customer_conversation>
Answer questions about leads and deals
The AI agent will be able to answer questions about leads and deals simply by calling the same tools as described above, with a simple prompt like “For the company associated with chat_id {chat_id}, who are the main contacts and what are the deals under way?."
Demo in action
You can find the full demo and code at this link:
Reply