Connect Full Circle (Circlify) to Pipe17

The Full Circle (Circlify) connector exchanges tab-delimited text files with the Full Circle ERP over FTP, FTPS or SFTP. The app sends orders, shipping requests and returns to Full Circle as files, and imports the product, inventory, fulfillment and return receipt files that Full Circle writes back.

The files use Full Circle's own text file layouts, not the standard Pipe17 FTP JSON or CSV format. Each file is tab-delimited with one row per line item.

Which Full Circle tile to pick: The catalog has two Full Circle connectors that move data in opposite directions.

  • Full Circle (Circlify) (this article): the app sends orders, shipping requests and returns from your other channels into Full Circle, and pulls products, inventory, fulfillments and return receipts from Full Circle as tab-delimited text files.
  • FullCircle: Full Circle sends orders out to be fulfilled, and the app returns fulfillments and receipts in Full Circle's warehouse file format (.940, .945). See Connect FullCircle to Pipe17.

If you aren't sure which file format your Full Circle setup uses, ask your Full Circle contact or contact Pipe17 support before you connect.


Setup

Before you begin

  • An FTP, FTPS or SFTP account that both Full Circle and Pipe17 use: host, port, username, and a password or, for SFTP only, a private key.
  • The user needs read, write, rename and delete permissions on every folder the integration uses.
  • If the server only accepts known IP addresses, allow the Pipe17 IP addresses. See Whitelisted IPs for Connectors.
  • The folders for each file type. The app writes to /orders-out, /shipments-out and /returns-out, and reads from /products-in/, /inventory-in/, /fulfillments-in/ and /returns-in/ by default. You can change each folder in the settings.
  • The Full Circle warehouse IDs, to set up locations. Inventory files and outbound files identify warehouses by these IDs.
  • The tile shows Limited availability in the catalog. If you can't add it, contact Pipe17 support.

Get your FTP credentials for Full Circle

  1. Ask your Full Circle contact, or whoever hosts the FTP server, for the host name, protocol (FTP, FTPS or SFTP), port, username and password. Ask for FTPS or SFTP if the server supports it. Full Circle is Aptean's Apparel ERP Full Circle Edition.
  2. To sign in to SFTP with a key instead of a password, generate a key pair with an SSH tool such as ssh-keygen. Ask the server administrator to add the public key to the user's authorized keys, typically ~/.ssh/authorized_keys. Keep the private key for the pop-up and don't share it with anyone else.
  3. Agree on the folder for each file type and which side writes to it. The app writes order, shipping request and return files. Full Circle writes product, inventory, order status (fulfillment) and return receipt files.
  4. Ask for the warehouse ID Full Circle uses for each warehouse.
  5. Test the login with any FTP client. Create a folder, upload a file, download it, rename it and delete it to make sure all permissions are set. If you plan to move imported files to a processed folder, create that folder inside each folder the app reads from.

Connect in the app

  1. Navigate to Integrations in the app and click Add integration.
  2. Search for Full Circle (Circlify) and select it. The Connect Full Circle (Circlify) pop-up opens.
Connect Full Circle (Circlify) pop-up (top)
Connect Full Circle (Circlify) pop-up (bottom)
  1. In Connection protocol, select FTP, FTPS or SFTP. No protocol is selected when the pop-up opens. FTPS or SFTP is recommended.
  2. Leave Disable TLS validation off. Turn it on only to test an FTPS server whose certificate can't be validated.
  3. In Host, enter the host name without the protocol, for example ftp.example.com. Don't include ftp://.
  4. In Port, enter the port. Use 21 for FTP and 22 for SFTP. For FTPS on port 990, the app switches to port 21.
  5. Enter the Username.
  6. In Password/Key, enter the password. For SFTP with a key, paste the whole private key instead, including the first line (-----BEGIN ...-----) and the last line (-----END ...-----). The app uses these lines to recognize a key. Click the help icon next to the field for more about key-based sign-in.
  7. In Pick operation to be made while processing inbound file, select No action required (shown by default) or Add '.processing' extension (rename).
  8. In Pick operation to be made after processing inbound file, select what happens to an imported file: No action required (shown by default), Add '.processed' extension (rename), Move to ./processed folder or Remove file. To move files, the processed folder must exist inside each inbound folder and the user must be able to write to it.
  9. Optional: turn on Check FTP write permissions before processing to check write access to the folders before each run.
  10. Optional: turn on Upload results for incoming files. For each imported file, the app uploads a file with the .results extension that lists the result for each record.
  11. In Delete old files after, select Never delete (shown by default) or a number of days from 7 to 90. The app then deletes older files from the configured folders, including result files, leftover .processing files and the processed folder.
  12. Click Connect. The app connects to the server. You turn on the flows you need on the integration's Settings tab after you confirm the connection.

