Transforming Customer Processes and Gaining Productivity With DLT
Summary
- Customer data platform: Bradesco Bank built a unified Customer Data Platform using Databricks DLT and Delta Live Tables to replace fragmented legacy tools, improving data integrity and reducing latency.
- Operational transformation: By consolidating data integrations and processing, Bradesco eliminated months of reprocessing and weeks of human labor previously required for customer data updates.
- Scale and impact: With 75 million customers and 7.7 billion annual communications across 14 channels on Databricks Data and AI platform, Bradesco achieved significant efficiency gains and business agility.
Transforming Customer Processes and Gaining Productivity With DLT

Talk by Ademir Francisquini Junior, Sr Manager, Banco Bradesco S.A. ; Marcos Abrantes Gomes, senior manager, Bradesco Bank
Bradesco Bank is one of the largest private banks in Latin America, with over 75 million customers and over 80 years of presence in FSI. In the digital business, velocity to react to customer interactions is crucial to succeed. In the legacy landscape, acquiring data points on interactions over digital and marketing channels was complex, costly and lacking integrity due to typical fragmentation of tools. With the new in-house Customer Data Platform powered by Databricks Intelligent Platform, it was possible to completely transform the data strategy around customer data. Using some key components such Uniform and DLT, it was possible to increase data integrity, reduce latency and processing time and, most importantly, boost personal productivity and business agility. Months of reprocessing, weeks of human labor and cumbersome and complex data integrations were dramatically simplified achieving significant operational efficiency.
Here’s more to explore:
Production ready data pipelines for analytics and AI: https://www.databricks.com/solutions/data-engineering
The Big Book of Data Engineering: https://www.databricks.com/resources/ebook/big-book-data-engineering-2nd-edition
See all the product announcements from Data + AI Summit: https://www.databricks.com/events/dataaisummit-2025-announcements
FAQs
What challenges did Bradesco face?
According to this video, Bradesco had complex customer data spread across multiple systems and channels, with fragmented tools causing slow data processing, poor integrity, and delays in updating customer communications.
How did DLT help?
Databricks Delta Live Tables enabled Bradesco to unify data integration, ensure data integrity, and reduce latency and processing time, replacing cumbersome legacy integrations on Databricks Data and AI platform.
What was the scope of Bradesco's operation?
Bradesco operates with 75 million customers and manages 7.7 billion annual communications across 14 different support channels—a massive scale requiring modern data infrastructure.
What impact did the platform have?
This solution eliminated months of manual reprocessing, weeks of human labor, and dramatically simplified complex data integrations, delivering significant operational efficiency and business agility.
Full transcript
Good afternoon for everybody. Thank you for being here. And let's imagine you work on a company and all the information you need to deliver it for updates on dashboards, models, marketing strategy. And all this information that you receive comes with a three-day delay or other or several issues. What would you do to solve this problem? I work for Bradesco Bank in Brazil, and I'm here to show you how we solved it this.
Uh just observation here. I was supposed to share the stage with Ademir, uh senior CRM manager, but unfortunately, he had a serious a serious family issue and couldn't make it. So, I will do my best here to representing him. So, here we have our agenda. So, we will start with getting know the Bradesco and CRM area. After this, understanding channel return data engineering. The next step, our on-premises process. After this, the new structure of Delta Live Tables.
And finally, applying Delta Live Tables in business. Uh we will start with a short video of Bradesco Bank. So, uh Bradesco is one of the largest private bank in Latin America with 75 million customers. From this, 38 million account holders, considering here natural persons and company. Uh last year, Bradesco has had 3. 3 billion net income total 3. 3 billion dollars of net income. And to connect all with all these customers, of course, we have a CRM platform and we consider it the customer centric here.
But to achieve this customer centric, we have a several layers that we needed to consider. So, the first one we have our core capability that we will work with analytics, tech and modeling, risks, acquire, monetization. And after this, we have our business capabilities that each business unit has their guidance and we needed to connect. We have a layer of connection and of course, the center of everything, the customer.
And to serve our customers here, we offer multiple support channels ranging from bank branches to a digital platform and CRM is responsible uh for every communications on these channels. And how significant is CRM within the bank? When we look at the credit result that is the main product in the bank, in 2024, CRM influences at least 30% of it. So, this is the responsibility of CRM within the bank. And CRM basically work today with 14 main communications channels and last year was responsible for 7.
7 billion communications. And when we are talking about these channels, we need to consider that we have different structure of funnel in each channel. So, for instance, when we are talking about SMS, we have two layers here, send and delivery. When we are talking about push, we have another one with open WhatsApp different structure with read interaction email another completely different structure and we have communications embedded the app like cards models and others.
So the main information here is that each channel has a specific structure of funnel and we need to consider. But so why do we need this data? Because we have is some point the consolidated view of this information. So when we send a campaign with 1000 customers for instance, we know that we can see that 10% of them interacted with our campaign, but we need more. We need analytical part because we needed to measure the campaigns.
We needed to see the contribution of that campaign for the product, the contribution of that campaign in the channel. So we needed in the analytical part to create models next best action next best offer. We needed this the interaction of the customers inside our journey to create this kind of models and of course personalized communications. The information that the customers are interacting with us is essential to create this kind of campaigns.
And here we have our premises process. It's not easy this process, but we try to put here in a way to be easily to explain. So the first step here we have our source and extraction from our CRM platform. And we have the x-way is responsible to transfer this information and to achieve our environment. All the integration occurs here and at Hadoop and Hadoop we have the TDCH, the Teradata connector for Hadoop, that occurs here the ingestion, processing, consolidation, and storage of this information.
And why Teradata? The Teradata is the environment, the software that CRM choose to consolidate the all the information that they needed to work. And in here in this process we are basically talking about 22 data sets and the team size that's responsible for all this process uh is nine people here, okay? And how's the size of the this information? So, our monthly average is 2. 9 billion raw observations coming from mobile, push, cards, email, and others.
Plus here 2. 5 billion raw observations coming from tags. Uh we don't put tag all the app, all the channels that we have, but some uh journeys that we considering is relevant and this is the information from these tags. And what kind of issues we are facing here? So, the first one is the channel feedback. So, one day of feedback of our customers, we needed to wait up to three days to receive this information. So, basically, when we send a campaign here in D0, this campaign is going, one day of interaction of this customer, we need this information here, we will receive here in D4.
But the campaign is going on. We have the second day. Okay, we would like this information here. You receive here in D5 this information. So, and so on. Okay? And what kind of what else we have issues that we are facing here? So, another one is distraction is limited to one file at time per channel. So, we are talking about more than 14 channels. So, we need this limitation that needs to wait. Uh the processing time at the source is heavy.
So, we needed to wait here again. Uh we have some issues in generating this file at the source. And of course, we have a complexity here because the treatment of this ingestion because each channel has a specific structure of funnel, and we needed to build this in code. Reprocessing. Uh every day, we reprocess the last 90 days because we needed to construct to build uh the story of that campaign. So, when we start, we we follow this campaign to 90 days.
So, if you receive uh information of our a feedback of customer that interacted with us after 93 days, this information will be not uh we will not see anymore because we stop it in 90 days. We have here problems uh in traffic dizzy our on premises. The data sets, they are so heavy, and when they are moving in that four steps, we have breaks. We have other issue here, primary key. So, it's common to receive a blanket primary key, for instance.
Or another information that we are not expecting for that field. Problems with receiving mismatched files at funnel. So, it's common for us to receive uh information the last step of the funnel that for instance the customer bought the product and we didn't receive yet the first layer, what campaign that we are talking about for that customer. So, we have this mismatch. And basically we had weekly war rooms trying to solve this and we don't have uh one issue per time.
Basically, we have a mixed of these issues happening and the team in this war room trying to solve these problems. And here we have the DLT. So, before the DLT uh process itself, Databricks allowed us to build a pre-processing here uh the ingestion layer. So, we can't map available files. So, we look at the source, what kind of files we would like to work with. After the selection, we download these identified files.
And here we do a validate integrity parameters for instance the size of the file that arrived in our environment is the same that was at the source. After this, we run the extraction here and we validate the parameters again. So, if are any encoding issue or file corruption, if occurred this uh the process asked new files again. If everything is good, run the ingestion. So, the good part for us that we have a pre-treatment before the DLT and we have here a standardization that bring agility to us that when we have new uh files or new new channels, we can change only few parameters in this process and go on.
We don't need to code everything. And here the Delta Lake tables process. So, at Bradesco, we work with the structure of metal, so bronze, silver, and gold. And for us, we consider it the raw data. It's a a bronze layer. So, when we are doing this ingestion, we apply here qualities in this part. So, for instance, for primary key, we do have some validations. If these validations fails, we can choose of wait new updateds or cleaning this information and go further.
Uh here, we reprocess the synchronization because we are talking here with different times. We have campaign that was sent it yesterday and in several dates in the past. So, we are receiving different uh time zones here and we have this this desynchronization and the process do this. And finally, we consolidated via apply changes. The good part of the DLT here is that we have only job managing all the objects. So, we have that 14 channels with different bases inside it and one DLT is responsible for all the process.
All the execution is here running parallel and we have one cluster and we can control this cost. This is very good for us. And here, another good part is that one processing cycle per row. So, we consider it batch as a streaming. So, only the good data go ahead in this process. We don't need any more the reprocessing like you as as we have our on-premise process that we reprocess it last 90 days. Here, only updated is performed.
The consolidation updated is performed only with the new data. Here example that occurred that our process. So, here we have the SMS sending information. And this is our all process. When we zoom in one of this part, we have this SMS sending information. And here we have one day of feedback. So, basically 87. 7% was written and 12% was dropped it because we received information that we we don't want to, for instance.
Here, where's the laser here? On the finite ID, this here we retain information awaiting new information. Invalid income pay ID, we see drop it. Invalid contact code, drop it. And so on. We choose what we would like to do with these primary keys for us. So, here it's our overview of our DLT process. Basically, since October of 2023, we received billion raw observations. Basically, 200 million new information every day.
And after all these DLT process, our gold has 7 billion raw was raw data. Basically, we received 20 million new rows and updated 15 million. And when we are talking about the tag part. Our gold has 40 billion events and basically 60 million relevant tags that we received every day. So, when we compare the two environments here, what we have? So, basically we reduce the latency in one day comparing to our on-premises process.
Execution time in DLT our process occurs in 3 hours and a half comparing to our on-press on-premises process 80 to 60 hours and the main process 3 to 40 minutes here compared to 3 hours to 8 hours. And when we are talking about team size basically we have two people here working in this process and our on-premises 80 to 15 people work at because we have different areas in that process, okay? So, the DLT provide us enable uh end of war rooms reduction of support team optimize the supported reduce the processing time reduce the latency and parallel execution.
So, for us this we have only good part with this process. And okay, but how this information are connected with our business solution? So, basically we have the customer engagement here, but to support this we have a heavy structure to provide this. And when we are talking about the we have here this NBA the next best action with new structure and here the measure all the measure that in that campaigns is inputted here to predict models.
So, all the interactions that the customers does in the process is a feedback for the new models. So, they these interactions is essentially to this structure of the next best action for us. We have a new structure of framework of measure. So, the DOT provide us to work with last click model a plus U-shaped model. Uh U-shaped uh is a framework that consists of different that work with different touching points that the customer had in our journey.
Uh we know that some products they are easily to sell. So, the customer go straight to the point and buy it. But, other's products not so easy. The customers begin and stop it. After a few days, go forward and stop it again. So, it's not it's not linear the behavior of the customers. So, U-shaped consisted uh to work with all these different touching points. And when we uh when we consider it this two frameworks here, we have a structure that allowed us to define the best timing and channel with consequently we increase the sales conversion.
And we have new insights basically bringing of this framework. And with DOT provide us the reduce of the latency as I mentioned. So, we have new reports here with more efficiency and in the hands of our stakeholders. So, enabling them to make the necessary strategic decisions. So, basically we reformed every report to bring it this agility here. And what is the CRM goal? Basically, the CRM goal is to be more relevant to the customers by delivery more contextual and efficiency offers.
Uh the integrations of Delta Live Tables has bring us agility served as uh input for the new contextual actions. So, in other hands, DOT provide uh provide us trust in these informations and create this kind of contextual offers. So, all touching points that customers has in the journey could be by spontaneous or by triggered are analyzed and transformed in new contextual actions. And this kind of actions has twice as many conversions compared to our standard commercials.
So, uh I'm here representing a huge team and we are bringing here this phrase from that we believe that talent wins games, but teamwork and intelligence wins championship. Thank you.
Learn more about the Databricks Data and AI platform.
The information provided herein is for general informational purposes only and may not reflect the most current product capabilities or configurations.