---
title: Enterprise Integration Patterns (EIPs)
description: See the available EIPs in Integrations
documentId: ipaas-eips
locale: en-US
---

Enterprise Integration Patterns (EIPs) are reusable solutions for common integration challenges between systems. They enable you to create message processing flows in a clear, efficient, and scalable way.

Here are two practical examples of using EIPs:

- **Choice**: suppose you need to send messages to different systems depending on the content type. With the Choice EIP, you can create logic similar to _if-else_:
    - If type = "payment", send to the financial system.
    - If type = "registration", send to the CRM system.

- **Set Header**: to add or modify information in the message header, such as setting the content type:
    - Set the "Content-Type" header to "application/json".

These examples show how EIPs can be used to create flexible and robust integrations, adapting to different business scenarios. You can combine several patterns to build complete routes, automate processes, and ensure integration quality.

## Most Used EIPs

Click a card to access the documentation for each EIP.

<Cards>
    <Card title="Choice" href="/docs/integrations/ipaas-eips-choice">Routes messages based on conditions, similar to an _if-else_ structure.</Card>
    <Card title="Do Try" href="/docs/integrations/ipaas-eips-dotry">Attempts to execute a block of code, handling exceptions if they occur.</Card>
    <Card title="Logger" href="/docs/integrations/ipaas-eips-log">Logs messages for monitoring and debugging.</Card>
    <Card title="Marshal" href="/docs/integrations/ipaas-eips-unmarshal-marshal">Converts a message to a specific data format.</Card>
    <Card title="Multicast" href="/docs/integrations/ipaas-eips-multicast">Sends a message to multiple destinations.</Card>
    <Card title="Process" href="/docs/integrations/ipaas-eips-process">Adds custom logic within an integration flow, such as attaching or removing files when sending emails or uploading files to a URL using _multipart/form-data_.</Card>
    <Card title="Set Body" href="/docs/integrations/ipaas-eips-setbody">Sets or modifies the message body.</Card>
    <Card title="Set Header" href="/docs/integrations/ipaas-eips-setheader">Sets or modifies a message header.</Card>
    <Card title="Set Headers" href="/docs/integrations/ipaas-eips-setheaders">Sets or modifies multiple message headers at once.</Card>
    <Card title="Set Property" href="/docs/integrations/ipaas-eips-setproperty">Sets or modifies a message property.</Card>
    <Card title="Split" href="/docs/integrations/ipaas-eips-split">Splits a message into multiple smaller messages.</Card>
    <Card title="Throw Exception" href="/docs/integrations/ipaas-eips-throw-exception">Interrupts the route flow and throws a specific exception.</Card>
    <Card title="Unmarshal" href="/docs/integrations/ipaas-eips-unmarshal-marshal">Converts a message from a specific data format.</Card>
</Cards>