Note: If you don't have the credentials yet, click Add without credentials. The integration is added but doesn't sync until you enter the credentials on the Connection Details tab and click Save.

Confirm the connection

  1. On Integrations, check that the Full Circle (Circlify) integration shows Connected and that its switch is on. If it shows Error, check the protocol, host, port, username and password or key on the Connection Details tab. If it shows Not Configured, enter the credentials and click Save.
  2. On the integration's Settings tab, enter your Full Circle warehouses in Full Circle locations (warehouses) specified as id:name pairs as id:name, for example 01:Main Warehouse, and click Save. Within about 5 minutes, go to Inventory > Locations and check that the locations appear. The app also adds one location named after the integration.
  3. Pick one test order that matches the order filters. By default, only POS orders in Ready For Fulfillment are pushed. Add a test tag to the order, enter the same tag in Only push orders with the following tags, turn on Push orders to Full Circle and click Save.
  4. Wait about 5 minutes. The app runs every 5 minutes. Check that a file named after the order's Pipe17 order ID, with the .txt extension, appears in the orders folder, and ask your Full Circle contact to confirm the import.
  5. If you send shipping requests instead of orders, enter the test order's external order ID in Process only shipments with specific order IDs., turn on Push shipping requests to Full Circle and click Save. The shipping request must be in Ready For Fulfillment at one of the integration's locations. After the file is written, the shipping request moves to Sent To Fulfillment.
  6. Turn on Pull fulfillments from Full Circle and click Save. After Full Circle writes the order status file for the test order, check within about 5 minutes that the fulfillment appears on the order. If you turned on Upload results for incoming files, the .results file shows whether each invoice was imported or skipped.
  7. Clear the test tag and order ID filters and click Save. Then turn on the other flows you need.

Supported flows

  • Pull locations (from the Full Circle locations (warehouses) specified as id:name pairs setting)
  • Pull products from Full Circle
  • Pull inventory from Full Circle
  • Push orders to Full Circle
  • Push shipping requests to Full Circle
  • Push returns to Full Circle
  • Pull return receipts from Full Circle
  • Pull fulfillments from Full Circle (order status files)

Settings

Only Pull locations from Full Circle is on when you add the integration. Turn on each flow you need on the integration's Settings tab and click Save. Each flow runs every 5 minutes. Files ending in .processing, .processed or .results are never imported. If a folder in the settings doesn't exist on the server, the app skips that flow until the folder is created.

Locations

Pull locations from Full Circle Creates a location for each entry in the setting below, plus one location named after the integration. Default: on.
Full Circle locations (warehouses) specified as id:name pairs Full Circle doesn't send location data, so list each warehouse as id:name, for example 01:Warehouse A. The ID must be the warehouse ID Full Circle uses. Entries without a colon are skipped. Default: empty.

Products

Pull products from Full Circle Imports products from the product files. Products that haven't changed since the last import are skipped. Default: off.
Specify the path where products should be downloaded from Folder, with an optional file mask, for product files. Default: /products-in/.
Process only products with matched SKUs (regex) Imports only SKUs that match one of the values or regular expressions. Leave empty to import all.
Define column names for products Enter the column names in file order if the file has no header row or the header isn't accurate. Custom names can break the default mappings, and you then need to update the mapping rules. See Customizing mappings in Pipe17.
Ignore header row Turn on if the file has a header row and you override its columns with the names above. Default: off.

Inventory

Pull inventory from Full Circle Updates inventory from the inventory files. The SKU comes from the UPC column and the location from the warehouse column, which must match an ID in Full Circle locations (warehouses) specified as id:name pairs. Rows with an unknown warehouse are skipped. Default: off.
Specify the path where inventory should be downloaded from Default: /inventory-in/.
Process only inventory items with matched SKUs (regex) Imports only SKUs that match one of the values or regular expressions. Leave empty to import all.

