Integration is the act of bringing together smaller components into a single system that functions as one. In an IT context, integration refers to the end result of a process that aims to stitch together different, often disparate, subsystems so that the data contained in each becomes part of a larger, more comprehensive system that, ideally, quickly and easily shares data when needed. This often requires that companies build a customized architecture or structure of applications to combine new or existing hardware, software and other communications.
Integration is harder to achieve the greater the number of systems that are involved and companies often choose to have external contractors manage some or all phases of the development of the new system. Specific activities having to do with IT system integration include project planning, project management, design and implementation of application programming interfaces, Web services and any process that accounts for the free flow of data or information delivery.
Challenges to achieving integration mostly have to do with the inherent difficulties in linking a series of diverse existing systems that could be produced by multiple different manufacturers. Other integration challenges have to do with the lack of a coherent or unifying data structure linking all of the different systems, an unwieldy framework of multiple different applications and support systems, the sheer age of the different systems and the actual delivery of the information to key business units that need it. These integration challenges hinder overall process efficiency because poor data exchange between systems prevents quick communication among business units.
Because integration is difficult to achieve all at once, a common practice is to employ a strategy of short-term, ad-hoc objectives that slowly builds towards full integration by linking various subsystems where necessary. These links usually are established between the components of the process and control layer of each system to promote the free flow of data across systems. As more systems are linked, more business management and control layers can be connected until all systems are sharing data between each other.
Companies strive to integrate their customer relationship management (CRM) systems with other components of the business to help streamline the marketing and sales processes, organizing and updating customer information with the hopes of deepening customer relationships and boosting revenue and growth. A main goal of integrating a CRM system with other, smaller systems is to prevent manual data entry and save employees time by removing redundant, unnecessary or tedious everyday steps. For example, a company might integrate its website with its marketing automation software to bring customer information directly into the CRM system. Any action a prospect takes on the website can be logged and a new record can be automatically created in the system.
Other uses of CRM integration include integrating email systems with a CRM, automatically importing basic customer information -- such as name, company, email address and phone number -- from emails into the CRM to facilitate follow-up contacts and log a record of interactions. Integration with other CRM systems is a key component to product development, as companies must make their products compatible with multiple different existing products to cater to the customer and maximize its reach and applicability. This often involves altering the new product's programming code to match with the existing product's code so that integration can take place. Integration during product development also refers to the process in which separately produced components or subsystems are combined and problems in their interactions are addressed.
Companies will often strive to integrate their CRM system with their legacy enterprise resource planning (ERP) or accounting systems in order to link financial information to assist customer service. Some integration touch points can be handled by the default functionality within the software packages themselves, but some configuration still needs to take place. Custom functionality may need to be built in depending on the business's needs and the limitations of both systems.