1"use strict";(self.webpackChunkembedded_workflow_builder_docs=self.webpackChunkembedded_workflow_builder_docs||[]).push([["5390"],{86612(e,n,t){t.r(n),t.d(n,{metadata:()=>r,default:()=>h,frontMatter:()=>o,contentTitle:()=>a,toc:()=>d,assets:()=>c});var r=JSON.parse('{"id":"connectors/first-resonance","title":"First Resonance ION Connector","description":"Manage purchase orders and manufacturing data in First Resonance ION.","source":"@site/docs/connectors/first-resonance.md","sourceDirName":"connectors","slug":"/connectors/first-resonance","permalink":"/connectors/first-resonance","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"First Resonance ION Connector","sidebar_label":"First Resonance ION","description":"Manage purchase orders and manufacturing data in First Resonance ION."},"sidebar":"docs","previous":{"title":"Firebase","permalink":"/connectors/firebase"},"next":{"title":"Fluent Commerce","permalink":"/connectors/fluent-commerce"}}'),s=t(74848),i=t(28453);let o={title:"First Resonance ION Connector",sidebar_label:"First Resonance ION",description:"Manage purchase orders and manufacturing data in First Resonance ION."},a,c={},d=[{value:"API Documentation",id:"api-documentation",level:2},{value:"Connections",id:"connections",level:2},{value:"OAuth 2.0 Client Credentials",id:"firstresonanceoauthclientcredentials",level:3},{value:"Prerequisites",id:"prerequisites",level:4},{value:"Setup Steps",id:"setup-steps",level:4},{value:"Configure the Connection",id:"configure-the-connection",level:4},{value:"Triggers",id:"triggers",level:2},{value:"Trigger",id:"firstresonancetrigger",level:3},{value:"Actions",id:"actions",level:2},{value:"Import Purchase Order from Quickbooks",id:"importpurchaseorderfromquickbooks",level:3},{value:"Run GraphQL Query",id:"rawrequest",level:3}];function l(e){let n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.img,{alt:"First Resonance ION",src:t(64564).A+"#connector-icon",width:"32",height:"32"}),"\n",(0,s.jsx)(n.a,{href:"https://www.firstresonance.io",children:"First Resonance ION"})," is a factory operating system (also known as a manufacturing execution system or MES) designed for discrete manufacturers in aerospace, robotics, and other hardware industries. This component allows you to manage purchase orders and manufacturing data within the ION platform."]}),"\n",(0,s.jsx)(n.h2,{id:"api-documentation",children:"API Documentation"}),"\n",(0,s.jsxs)(n.p,{children:["This component was built using the ",(0,s.jsx)(n.a,{href:"https://manual.firstresonance.io",children:"ION GraphQL API"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"connections",children:"Connections"}),"\n",(0,s.jsx)(n.h3,{id:"firstresonanceoauthclientcredentials",children:"OAuth 2.0 Client Credentials"}),"\n",(0,s.jsx)(n.p,{children:"Authenticate against the First Resonance ION API using OAuth 2.0 Client Credentials."}),"\n",(0,s.jsx)(n.p,{children:"To connect to First Resonance ION using OAuth 2.0 Client Credentials, an API key consisting of a Client ID and Client Secret is required."}),"\n",(0,s.jsxs)(n.p,{children:["For detailed information about ION API authentication, refer to the ",(0,s.jsx)(n.a,{href:"https://manual.firstresonance.io/api/access-tokens",children:"First Resonance ION API Access Tokens documentation"}),"."]}),"\n",(0,s.jsx)(n.h4,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"An active First Resonance ION account"}),"\n",(0,s.jsx)(n.li,{children:"Permissions to create API keys in the ION platform"}),"\n",(0,s.jsx)(n.li,{children:"Knowledge of which environment to connect to (Production, Sandbox, Gov Cloud, or Australia)"}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"setup-steps",children:"Setup Steps"}),"\n",(0,s.jsx)(n.p,{children:"To generate OAuth Client Credentials:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:"Log in to the First Resonance ION platform."}),"\n",(0,s.jsxs)(n.li,{children:["Navigate to ",(0,s.jsx)(n.strong,{children:"Settings"})," > ",(0,s.jsx)(n.strong,{children:"API Keys"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["Create a new API key following the ",(0,s.jsx)(n.a,{href:"https://manual.firstresonance.io/api/api-keys",children:"ION API documentation"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["Copy both the ",(0,s.jsx)(n.strong,{children:"Client ID"})," and ",(0,s.jsx)(n.strong,{children:"Client Secret"})," values that are generated."]}),"\n"]}),"\n",(0,s.jsxs)(n.admonition,{title:"Environment Selection",type:"note",children:[(0,s.jsxs)(n.p,{children:["First Resonance ION supports multiple deployment environments. Select the appropriate ",(0,s.jsx)(n.strong,{children:"Auth Endpoint"})," based on the target environment:"]}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Production"})," - Standard production environment (",(0,s.jsx)(n.code,{children:"auth.buildwithion.com"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Sandbox"})," - Staging/testing environment (",(0,s.jsx)(n.code,{children:"staging-auth.buildwithion.com"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Production (Gov Cloud)"})," - Government cloud production (",(0,s.jsx)(n.code,{children:"auth.ion-gov.com"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Sandbox (Gov Cloud)"})," - Government cloud staging (",(0,s.jsx)(n.code,{children:"staging-auth.ion-gov.com"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Australia"})," - Australia region production (",(0,s.jsx)(n.code,{children:"auth.ion-aus.com"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Australia (Staging)"})," - Australia region staging (",(0,s.jsx)(n.code,{children:"staging-auth.ion-aus.com"}),")"]}),"\n"]})]}),"\n",(0,s.jsx)(n.h4,{id:"configure-the-connection",children:"Configure the Connection"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["Select the appropriate ",(0,s.jsx)(n.strong,{children:"Auth Endpoint"})," from the dropdown based on the target environment."]}),"\n",(0,s.jsxs)(n.li,{children:["Enter the ",(0,s.jsx)(n.strong,{children:"Client ID"})," from the generated API key."]}),"\n",(0,s.jsxs)(n.li,{children:["Enter the ",(0,s.jsx)(n.strong,{children:"Client Secret"})," from the generated API key."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.strong,{children:"Token URL"})," is automatically constructed based on the selected ",(0,s.jsx)(n.strong,{children:"Auth Endpoint"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["This connection uses OAuth 2.0, a common authentication mechanism for integrations.\nRead about how OAuth 2.0 works ",(0,s.jsx)(n.a,{href:"/oauth2",children:"here"}),"."]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Input"}),(0,s.jsx)(n.th,{children:"Comments"}),(0,s.jsx)(n.th,{children:"Default"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Auth Endpoint"}),(0,s.jsx)(n.td,{children:"The ION Auth Endpoint URL. Select your environment based on region and whether you're using production or sandbox."}),(0,s.jsx)(n.td,{})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Client ID"}),(0,s.jsxs)(n.td,{children:["The OAuth 2.0 Client ID for ION. Find this in your ION account under Settings > API Keys. ",(0,s.jsx)(n.a,{href:"https://manual.firstresonance.io/api/api-keys",children:"Learn more"})]}),(0,s.jsx)(n.td,{})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Client Secret"}),(0,s.jsxs)(n.td,{children:["The OAuth 2.0 Client Secret for ION. This is generated
1when you create an API key in your ION account under Settings > API Keys. ",(0,s.jsx)(n.a,{href:"https://manual.firstresonance.io/api/api-keys",children:"Learn more"})]}),(0,s.jsx)(n.td,{})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"triggers",children:"Triggers"}),"\n",(0,s.jsx)(n.h3,{id:"firstresonancetrigger",children:"Trigger"}),"\n",(0,s.jsx)(n.p,{children:"Receive a webhook from ION"}),"\n",(0,s.jsx)(n.h2,{id:"actions",children:"Actions"}),"\n",(0,s.jsx)(n.h3,{id:"importpurchaseorderfromquickbooks",children:"Import Purchase Order from Quickbooks"}),"\n",(0,s.jsx)(n.p,{children:"Creates a Purchase Order from Quickbooks."}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Input"}),(0,s.jsx)(n.th,{children:"Comments"}),(0,s.jsx)(n.th,{children:"Default"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Connection"}),(0,s.jsx)(n.td,{children:"The First Resonance ION connection to use."}),(0,s.jsx)(n.td,{})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"GraphQL Variables"}),(0,s.jsx)(n.td,{children:"Optional variables to pass to the GraphQL query. Variables allow you to parameterize your queries for reusability and security."}),(0,s.jsx)(n.td,{})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Query"}),(0,s.jsx)(n.td,{children:"The GraphQL mutation to create a purchase order in ION. This uses the createPurchaseOrder mutation from the ION API."}),(0,s.jsx)(n.td,{})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"rawrequest",children:"Run GraphQL Query"}),"\n",(0,s.jsx)(n.p,{children:"Performs a generic GraphQL query against the API."}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Input"}),(0,s.jsx)(n.th,{children:"Comments"}),(0,s.jsx)(n.th,{children:"Default"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Connection"}),(0,s.jsx)(n.td,{children:"The First Resonance ION connection to use."}),(0,s.jsx)(n.td,{})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"GraphQL Query"}),(0,s.jsxs)(n.td,{children:["The GraphQL query to execute against the ION API. Use the ",(0,s.jsx)(n.a,{href:"https://manual.firstresonance.io/api/about-graphql",children:"ION GraphQL Explorer"})," to build and test queries."]}),(0,s.jsx)(n.td,{})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"GraphQL Variables"}),(0,s.jsx)(n.td,{children:"Optional variables to pass to the GraphQL query. Variables allow you to parameterize your queries for reusability and security."}),(0,s.jsx)(n.td,{})]})]})]})]})}function h(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},64564(e,n,t){t.d(n,{A:()=>r});let r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsSAAALEgHS3X78AAACpUlEQVRYhcVXv2sVQRD+dvYlKgoRFEH/AcFCERQUxEItJBaibUBNZSGCiqkVWxVRi2CjaUIIwU5EFBt7C2vRRhD8WRmj3s6N7O3u3d69d+9HkndvYVjux+73zXx7czNAtyHQEKjoehtEn4TQdbB6ANZzztR9GLoK0ScgmIjep8wGHgKVgYdNEguqFpHSDwhJV2P6AlFzkNbRWkcGAD8Mpjd+8zSfDRkwJSWz94p3BGlmzyHY2z8JycCtEVjdBGeb2g3Zg6Z+43pj4oyQXeOI/IahK5EkNSTEP0ixAawW/WILyj1B68m49Zk0ajZysEJC8gcarJa8lklfHvcmYWVJPIlHeSQqBCibWd3OwdcK3CkaTs6ZMgkJB05PevDVh7xXJOwstIK0dahKYiNEvR0qgVIU1MuKBHRh6ODlMyFI9GREQL32BEwDBEIUFjz4+G4wrXgCaWMRYPoOwQ4b/unGwt8uwykb/rtD+/TqCSTFJym01Jj+bQTUQ4DpVeMEQmYU/cQSeDG6COjHAOv5EUpwx+b/WyM4hOG/cAlI9dnGckBawZHWEeAXdkJsUmg4EQl9gGCzy4asmjsHhf73in9Boo83EoHgvS3TZGxfuRQT9XToUSi8ny3qAfFFwZ/xPdFZWP//gvG1odBHLGNXyXmEqiilqZzAesrhClNXG9oeI8bMR7hhaCaqiNcuh6uMw8mfLmG1jSCHoct5sgil9Wq8LhLOMgxNdQcPQ9Dy8zEwvc+7oRAR600necJ9l1GLLsnQO/zDwdLePYfkrdlWCN0A09dKexYAOdI39Ieh4vkEQ9cg2FTas+8hWS/nJBFsh9BFsHoGpm+RpnFTaol8Bmef8/m8S3bt2IDgBYn2xT8xAWkdQKLPQOicM30af8f2Q7ClgxNdG9L/KwthFpC9YnUAAAAASUVORK5CYII="},28453(e,n,t){t.d(n,{R:()=>o,x:()=>a});var r=t(96540);let s={},i=r.createContext(s);function o(e){let n=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),r.createElement(i.Provider,{value:n},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.