Orders

Push orders to Full Circle Writes one file per order that matches the filters below. Default: off.
Specify the path where orders should be uploaded to Default: /orders-out.
Select components for file name generation during upload Options: Timestamp, Entity Id and Entity Type. Default: Entity Type and Timestamp. The default mappings name each file after the Pipe17 order ID with the .txt extension, so this setting doesn't change the file name.
Only push orders from the following sources Pushes only orders from the order sources you enter. Leave empty to push orders from all sources.
Only push orders with the following statuses Any of Draft, New, On Hold, To Be Validated, Review Required, Ready For Fulfillment, Sent To Fulfillment, Partial Fulfillment, Fulfilled, In Transit, Partial Received, Received, Canceled, Returned, Refunded and Closed. Default: Ready For Fulfillment. POS orders that are already Fulfilled are also pushed, even if you don't select Fulfilled. If no statuses are selected, all orders are pushed.
Only push orders of the following types Any of Online, POS, Wholesale, EDI, B2B and Other. Default: POS. If no types are selected, all orders are pushed.
Only push orders with the following tags Pushes only orders that have at least one of the tags. Leave empty to push all orders.
Push each order only once The app records each order it pushes and doesn't push it again when the order changes. It also skips orders that already have a shipping request for this integration. Default: off.
Only push orders created after Pushes only orders created after this date and time.

Shipping requests

Push shipping requests to Full Circle Writes one file per shipping request in Ready For Fulfillment at one of the integration's locations, in the same layout as orders. The shipping request then moves to Sent To Fulfillment. Default: off.
Specify the path where shipping requests should be uploaded to Default: /shipments-out.
Select components for file name generation during upload Options: Timestamp, Entity Id and Entity Type. Default: Entity Type and Timestamp. The default mappings name each file after the Pipe17 shipping request ID with the .txt extension, so this setting doesn't change the file name.
Process only shipments with specific order IDs. Pushes only shipping requests for the external order IDs you enter. Use it for testing, then clear it.
Maintain shipping request reference When on, the app saves the shipping request's external ID as its reference when it sends the file, so fulfillments that come back from Full Circle can be matched by reference. Default: off.

Returns

Push returns to Full Circle Writes one file per return at one of the integration's locations, with one row per returned item. Default: off.
Specify the path where returns should be uploaded to Default: /returns-out.
Select components for file name generation during upload Options: Timestamp, Entity Id and Entity Type. Default: Entity Type and Timestamp. The default mappings name each file after the Pipe17 return ID with the .txt extension, so this setting doesn't change the file name.
Only push returns with the following statuses Any of Draft, Authorized, Shipped, Expected, Partial Received, Received, Accepted, Refunded, Completed, Expired, Canceled and Failed. Default: Shipped. If no statuses are selected, all returns are pushed.
Push each return only once The app records each return it pushes and doesn't push it again when the return changes. Default: off.
Only push returns created after Pushes only returns created after this date and time.

Return receipts

Pull return receipts from Full Circle Imports return receipts from Full Circle's files. Only credit rows (Type C) are imported. Each row is matched to a return by the WebOrder column, and the received quantity comes from QtyShipped. Receipts that were already imported are skipped. Default: off.
Specify the path where return receipts should be downloaded from Default: /returns-in/.

Fulfillments

Pull fulfillments from Full Circle Imports fulfillments from Full Circle's order status files. Each Full Circle invoice (FCInvoice) becomes one fulfillment with its tracking numbers, carrier and shipped quantities. The app matches the WebOrder column to the shipping request's external ID first, then to the order's external ID. If the order has no shipping request yet, for example because it was sent with Push orders to Full Circle, the app creates one for this integration and adds the fulfillment to it. Invoices that were already imported are skipped. Default: off.
Specify the path where fulfillments should be downloaded from Default: /fulfillments-in/.

Import specific files again

The integration has four actions that import named files on demand: Pull products from a file, Pull inventory from a file, Pull fulfillments from a file and Pull return receipts from a file. Use them to re-import a file that failed or was skipped. Pull products from a file writes every row, including products that haven't changed.


File formats

