
You can use the **Send Offline Transactions** node to export offline transactions to Facebook. 

## Prerequisites
---
- [Generate a system user access token in Facebook](https://developers.facebook.com/docs/marketing-api/collaborative-ads/managed-partner-ads/api-guide/prerequisites/generate-access-token-system-user); as the `scope` value, select `ads_management`.
- Create a Pixel in Facebook (more information about Pixel is available [here](https://developers.facebook.com/docs/facebook-pixel)).


## Node configuration
---
1. Click the node. 
2. Click **Select connection**.  
3. From the dropdown list, select the connection.  
   If you haven't established a connection yet, see [Create a connection](/docs/automation/integration/facebook/send-offline-transactions#create-a-connection).

### Create a connection
After you generate a system access token in Facebook, use it a node to establish a connection.

1. At the bottom of the **Select connection** dropdown list, click **Add connection**.  
2. In the **Access token** field, enter the app access token from Facebook.  
    
   <div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

   You can read more about access tokens in [Facebook documentation](https://developers.facebook.com/docs/marketing-api/conversions-api/get-started/#access-token).

   </div></div></div>
  
3. Click **Next**.  
4. In the **Connection name** field, enter the name for the access token you generated. 
5. Click **Apply**.  
        **Result**: A connection is created and selected. 

### Define the integration settings  

<figure><img src="/api/docs/image/54176ad07f146575310749eba44b7c2f42c1b327/docs/automation/_gfx/facebook-send-offline-transactions.png" class="medium" alt="A blank configuration form in Send Offline Transactions (Facebook)"><figcaption>A blank configuration form in Send Offline Transactions (Facebook)</figcaption></figure>  


<div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

Fields marked with the <img src="/api/docs/image/54176ad07f146575310749eba44b7c2f42c1b327/icons/snippet-icon.png" alt="Snippet icon" class="icon" > icon accept [snippets](/docs/assets/snippets) or [inserts](/developers/inserts). This integration allows usage of profile-related inserts.

</div></div></div>


1. In the **Graph API version** field, enter the currently used Facebook API version.  
    You can find information about the currently used API version in the Facebook documentation.  
2. In the **Meta Pixel** field, enter the identifier of the Pixel you use in Facebook.  
    You can find information about how to find the ID of the Pixel in the Facebook documentation.
3. From the **Identifier type** dropdown list, select the identifier of customer - an email address of phone number.  
    Offline transactions will be matched with customers based on this identifier.  
4. In the **Identifier source** field, enter the Automation insert (Jinjava tag) that corresponds to the identifier you selected as the **Identifier type**.  
    
   <div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

   Read the article about the [Automation inserts](/developers/inserts/automation).

   </div></div></div>

5. Confirm by clicking **Apply**.  
    **Result**: When the Send Offline Transactions node is executed, a [`facebook.sendOfflineTransaction` event](/docs/assets/events/event-reference/integration#facebooksendofflinetransaction) is generated on the activity list of the profile who is the actor in the workflow.
5. Confirm by clicking **Apply**. 

### Test integration
---

You can run a test request. If the request body contains a dynamic reference to a profile attribute and/or an event data from preceding nodes, then you can define the context using [test profile data](/docs/settings/configuration/test-profiles). 


<div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

Complete description of the feature is available in [Testing outgoing integrations](/docs/automation/test-requests-for-outgoing-integrations).

</div></div></div>



1. In the **Test integration** section, click **Send test request**.  
    **Result**: A test request builder opens. If:
    - a request body contains dynamic references, the request preview appears after you select the context of test profiles and events.
    - a request body contains static data, the preview of the body request appears immediately.
    <figure><img src="/api/docs/image/54176ad07f146575310749eba44b7c2f42c1b327/docs/automation/_gfx/test-request-builder-empty.png" class="large" alt="An empty test request builder"><figcaption>An empty test request builder</figcaption></figure>
2. If your request contains dynamic references (otherwise, the options aren't available):   
    - From the **Test profile** dropdown, select a test profile in the context of whom the test request will be performed.  
    - From the **Event context** dropdown list, you can select a particular occurrence of an event  whose values/information will be used for the test request.  
        1. Select a test profile.  
            **Result**: A history of test profile events appears.  
            <figure><img src="/api/docs/image/54176ad07f146575310749eba44b7c2f42c1b327/docs/automation/_gfx/event-stream-test-profile.png" class="large" alt="A stream of events of a test profile"><figcaption>A stream of events of a test profile</figcaption></figure> 
        2. From the list of events, select one whose data you want use as a context. If there is no event you can use, in the upper-right corner of the pop-up, click **Define own event** and provide the body of the event.
        3. Confirm by clicking **Apply**. 
3. Verify the request body. If there is something you want to change, come back to the node settings from previous steps.  
3. If the request body is ready to test, in the upper-right corner, click **Send request**.  
    **Result**: The response section appears and the **Update response event** button becomes active.  
4. Optionally, you can update response event with new parameters by clicking **Update response event** in the upper-right corner.

## Example of use
---
For an example of use refer to our [use case](/use-cases/sending-offline-transactions-facebook).