

# Coupa connector for Amazon AppFlow
Coupa

Coupa is a business spend software as a service (SaaS) solution. If you’re a Coupa user, your account contains data on procurements, invoicing, expenses, payments, and more. You can use Amazon AppFlow to transfer data between Coupa and certain AWS services or other supported applications.

## Amazon AppFlow support for Coupa


Amazon AppFlow supports Coupa as follows.

**Supported as a data source?**  
Yes. You can use Amazon AppFlow to transfer data from Coupa.

**Supported as a data destination?**  
No. You can't use Amazon AppFlow to transfer data to Coupa.

## Before you begin


To use Amazon AppFlow to transfer data from Coupa to supported destinations, you must meet these requirements:
+ You have an account with Coupa that contains the data that you want to transfer. For more information about the Coupa data objects that Amazon AppFlow supports, see [Supported objects](#coupa-objects).
+ In your Amazon AppFlow account, you've created an OAuth2/OIDC client app for Amazon AppFlow. The app provides the client credentials that Amazon AppFlow uses to access your data securely when it makes authenticated calls to your account. 

  For information about how to create an OAuth2 client app, see [OAuth 2.0 Getting Started with Coupa API ](https://compass.coupa.com/en-us/products/core-platform/integration-playbooks-and-resources/integration-knowledge-articles/oauth-2.0-getting-started-with-coupa-api) in the *Coupa Compass*.
+ You've given your app a Grant type of Client Credentials. 
+ You've chosen the following scopes to be included in the API: 
  + `core.accounting.read`
  + `core.approval.read`
  + `core.common.read`
  + `core.easyform_response.read`
  + `core.expense.read`
  + `core.integration.read`
  + `core.inventory.adjustment.read`
  + `core.inventory.asn.read`
  + `core.inventory.balance.read`
  + `core.inventory.consumption.read`
  + `core.inventory.cycle_counts.read`
  + `core.inventory.receiving.read`
  + `core.inventory.return_to_supplier.read`
  + `core.inventory.transfer. read`
  + `core.invoice.read`
  + `core.item.read`
  + `core.legal_entity.read`
  + `core.pay.charges.read`
  + `core.pay.payment_accounts.read`
  + `core.pay.payments.read`
  + `core.pay.virtual_cards.read`
  + `core.payables.allocations.read`
  + `core.payables.expense.read`
  + `core.payables.external.read"`
  + `core.payables.invoice.read`
  + `core.payables.order.read`
  + `core.project.read`
  + `core.purchase_order. read`
  + `core.requisition.read`
  + `core.sourcing.pending_supplier.read`
  + `core.sourcing.read`
  + `core.sourcing.response.read`
  + `core.supplier.read`
  + `core.supplier_information_sites.read`
  + `core.supplier_information_tax registrations.read`
  + `core.supplier_sharing_settings.read`
  + `core.supplier_sites.read`
  + `core.uom.read`
  + `core.user.read`
  + `core.user_group.read`
  + `email login offline_access openid profile`
  + `travel_booking.common.read`
  + `travel_booking.team.read`
  + `travel_booking.trip.read`
  + `travel_booking.user.read`
  + `treasury.cash_management.read`

Note the client ID, client secret, and instance URL for your Coupa project.

## Connecting Amazon AppFlow to your Coupa account
Connecting to Coupa

To connect Amazon AppFlow to your Coupa account, provide details from your Coupa project so that Amazon AppFlow can access your data. If you haven't yet configured your Coupa project for Amazon AppFlow integration, see [Before you begin](#coupa-prereqs).

**To connect to Coupa**

1. Sign in to the AWS Management Console and open the Amazon AppFlow console at [https://console.aws.amazon.com/appflow/](https://console.aws.amazon.com/appflow/).

1. In the navigation pane on the left, choose **Connections**.

1. On the **Manage connections** page, for **Connectors**, choose **Coupa**.

1. Choose **Create connection**.

1. In the **Connect to Coupa** window, enter the following information:
   + **Connection name** — A name for the connection.
   + **Authorization tokens URL** — From the dropdown menu, choose one of the following options: For partner and demo instances, choose https://\$1\$1company\$1name\$1.coupacloud.com.oauth2/token. For customer instances, choose https://\$1\$1company\$1name\$1.coupahost.com.oauth2/token. 
   + **Custom authorization tokens URL** — The same company name used in the authorization tokens URL.
   + **Client ID** — The client ID in your Coupa project.
   + **Client secret** — The client secret in your Coupa project. 
   + **Instance URL** — The instance URL of your Coupa project. For example, https://\$1company\$1name\$1.coupacloud.com (for partner and demo instances), or https://\$1company\$1name\$1.coupahost.com (for customer instances).

1. Optionally, under **Data encryption**, choose **Customize encryption settings (advanced)** if you want to encrypt your data with a customer managed key in the AWS Key Management Service (AWS KMS).

   By default, Amazon AppFlow encrypts your data with a KMS key that AWS creates, uses, and manages for you. Choose this option if you want to encrypt your data with your own KMS key instead.

   Amazon AppFlow always encrypts your data during transit and at rest. For more information, see [Data protection in Amazon AppFlow](data-protection.md).

   If you want to use a KMS key from the current AWS account, select this key under **Choose an AWS KMS key**. If you want to use a KMS key from a different AWS account, enter the Amazon Resource Name (ARN) for that key.

1. For **Connection name**, enter a name for your connection.

1. Choose **Connect**.

1. In the window that appears, sign in to your Coupa account, and grant access to Amazon AppFlow.

On the **Manage connections** page, your new connection appears in the **Connections** table. When you create a flow that uses Coupa as the data source, you can select this connection.

## Transferring data from Coupa with a flow


To transfer data from Coupa, create an Amazon AppFlow flow, and choose Coupa as the data source. For the steps to create a flow, see [Creating flows in Amazon AppFlow](create-flow.md).

When you configure the flow, choose the data object that you want to transfer. For the objects that Amazon AppFlow supports for Coupa, see [Supported objects](#coupa-objects).

Also, choose the destination where you want to transfer the data object that you selected. For more information about how to configure your destination, see [Supported destinations](#coupa-destinations).

## Supported destinations


When you create a flow that uses Coupa as the data source, you can set the destination to any of the following connectors: 
+ [Amazon Lookout for Metrics](lookout.md)
+ [Amazon Redshift](redshift.md)
+ [Amazon RDS for PostgreSQL](connectors-amazon-rds-postgres-sql.md)
+ [Amazon S3](s3.md)
+ [HubSpot](connectors-hubspot.md)
+ [Marketo](marketo.md)
+ [Salesforce](salesforce.md)
+ [SAP OData](sapodata.md)
+ [Snowflake](snowflake.md)
+ [Upsolver](upsolver.md)
+ [Zendesk](zendesk.md)
+ [Zoho CRM](connectors-zoho-crm.md)

## Supported objects


When you create a flow that uses Coupa as the data source, you can transfer any of the following data objects to supported destinations:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/appflow/latest/userguide/connectors-coupa.html)