All files are tab-delimited text in Full Circle's file layouts. Ask your Full Circle contact for the layouts if you need the full field list. To change how fields are filled, edit the integration's mappings. See Customizing mappings in Pipe17.

  • Orders and shipping requests (app to Full Circle): Full Circle order file layout, no header row, one row per line item. The order type column is A for POS orders and W for other orders. The UPC column uses the line item's UPC custom field, or the SKU if there isn't one. Style, color, size type and size come from line item custom fields with those names. The warehouse column uses the Full Circle warehouse ID when the order's location is one of the integration's locations. These order custom fields, when present, fill the matching Full Circle columns: CompanyNumber, FCCustomerID, CustomerID, CustomerType, PONumber, ShipDate, CancelDate, OrderType, ShipMethod, FreightCharges and FCWarehouseID.
  • Returns (app to Full Circle): Full Circle return authorization layout, no header row, one row per returned item. It includes the Full Circle invoice number from the fulfillment imported from Full Circle, the return reason, UPC, quantity and warehouse. The customer reference column holds the return's reference or external ID so Full Circle can ignore duplicates.
  • Products (Full Circle to app): the first row must be a header row, unless you set Define column names for products. The SKU comes from the sku column, or from upc if there's no SKU.
  • Inventory (Full Circle to app): no header row, fixed column order. The SKU comes from the UPC column and the location from the warehouse column.
  • Order status and return receipts (Full Circle to app): no header row, fixed column order: Company Number, FCInvoice, WebOrder, TrackingNumber, Status, InvoiceAmount, FreightAmount, TaxAmount, MerchAmount, UPC, ProductCode, Color, SizeType, Size, QtyShipped, NetPrice, AmtShipped, Type, ShipViaCode, CustomerPO.

Troubleshooting

  • The integration shows Error after you click Connect.
    The app couldn't sign in. Check the protocol, host (without ftp://), port, username and password, and that the server allows the Pipe17 IP addresses. For an SFTP key, paste the whole private key, including the BEGIN and END lines, and check that the public key is on the server. If the connection keeps failing for about 6 hours, the app turns the integration off. Fix the credentials and turn it back on.
  • No order files appear in the orders folder.
    Check that Push orders to Full Circle is on and that the order matches every filter: source, status (default Ready For Fulfillment), type (default POS), tags and Only push orders created after. If Push each order only once is on, an order that was already pushed, or that already has a shipping request for this integration, isn't pushed again. Check that the orders folder exists on the server.
  • Shipping requests aren't sent.
    The shipping request must be in Ready For Fulfillment at one of the integration's active locations. Check that Process only shipments with specific order IDs. is empty or includes the order.
  • Returns aren't sent.
    Only returns at the integration's locations are pushed. Check Only push returns with the following statuses (default Shipped) and Only push returns created after.
  • Inventory isn't updated for some SKUs.
    The warehouse in each inventory row must match an ID in Full Circle locations (warehouses) specified as id:name pairs. Rows with an unknown warehouse are skipped. Add the missing id:name entry and click Save. Turn on Upload results for incoming files to see which rows were skipped.
  • Fulfillments aren't imported.
    Check that Pull fulfillments from Full Circle is on and that the WebOrder value in the file matches the external ID of the shipping request or order. The .results file shows errors such as order not found.
  • Return receipts aren't imported.
    Only rows with Type C are imported, and the WebOrder value must match a return. The .results file shows why each row was skipped.
  • Product changes don't show in the app.
    Products that haven't changed since the last import are skipped. To import a file again in full, use the Pull products from a file action.
  • A flow doesn't run at all.
    If a folder in the settings doesn't exist on the server, the app skips that flow. Create the folder or correct the path. Turn on Check FTP write permissions before processing to report permission problems as errors.
  • Files aren't renamed, moved or deleted after import.
    The FTP user needs write, rename and delete permissions on the folder. For Move to ./processed folder, the processed folder must exist inside each inbound folder.
  • The FTP server fills up with old files.
    Set Delete old files after on the Connection Details tab.


Need Help?

If you need additional assistance:

  • Use Ask Pippen, our AI agent, located at the top of the platform page.
  • Submit a support request with as much relevant detail as possible. Learn how to submit a request.

We’re here to help you succeed with your operations.

Was this article helpful?
0 out of 0 found this helpful

Comments

0 comments

Article is closed for comments.

Have more questions?
Submit a request
Share it, if you like it.