├── .gitignore ├── Gruntfile.js ├── LICENSE.txt ├── README.md ├── index.js ├── infusionsoft ├── api.js ├── services │ ├── IAPIEmailService.js │ ├── IAffiliateProgramService.js │ ├── IAffiliateService.js │ ├── IContactService.js │ ├── IDataService.js │ ├── IDiscountService.js │ ├── IFileService.js │ ├── IFunnelService.js │ ├── IInvoiceService.js │ ├── IOrderService.js │ ├── IProductService.js │ ├── ISearchService.js │ ├── IShippingService.js │ └── IWebFormService.js └── tables │ ├── ActionSequence.js │ ├── AffResource.js │ ├── Affiliate.js │ ├── CCharge.js │ ├── CProgram.js │ ├── Campaign.js │ ├── CampaignStep.js │ ├── Campaignee.js │ ├── Company.js │ ├── Contact.js │ ├── ContactAction.js │ ├── ContactGroup.js │ ├── ContactGroupAssign.js │ ├── ContactGroupCategory.js │ ├── CreditCard.js │ ├── DataFormField.js │ ├── DataFormGroup.js │ ├── DataFormTab.js │ ├── Expense.js │ ├── FileBox.js │ ├── GroupAssign.js │ ├── Invoice.js │ ├── InvoiceItem.js │ ├── InvoicePayment.js │ ├── Job.js │ ├── JobRecurringInstance.js │ ├── Lead.js │ ├── LeadSource.js │ ├── LeadSourceCategory.js │ ├── LeadSourceExpense.js │ ├── LeadSourceRecurringExpense.js │ ├── MtgLead.js │ ├── OrderItem.js │ ├── PayPlan.js │ ├── PayPlanItem.js │ ├── Payment.js │ ├── Product.js │ ├── ProductCategory.js │ ├── ProductCategoryAssign.js │ ├── ProductInterest.js │ ├── ProductInterestBundle.js │ ├── ProductOptValue.js │ ├── ProductOption.js │ ├── RecurringOrder.js │ ├── RecurringOrderWithContact.js │ ├── Referral.js │ ├── SavedFilter.js │ ├── Stage.js │ ├── StageMove.js │ ├── Status.js │ ├── SubscriptionPlan.js │ ├── Template.js │ ├── Ticket.js │ ├── TicketStage.js │ ├── TicketType.js │ ├── User.js │ └── UserGroup.js ├── lib ├── DataContext.js └── Queryable.js └── package.json /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | test.js 3 | -------------------------------------------------------------------------------- /Gruntfile.js: -------------------------------------------------------------------------------- 1 | module.exports = function(grunt) { 2 | 'use strict'; 3 | 4 | // Project configuration. 5 | grunt.initConfig({ 6 | pkg: grunt.file.readJSON('package.json'), 7 | 8 | jshint: { 9 | lib: ['lib/**/*.js'], 10 | grunt: ['Gruntfile.js'], 11 | infusionsoft: ['infusionsoft/**/*.js'] 12 | }, 13 | 14 | // Output all stuff to the IS folder 15 | infusionsoft: { 16 | default: { 17 | dest: 'infusionsoft' 18 | } 19 | } 20 | 21 | }); 22 | 23 | // plugins 24 | grunt.loadNpmTasks('grunt-contrib-jshint'); 25 | grunt.loadNpmTasks('grunt-infusionsoft'); 26 | 27 | // tasks 28 | grunt.registerTask('lint', ['jshint']); 29 | grunt.registerTask('default', ['lint']); 30 | 31 | }; 32 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | ----------- 3 | 4 | Copyright (c) 2013, Brandon Valosek 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Infusionsoft API 2 | 3 | A promise-driven, fluent-style Node.js wrapper for the XML-RPC [Infusionsoft API](http://help.infusionsoft.com/developers/api-basics). 4 | 5 | Write badass Infusionsoft apps on the server that are fully and natively asynchronous. 6 | 7 | It's pretty dope. 8 | 9 | ## Usage 10 | 11 | Install via `npm`: 12 | 13 | ``` 14 | $ npm install infusionsoft-api 15 | ``` 16 | 17 | Do cool stuff: 18 | 19 | ```javascript 20 | var api = require('infusionsoft-api'); 21 | 22 | var infusionsoft = new api.DataContext('myapp', 'MY_API_KEY'); 23 | 24 | infusionsoft.Contacts 25 | .where(Contact.FirstName, 'Brandon') 26 | .like(Contact.LastName, 'V%') 27 | .select(Contact.Id, Contact.Email) 28 | .orderByDescending('LastName') 29 | .take(100) 30 | .toArray() 31 | .done(function(result) { 32 | console.log(result); 33 | }); 34 | ``` 35 | 36 | You can also use the API Services directly: 37 | 38 | ```javascript 39 | infusionsoft.ContactService 40 | .findByEmail('brandon@aol.com', ['Id', 'FirstName', 'LastName']); 41 | ``` 42 | 43 | Awesome. 44 | 45 | ## Promises 46 | 47 | All asynchronous methods return a [Promise](https://github.com/kriskowal/q) 48 | that represents the eventual value that will be returned. 49 | 50 | Promises are glorious and make writing heavily asynchronous code much less 51 | awful than it would otherwise be. 52 | 53 | See the **More Examples** section to see them in action. 54 | 55 | 56 | ## API Scraper 57 | 58 | This project creates interfaces and classes for the API services and tables via 59 | the [grunt-infusionsoft](http://github.com/bvalosek/grunt-infusionsoft) grunt 60 | plugin. To recreate the generated files, run `grunt infusionsoft`. 61 | 62 | Check out the `infusionsoft` directory to see the output. 63 | 64 | ## More Examples 65 | 66 | All examples use `infusionsoft` as an instantiated DataContext with your app 67 | name and API key. ie: 68 | 69 | ```javascript 70 | var infusionsoft = new api.DataContext('myAppName', 'MY_API_KEY'); 71 | ``` 72 | 73 | ### Get monthly revenue from a particular month 74 | 75 | ```javascript 76 | infusionsoft.Payments 77 | .like(Payment.PayDate, '2013-06%') 78 | .sum(function(x) { return x.PayAmt; }) 79 | .done(function(total) { 80 | console.log('total revenue: ' + total); 81 | }); 82 | ``` 83 | 84 | ### Login a user and get their info 85 | 86 | And an example of using the `fail` method to catch any problems. 87 | 88 | ```javascript 89 | infusionsoft.DataService 90 | .authenticateUser('user@email.com', 'md5-hash-of-password') 91 | .then(function(userId) { 92 | return infusionsoft.Users.where(User.Id, userId).first(); 93 | }) 94 | .then(function(user) { 95 | console.log('Hello ' + user.FirstName + ' ' + user.LastName); 96 | }) 97 | .fail(function(err) { 98 | console.log('uh oh: ' + err); 99 | }); 100 | ``` 101 | 102 | ### Get all invoices for a specific month, grouped by product 103 | 104 | Uses [underscore](http://underscorejs.org/). 105 | 106 | ```javascript 107 | infusionsoft.Invoices 108 | .like(Invoice.DateCreated, '2013-08%') 109 | .groupBy(function(x) { return x.ProductSold; }) 110 | .done(function(result) { 111 | _(result).each(function(invoices, productId) { 112 | console.log(productId, invoices.length); 113 | }); 114 | }); 115 | ``` 116 | 117 | Same as above, but use the `spread` function to wait on 2 promises to get the 118 | corresponding product names. The API hits for querying both the `Product` table 119 | and the `Invoice` table will actually fire off at the same time. 120 | 121 | Hashtag asynchronous. 122 | 123 | ```javascript 124 | var products = infusionsoft.Products.toArray(); 125 | var invoices = infusionsoft.Invoices 126 | .like(Invoice.DateCreated, '2013-08%') 127 | .groupBy(function(x) { return x.ProductSold; }); 128 | 129 | Q.spread([products, invoices], function(products, invoices) { 130 | _(invoices).each(function(invoices, productId) { 131 | var productName = _(products) 132 | .find(function(x) { return x.Id == productId; }) 133 | .ProductName; 134 | 135 | console.log(productName, invoices.length); 136 | }); 137 | }); 138 | ``` 139 | 140 | ### From an email address, get a contact's tags 141 | 142 | ```javascript 143 | sdk.Contacts 144 | .where(Contact.Email, 'some@email.com') 145 | .first() 146 | .then(function(contact) { 147 | return sdk.ContactGroupAssigns 148 | .where(ContactGroupAssign.ContactId, contact.Id) 149 | .toArray(); 150 | }) 151 | .then(function(cgas) { 152 | cgas.forEach(function(group) { 153 | console.log(group.ContactGroup, group.DateCreated); 154 | }); 155 | }); 156 | ``` 157 | 158 | ### Get the full Product Category Name for all subscription plans 159 | 160 | Okay, take a deep breath. We can do (inner) joins. We fake it though... the 161 | `inner` part of the join has to be loaded entirely and then we do a `O(n^2)` 162 | iteration to make it, but we can still do it. If the `inner` is cheap, this 163 | isn't too bad. Especially when the SDK will handle loading, paging, waiting, 164 | etc... all for you. 165 | 166 | Syntax (stolen from C#'s LINQ): 167 | 168 | ### `join` (`innerQueryable`, `outerKey`, `innerKey`, `selectorFn`) 169 | 170 | Let's do this: 171 | 172 | 173 | ```javascript 174 | var pc = infusionsoft.ProductCategories; 175 | var pca = infusionsoft.ProductCategoryAssigns; 176 | var plans = infusionsoft.SubscriptionPlans; 177 | 178 | // Join the categories onto itself for creating the full category name 179 | // (category parent name + category name) 180 | var categories = pc 181 | .join(pc, 'ParentId', 'Id', function(pc, parent) { 182 | return { 183 | Id: pc.Id, 184 | Name: parent.CategoryDisplayName + ' ' + pc.CategoryDisplayName 185 | }; }); 186 | 187 | var subPlans = plans 188 | 189 | // Join the sub plan (which only has product Id) onto the PCA table to get 190 | // the product category ID 191 | .join(pca, 'ProductId', 'ProductId', function(plan, pca) { 192 | plan.ProductCategoryId = pca.ProductCategoryId; 193 | return plan; 194 | }) 195 | 196 | 197 | // Join our categories object we made above onto the projection from the 198 | // most recent join to get the full category name + subscription plan Id 199 | .join(categories, 'ProductCategoryId', 'Id', function(plan, category) { 200 | return { planId: plan.Id, category: category.Name }; }); 201 | 202 | subPlans.toArray().done(function(d) { console.log(d); }); 203 | ``` 204 | 205 | What happens magically behind the scenes is pretty nice. When we call 206 | `toArray()` at the end, we first query the SubscriptionPlan table (aliased as 207 | `plans`). It then knows we need to join the `ProductCategoryAssign` table on 208 | there, so it fetches that (which may be more than one page). It finally gets 209 | the `ProductCategory` table (in its entirety), and joins them all up. 210 | 211 | The syntax looks nasty, but that is somewhat unavoidable with a `join` 212 | function. 213 | 214 | 215 | ## License 216 | Copyright 2013 Brandon Valosek 217 | 218 | **Infusionsoft API** is released under the MIT license. 219 | 220 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | DataContext: require('./lib/DataContext'), 3 | api: require('./infusionsoft/api') 4 | }; 5 | -------------------------------------------------------------------------------- /infusionsoft/api.js: -------------------------------------------------------------------------------- 1 | module.exports = api = 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | { 8 | 9 | services: 10 | { 11 | IAPIEmailService: require('./services/IAPIEmailService'), 12 | IAffiliateProgramService: require('./services/IAffiliateProgramService'), 13 | IAffiliateService: require('./services/IAffiliateService'), 14 | IContactService: require('./services/IContactService'), 15 | IDataService: require('./services/IDataService'), 16 | IDiscountService: require('./services/IDiscountService'), 17 | IFileService: require('./services/IFileService'), 18 | IFunnelService: require('./services/IFunnelService'), 19 | IInvoiceService: require('./services/IInvoiceService'), 20 | IOrderService: require('./services/IOrderService'), 21 | IProductService: require('./services/IProductService'), 22 | ISearchService: require('./services/ISearchService'), 23 | IShippingService: require('./services/IShippingService'), 24 | IWebFormService: require('./services/IWebFormService') 25 | }, 26 | 27 | tables: 28 | { 29 | ActionSequence: require('./tables/ActionSequence'), 30 | AffResource: require('./tables/AffResource'), 31 | Affiliate: require('./tables/Affiliate'), 32 | CCharge: require('./tables/CCharge'), 33 | CProgram: require('./tables/CProgram'), 34 | Campaign: require('./tables/Campaign'), 35 | CampaignStep: require('./tables/CampaignStep'), 36 | Campaignee: require('./tables/Campaignee'), 37 | Company: require('./tables/Company'), 38 | Contact: require('./tables/Contact'), 39 | ContactAction: require('./tables/ContactAction'), 40 | ContactGroup: require('./tables/ContactGroup'), 41 | ContactGroupAssign: require('./tables/ContactGroupAssign'), 42 | ContactGroupCategory: require('./tables/ContactGroupCategory'), 43 | CreditCard: require('./tables/CreditCard'), 44 | DataFormField: require('./tables/DataFormField'), 45 | DataFormGroup: require('./tables/DataFormGroup'), 46 | DataFormTab: require('./tables/DataFormTab'), 47 | Expense: require('./tables/Expense'), 48 | FileBox: require('./tables/FileBox'), 49 | GroupAssign: require('./tables/GroupAssign'), 50 | Invoice: require('./tables/Invoice'), 51 | InvoiceItem: require('./tables/InvoiceItem'), 52 | InvoicePayment: require('./tables/InvoicePayment'), 53 | Job: require('./tables/Job'), 54 | JobRecurringInstance: require('./tables/JobRecurringInstance'), 55 | Lead: require('./tables/Lead'), 56 | LeadSource: require('./tables/LeadSource'), 57 | LeadSourceCategory: require('./tables/LeadSourceCategory'), 58 | LeadSourceExpense: require('./tables/LeadSourceExpense'), 59 | LeadSourceRecurringExpense: require('./tables/LeadSourceRecurringExpense'), 60 | MtgLead: require('./tables/MtgLead'), 61 | OrderItem: require('./tables/OrderItem'), 62 | PayPlan: require('./tables/PayPlan'), 63 | PayPlanItem: require('./tables/PayPlanItem'), 64 | Payment: require('./tables/Payment'), 65 | Product: require('./tables/Product'), 66 | ProductCategory: require('./tables/ProductCategory'), 67 | ProductCategoryAssign: require('./tables/ProductCategoryAssign'), 68 | ProductInterest: require('./tables/ProductInterest'), 69 | ProductInterestBundle: require('./tables/ProductInterestBundle'), 70 | ProductOptValue: require('./tables/ProductOptValue'), 71 | ProductOption: require('./tables/ProductOption'), 72 | RecurringOrder: require('./tables/RecurringOrder'), 73 | RecurringOrderWithContact: require('./tables/RecurringOrderWithContact'), 74 | Referral: require('./tables/Referral'), 75 | SavedFilter: require('./tables/SavedFilter'), 76 | Stage: require('./tables/Stage'), 77 | StageMove: require('./tables/StageMove'), 78 | Status: require('./tables/Status'), 79 | SubscriptionPlan: require('./tables/SubscriptionPlan'), 80 | Template: require('./tables/Template'), 81 | Ticket: require('./tables/Ticket'), 82 | TicketStage: require('./tables/TicketStage'), 83 | TicketType: require('./tables/TicketType'), 84 | User: require('./tables/User'), 85 | UserGroup: require('./tables/UserGroup') 86 | } 87 | 88 | }; -------------------------------------------------------------------------------- /infusionsoft/services/IAPIEmailService.js: -------------------------------------------------------------------------------- 1 | module.exports = IAPIEmailService = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // APIEmailService allows you to email your contacts as well as attaching emails 8 | // sent elsewhere (this lets you send email from multiple services and still see 9 | // all communications inside of Infusionsoft). 10 | .interface('IAPIEmailService') .define({ 11 | 12 | // Create a new email template that can be used for future emails 13 | __xmlrpc__addEmailTemplate: function(apiKey, pieceTitle, categories, 14 | fromAddress, toAddress, ccAddress, bccAddress, subject, textBody, 15 | htmlBody, contentType, mergeContext) {}, 16 | 17 | // This will create an item in the email history for a contact. This does not 18 | // actually send the email, it only places an item into the email history. 19 | // Using the API to instruct Infusionsoft to send an email will handle this 20 | // automatically. 21 | __xmlrpc__attachEmail: function(apiKey, contactId, fromName, 22 | fromAddress, toAddress, ccAddresses, bccAddresses, contentType, 23 | subject, htmlBody, textBody, header, receivedDate, sentDate, 24 | emailSentType) {}, 25 | 26 | // This retrieves all possible merge fields for the context provided 27 | __xmlrpc__getAvailableMergeFields: function(apiKey, mergeContext) {}, 28 | 29 | // Retrieves the details for a particular email template 30 | __xmlrpc__getEmailTemplate: function(apiKey, templateId) {}, 31 | 32 | //   33 | __xmlrpc__getOptStatus: function(apiKey, email) {}, 34 | 35 | // This method opts-in an email address. This method only works the first time 36 | // an email address opts-in 37 | __xmlrpc__optIn: function(apiKey, email, optInReason) {}, 38 | 39 | // Opts-out an email address. Note that once an address is opt-out, the API 40 | // cannot opt it back in 41 | __xmlrpc__optOut: function(apiKey, email, optOutreason) {}, 42 | 43 | // This will send an email to a list of contacts, as well as record the email 44 | // in the contacts' email history 45 | __xmlrpc__sendEmail: function(apiKey, contactList, fromAddress, 46 | toAddress, ccAddresses, bccAddresses, contentType, subject, htmlBody, 47 | textBody, _templateId) {}, 48 | 49 | // This will send an email to a list of contacts, as well as record the email 50 | // in the contacts' email history 51 | __xmlrpc__sendTemplate: function(apiKey, contactList, templateId) {}, 52 | 53 | // This method is used to update an already existing email template 54 | __xmlrpc__updateEmailTemplate: function(apiKey, templateId, pieceTitle, 55 | category, fromAddress, toAddress, ccAddress, bccAddresses, subject, 56 | textBody, htmlBody, contentType, mergeContext) {} 57 | 58 | }); -------------------------------------------------------------------------------- /infusionsoft/services/IAffiliateProgramService.js: -------------------------------------------------------------------------------- 1 | module.exports = IAffiliateProgramService = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // The Affiliate Program Service allows access to some of features in the Referral 8 | // Partner Center 9 | .interface('IAffiliateProgramService') .define({ 10 | 11 | // Gets a list of all of the affiliates with their contact data for the 12 | // specified program. This includes all of the custom fields defined for the 13 | // contact and affiliate records that are retrieved. 14 | __xmlrpc__getAffiliatesByProgram: function(apiKey, programId) {}, 15 | 16 | // Gets a list of all of the Affiliate Programs for the Affiliate specified. 17 | __xmlrpc__getProgramsForAffiliate: function(apiKey, affiliateId) {}, 18 | 19 | // Gets a list of all of the Affiliate Programs that are in the application. 20 | __xmlrpc__getAffiliatePrograms: function(apiKey) {}, 21 | 22 | // Gets a list of all of the resources that are associated to the Affiliate 23 | // Program specified. 24 | __xmlrpc__getResourcesForAffiliateProgram: function(apiKey, programId) {} 25 | 26 | }); -------------------------------------------------------------------------------- /infusionsoft/services/IAffiliateService.js: -------------------------------------------------------------------------------- 1 | module.exports = IAffiliateService = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // APIAffiliateService is used to pull commission data and activities for 8 | // affiliates. With this service, you have access to Clawbacks, Commissions, 9 | // Payouts, Running Totals, and the Activity Summary. The methods in the 10 | // APIAffiliateService mirror the reports produced inside Infusionsoft. To manage 11 | // affiliate information (ie Name, Phone, etc.) you will need to use the 12 | // DataService. 13 | .interface('IAffiliateService') .define({ 14 | 15 | // The affClawbacks method is used when you need to retrieve all clawed back 16 | // commissions for a particular affiliate. Claw backs typically occur when an 17 | // order has been refunded to the customer 18 | __xmlrpc__affClawbacks: function(apiKey, affiliateId, filterStartDate, 19 | filterEndDate) {}, 20 | 21 | // This method is used to retrieve all commissions for a specific affiliate 22 | // within a date range 23 | __xmlrpc__affCommissions: function(apiKey, affiliateId, 24 | filterStartDate, filterEndDate) {}, 25 | 26 | // Gets a list of the Redirect Links for the specified Affiliate. 27 | __xmlrpc__getRedirectLinksForAffiliate: function(apiKey, affiliateId) {}, 28 | 29 | // This method is used to retrieve all payments for a specific affiliate 30 | // within a date range 31 | __xmlrpc__affPayouts: function(apiKey, affiliateId, filterStartDate, 32 | filterEndDate) {}, 33 | 34 | // The affRunningTotals method is used to retrieve the current balances for 35 | // Amount Earned, Clawbacks, and Running Balance. 36 | __xmlrpc__affRunningTotals: function(apiKey, affiliateIds) {}, 37 | 38 | // The affSummary method is used to retrieve a summary of statistics for a 39 | // list of affiliates 40 | __xmlrpc__affSummary: function(apiKey, affiliateId, filterStartDate, 41 | filterEndDate) {} 42 | 43 | }); -------------------------------------------------------------------------------- /infusionsoft/services/IContactService.js: -------------------------------------------------------------------------------- 1 | module.exports = IContactService = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // ContactService is used to manage contacts. You can add, update and find 8 | // contacts in addition to managing follow up sequences, tags and action sets. 9 | .interface('IContactService') .define({ 10 | 11 | // Creates a new contact record from the data passed in the associative array 12 | __xmlrpc__add: function(apiKey, data) {}, 13 | 14 | // Merge two contacts together 15 | __xmlrpc__merge: function(apiKey, contactId, duplicateContactId) {}, 16 | 17 | // Adds a contact to a follow-up sequence (campaigns were the original name of 18 | // follow-up sequences) 19 | __xmlrpc__addToCampaign: function(apiKey, contactId, campaignId) {}, 20 | 21 | // Adds a tag to a contact record 22 | __xmlrpc__addToGroup: function(apiKey, contactId, groupId) {}, 23 | 24 | // Returns the Id number of the next follow-up sequence step for the given 25 | // contact 26 | __xmlrpc__getNextCampaignStep: function(apiKey, contactId, 27 | followUpSequenceId) {}, 28 | 29 | // Finds all contacts with the given email address. This searches the Email, 30 | // Email 2, and Email 3 fields 31 | __xmlrpc__findByEmail: function(apiKey, email, selectedFields) {}, 32 | 33 | // Load data from a specific contact record 34 | __xmlrpc__load: function(apiKey, contactId, selectedFields) {}, 35 | 36 | // Pauses a follow-up sequence for the given contact record 37 | __xmlrpc__pauseCampaign: function(apiKey, contactId, sequenceId) {}, 38 | 39 | // Removes a follow-up sequence from a contact record 40 | __xmlrpc__removeFromCampaign: function(apiKey, contactId, 41 | followUpSequenceId) {}, 42 | 43 | // Removes a tag from a contact (groups were the original name of tags) 44 | __xmlrpc__removeFromGroup: function(apiKey, contactId, TagId) {}, 45 | 46 | // Resumes a follow-up sequence that has been stopped/paused for a given 47 | // contact 48 | __xmlrpc__resumeCampaignForContact: function(apiKey, contactId, seqId) {}, 49 | 50 | // Immediately performs the given follow-up sequence stepId for the given 51 | // contacts 52 | __xmlrpc__rescheduleCampaignStep: function(apiKey, contactIds, 53 | sequenceStepId) {}, 54 | 55 | // Runs an action set on a given contact record 56 | __xmlrpc__runActionSequence: function(apiKey, contactId, actionSetId) {}, 57 | 58 | // Adds or updates a contact record based on matching data 59 | __xmlrpc__addWithDupCheck: function(apiKey, data, dupCheckType) {}, 60 | 61 | // Updates the data on a contact record 62 | __xmlrpc__update: function(apiKey, contactId, data) {} 63 | 64 | }); -------------------------------------------------------------------------------- /infusionsoft/services/IDataService.js: -------------------------------------------------------------------------------- 1 | module.exports = IDataService = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // The DataService is used to manipulate most data in Infusionsoft. It permits you 8 | // to work on any available tables and has a wide range of uses. Here's a list of 9 | // all available tables, and the fields they contain: InfusionSoft Tables (Pro 10 | // Tip: Open this in a new tab.) 11 | .interface('IDataService') .define({ 12 | 13 | // Adds a record to the specified table in Infusionsoft. 14 | __xmlrpc__add: function(apiKey, table, values) {}, 15 | 16 | // Loads a struct with data from the given database record 17 | __xmlrpc__load: function(apiKey, table, recordId, wantedFields) {}, 18 | 19 | // Updates the specified record (indicated by ID) with the data provided 20 | __xmlrpc__update: function(apiKey, table, Id, values) {}, 21 | 22 | // Deletes the specified record in the given table from the database 23 | __xmlrpc__delete: function(apiKey, table, Id) {}, 24 | 25 | // This will locate all records in a given table that match the criteria for a 26 | // given field 27 | __xmlrpc__findByField: function(apiKey, table, limit, page, fieldName, 28 | fieldValue, returnFields) {}, 29 | 30 | // Performs a query across the given table based on the query data 31 | __xmlrpc__query: function(apiKey, table, limit, page, queryData, 32 | selectedFields) {}, 33 | 34 | // Creates a new custom fields within Infusionsoft 35 | __xmlrpc__addCustomField: function(apiKey, customFieldType, 36 | displayName, dataType, headerId) {}, 37 | 38 | // This method is used to authenticate an Infusionsoft username and 39 | // password(md5 hash). If the credentials match it will return back a User ID, 40 | // if the credentials do not match it will send back an error message 41 | __xmlrpc__authenticateUser: function(apiKey, username, passwordHash) {}, 42 | 43 | // This method will return back the data currently configured in a user 44 | // configured application setting 45 | __xmlrpc__getAppSetting: function(apiKey, module, setting) {}, 46 | 47 | // Returns an iCalendar entry for the given appointment 48 | __xmlrpc__getAppointmentCal: function(apiKey, appointmentId) {}, 49 | 50 | // Returns a temporary API key which is valid for one hour if given a valid 51 | // Vendor key and user credentials. For security, never store a users password 52 | // in plaintext. You only need to pass the MD5 hash with this method, so only 53 | // the MD5 hash needs to be stored. 54 | __xmlrpc__insecure__getTemporaryKey: function(vendorKey, username, 55 | passwordHash) {}, 56 | 57 | // Updates a custom field. Every field can have it's display name and group id 58 | // changed, but only certain data types will allow you to change 59 | // values(dropdown, listbox, radio, etc) 60 | __xmlrpc__updateCustomField: function(apiKey, customFieldId, values) {} 61 | 62 | }); -------------------------------------------------------------------------------- /infusionsoft/services/IDiscountService.js: -------------------------------------------------------------------------------- 1 | module.exports = IDiscountService = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // DiscountService is used to manage products. You can add, update and find 8 | // products in addition to managing follow up sequences, tags and action sets. 9 | .interface('IDiscountService') .define({ 10 | 11 | // Adds a Free trial 12 | __xmlrpc__addFreeTrial: function(apiKey, name, description, 13 | freeTrialDays, hidePrice, subscriptionPlanId) {}, 14 | 15 | // Returns the options and values of the free trial id passed 16 | __xmlrpc__getFreeTrial: function(apiKey, trialId) {}, 17 | 18 | // Adds a order total discount 19 | __xmlrpc__addOrderTotalDiscount: function(apiKey, name, description, 20 | applyDiscountToCommission, percentOrAmt, amt, payType) {}, 21 | 22 | // Adds a order total discount 23 | __xmlrpc__getOrderTotalDiscount: function(apiKey, id) {}, 24 | 25 | // Adds a category discount 26 | __xmlrpc__addCategoryDiscount: function(apiKey, name, description, 27 | applyDiscountToCommission, amt) {}, 28 | 29 | // Returns the options and values of the category discount id passed 30 | __xmlrpc__getCategoryDiscount: function(apiKey, id) {}, 31 | 32 | // Assigns a product to a category discount 33 | __xmlrpc__addCategoryAssignmentToCategoryDiscount: function(apiKey, id, 34 | productId) {}, 35 | 36 | // Returns the options and values of the category assignment for category 37 | // discount passed 38 | __xmlrpc__getCategoryAssignmentsForCategoryDiscount: function(apiKey, 39 | id) {}, 40 | 41 | // Add a product total discount 42 | __xmlrpc__addProductTotalDiscount: function(apiKey, name, description, 43 | applyDiscountToCommission, productId, percentOrAmt, amt) {}, 44 | 45 | // Returns the options and values of the product total discount id passed 46 | __xmlrpc__getProductTotalDiscount: function(apiKey, id) {}, 47 | 48 | // Adds a shipping total discount 49 | __xmlrpc__addShippingTotalDiscount: function(apiKey, name, description, 50 | applyDiscountToCommission, percentOrAmt, amt) {}, 51 | 52 | // Returns the options and values of the shipping total discount id passed 53 | __xmlrpc__getShippingTotalDiscount: function(apiKey, id) {} 54 | 55 | }); -------------------------------------------------------------------------------- /infusionsoft/services/IFileService.js: -------------------------------------------------------------------------------- 1 | module.exports = IFileService = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // The FileService methods allow you to create and modify files inside the 8 | // Infusionsoft System. 9 | .interface('IFileService') .define({ 10 | 11 | // This method retrieves the file data for the given ID number. 12 | __xmlrpc__getFile: function(apiKey, FileId) {}, 13 | 14 | // This method will return a string of the download URL for the given file. 15 | __xmlrpc__getDownloadUrl: function(apiKey, FileId) {}, 16 | 17 | // This method uploads the file to Infusionsoft. The optional contactId 18 | // parameter is used to place the file in a specific contact's filebox. 19 | __xmlrpc__uploadFile: function(apiKey, FileName, Base64EncodedData, 20 | _ContactId) {}, 21 | 22 | // This method will return a string of the download URL for the given file. 23 | __xmlrpc__replaceFile: function(apiKey, FileId, Base64EncodedData) {}, 24 | 25 | // This method will return a string of the download URL for the given file. 26 | __xmlrpc__renameFile: function(apiKey, FileId, fileName) {} 27 | 28 | }); -------------------------------------------------------------------------------- /infusionsoft/services/IFunnelService.js: -------------------------------------------------------------------------------- 1 | module.exports = IFunnelService = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // Funnel Service is used to add contacts to your sequences 8 | .interface('IFunnelService') .define({ 9 | 10 | // Returns the result of a goal being achieved. 11 | __xmlrpc__achieveGoal: function(apiKey, Integration, CallName, 12 | contactId) {} 13 | 14 | }); -------------------------------------------------------------------------------- /infusionsoft/services/IInvoiceService.js: -------------------------------------------------------------------------------- 1 | module.exports = IInvoiceService = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // InvoiceService allows you to manage eCommerce transactions. 8 | .interface('IInvoiceService') .define({ 9 | 10 | // Creates a one-time order with no added line items 11 | __xmlrpc__createBlankOrder: function(apiKey, contactId, description, 12 | orderDate, leadAffiliateId, saleAffiliateId) {}, 13 | 14 | // Adds a line item to an order. This used to add a Product to an order as 15 | // well as any other sort of charge/discount. 16 | __xmlrpc__addOrderItem: function(apiKey, invoiceId, productId, type, 17 | price, quantity, description, notes) {}, 18 | 19 | // This will cause a credit card to be charged for the amount currently due on 20 | // an invoice 21 | __xmlrpc__chargeInvoice: function(apiKey, invoiceId, notes, 22 | creditCardId, merchantAccountId, bypassCommissions) {}, 23 | 24 | // Deletes the specified subscription from the database, as well as all 25 | // invoices tied to the subscription 26 | __xmlrpc__deleteSubscription: function(apiKey, recurringOrderId) {}, 27 | 28 | // This method is used when you would like to delete an order (not a 29 | // subscription). You pass in the invoice for this particular order, and the 30 | // method handles deleting the invoice as well as the order (Job table) tied 31 | // to the invoice. 32 | __xmlrpc__deleteInvoice: function(apiKey, invoiceId) {}, 33 | 34 | // Creates a subscription for a contact. Subscriptions are billing 35 | // automatically by Infusionsoft within the next six hours. If you want to 36 | // bill immediately you will need to utilize the 37 | // InvoiceService.createInvoiceForRecurring and InvoiceService.chargeInvoice 38 | // methods to accomplish this. 39 | __xmlrpc__addRecurringOrder: function(apiKey, contactId, 40 | allowDuplicate, cProgramId, qty, price, taxable, merchantAccountId, 41 | creditCardId, affiliateId, daysTillCharge) {}, 42 | 43 | // Modifies the commissions being earned on a particular subscription. This 44 | // does not affect previously generated invoices for this subscription. 45 | __xmlrpc__addRecurringCommissionOverride: function(apiKey, 46 | recurringOrderId, affiliateId, amount, payoutType, description) {}, 47 | 48 | // This will create an invoice for all charges due on a Subscription. If the 49 | // subscription has three billing cycles that are due, it will create one 50 | // invoice with all three items attached. 51 | __xmlrpc__createInvoiceForRecurring: function(apiKey, recurringOrderId) {}, 52 | 53 | // Adds a payment to an invoice without actually processing a charge through a 54 | // merchant. This is useful if you accept cash/check, or handle payments 55 | // outside of Infusionsoft. 56 | __xmlrpc__addManualPayment: function(apiKey, invoiceId, amt, 57 | paymentDate, paymentType, paymentDescription, bypassCommissions) {}, 58 | 59 | // Allows you to setup a custom payment plan for an invoice. 60 | __xmlrpc__addPaymentPlan: function(apiKey, invoiceId, autoCharge, 61 | creditCardId, merchantAccountId, daysBetweenRetry, maxRetry, 62 | initialPmtAmt, initialPmtDate, planStartDate, numPmts, daysBetweenPmts) {}, 63 | 64 | // Used to determine the outstanding amount owed on a given invoice. 65 | __xmlrpc__calculateAmountOwed: function(apiKey, invoiceId) {}, 66 | 67 | // This is used to retrieve all Payment Types currently setup under the Order 68 | // Settings section of Infusionsoft. 69 | __xmlrpc__getAllPaymentOptions: function(apiKey) {}, 70 | 71 | // Retrieves all payments for a given invoice. 72 | __xmlrpc__getPayments: function(apiKey, invoiceId) {}, 73 | 74 | // Finds a credit card on file for a contactId that matches the last four 75 | // digits of the card. 76 | __xmlrpc__locateExistingCard: function(apiKey, contactId, last4) {}, 77 | 78 | // Calculates tax, and places it onto the given invoice. 79 | __xmlrpc__recalculateTax: function(apiKey, invoiceId) {}, 80 | 81 | // Validates a credit card in one of two ways - the first will validate an 82 | // existing card in the Infusionsoft system by grabbing card data via the 83 | // credit card ID. The second takes card details as a struct and validates it 84 | // without having it already saved. 85 | __xmlrpc__validateCreditCard: function(apiKey, creditCardId) {}, 86 | 87 | // Retrieves the shipping options currently setup for the Infusionsoft 88 | // shopping cart. 89 | __xmlrpc__getAllShippingOptions: function(apiKey) {}, 90 | 91 | // Changes the next bill date on a subscription. 92 | __xmlrpc__updateJobRecurringNextBillDate: function(apiKey, 93 | recurringOrderId, nextBillDate) {}, 94 | 95 | // Creates a commission on an existing invoice. 96 | __xmlrpc__addOrderCommissionOverride: function(apiKey, invoiceId, 97 | affiliateId, productId, percentage, amount, payoutType, description, 98 | date) {} 99 | 100 | }); -------------------------------------------------------------------------------- /infusionsoft/services/IOrderService.js: -------------------------------------------------------------------------------- 1 | module.exports = IOrderService = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // OrderService is used to build, create and charge for an order. 8 | .interface('IOrderService') .define({ 9 | 10 | // Returns the result of order placement. The ids of the order and invoice 11 | // that were created are returned along with the status of a credit card 12 | // charge if one was made. 13 | __xmlrpc__placeOrder: function(apiKey, contactId, creditCardId, 14 | payPlanId, productIds, subscriptionPlanIds, processSpecials, 15 | promoCodes, _leadAffiliatedId, _affiliatedId) {} 16 | 17 | }); -------------------------------------------------------------------------------- /infusionsoft/services/IProductService.js: -------------------------------------------------------------------------------- 1 | module.exports = IProductService = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // ProductService is used to manage products. You can add, update and find 8 | // products in addition to managing follow up sequences, tags and action sets. 9 | .interface('IProductService') .define({ 10 | 11 | // Returns a product inventory provided the Id 12 | __xmlrpc__getInventory: function(apiKey, productId) {}, 13 | 14 | // Increments the inventory by one product, provided you pass the productId to 15 | // increment withy 16 | __xmlrpc__incrementInventory: function(apiKey, productId) {}, 17 | 18 | // Decrements the inventory by one product, provided you pass the productId to 19 | // decrement with 20 | __xmlrpc__decrementInventory: function(apiKey, productId) {}, 21 | 22 | // Increases the inventory with a particular product by the quantity you 23 | // specify 24 | __xmlrpc__increaseInventory: function(apiKey, productId, quantity) {}, 25 | 26 | // Decreases the inventory with a particular product by the quantity you 27 | // specify 28 | __xmlrpc__decreaseInventory: function(apiKey, productId, quantity) {}, 29 | 30 | // Deactivates the specified Credit Card 31 | __xmlrpc__deactivateCreditCard: function(apiKey, creditCardId) {} 32 | 33 | }); -------------------------------------------------------------------------------- /infusionsoft/services/ISearchService.js: -------------------------------------------------------------------------------- 1 | module.exports = ISearchService = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // The SearchService allows you to retrieve the results of saved searches and 8 | // reports that have been saved within Infusionsoft. Saved searches/reports are 9 | // tied to the User that created them. This service also allows you to utilize the 10 | // quick search function found in the upper right hand corner of your Infusionsoft 11 | // application. 12 | .interface('ISearchService') .define({ 13 | 14 | // Gets all possible fields/columns available for return on a saved 15 | // search/report 16 | __xmlrpc__getAllReportColumns: function(apiKey, savedSearchId, userId) {}, 17 | 18 | // Runs a saved search/report and returns all possible fields 19 | __xmlrpc__getSavedSearchResultsAllFields: function(apiKey, 20 | savedSearchId, userId, pageNumber) {}, 21 | 22 | // Runs a saved search/report returning only the specified fields 23 | __xmlrpc__getSavedSearchResults: function(apiKey, savedSearchId, 24 | userId, pageNumber, returnFields) {}, 25 | 26 | // This is used to find what possible quick searches the given user has access 27 | // to 28 | __xmlrpc__getAvailableQuickSearches: function(apiKey, userId) {}, 29 | 30 | // This allows you to run a quick search via the API. The quick search is the 31 | // search bar in the upper right hand corner of the Infusionsoft application 32 | __xmlrpc__quickSearch: function(apiKey, quickSearchType, userId, 33 | searchData, page, returnLimit) {}, 34 | 35 | // Retrieves the quick search type that the given users has set as their 36 | // default 37 | __xmlrpc__getDefaultQuickSearch: function(apiKey, userId) {} 38 | 39 | }); -------------------------------------------------------------------------------- /infusionsoft/services/IShippingService.js: -------------------------------------------------------------------------------- 1 | module.exports = IShippingService = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // ShippingService is used to manage products. You can add, update and find 8 | // products in addition to managing follow up sequences, tags and action sets. 9 | .interface('IShippingService') .define({ 10 | 11 | // Returns all shipping options configured 12 | __xmlrpc__getAllShippingOptions: function(apiKey) {}, 13 | 14 | // Returns the options and values of the flat rate shipping option provided 15 | __xmlrpc__getFlatRateShippingOption: function(apiKey, optionId) {}, 16 | 17 | // Returns the options and values of the order total shipping option provided 18 | __xmlrpc__getOrderTotalShippingOption: function(apiKey, optionId) {}, 19 | 20 | // Returns the options and values of the order total shipping ranges option 21 | // provided 22 | __xmlrpc__getOrderTotalShippingRanges: function(apiKey, optionId) {}, 23 | 24 | // Returns the options and values of the product based shipping option provided 25 | __xmlrpc__getProductBasedShippingOption: function(apiKey, optionId) {}, 26 | 27 | // Returns the options and values of the order quantity shipping option 28 | // provided 29 | __xmlrpc__getOrderQuantityShippingOption: function(apiKey, optionId) {}, 30 | 31 | // Returns the options and values of the weight based shipping option provided 32 | __xmlrpc__getWeightBasedShippingOption: function(apiKey, optionId) {}, 33 | 34 | // Returns the options and values of the ups shipping option provided 35 | __xmlrpc__getUpsShippingOption: function(apiKey, optionId) {} 36 | 37 | }); -------------------------------------------------------------------------------- /infusionsoft/services/IWebFormService.js: -------------------------------------------------------------------------------- 1 | module.exports = IWebFormService = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // The WebFormService is used to work with web forms within Infusionsoft. 8 | .interface('IWebFormService') .define({ 9 | 10 | // This retrieves the web form names and Id numbers from the application. 11 | __xmlrpc__getMap: function(apiKey) {}, 12 | 13 | // This retrieves the HTML for the given web form 14 | __xmlrpc__getHTML: function(apiKey, webFormId) {} 15 | 16 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/ActionSequence.js: -------------------------------------------------------------------------------- 1 | module.exports = ActionSequence = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds the name and Id number of action sets that are created under 8 | // the Infusionsoft Logo > Marketing Settings > Action Sets within Infusionsoft. 9 | .class('ActionSequence') .define({ 10 | 11 | __static__field__primary__number__read__Id: 12 | 'Id', 13 | 14 | __static__field__string__read__TemplateName: 15 | 'TemplateName', 16 | 17 | __static__field__string__read__VisibleToTheseUsers: 18 | 'VisibleToTheseUsers' 19 | 20 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/AffResource.js: -------------------------------------------------------------------------------- 1 | module.exports = AffResource = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | .class('AffResource') .define({ 8 | 9 | __static__field__primary__number__edit__delete__add__read__Id: 10 | 'Id', 11 | 12 | __static__field__string__edit__delete__add__read__Title: 13 | 'Title', 14 | 15 | __static__field__string__edit__delete__add__read__ResourceType: 16 | 'ResourceType', 17 | 18 | __static__field__string__edit__delete__add__read__ResourceOrder: 19 | 'ResourceOrder', 20 | 21 | __static__field__string__edit__delete__add__read__ResourceHTML: 22 | 'ResourceHTML', 23 | 24 | __static__field__string__edit__delete__add__read__ResourceHREF: 25 | 'ResourceHREF', 26 | 27 | __static__field__string__edit__delete__add__read__Notes: 28 | 'Notes', 29 | 30 | __static__field__string__edit__delete__add__read__ProgramIds: 31 | 'ProgramIds' 32 | 33 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/Affiliate.js: -------------------------------------------------------------------------------- 1 | module.exports = Affiliate = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds data related to the Affiliate records within Infusionsoft. 8 | .class('Affiliate') .define({ 9 | 10 | __static__field__primary__number__read__Id: 11 | 'Id', 12 | 13 | __static__field__number__edit__delete__add__read__ContactId: 14 | 'ContactId', 15 | 16 | __static__field__number__edit__delete__add__read__ParentId: 17 | 'ParentId', 18 | 19 | __static__field__number__edit__delete__add__read__LeadAmt: 20 | 'LeadAmt', 21 | 22 | __static__field__number__edit__delete__add__read__LeadPercent: 23 | 'LeadPercent', 24 | 25 | __static__field__number__edit__delete__add__read__SaleAmt: 26 | 'SaleAmt', 27 | 28 | __static__field__number__edit__delete__add__read__SalePercent: 29 | 'SalePercent', 30 | 31 | __static__field__number__edit__delete__add__read__PayoutType: 32 | 'PayoutType', 33 | 34 | __static__field__number__edit__delete__add__read__DefCommissionType: 35 | 'DefCommissionType', 36 | 37 | __static__field__number__edit__delete__add__read__Status: 38 | 'Status', 39 | 40 | __static__field__string__edit__delete__add__read__AffName: 41 | 'AffName', 42 | 43 | __static__field__string__edit__delete__add__read__Password: 44 | 'Password', 45 | 46 | __static__field__string__edit__delete__add__read__AffCode: 47 | 'AffCode', 48 | 49 | __static__field__number__edit__delete__add__read__NotifyLead: 50 | 'NotifyLead', 51 | 52 | __static__field__number__edit__delete__add__read__NotifySale: 53 | 'NotifySale', 54 | 55 | __static__field__number__edit__delete__add__read__LeadCookieFor: 56 | 'LeadCookieFor' 57 | 58 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/CCharge.js: -------------------------------------------------------------------------------- 1 | module.exports = CCharge = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds data related to credit card charges processed from 8 | // Infusionsoft through a merchant account. 9 | .class('CCharge') .define({ 10 | 11 | __static__field__primary__number__read__Id: 12 | 'Id', 13 | 14 | __static__field__number__read__CCId: 15 | 'CCId', 16 | 17 | __static__field__string__read__PaymentId: 18 | 'PaymentId', 19 | 20 | __static__field__string__read__MerchantId: 21 | 'MerchantId', 22 | 23 | __static__field__string__read__OrderNum: 24 | 'OrderNum', 25 | 26 | __static__field__string__read__RefNum: 27 | 'RefNum', 28 | 29 | __static__field__string__read__ApprCode: 30 | 'ApprCode', 31 | 32 | __static__field__number__read__Amt: 33 | 'Amt' 34 | 35 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/CProgram.js: -------------------------------------------------------------------------------- 1 | module.exports = CProgram = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds data about all the subscription programs you have created 8 | // within Infusionsoft. 9 | .class('CProgram') .define({ 10 | 11 | __static__field__primary__number__read__Id: 12 | 'Id', 13 | 14 | __static__field__string__edit__add__read__ProgramName: 15 | 'ProgramName', 16 | 17 | __static__field__number__edit__add__read__DefaultPrice: 18 | 'DefaultPrice', 19 | 20 | __static__field__string__edit__add__read__DefaultCycle: 21 | 'DefaultCycle', 22 | 23 | __static__field__number__edit__add__read__DefaultFrequency: 24 | 'DefaultFrequency', 25 | 26 | __static__field__string__edit__add__read__Sku: 27 | 'Sku', 28 | 29 | __static__field__string__edit__add__read__ShortDescription: 30 | 'ShortDescription', 31 | 32 | __static__field__string__edit__add__read__BillingType: 33 | 'BillingType', 34 | 35 | __static__field__string__edit__add__read__Description: 36 | 'Description', 37 | 38 | __static__field__number__edit__add__read__HideInStore: 39 | 'HideInStore', 40 | 41 | __static__field__number__edit__add__read__Status: 42 | 'Status', 43 | 44 | __static__field__boolean__edit__add__read__Active: 45 | 'Active', 46 | 47 | __static__field__blob__edit__add__read__LargeImage: 48 | 'LargeImage', 49 | 50 | __static__field__number__edit__add__read__Taxable: 51 | 'Taxable', 52 | 53 | __static__field__string__edit__add__read__Family: 54 | 'Family', 55 | 56 | __static__field__number__edit__add__read__ProductId: 57 | 'ProductId' 58 | 59 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/Campaign.js: -------------------------------------------------------------------------------- 1 | module.exports = Campaign = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds the Name and Status of Follow-up Sequences you have created 8 | // within Infusionsoft. 9 | .class('Campaign') .define({ 10 | 11 | __static__field__primary__number__read__Id: 12 | 'Id', 13 | 14 | __static__field__string__read__Name: 15 | 'Name', 16 | 17 | __static__field__string__read__Status: 18 | 'Status' 19 | 20 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/CampaignStep.js: -------------------------------------------------------------------------------- 1 | module.exports = CampaignStep = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds individual follow-up sequence step data. There is one row in 8 | // this table for each step found in a given follow-up sequence. 9 | .class('CampaignStep') .define({ 10 | 11 | __static__field__primary__number__read__Id: 12 | 'Id', 13 | 14 | __static__field__number__read__CampaignId: 15 | 'CampaignId', 16 | 17 | __static__field__number__read__TemplateId: 18 | 'TemplateId', 19 | 20 | __static__field__string__read__StepStatus: 21 | 'StepStatus', 22 | 23 | __static__field__string__read__StepTitle: 24 | 'StepTitle' 25 | 26 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/Campaignee.js: -------------------------------------------------------------------------------- 1 | module.exports = Campaignee = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table has one entry for each person in a single follow-up sequence. One 8 | // contact in three different follow-up sequences means you will find three 9 | // entries in this table for that contact record. 10 | .class('Campaignee') .define({ 11 | 12 | __static__field__number__read__CampaignId: 13 | 'CampaignId', 14 | 15 | __static__field__enum__read__Status: 16 | 'Status', 17 | 18 | __static__field__string__read__Campaign: 19 | 'Campaign', 20 | 21 | __static__field__number__read__ContactId: 22 | 'ContactId' 23 | 24 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/Company.js: -------------------------------------------------------------------------------- 1 | module.exports = Company = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds the Company data in the system. 8 | .class('Company') .define({ 9 | 10 | __static__field__string__edit__delete__add__read__Address1Type: 11 | 'Address1Type', 12 | 13 | __static__field__string__edit__delete__add__read__Address2Street1: 14 | 'Address2Street1', 15 | 16 | __static__field__string__edit__delete__add__read__Address2Street2: 17 | 'Address2Street2', 18 | 19 | __static__field__string__edit__delete__add__read__Address2Type: 20 | 'Address2Type', 21 | 22 | __static__field__string__edit__delete__add__read__Address3Street1: 23 | 'Address3Street1', 24 | 25 | __static__field__string__edit__delete__add__read__Address3Street2: 26 | 'Address3Street2', 27 | 28 | __static__field__string__edit__delete__add__read__Address3Type: 29 | 'Address3Type', 30 | 31 | __static__field__datetime__edit__delete__add__read__Anniversary: 32 | 'Anniversary', 33 | 34 | __static__field__string__edit__delete__add__read__AssistantName: 35 | 'AssistantName', 36 | 37 | __static__field__string__edit__delete__add__read__AssistantPhone: 38 | 'AssistantPhone', 39 | 40 | __static__field__string__edit__delete__add__read__BillingInformation: 41 | 'BillingInformation', 42 | 43 | __static__field__datetime__edit__delete__add__read__Birthday: 44 | 'Birthday', 45 | 46 | __static__field__string__edit__delete__add__read__City: 47 | 'City', 48 | 49 | __static__field__string__edit__delete__add__read__City2: 50 | 'City2', 51 | 52 | __static__field__string__edit__delete__add__read__City3: 53 | 'City3', 54 | 55 | __static__field__string__edit__delete__add__read__Company: 56 | 'Company', 57 | 58 | __static__field__number__edit__delete__add__read__AccountId: 59 | 'AccountId', 60 | 61 | __static__field__number__edit__delete__add__read__CompanyID: 62 | 'CompanyID', 63 | 64 | __static__field__string__edit__delete__add__read__ContactNotes: 65 | 'ContactNotes', 66 | 67 | __static__field__string__edit__delete__add__read__ContactType: 68 | 'ContactType', 69 | 70 | __static__field__string__edit__delete__add__read__Country: 71 | 'Country', 72 | 73 | __static__field__string__edit__delete__add__read__Country2: 74 | 'Country2', 75 | 76 | __static__field__string__edit__delete__add__read__Country3: 77 | 'Country3', 78 | 79 | __static__field__number__read__CreatedBy: 80 | 'CreatedBy', 81 | 82 | __static__field__datetime__read__DateCreated: 83 | 'DateCreated', 84 | 85 | __static__field__string__edit__delete__add__read__Email: 86 | 'Email', 87 | 88 | __static__field__string__edit__delete__add__read__EmailAddress2: 89 | 'EmailAddress2', 90 | 91 | __static__field__string__edit__delete__add__read__EmailAddress3: 92 | 'EmailAddress3', 93 | 94 | __static__field__string__edit__delete__add__read__Fax1: 95 | 'Fax1', 96 | 97 | __static__field__string__edit__delete__add__read__Fax1Type: 98 | 'Fax1Type', 99 | 100 | __static__field__string__edit__delete__add__read__Fax2: 101 | 'Fax2', 102 | 103 | __static__field__string__edit__delete__add__read__Fax2Type: 104 | 'Fax2Type', 105 | 106 | __static__field__string__edit__delete__add__read__FirstName: 107 | 'FirstName', 108 | 109 | __static__field__string__read__Groups: 110 | 'Groups', 111 | 112 | __static__field__primary__number__read__Id: 113 | 'Id', 114 | 115 | __static__field__string__edit__delete__add__read__JobTitle: 116 | 'JobTitle', 117 | 118 | __static__field__string__edit__delete__add__read__LastName: 119 | 'LastName', 120 | 121 | __static__field__datetime__read__LastUpdated: 122 | 'LastUpdated', 123 | 124 | __static__field__number__read__LastUpdatedBy: 125 | 'LastUpdatedBy', 126 | 127 | __static__field__string__edit__delete__add__read__MiddleName: 128 | 'MiddleName', 129 | 130 | __static__field__string__edit__delete__add__read__Nickname: 131 | 'Nickname', 132 | 133 | __static__field__number__edit__delete__add__read__OwnerID: 134 | 'OwnerID', 135 | 136 | __static__field__string__edit__delete__add__read__Password: 137 | 'Password', 138 | 139 | __static__field__string__edit__delete__add__read__Phone1: 140 | 'Phone1', 141 | 142 | __static__field__string__edit__delete__add__read__Phone1Ext: 143 | 'Phone1Ext', 144 | 145 | __static__field__string__edit__delete__add__read__Phone1Type: 146 | 'Phone1Type', 147 | 148 | __static__field__string__edit__delete__add__read__Phone2: 149 | 'Phone2', 150 | 151 | __static__field__string__edit__delete__add__read__Phone2Ext: 152 | 'Phone2Ext', 153 | 154 | __static__field__string__edit__delete__add__read__Phone2Type: 155 | 'Phone2Type', 156 | 157 | __static__field__string__edit__delete__add__read__Phone3: 158 | 'Phone3', 159 | 160 | __static__field__string__edit__delete__add__read__Phone3Ext: 161 | 'Phone3Ext', 162 | 163 | __static__field__string__edit__delete__add__read__Phone3Type: 164 | 'Phone3Type', 165 | 166 | __static__field__string__edit__delete__add__read__Phone4: 167 | 'Phone4', 168 | 169 | __static__field__string__edit__delete__add__read__Phone4Ext: 170 | 'Phone4Ext', 171 | 172 | __static__field__string__edit__delete__add__read__Phone4Type: 173 | 'Phone4Type', 174 | 175 | __static__field__string__edit__delete__add__read__Phone5: 176 | 'Phone5', 177 | 178 | __static__field__string__edit__delete__add__read__Phone5Ext: 179 | 'Phone5Ext', 180 | 181 | __static__field__string__edit__delete__add__read__Phone5Type: 182 | 'Phone5Type', 183 | 184 | __static__field__string__edit__delete__add__read__PostalCode: 185 | 'PostalCode', 186 | 187 | __static__field__string__edit__delete__add__read__PostalCode2: 188 | 'PostalCode2', 189 | 190 | __static__field__string__edit__delete__add__read__PostalCode3: 191 | 'PostalCode3', 192 | 193 | __static__field__string__edit__delete__add__read__ReferralCode: 194 | 'ReferralCode', 195 | 196 | __static__field__string__edit__delete__add__read__SpouseName: 197 | 'SpouseName', 198 | 199 | __static__field__string__edit__delete__add__read__State: 200 | 'State', 201 | 202 | __static__field__string__edit__delete__add__read__State2: 203 | 'State2', 204 | 205 | __static__field__string__edit__delete__add__read__State3: 206 | 'State3', 207 | 208 | __static__field__string__edit__delete__add__read__StreetAddress1: 209 | 'StreetAddress1', 210 | 211 | __static__field__string__edit__delete__add__read__StreetAddress2: 212 | 'StreetAddress2', 213 | 214 | __static__field__string__edit__delete__add__read__Suffix: 215 | 'Suffix', 216 | 217 | __static__field__string__edit__delete__add__read__Title: 218 | 'Title', 219 | 220 | __static__field__string__edit__delete__add__read__Username: 221 | 'Username', 222 | 223 | __static__field__string__read__Validated: 224 | 'Validated', 225 | 226 | __static__field__string__edit__delete__add__read__Website: 227 | 'Website', 228 | 229 | __static__field__string__edit__delete__add__read__ZipFour1: 230 | 'ZipFour1', 231 | 232 | __static__field__string__edit__delete__add__read__ZipFour2: 233 | 'ZipFour2', 234 | 235 | __static__field__string__edit__delete__add__read__ZipFour3: 236 | 'ZipFour3' 237 | 238 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/Contact.js: -------------------------------------------------------------------------------- 1 | module.exports = Contact = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds contact record data as well as custom contact fields. You will 8 | // not see the custom fields listed in the fields below, as these are custom to 9 | // each different Infusionsoft application. 10 | .class('Contact') .define({ 11 | 12 | __static__field__string__edit__delete__add__read__Address1Type: 13 | 'Address1Type', 14 | 15 | __static__field__string__edit__delete__add__read__Address2Street1: 16 | 'Address2Street1', 17 | 18 | __static__field__string__edit__delete__add__read__Address2Street2: 19 | 'Address2Street2', 20 | 21 | __static__field__string__edit__delete__add__read__Address2Type: 22 | 'Address2Type', 23 | 24 | __static__field__string__edit__delete__add__read__Address3Street1: 25 | 'Address3Street1', 26 | 27 | __static__field__string__edit__delete__add__read__Address3Street2: 28 | 'Address3Street2', 29 | 30 | __static__field__string__edit__delete__add__read__Address3Type: 31 | 'Address3Type', 32 | 33 | __static__field__datetime__edit__delete__add__read__Anniversary: 34 | 'Anniversary', 35 | 36 | __static__field__string__edit__delete__add__read__AssistantName: 37 | 'AssistantName', 38 | 39 | __static__field__string__edit__delete__add__read__AssistantPhone: 40 | 'AssistantPhone', 41 | 42 | __static__field__string__edit__delete__add__read__BillingInformation: 43 | 'BillingInformation', 44 | 45 | __static__field__datetime__edit__delete__add__read__Birthday: 46 | 'Birthday', 47 | 48 | __static__field__string__edit__delete__add__read__City: 49 | 'City', 50 | 51 | __static__field__string__edit__delete__add__read__City2: 52 | 'City2', 53 | 54 | __static__field__string__edit__delete__add__read__City3: 55 | 'City3', 56 | 57 | __static__field__string__edit__delete__add__read__Company: 58 | 'Company', 59 | 60 | __static__field__number__edit__delete__add__read__AccountId: 61 | 'AccountId', 62 | 63 | __static__field__number__edit__delete__add__read__CompanyID: 64 | 'CompanyID', 65 | 66 | __static__field__string__edit__delete__add__read__ContactNotes: 67 | 'ContactNotes', 68 | 69 | __static__field__string__edit__delete__add__read__ContactType: 70 | 'ContactType', 71 | 72 | __static__field__string__edit__delete__add__read__Country: 73 | 'Country', 74 | 75 | __static__field__string__edit__delete__add__read__Country2: 76 | 'Country2', 77 | 78 | __static__field__string__edit__delete__add__read__Country3: 79 | 'Country3', 80 | 81 | __static__field__number__read__CreatedBy: 82 | 'CreatedBy', 83 | 84 | __static__field__datetime__read__DateCreated: 85 | 'DateCreated', 86 | 87 | __static__field__string__edit__delete__add__read__Email: 88 | 'Email', 89 | 90 | __static__field__string__edit__delete__add__read__EmailAddress2: 91 | 'EmailAddress2', 92 | 93 | __static__field__string__edit__delete__add__read__EmailAddress3: 94 | 'EmailAddress3', 95 | 96 | __static__field__string__edit__delete__add__read__Fax1: 97 | 'Fax1', 98 | 99 | __static__field__string__edit__delete__add__read__Fax1Type: 100 | 'Fax1Type', 101 | 102 | __static__field__string__edit__delete__add__read__Fax2: 103 | 'Fax2', 104 | 105 | __static__field__string__edit__delete__add__read__Fax2Type: 106 | 'Fax2Type', 107 | 108 | __static__field__string__edit__delete__add__read__FirstName: 109 | 'FirstName', 110 | 111 | __static__field__string__read__Groups: 112 | 'Groups', 113 | 114 | __static__field__primary__number__read__Id: 115 | 'Id', 116 | 117 | __static__field__string__edit__delete__add__read__JobTitle: 118 | 'JobTitle', 119 | 120 | __static__field__string__edit__delete__add__read__LastName: 121 | 'LastName', 122 | 123 | __static__field__datetime__read__LastUpdated: 124 | 'LastUpdated', 125 | 126 | __static__field__number__read__LastUpdatedBy: 127 | 'LastUpdatedBy', 128 | 129 | __static__field__string__edit__add__read__Leadsource: 130 | 'Leadsource', 131 | 132 | __static__field__number__edit__add__read__LeadSourceId: 133 | 'LeadSourceId', 134 | 135 | __static__field__string__edit__delete__add__read__MiddleName: 136 | 'MiddleName', 137 | 138 | __static__field__string__edit__delete__add__read__Nickname: 139 | 'Nickname', 140 | 141 | __static__field__number__edit__delete__add__read__OwnerID: 142 | 'OwnerID', 143 | 144 | __static__field__string__edit__delete__add__read__Password: 145 | 'Password', 146 | 147 | __static__field__string__edit__delete__add__read__Phone1: 148 | 'Phone1', 149 | 150 | __static__field__string__edit__delete__add__read__Phone1Ext: 151 | 'Phone1Ext', 152 | 153 | __static__field__string__edit__delete__add__read__Phone1Type: 154 | 'Phone1Type', 155 | 156 | __static__field__string__edit__delete__add__read__Phone2: 157 | 'Phone2', 158 | 159 | __static__field__string__edit__delete__add__read__Phone2Ext: 160 | 'Phone2Ext', 161 | 162 | __static__field__string__edit__delete__add__read__Phone2Type: 163 | 'Phone2Type', 164 | 165 | __static__field__string__edit__delete__add__read__Phone3: 166 | 'Phone3', 167 | 168 | __static__field__string__edit__delete__add__read__Phone3Ext: 169 | 'Phone3Ext', 170 | 171 | __static__field__string__edit__delete__add__read__Phone3Type: 172 | 'Phone3Type', 173 | 174 | __static__field__string__edit__delete__add__read__Phone4: 175 | 'Phone4', 176 | 177 | __static__field__string__edit__delete__add__read__Phone4Ext: 178 | 'Phone4Ext', 179 | 180 | __static__field__string__edit__delete__add__read__Phone4Type: 181 | 'Phone4Type', 182 | 183 | __static__field__string__edit__delete__add__read__Phone5: 184 | 'Phone5', 185 | 186 | __static__field__string__edit__delete__add__read__Phone5Ext: 187 | 'Phone5Ext', 188 | 189 | __static__field__string__edit__delete__add__read__Phone5Type: 190 | 'Phone5Type', 191 | 192 | __static__field__string__edit__delete__add__read__PostalCode: 193 | 'PostalCode', 194 | 195 | __static__field__string__edit__delete__add__read__PostalCode2: 196 | 'PostalCode2', 197 | 198 | __static__field__string__edit__delete__add__read__PostalCode3: 199 | 'PostalCode3', 200 | 201 | __static__field__string__edit__delete__add__read__ReferralCode: 202 | 'ReferralCode', 203 | 204 | __static__field__string__edit__delete__add__read__SpouseName: 205 | 'SpouseName', 206 | 207 | __static__field__string__edit__delete__add__read__State: 208 | 'State', 209 | 210 | __static__field__string__edit__delete__add__read__State2: 211 | 'State2', 212 | 213 | __static__field__string__edit__delete__add__read__State3: 214 | 'State3', 215 | 216 | __static__field__string__edit__delete__add__read__StreetAddress1: 217 | 'StreetAddress1', 218 | 219 | __static__field__string__edit__delete__add__read__StreetAddress2: 220 | 'StreetAddress2', 221 | 222 | __static__field__string__edit__delete__add__read__Suffix: 223 | 'Suffix', 224 | 225 | __static__field__string__edit__delete__add__read__Title: 226 | 'Title', 227 | 228 | __static__field__string__edit__delete__add__read__Username: 229 | 'Username', 230 | 231 | __static__field__string__read__Validated: 232 | 'Validated', 233 | 234 | __static__field__string__edit__delete__add__read__Website: 235 | 'Website', 236 | 237 | __static__field__string__edit__delete__add__read__ZipFour1: 238 | 'ZipFour1', 239 | 240 | __static__field__string__edit__delete__add__read__ZipFour2: 241 | 'ZipFour2', 242 | 243 | __static__field__string__edit__delete__add__read__ZipFour3: 244 | 'ZipFour3' 245 | 246 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/ContactAction.js: -------------------------------------------------------------------------------- 1 | module.exports = ContactAction = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds data for tasks, notes, and appointments within Infusionsoft. 8 | .class('ContactAction') .define({ 9 | 10 | __static__field__primary__number__read__Id: 11 | 'Id', 12 | 13 | __static__field__number__edit__delete__add__read__ContactId: 14 | 'ContactId', 15 | 16 | __static__field__number__edit__delete__add__read__OpportunityId: 17 | 'OpportunityId', 18 | 19 | __static__field__string__edit__delete__add__read__ActionType: 20 | 'ActionType', 21 | 22 | __static__field__string__edit__delete__add__read__ActionDescription: 23 | 'ActionDescription', 24 | 25 | __static__field__datetime__edit__delete__add__read__CreationDate: 26 | 'CreationDate', 27 | 28 | __static__field__string__edit__delete__add__read__CreationNotes: 29 | 'CreationNotes', 30 | 31 | __static__field__datetime__edit__delete__add__read__CompletionDate: 32 | 'CompletionDate', 33 | 34 | __static__field__datetime__edit__delete__add__read__ActionDate: 35 | 'ActionDate', 36 | 37 | __static__field__datetime__edit__delete__add__read__EndDate: 38 | 'EndDate', 39 | 40 | __static__field__datetime__edit__delete__add__read__PopupDate: 41 | 'PopupDate', 42 | 43 | __static__field__number__edit__delete__add__read__UserID: 44 | 'UserID', 45 | 46 | __static__field__number__edit__delete__add__read__Accepted: 47 | 'Accepted', 48 | 49 | __static__field__number__edit__delete__add__read__CreatedBy: 50 | 'CreatedBy', 51 | 52 | __static__field__datetime__read__LastUpdated: 53 | 'LastUpdated', 54 | 55 | __static__field__number__read__LastUpdatedBy: 56 | 'LastUpdatedBy', 57 | 58 | __static__field__number__edit__delete__add__read__Priority: 59 | 'Priority', 60 | 61 | __static__field__number__edit__delete__add__read__IsAppointment: 62 | 'IsAppointment' 63 | 64 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/ContactGroup.js: -------------------------------------------------------------------------------- 1 | module.exports = ContactGroup = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds data for the tags you have created within Infusionsoft. In the 8 | // Infusionsoft "ice age" tags were referred to as "groups", thus the table name. 9 | .class('ContactGroup') .define({ 10 | 11 | __static__field__primary__number__read__Id: 12 | 'Id', 13 | 14 | __static__field__string__edit__add__read__GroupName: 15 | 'GroupName', 16 | 17 | __static__field__number__edit__add__read__GroupCategoryId: 18 | 'GroupCategoryId', 19 | 20 | __static__field__string__edit__add__read__GroupDescription: 21 | 'GroupDescription' 22 | 23 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/ContactGroupAssign.js: -------------------------------------------------------------------------------- 1 | module.exports = ContactGroupAssign = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table has one entry for each tag a single contact has. If you have one 8 | // contact with five tags, you will find five entries in this table for that given 9 | // contact 10 | .class('ContactGroupAssign') .define({ 11 | 12 | __static__field__number__read__GroupId: 13 | 'GroupId', 14 | 15 | __static__field__string__read__ContactGroup: 16 | 'ContactGroup', 17 | 18 | __static__field__datetime__read__DateCreated: 19 | 'DateCreated', 20 | 21 | __static__field__number__read__ContactId: 22 | 'ContactId' 23 | 24 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/ContactGroupCategory.js: -------------------------------------------------------------------------------- 1 | module.exports = ContactGroupCategory = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds tag categories. For each category you have in your system, 8 | // there will be one row in this table. 9 | .class('ContactGroupCategory') .define({ 10 | 11 | __static__field__primary__number__read__Id: 12 | 'Id', 13 | 14 | __static__field__string__edit__add__read__CategoryName: 15 | 'CategoryName', 16 | 17 | __static__field__string__edit__add__read__CategoryDescription: 18 | 'CategoryDescription' 19 | 20 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/CreditCard.js: -------------------------------------------------------------------------------- 1 | module.exports = CreditCard = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds all data tied to credit cards. For each credit card in the 8 | // system there will be one row in this table. 9 | .class('CreditCard') .define({ 10 | 11 | __static__field__primary__number__read__Id: 12 | 'Id', 13 | 14 | __static__field__number__add__read__ContactId: 15 | 'ContactId', 16 | 17 | __static__field__string__edit__add__read__BillName: 18 | 'BillName', 19 | 20 | __static__field__string__edit__add__read__FirstName: 21 | 'FirstName', 22 | 23 | __static__field__string__edit__add__read__LastName: 24 | 'LastName', 25 | 26 | __static__field__string__edit__add__read__PhoneNumber: 27 | 'PhoneNumber', 28 | 29 | __static__field__string__edit__add__read__Email: 30 | 'Email', 31 | 32 | __static__field__string__edit__add__read__BillAddress1: 33 | 'BillAddress1', 34 | 35 | __static__field__string__edit__add__read__BillAddress2: 36 | 'BillAddress2', 37 | 38 | __static__field__string__edit__add__read__BillCity: 39 | 'BillCity', 40 | 41 | __static__field__string__edit__add__read__BillState: 42 | 'BillState', 43 | 44 | __static__field__string__edit__add__read__BillZip: 45 | 'BillZip', 46 | 47 | __static__field__string__edit__add__read__BillCountry: 48 | 'BillCountry', 49 | 50 | __static__field__string__edit__add__read__ShipFirstName: 51 | 'ShipFirstName', 52 | 53 | __static__field__string__edit__add__read__ShipMiddleName: 54 | 'ShipMiddleName', 55 | 56 | __static__field__string__edit__add__read__ShipLastName: 57 | 'ShipLastName', 58 | 59 | __static__field__string__edit__add__read__ShipCompanyName: 60 | 'ShipCompanyName', 61 | 62 | __static__field__string__edit__add__read__ShipPhoneNumber: 63 | 'ShipPhoneNumber', 64 | 65 | __static__field__string__edit__add__read__ShipAddress1: 66 | 'ShipAddress1', 67 | 68 | __static__field__string__edit__add__read__ShipAddress2: 69 | 'ShipAddress2', 70 | 71 | __static__field__string__edit__add__read__ShipCity: 72 | 'ShipCity', 73 | 74 | __static__field__string__edit__add__read__ShipState: 75 | 'ShipState', 76 | 77 | __static__field__string__edit__add__read__ShipZip: 78 | 'ShipZip', 79 | 80 | __static__field__string__edit__add__read__ShipCountry: 81 | 'ShipCountry', 82 | 83 | __static__field__string__edit__add__read__ShipName: 84 | 'ShipName', 85 | 86 | __static__field__string__edit__add__read__NameOnCard: 87 | 'NameOnCard', 88 | 89 | __static__field__string__add__CardNumber: 90 | 'CardNumber', 91 | 92 | __static__field__string__read__Last4: 93 | 'Last4', 94 | 95 | __static__field__string__edit__add__read__ExpirationMonth: 96 | 'ExpirationMonth', 97 | 98 | __static__field__string__edit__add__read__ExpirationYear: 99 | 'ExpirationYear', 100 | 101 | __static__field__string__edit__add__CVV2: 102 | 'CVV2', 103 | 104 | __static__field__number__read__Status: 105 | 'Status', 106 | 107 | __static__field__string__edit__add__read__CardType: 108 | 'CardType', 109 | 110 | __static__field__string__edit__add__read__StartDateMonth: 111 | 'StartDateMonth', 112 | 113 | __static__field__string__edit__add__read__StartDateYear: 114 | 'StartDateYear', 115 | 116 | __static__field__string__edit__add__read__MaestroIssueNumber: 117 | 'MaestroIssueNumber' 118 | 119 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/DataFormField.js: -------------------------------------------------------------------------------- 1 | module.exports = DataFormField = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds custom fields. For each field there will be one row in this 8 | // table. 9 | .class('DataFormField') .define({ 10 | 11 | __static__field__number__read__DataType: 12 | 'DataType', 13 | 14 | __static__field__primary__number__read__Id: 15 | 'Id', 16 | 17 | __static__field__number__read__FormId: 18 | 'FormId', 19 | 20 | __static__field__number__edit__read__GroupId: 21 | 'GroupId', 22 | 23 | __static__field__string__edit__read__Name: 24 | 'Name', 25 | 26 | __static__field__string__edit__read__Label: 27 | 'Label', 28 | 29 | __static__field__string__edit__read__DefaultValue: 30 | 'DefaultValue', 31 | 32 | __static__field__string__edit__read__Values: 33 | 'Values', 34 | 35 | __static__field__number__edit__read__ListRows: 36 | 'ListRows' 37 | 38 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/DataFormGroup.js: -------------------------------------------------------------------------------- 1 | module.exports = DataFormGroup = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds the headers that custom fields are displayed under. 8 | .class('DataFormGroup') .define({ 9 | 10 | __static__field__primary__number__read__Id: 11 | 'Id', 12 | 13 | __static__field__number__read__TabId: 14 | 'TabId', 15 | 16 | __static__field__string__read__Name: 17 | 'Name' 18 | 19 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/DataFormTab.js: -------------------------------------------------------------------------------- 1 | module.exports = DataFormTab = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds your custom field tabs. These tabs are where your custom 8 | // fields sit on contact records, orders, opportunities, etc. 9 | .class('DataFormTab') .define({ 10 | 11 | __static__field__primary__number__read__Id: 12 | 'Id', 13 | 14 | __static__field__number__read__FormId: 15 | 'FormId', 16 | 17 | __static__field__string__read__TabName: 18 | 'TabName' 19 | 20 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/Expense.js: -------------------------------------------------------------------------------- 1 | module.exports = Expense = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // These are the expenses incurred by opportunities and leadsources. 8 | .class('Expense') .define({ 9 | 10 | __static__field__primary__number__read__Id: 11 | 'Id', 12 | 13 | __static__field__number__read__ContactId: 14 | 'ContactId', 15 | 16 | __static__field__enum__read__ExpenseType: 17 | 'ExpenseType', 18 | 19 | __static__field__number__read__TypeId: 20 | 'TypeId', 21 | 22 | __static__field__number__read__ExpenseAmt: 23 | 'ExpenseAmt', 24 | 25 | __static__field__datetime__read__DateIncurred: 26 | 'DateIncurred' 27 | 28 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/FileBox.js: -------------------------------------------------------------------------------- 1 | module.exports = FileBox = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds data related to the files stored within your company or 8 | // contact fileboxes. 9 | .class('FileBox') .define({ 10 | 11 | __static__field__primary__number__read__Id: 12 | 'Id', 13 | 14 | __static__field__string__read__FileName: 15 | 'FileName', 16 | 17 | __static__field__string__read__Extension: 18 | 'Extension', 19 | 20 | __static__field__number__read__FileSize: 21 | 'FileSize', 22 | 23 | __static__field__number__read__ContactId: 24 | 'ContactId', 25 | 26 | __static__field__number__read__Public: 27 | 'Public' 28 | 29 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/GroupAssign.js: -------------------------------------------------------------------------------- 1 | module.exports = GroupAssign = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds the data related to what user groups your system users are a 8 | // part of. 9 | .class('GroupAssign') .define({ 10 | 11 | __static__field__primary__number__read__Id: 12 | 'Id', 13 | 14 | __static__field__number__read__UserId: 15 | 'UserId', 16 | 17 | __static__field__number__read__GroupId: 18 | 'GroupId', 19 | 20 | __static__field__number__read__Admin: 21 | 'Admin' 22 | 23 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/Invoice.js: -------------------------------------------------------------------------------- 1 | module.exports = Invoice = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds data related to an individual invoice. Remember that one order 8 | // (Job) has one invoice, while one subscription (RecurringOrder) has multiple 9 | // invoices. 10 | .class('Invoice') .define({ 11 | 12 | __static__field__primary__number__read__Id: 13 | 'Id', 14 | 15 | __static__field__number__read__ContactId: 16 | 'ContactId', 17 | 18 | __static__field__number__read__JobId: 19 | 'JobId', 20 | 21 | __static__field__datetime__read__DateCreated: 22 | 'DateCreated', 23 | 24 | __static__field__number__read__InvoiceTotal: 25 | 'InvoiceTotal', 26 | 27 | __static__field__number__read__TotalPaid: 28 | 'TotalPaid', 29 | 30 | __static__field__number__read__TotalDue: 31 | 'TotalDue', 32 | 33 | __static__field__number__read__PayStatus: 34 | 'PayStatus', 35 | 36 | __static__field__number__read__CreditStatus: 37 | 'CreditStatus', 38 | 39 | __static__field__number__read__RefundStatus: 40 | 'RefundStatus', 41 | 42 | __static__field__number__read__PayPlanStatus: 43 | 'PayPlanStatus', 44 | 45 | __static__field__number__read__AffiliateId: 46 | 'AffiliateId', 47 | 48 | __static__field__number__read__LeadAffiliateId: 49 | 'LeadAffiliateId', 50 | 51 | __static__field__string__read__PromoCode: 52 | 'PromoCode', 53 | 54 | __static__field__string__read__InvoiceType: 55 | 'InvoiceType', 56 | 57 | __static__field__string__read__Description: 58 | 'Description', 59 | 60 | __static__field__string__read__ProductSold: 61 | 'ProductSold', 62 | 63 | __static__field__number__read__Synced: 64 | 'Synced' 65 | 66 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/InvoiceItem.js: -------------------------------------------------------------------------------- 1 | module.exports = InvoiceItem = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table has one row for each "line item" found on an invoice. If there is an 8 | // order for one product that also includes tax and shipping, you will find three 9 | // rows on this table related to that particular InvoiceId. 10 | .class('InvoiceItem') .define({ 11 | 12 | __static__field__primary__number__read__Id: 13 | 'Id', 14 | 15 | __static__field__number__edit__add__read__InvoiceId: 16 | 'InvoiceId', 17 | 18 | __static__field__number__read__OrderItemId: 19 | 'OrderItemId', 20 | 21 | __static__field__number__edit__add__read__InvoiceAmt: 22 | 'InvoiceAmt', 23 | 24 | __static__field__number__edit__add__read__Discount: 25 | 'Discount', 26 | 27 | __static__field__datetime__read__DateCreated: 28 | 'DateCreated', 29 | 30 | __static__field__string__edit__add__read__Description: 31 | 'Description', 32 | 33 | __static__field__number__edit__add__read__CommissionStatus: 34 | 'CommissionStatus' 35 | 36 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/InvoicePayment.js: -------------------------------------------------------------------------------- 1 | module.exports = InvoicePayment = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds one entry for each payment towards a particular invoice. 8 | .class('InvoicePayment') .define({ 9 | 10 | __static__field__primary__number__read__Id: 11 | 'Id', 12 | 13 | __static__field__number__read__InvoiceId: 14 | 'InvoiceId', 15 | 16 | __static__field__number__read__Amt: 17 | 'Amt', 18 | 19 | __static__field__datetime__read__PayDate: 20 | 'PayDate', 21 | 22 | __static__field__string__read__PayStatus: 23 | 'PayStatus', 24 | 25 | __static__field__number__read__PaymentId: 26 | 'PaymentId', 27 | 28 | __static__field__number__read__SkipCommission: 29 | 'SkipCommission' 30 | 31 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/Job.js: -------------------------------------------------------------------------------- 1 | module.exports = Job = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds one-time order data (not subscriptions). 8 | .class('Job') .define({ 9 | 10 | __static__field__primary__number__read__Id: 11 | 'Id', 12 | 13 | __static__field__string__edit__add__read__JobTitle: 14 | 'JobTitle', 15 | 16 | __static__field__number__edit__add__read__ContactId: 17 | 'ContactId', 18 | 19 | __static__field__datetime__edit__add__read__StartDate: 20 | 'StartDate', 21 | 22 | __static__field__datetime__edit__add__read__DueDate: 23 | 'DueDate', 24 | 25 | __static__field__string__edit__add__read__JobNotes: 26 | 'JobNotes', 27 | 28 | __static__field__number__edit__add__read__ProductId: 29 | 'ProductId', 30 | 31 | __static__field__string__edit__add__read__JobStatus: 32 | 'JobStatus', 33 | 34 | __static__field__datetime__read__DateCreated: 35 | 'DateCreated', 36 | 37 | __static__field__number__read__JobRecurringId: 38 | 'JobRecurringId', 39 | 40 | __static__field__string__edit__add__read__OrderType: 41 | 'OrderType', 42 | 43 | __static__field__number__edit__add__read__OrderStatus: 44 | 'OrderStatus', 45 | 46 | __static__field__string__edit__add__read__ShipFirstName: 47 | 'ShipFirstName', 48 | 49 | __static__field__string__edit__add__read__ShipMiddleName: 50 | 'ShipMiddleName', 51 | 52 | __static__field__string__edit__add__read__ShipLastName: 53 | 'ShipLastName', 54 | 55 | __static__field__string__edit__add__read__ShipCompany: 56 | 'ShipCompany', 57 | 58 | __static__field__string__edit__add__read__ShipPhone: 59 | 'ShipPhone', 60 | 61 | __static__field__string__edit__add__read__ShipStreet1: 62 | 'ShipStreet1', 63 | 64 | __static__field__string__edit__add__read__ShipStreet2: 65 | 'ShipStreet2', 66 | 67 | __static__field__string__edit__add__read__ShipCity: 68 | 'ShipCity', 69 | 70 | __static__field__string__edit__add__read__ShipState: 71 | 'ShipState', 72 | 73 | __static__field__string__edit__add__read__ShipZip: 74 | 'ShipZip', 75 | 76 | __static__field__string__edit__add__read__ShipCountry: 77 | 'ShipCountry' 78 | 79 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/JobRecurringInstance.js: -------------------------------------------------------------------------------- 1 | module.exports = JobRecurringInstance = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds data related to one instance of a subscription. For each 8 | // recurring of the subscription, you will find one entry in this table. 9 | .class('JobRecurringInstance') .define({ 10 | 11 | __static__field__primary__number__read__Id: 12 | 'Id', 13 | 14 | __static__field__number__edit__add__read__RecurringId: 15 | 'RecurringId', 16 | 17 | __static__field__number__edit__add__read__InvoiceItemId: 18 | 'InvoiceItemId', 19 | 20 | __static__field__number__edit__add__read__Status: 21 | 'Status', 22 | 23 | __static__field__number__edit__add__read__AutoCharge: 24 | 'AutoCharge', 25 | 26 | __static__field__datetime__edit__add__read__StartDate: 27 | 'StartDate', 28 | 29 | __static__field__datetime__edit__add__read__EndDate: 30 | 'EndDate', 31 | 32 | __static__field__datetime__read__DateCreated: 33 | 'DateCreated', 34 | 35 | __static__field__string__edit__add__read__Description: 36 | 'Description' 37 | 38 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/Lead.js: -------------------------------------------------------------------------------- 1 | module.exports = Lead = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds opportunity record data. 8 | .class('Lead') .define({ 9 | 10 | __static__field__primary__number__read__Id: 11 | 'Id', 12 | 13 | __static__field__string__edit__delete__add__read__OpportunityTitle: 14 | 'OpportunityTitle', 15 | 16 | __static__field__number__edit__delete__add__read__ContactID: 17 | 'ContactID', 18 | 19 | __static__field__number__edit__delete__add__read__AffiliateId: 20 | 'AffiliateId', 21 | 22 | __static__field__number__edit__delete__add__read__UserID: 23 | 'UserID', 24 | 25 | __static__field__number__edit__delete__add__read__StageID: 26 | 'StageID', 27 | 28 | __static__field__number__edit__delete__add__read__StatusID: 29 | 'StatusID', 30 | 31 | __static__field__string__add__read__Leadsource: 32 | 'Leadsource', 33 | 34 | __static__field__string__edit__delete__add__read__Objection: 35 | 'Objection', 36 | 37 | __static__field__number__edit__delete__add__read__ProjectedRevenueLow: 38 | 'ProjectedRevenueLow', 39 | 40 | __static__field__number__edit__delete__add__read__ProjectedRevenueHigh: 41 | 'ProjectedRevenueHigh', 42 | 43 | __static__field__string__edit__delete__add__read__OpportunityNotes: 44 | 'OpportunityNotes', 45 | 46 | __static__field__datetime__edit__delete__read__DateCreated: 47 | 'DateCreated', 48 | 49 | __static__field__datetime__edit__delete__read__LastUpdated: 50 | 'LastUpdated', 51 | 52 | __static__field__number__edit__delete__add__read__LastUpdatedBy: 53 | 'LastUpdatedBy', 54 | 55 | __static__field__number__edit__delete__add__read__CreatedBy: 56 | 'CreatedBy', 57 | 58 | __static__field__datetime__edit__delete__add__read__EstimatedCloseDate: 59 | 'EstimatedCloseDate', 60 | 61 | __static__field__datetime__edit__delete__add__read__NextActionDate: 62 | 'NextActionDate', 63 | 64 | __static__field__string__edit__delete__add__read__NextActionNotes: 65 | 'NextActionNotes' 66 | 67 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/LeadSource.js: -------------------------------------------------------------------------------- 1 | module.exports = LeadSource = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds data related to each of the Leadsources you have created under 8 | // the Setup>Leadsources menu inside Infusionsoft. 9 | .class('LeadSource') .define({ 10 | 11 | __static__field__primary__number__read__Id: 12 | 'Id', 13 | 14 | __static__field__string__edit__add__read__Name: 15 | 'Name', 16 | 17 | __static__field__string__edit__add__read__Description: 18 | 'Description', 19 | 20 | __static__field__datetime__edit__add__read__StartDate: 21 | 'StartDate', 22 | 23 | __static__field__datetime__edit__add__read__EndDate: 24 | 'EndDate', 25 | 26 | __static__field__string__edit__add__read__CostPerLead: 27 | 'CostPerLead', 28 | 29 | __static__field__string__edit__add__read__Vendor: 30 | 'Vendor', 31 | 32 | __static__field__string__edit__add__read__Medium: 33 | 'Medium', 34 | 35 | __static__field__string__edit__add__read__Message: 36 | 'Message', 37 | 38 | __static__field__number__edit__add__read__LeadSourceCategoryId: 39 | 'LeadSourceCategoryId', 40 | 41 | __static__field__string__edit__add__read__Status: 42 | 'Status' 43 | 44 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/LeadSourceCategory.js: -------------------------------------------------------------------------------- 1 | module.exports = LeadSourceCategory = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | .class('LeadSourceCategory') .define({ 8 | 9 | __static__field__primary__number__read__Id: 10 | 'Id', 11 | 12 | __static__field__string__edit__add__read__Name: 13 | 'Name', 14 | 15 | __static__field__string__edit__add__read__Description: 16 | 'Description' 17 | 18 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/LeadSourceExpense.js: -------------------------------------------------------------------------------- 1 | module.exports = LeadSourceExpense = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | .class('LeadSourceExpense') .define({ 8 | 9 | __static__field__primary__number__read__Id: 10 | 'Id', 11 | 12 | __static__field__number__edit__delete__add__read__LeadSourceRecurringExpenseId: 13 | 'LeadSourceRecurringExpenseId', 14 | 15 | __static__field__number__edit__delete__add__read__LeadSourceId: 16 | 'LeadSourceId', 17 | 18 | __static__field__string__edit__delete__add__read__Title: 19 | 'Title', 20 | 21 | __static__field__string__edit__delete__add__read__Notes: 22 | 'Notes', 23 | 24 | __static__field__number__edit__delete__add__read__Amount: 25 | 'Amount', 26 | 27 | __static__field__datetime__edit__delete__add__read__DateIncurred: 28 | 'DateIncurred' 29 | 30 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/LeadSourceRecurringExpense.js: -------------------------------------------------------------------------------- 1 | module.exports = LeadSourceRecurringExpense = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | .class('LeadSourceRecurringExpense') .define({ 8 | 9 | __static__field__primary__number__read__Id: 10 | 'Id', 11 | 12 | __static__field__number__edit__delete__add__read__LeadSourceId: 13 | 'LeadSourceId', 14 | 15 | __static__field__string__edit__delete__add__read__Title: 16 | 'Title', 17 | 18 | __static__field__string__edit__delete__add__read__Notes: 19 | 'Notes', 20 | 21 | __static__field__number__edit__delete__add__read__Amount: 22 | 'Amount', 23 | 24 | __static__field__datetime__edit__delete__add__read__StartDate: 25 | 'StartDate', 26 | 27 | __static__field__datetime__edit__delete__add__read__EndDate: 28 | 'EndDate', 29 | 30 | __static__field__datetime__edit__delete__add__read__NextExpenseDate: 31 | 'NextExpenseDate' 32 | 33 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/MtgLead.js: -------------------------------------------------------------------------------- 1 | module.exports = MtgLead = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | .class('MtgLead') .define({ 8 | 9 | __static__field__primary__number__read__Id: 10 | 'Id', 11 | 12 | __static__field__datetime__read__DateAppraisalOrdered: 13 | 'DateAppraisalOrdered', 14 | 15 | __static__field__datetime__read__DateAppraisalDone: 16 | 'DateAppraisalDone', 17 | 18 | __static__field__datetime__read__DateAppraisalReceived: 19 | 'DateAppraisalReceived', 20 | 21 | __static__field__datetime__read__DateTitleOrdered: 22 | 'DateTitleOrdered', 23 | 24 | __static__field__datetime__read__DateTitleReceived: 25 | 'DateTitleReceived', 26 | 27 | __static__field__datetime__read__DateRateLocked: 28 | 'DateRateLocked', 29 | 30 | __static__field__datetime__read__DateRateLockExpires: 31 | 'DateRateLockExpires', 32 | 33 | __static__field__datetime__read__CreditReportDate: 34 | 'CreditReportDate', 35 | 36 | __static__field__datetime__read__ApplicationDate: 37 | 'ApplicationDate', 38 | 39 | __static__field__datetime__read__ActualCloseDate: 40 | 'ActualCloseDate', 41 | 42 | __static__field__datetime__read__FundingDate: 43 | 'FundingDate' 44 | 45 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/OrderItem.js: -------------------------------------------------------------------------------- 1 | module.exports = OrderItem = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds line items for one-time orders. For each product, tax, 8 | // discount, or shipping found on an order, there will be one entry in this table 9 | // found. 10 | .class('OrderItem') .define({ 11 | 12 | __static__field__primary__number__read__Id: 13 | 'Id', 14 | 15 | __static__field__number__edit__add__read__OrderId: 16 | 'OrderId', 17 | 18 | __static__field__number__edit__add__read__ProductId: 19 | 'ProductId', 20 | 21 | __static__field__number__edit__add__read__SubscriptionPlanId: 22 | 'SubscriptionPlanId', 23 | 24 | __static__field__string__edit__add__read__ItemName: 25 | 'ItemName', 26 | 27 | __static__field__number__edit__add__read__Qty: 28 | 'Qty', 29 | 30 | __static__field__number__edit__add__read__CPU: 31 | 'CPU', 32 | 33 | __static__field__number__edit__add__read__PPU: 34 | 'PPU', 35 | 36 | __static__field__string__edit__add__read__ItemDescription: 37 | 'ItemDescription', 38 | 39 | __static__field__number__edit__add__read__ItemType: 40 | 'ItemType', 41 | 42 | __static__field__string__edit__add__read__Notes: 43 | 'Notes' 44 | 45 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/PayPlan.js: -------------------------------------------------------------------------------- 1 | module.exports = PayPlan = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds the PayPlan data tied to each invoice in the system. 8 | .class('PayPlan') .define({ 9 | 10 | __static__field__primary__number__read__Id: 11 | 'Id', 12 | 13 | __static__field__number__read__InvoiceId: 14 | 'InvoiceId', 15 | 16 | __static__field__datetime__read__DateDue: 17 | 'DateDue', 18 | 19 | __static__field__number__read__AmtDue: 20 | 'AmtDue', 21 | 22 | __static__field__number__read__Type: 23 | 'Type', 24 | 25 | __static__field__datetime__read__InitDate: 26 | 'InitDate', 27 | 28 | __static__field__datetime__read__StartDate: 29 | 'StartDate', 30 | 31 | __static__field__number__read__FirstPayAmt: 32 | 'FirstPayAmt' 33 | 34 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/PayPlanItem.js: -------------------------------------------------------------------------------- 1 | module.exports = PayPlanItem = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds the data that tells our system what portion of a payment plan 8 | // is due on each date. 9 | .class('PayPlanItem') .define({ 10 | 11 | __static__field__primary__number__read__Id: 12 | 'Id', 13 | 14 | __static__field__number__read__PayPlanId: 15 | 'PayPlanId', 16 | 17 | __static__field__datetime__read__DateDue: 18 | 'DateDue', 19 | 20 | __static__field__number__read__AmtDue: 21 | 'AmtDue', 22 | 23 | __static__field__number__read__Status: 24 | 'Status', 25 | 26 | __static__field__number__read__AmtPaid: 27 | 'AmtPaid' 28 | 29 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/Payment.js: -------------------------------------------------------------------------------- 1 | module.exports = Payment = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds each of the payments or refunds placed. This includes all 8 | // types of payments. Cash, Refund, check, PayPal, etc. 9 | .class('Payment') .define({ 10 | 11 | __static__field__primary__number__read__Id: 12 | 'Id', 13 | 14 | __static__field__datetime__read__PayDate: 15 | 'PayDate', 16 | 17 | __static__field__number__read__UserId: 18 | 'UserId', 19 | 20 | __static__field__number__read__PayAmt: 21 | 'PayAmt', 22 | 23 | __static__field__string__read__PayType: 24 | 'PayType', 25 | 26 | __static__field__number__read__ContactId: 27 | 'ContactId', 28 | 29 | __static__field__string__read__PayNote: 30 | 'PayNote', 31 | 32 | __static__field__number__read__InvoiceId: 33 | 'InvoiceId', 34 | 35 | __static__field__number__read__RefundId: 36 | 'RefundId', 37 | 38 | __static__field__number__read__ChargeId: 39 | 'ChargeId', 40 | 41 | __static__field__number__read__Commission: 42 | 'Commission', 43 | 44 | __static__field__number__read__Synced: 45 | 'Synced' 46 | 47 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/Product.js: -------------------------------------------------------------------------------- 1 | module.exports = Product = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds your one-time products (non subscriptions). 8 | .class('Product') .define({ 9 | 10 | __static__field__primary__number__read__Id: 11 | 'Id', 12 | 13 | __static__field__string__edit__add__read__ProductName: 14 | 'ProductName', 15 | 16 | __static__field__number__edit__add__read__ProductPrice: 17 | 'ProductPrice', 18 | 19 | __static__field__string__edit__add__read__Sku: 20 | 'Sku', 21 | 22 | __static__field__string__edit__add__read__ShortDescription: 23 | 'ShortDescription', 24 | 25 | __static__field__number__edit__add__read__Taxable: 26 | 'Taxable', 27 | 28 | __static__field__number__edit__add__read__CountryTaxable: 29 | 'CountryTaxable', 30 | 31 | __static__field__number__edit__add__read__StateTaxable: 32 | 'StateTaxable', 33 | 34 | __static__field__number__edit__add__read__CityTaxable: 35 | 'CityTaxable', 36 | 37 | __static__field__number__edit__add__read__Weight: 38 | 'Weight', 39 | 40 | __static__field__number__edit__add__read__IsPackage: 41 | 'IsPackage', 42 | 43 | __static__field__number__edit__add__read__NeedsDigitalDelivery: 44 | 'NeedsDigitalDelivery', 45 | 46 | __static__field__string__edit__add__read__Description: 47 | 'Description', 48 | 49 | __static__field__number__edit__add__read__HideInStore: 50 | 'HideInStore', 51 | 52 | __static__field__number__edit__add__read__Status: 53 | 'Status', 54 | 55 | __static__field__string__edit__add__read__TopHTML: 56 | 'TopHTML', 57 | 58 | __static__field__string__edit__add__read__BottomHTML: 59 | 'BottomHTML', 60 | 61 | __static__field__string__edit__add__read__ShippingTime: 62 | 'ShippingTime', 63 | 64 | __static__field__blob__edit__add__read__LargeImage: 65 | 'LargeImage', 66 | 67 | __static__field__string__edit__add__read__InventoryNotifiee: 68 | 'InventoryNotifiee', 69 | 70 | __static__field__number__edit__add__read__InventoryLimit: 71 | 'InventoryLimit', 72 | 73 | __static__field__number__edit__add__read__Shippable: 74 | 'Shippable' 75 | 76 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/ProductCategory.js: -------------------------------------------------------------------------------- 1 | module.exports = ProductCategory = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This holds your products' categories and subcategories 8 | .class('ProductCategory') .define({ 9 | 10 | __static__field__primary__number__read__Id: 11 | 'Id', 12 | 13 | __static__field__string__edit__delete__add__read__CategoryDisplayName: 14 | 'CategoryDisplayName', 15 | 16 | __static__field__blob__edit__delete__add__read__CategoryImage: 17 | 'CategoryImage', 18 | 19 | __static__field__number__edit__delete__add__read__CategoryOrder: 20 | 'CategoryOrder', 21 | 22 | __static__field__number__edit__delete__add__read__ParentId: 23 | 'ParentId' 24 | 25 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/ProductCategoryAssign.js: -------------------------------------------------------------------------------- 1 | module.exports = ProductCategoryAssign = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds the categories that each product has been assigned to be a 8 | // part of 9 | .class('ProductCategoryAssign') .define({ 10 | 11 | __static__field__primary__number__read__Id: 12 | 'Id', 13 | 14 | __static__field__number__edit__add__read__ProductId: 15 | 'ProductId', 16 | 17 | __static__field__number__edit__add__read__ProductCategoryId: 18 | 'ProductCategoryId' 19 | 20 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/ProductInterest.js: -------------------------------------------------------------------------------- 1 | module.exports = ProductInterest = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds data from the Product/Subscription tab on Opportunities. 8 | .class('ProductInterest') .define({ 9 | 10 | __static__field__primary__number__read__Id: 11 | 'Id', 12 | 13 | __static__field__number__edit__delete__add__read__ObjectId: 14 | 'ObjectId', 15 | 16 | __static__field__string__edit__delete__add__read__ObjType: 17 | 'ObjType', 18 | 19 | __static__field__number__edit__delete__add__read__ProductId: 20 | 'ProductId', 21 | 22 | __static__field__string__edit__delete__add__read__ProductType: 23 | 'ProductType', 24 | 25 | __static__field__number__edit__delete__add__read__Qty: 26 | 'Qty', 27 | 28 | __static__field__number__edit__delete__add__read__DiscountPercent: 29 | 'DiscountPercent' 30 | 31 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/ProductInterestBundle.js: -------------------------------------------------------------------------------- 1 | module.exports = ProductInterestBundle = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds the product interest bundles that you have created from the 8 | // Sales Settings section inside Infusionsoft. 9 | .class('ProductInterestBundle') .define({ 10 | 11 | __static__field__primary__number__read__Id: 12 | 'Id', 13 | 14 | __static__field__string__edit__add__read__BundleName: 15 | 'BundleName', 16 | 17 | __static__field__string__edit__add__read__Description: 18 | 'Description' 19 | 20 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/ProductOptValue.js: -------------------------------------------------------------------------------- 1 | module.exports = ProductOptValue = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | .class('ProductOptValue') .define({ 8 | 9 | __static__field__primary__number__edit__delete__add__read__Id: 10 | 'Id', 11 | 12 | __static__field__number__edit__delete__add__read__ProductOptionId: 13 | 'ProductOptionId', 14 | 15 | __static__field__string__edit__delete__add__read__Label: 16 | 'Label', 17 | 18 | __static__field__string__edit__delete__add__read__Sku: 19 | 'Sku', 20 | 21 | __static__field__number__edit__delete__add__read__IsDefault: 22 | 'IsDefault', 23 | 24 | __static__field__string__edit__delete__add__read__Name: 25 | 'Name', 26 | 27 | __static__field__number__edit__delete__add__read__OptionIndex: 28 | 'OptionIndex', 29 | 30 | __static__field__number__edit__delete__add__read__PriceAdjustment: 31 | 'PriceAdjustment' 32 | 33 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/ProductOption.js: -------------------------------------------------------------------------------- 1 | module.exports = ProductOption = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | .class('ProductOption') .define({ 8 | 9 | __static__field__primary__number__edit__delete__add__read__Id: 10 | 'Id', 11 | 12 | __static__field__number__edit__delete__add__read__ProductId: 13 | 'ProductId', 14 | 15 | __static__field__string__edit__delete__add__read__Label: 16 | 'Label', 17 | 18 | __static__field__number__edit__delete__add__read__IsRequired: 19 | 'IsRequired', 20 | 21 | __static__field__number__edit__delete__add__read__Order: 22 | 'Order', 23 | 24 | __static__field__string__edit__delete__add__read__Name: 25 | 'Name', 26 | 27 | __static__field__number__edit__delete__add__read__MaxChars: 28 | 'MaxChars', 29 | 30 | __static__field__number__edit__delete__add__read__CanEndWith: 31 | 'CanEndWith', 32 | 33 | __static__field__number__edit__delete__add__read__MinChars: 34 | 'MinChars', 35 | 36 | __static__field__number__edit__delete__add__read__AllowSpaces: 37 | 'AllowSpaces', 38 | 39 | __static__field__number__edit__delete__add__read__TextMessage: 40 | 'TextMessage', 41 | 42 | __static__field__enum__edit__delete__add__read__OptionType: 43 | 'OptionType', 44 | 45 | __static__field__string__edit__delete__add__read__CanContain: 46 | 'CanContain', 47 | 48 | __static__field__string__edit__delete__add__read__CanStartWith: 49 | 'CanStartWith' 50 | 51 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/RecurringOrder.js: -------------------------------------------------------------------------------- 1 | module.exports = RecurringOrder = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds all the subscriptions generated on contacts. For each contact 8 | // that has a subscription you will find a row in this table. 9 | .class('RecurringOrder') .define({ 10 | 11 | __static__field__primary__number__read__Id: 12 | 'Id', 13 | 14 | __static__field__number__edit__add__read__ContactId: 15 | 'ContactId', 16 | 17 | __static__field__number__read__OriginatingOrderId: 18 | 'OriginatingOrderId', 19 | 20 | __static__field__number__edit__add__read__ProgramId: 21 | 'ProgramId', 22 | 23 | __static__field__number__edit__add__read__SubscriptionPlanId: 24 | 'SubscriptionPlanId', 25 | 26 | __static__field__number__edit__add__read__ProductId: 27 | 'ProductId', 28 | 29 | __static__field__datetime__edit__add__read__StartDate: 30 | 'StartDate', 31 | 32 | __static__field__datetime__edit__add__read__EndDate: 33 | 'EndDate', 34 | 35 | __static__field__datetime__edit__add__read__LastBillDate: 36 | 'LastBillDate', 37 | 38 | __static__field__datetime__read__NextBillDate: 39 | 'NextBillDate', 40 | 41 | __static__field__datetime__edit__add__read__PaidThruDate: 42 | 'PaidThruDate', 43 | 44 | __static__field__string__edit__add__read__BillingCycle: 45 | 'BillingCycle', 46 | 47 | __static__field__number__edit__add__read__Frequency: 48 | 'Frequency', 49 | 50 | __static__field__number__edit__add__read__BillingAmt: 51 | 'BillingAmt', 52 | 53 | __static__field__string__edit__add__read__Status: 54 | 'Status', 55 | 56 | __static__field__string__edit__add__read__ReasonStopped: 57 | 'ReasonStopped', 58 | 59 | __static__field__number__edit__add__read__AutoCharge: 60 | 'AutoCharge', 61 | 62 | __static__field__number__edit__add__read__CC1: 63 | 'CC1', 64 | 65 | __static__field__number__edit__add__read__CC2: 66 | 'CC2', 67 | 68 | __static__field__number__edit__add__read__NumDaysBetweenRetry: 69 | 'NumDaysBetweenRetry', 70 | 71 | __static__field__number__edit__add__read__MaxRetry: 72 | 'MaxRetry', 73 | 74 | __static__field__number__edit__add__read__MerchantAccountId: 75 | 'MerchantAccountId', 76 | 77 | __static__field__number__edit__add__read__AffiliateId: 78 | 'AffiliateId', 79 | 80 | __static__field__string__edit__add__read__PromoCode: 81 | 'PromoCode', 82 | 83 | __static__field__number__edit__add__read__LeadAffiliateId: 84 | 'LeadAffiliateId', 85 | 86 | __static__field__number__edit__add__read__Qty: 87 | 'Qty', 88 | 89 | __static__field__number__edit__add__read__ShippingOptionId: 90 | 'ShippingOptionId' 91 | 92 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/RecurringOrderWithContact.js: -------------------------------------------------------------------------------- 1 | module.exports = RecurringOrderWithContact = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This is a mirror image of the RecurringOrder table, but Contact data has been 8 | // virtually included here to save you an API call. Custom contact fields are not 9 | // retrievable via the table. 10 | .class('RecurringOrderWithContact') .define({ 11 | 12 | __static__field__number__read__RecurringOrderId: 13 | 'RecurringOrderId', 14 | 15 | __static__field__number__read__ContactId: 16 | 'ContactId', 17 | 18 | __static__field__number__read__ProgramId: 19 | 'ProgramId', 20 | 21 | __static__field__number__read__SubscriptionPlanId: 22 | 'SubscriptionPlanId', 23 | 24 | __static__field__number__read__ProductId: 25 | 'ProductId', 26 | 27 | __static__field__datetime__read__StartDate: 28 | 'StartDate', 29 | 30 | __static__field__datetime__read__EndDate: 31 | 'EndDate', 32 | 33 | __static__field__datetime__read__LastBillDate: 34 | 'LastBillDate', 35 | 36 | __static__field__datetime__read__NextBillDate: 37 | 'NextBillDate', 38 | 39 | __static__field__datetime__read__PaidThruDate: 40 | 'PaidThruDate', 41 | 42 | __static__field__string__read__BillingCycle: 43 | 'BillingCycle', 44 | 45 | __static__field__number__read__Frequency: 46 | 'Frequency', 47 | 48 | __static__field__number__read__BillingAmt: 49 | 'BillingAmt', 50 | 51 | __static__field__string__read__Status: 52 | 'Status', 53 | 54 | __static__field__string__read__ReasonStopped: 55 | 'ReasonStopped', 56 | 57 | __static__field__number__read__AutoCharge: 58 | 'AutoCharge', 59 | 60 | __static__field__number__read__CC1: 61 | 'CC1', 62 | 63 | __static__field__number__read__CC2: 64 | 'CC2', 65 | 66 | __static__field__number__read__NumDaysBetweenRetry: 67 | 'NumDaysBetweenRetry', 68 | 69 | __static__field__number__read__MaxRetry: 70 | 'MaxRetry', 71 | 72 | __static__field__number__read__MerchantAccountId: 73 | 'MerchantAccountId', 74 | 75 | __static__field__number__read__AffiliateId: 76 | 'AffiliateId', 77 | 78 | __static__field__string__read__PromoCode: 79 | 'PromoCode', 80 | 81 | __static__field__number__read__LeadAffiliateId: 82 | 'LeadAffiliateId', 83 | 84 | __static__field__number__read__Qty: 85 | 'Qty', 86 | 87 | __static__field__string__read__City: 88 | 'City', 89 | 90 | __static__field__string__read__Email: 91 | 'Email', 92 | 93 | __static__field__string__read__EmailAddress2: 94 | 'EmailAddress2', 95 | 96 | __static__field__string__read__EmailAddress3: 97 | 'EmailAddress3', 98 | 99 | __static__field__string__read__FirstName: 100 | 'FirstName', 101 | 102 | __static__field__string__read__HTMLSignature: 103 | 'HTMLSignature', 104 | 105 | __static__field__string__read__LastName: 106 | 'LastName', 107 | 108 | __static__field__string__read__MiddleName: 109 | 'MiddleName', 110 | 111 | __static__field__string__read__Nickname: 112 | 'Nickname', 113 | 114 | __static__field__string__read__Phone1: 115 | 'Phone1', 116 | 117 | __static__field__string__read__Phone1Ext: 118 | 'Phone1Ext', 119 | 120 | __static__field__string__read__Phone1Type: 121 | 'Phone1Type', 122 | 123 | __static__field__string__read__Phone2: 124 | 'Phone2', 125 | 126 | __static__field__string__read__Phone2Ext: 127 | 'Phone2Ext', 128 | 129 | __static__field__string__read__Phone2Type: 130 | 'Phone2Type', 131 | 132 | __static__field__string__read__PostalCode: 133 | 'PostalCode', 134 | 135 | __static__field__string__read__Signature: 136 | 'Signature', 137 | 138 | __static__field__string__read__SpouseName: 139 | 'SpouseName', 140 | 141 | __static__field__string__read__State: 142 | 'State', 143 | 144 | __static__field__string__read__Country: 145 | 'Country', 146 | 147 | __static__field__string__read__StreetAddress1: 148 | 'StreetAddress1', 149 | 150 | __static__field__string__read__StreetAddress2: 151 | 'StreetAddress2', 152 | 153 | __static__field__string__read__Suffix: 154 | 'Suffix', 155 | 156 | __static__field__string__read__Title: 157 | 'Title', 158 | 159 | __static__field__string__read__ZipFour1: 160 | 'ZipFour1' 161 | 162 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/Referral.js: -------------------------------------------------------------------------------- 1 | module.exports = Referral = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds affiliate referrals. 8 | .class('Referral') .define({ 9 | 10 | __static__field__primary__number__read__Id: 11 | 'Id', 12 | 13 | __static__field__number__add__read__ContactId: 14 | 'ContactId', 15 | 16 | __static__field__number__add__read__AffiliateId: 17 | 'AffiliateId', 18 | 19 | __static__field__datetime__add__read__DateSet: 20 | 'DateSet', 21 | 22 | __static__field__datetime__add__read__DateExpires: 23 | 'DateExpires', 24 | 25 | __static__field__string__add__read__IPAddress: 26 | 'IPAddress', 27 | 28 | __static__field__string__add__read__Source: 29 | 'Source', 30 | 31 | __static__field__string__add__read__Info: 32 | 'Info', 33 | 34 | __static__field__number__add__read__Type: 35 | 'Type' 36 | 37 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/SavedFilter.js: -------------------------------------------------------------------------------- 1 | module.exports = SavedFilter = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds all saved searches and saved reports created by users within 8 | // Infusionsoft. 9 | .class('SavedFilter') .define({ 10 | 11 | __static__field__primary__number__read__Id: 12 | 'Id', 13 | 14 | __static__field__string__read__FilterName: 15 | 'FilterName', 16 | 17 | __static__field__string__read__ReportStoredName: 18 | 'ReportStoredName', 19 | 20 | __static__field__number__read__UserId: 21 | 'UserId' 22 | 23 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/Stage.js: -------------------------------------------------------------------------------- 1 | module.exports = Stage = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds the opportunity stages you have created within Infusionsoft. 8 | .class('Stage') .define({ 9 | 10 | __static__field__primary__number__read__Id: 11 | 'Id', 12 | 13 | __static__field__string__read__StageName: 14 | 'StageName', 15 | 16 | __static__field__number__read__StageOrder: 17 | 'StageOrder', 18 | 19 | __static__field__number__read__TargetNumDays: 20 | 'TargetNumDays' 21 | 22 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/StageMove.js: -------------------------------------------------------------------------------- 1 | module.exports = StageMove = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds historic data of opportunities being moved from one stage to 8 | // another. 9 | .class('StageMove') .define({ 10 | 11 | __static__field__primary__number__read__Id: 12 | 'Id', 13 | 14 | __static__field__number__read__OpportunityId: 15 | 'OpportunityId', 16 | 17 | __static__field__datetime__read__MoveDate: 18 | 'MoveDate', 19 | 20 | __static__field__number__read__MoveToStage: 21 | 'MoveToStage', 22 | 23 | __static__field__number__read__MoveFromStage: 24 | 'MoveFromStage', 25 | 26 | __static__field__datetime__read__PrevStageMoveDate: 27 | 'PrevStageMoveDate', 28 | 29 | __static__field__number__read__CreatedBy: 30 | 'CreatedBy', 31 | 32 | __static__field__datetime__read__DateCreated: 33 | 'DateCreated', 34 | 35 | __static__field__number__read__UserId: 36 | 'UserId' 37 | 38 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/Status.js: -------------------------------------------------------------------------------- 1 | module.exports = Status = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // DEPRECATED - This table is used for 'legacy' opportunities' status field 8 | .class('Status') .define({ 9 | 10 | __static__field__primary__number__read__Id: 11 | 'Id', 12 | 13 | __static__field__string__read__StatusName: 14 | 'StatusName', 15 | 16 | __static__field__string__read__StatusOrder: 17 | 'StatusOrder', 18 | 19 | __static__field__string__read__TargetNumDays: 20 | 'TargetNumDays' 21 | 22 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/SubscriptionPlan.js: -------------------------------------------------------------------------------- 1 | module.exports = SubscriptionPlan = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | .class('SubscriptionPlan') .define({ 8 | 9 | __static__field__primary__number__read__Id: 10 | 'Id', 11 | 12 | __static__field__number__edit__add__read__ProductId: 13 | 'ProductId', 14 | 15 | __static__field__string__edit__add__read__Cycle: 16 | 'Cycle', 17 | 18 | __static__field__number__edit__add__read__Frequency: 19 | 'Frequency', 20 | 21 | __static__field__number__edit__add__read__PreAuthorizeAmount: 22 | 'PreAuthorizeAmount', 23 | 24 | __static__field__boolean__edit__add__read__Prorate: 25 | 'Prorate', 26 | 27 | __static__field__boolean__edit__add__read__Active: 28 | 'Active', 29 | 30 | __static__field__number__edit__add__read__PlanPrice: 31 | 'PlanPrice' 32 | 33 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/Template.js: -------------------------------------------------------------------------------- 1 | module.exports = Template = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | .class('Template') .define({ 8 | 9 | __static__field__primary__number__read__Id: 10 | 'Id', 11 | 12 | __static__field__string__read__PieceType: 13 | 'PieceType', 14 | 15 | __static__field__string__read__PieceTitle: 16 | 'PieceTitle', 17 | 18 | __static__field__string__read__Categories: 19 | 'Categories' 20 | 21 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/Ticket.js: -------------------------------------------------------------------------------- 1 | module.exports = Ticket = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // DEPRECATED - This table holds data about service tickets. This is part of a 8 | // ticketing module Infusionsoft no longer offers. 9 | .class('Ticket') .define({ 10 | 11 | __static__field__primary__number__read__Id: 12 | 'Id', 13 | 14 | __static__field__number__edit__delete__add__read__IssueId: 15 | 'IssueId', 16 | 17 | __static__field__number__edit__delete__add__read__ContactId: 18 | 'ContactId', 19 | 20 | __static__field__number__edit__delete__add__read__UserId: 21 | 'UserId', 22 | 23 | __static__field__number__edit__delete__add__read__DevId: 24 | 'DevId', 25 | 26 | __static__field__string__edit__delete__add__read__TicketTitle: 27 | 'TicketTitle', 28 | 29 | __static__field__string__edit__delete__add__read__TicketApplication: 30 | 'TicketApplication', 31 | 32 | __static__field__number__edit__delete__add__read__TicketCategory: 33 | 'TicketCategory', 34 | 35 | __static__field__number__edit__delete__add__read__TicketTypeId: 36 | 'TicketTypeId', 37 | 38 | __static__field__string__edit__delete__add__read__Summary: 39 | 'Summary', 40 | 41 | __static__field__number__edit__delete__add__read__Stage: 42 | 'Stage', 43 | 44 | __static__field__number__edit__delete__add__read__Priority: 45 | 'Priority', 46 | 47 | __static__field__number__edit__delete__add__read__Ordering: 48 | 'Ordering', 49 | 50 | __static__field__datetime__read__DateCreated: 51 | 'DateCreated', 52 | 53 | __static__field__number__edit__delete__add__read__CreatedBy: 54 | 'CreatedBy', 55 | 56 | __static__field__datetime__read__LastUpdated: 57 | 'LastUpdated', 58 | 59 | __static__field__number__edit__delete__add__read__LastUpdatedBy: 60 | 'LastUpdatedBy', 61 | 62 | __static__field__datetime__edit__delete__add__read__CloseDate: 63 | 'CloseDate', 64 | 65 | __static__field__datetime__edit__delete__add__read__FolowUpDate: 66 | 'FolowUpDate', 67 | 68 | __static__field__datetime__edit__delete__add__read__TargetCompletionDate: 69 | 'TargetCompletionDate', 70 | 71 | __static__field__datetime__edit__delete__add__read__DateInStage: 72 | 'DateInStage', 73 | 74 | __static__field__number__edit__delete__add__read__TimeSpent: 75 | 'TimeSpent', 76 | 77 | __static__field__number__edit__delete__add__read__HasCustomerCalled: 78 | 'HasCustomerCalled' 79 | 80 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/TicketStage.js: -------------------------------------------------------------------------------- 1 | module.exports = TicketStage = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // DEPRECATED - This table holds the ticket stages. This is part of a ticketing 8 | // module Infusionsoft no longer offers. 9 | .class('TicketStage') .define({ 10 | 11 | __static__field__primary__number__read__Id: 12 | 'Id', 13 | 14 | __static__field__string__read__StageName: 15 | 'StageName' 16 | 17 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/TicketType.js: -------------------------------------------------------------------------------- 1 | module.exports = TicketType = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // DEPRECATED - This table holds data related to the ticketing module Infusionsoft 8 | // no longer offers. 9 | .class('TicketType') .define({ 10 | 11 | __static__field__primary__number__read__Id: 12 | 'Id', 13 | 14 | __static__field__number__read__CategoryId: 15 | 'CategoryId', 16 | 17 | __static__field__string__read__Label: 18 | 'Label' 19 | 20 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/User.js: -------------------------------------------------------------------------------- 1 | module.exports = User = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds data about your Infusionsoft users. 8 | .class('User') .define({ 9 | 10 | __static__field__string__read__City: 11 | 'City', 12 | 13 | __static__field__string__read__Email: 14 | 'Email', 15 | 16 | __static__field__string__read__EmailAddress2: 17 | 'EmailAddress2', 18 | 19 | __static__field__string__read__EmailAddress3: 20 | 'EmailAddress3', 21 | 22 | __static__field__string__read__FirstName: 23 | 'FirstName', 24 | 25 | __static__field__string__read__HTMLSignature: 26 | 'HTMLSignature', 27 | 28 | __static__field__primary__number__read__Id: 29 | 'Id', 30 | 31 | __static__field__string__read__LastName: 32 | 'LastName', 33 | 34 | __static__field__string__read__MiddleName: 35 | 'MiddleName', 36 | 37 | __static__field__string__read__Nickname: 38 | 'Nickname', 39 | 40 | __static__field__string__read__Phone1: 41 | 'Phone1', 42 | 43 | __static__field__string__read__Phone1Ext: 44 | 'Phone1Ext', 45 | 46 | __static__field__string__read__Phone1Type: 47 | 'Phone1Type', 48 | 49 | __static__field__string__read__Phone2: 50 | 'Phone2', 51 | 52 | __static__field__string__read__Phone2Ext: 53 | 'Phone2Ext', 54 | 55 | __static__field__string__read__Phone2Type: 56 | 'Phone2Type', 57 | 58 | __static__field__string__read__PostalCode: 59 | 'PostalCode', 60 | 61 | __static__field__string__read__Signature: 62 | 'Signature', 63 | 64 | __static__field__string__read__SpouseName: 65 | 'SpouseName', 66 | 67 | __static__field__string__read__State: 68 | 'State', 69 | 70 | __static__field__string__read__StreetAddress1: 71 | 'StreetAddress1', 72 | 73 | __static__field__string__read__StreetAddress2: 74 | 'StreetAddress2', 75 | 76 | __static__field__string__read__Suffix: 77 | 'Suffix', 78 | 79 | __static__field__string__read__Title: 80 | 'Title', 81 | 82 | __static__field__string__read__ZipFour1: 83 | 'ZipFour1' 84 | 85 | }); -------------------------------------------------------------------------------- /infusionsoft/tables/UserGroup.js: -------------------------------------------------------------------------------- 1 | module.exports = UserGroup = require('typedef') 2 | 3 | // THIS CODE WAS GENERATED BY AN AUTOMATED TOOL. Editing it is not recommended. 4 | // For more information, see http://github.com/bvalosek/grunt-infusionsoft 5 | // Generated on Wed Jan 08 2014 12:43:55 GMT-0600 (CST) 6 | 7 | // This table holds user group information. These are groupings for your system 8 | // users, not contacts. 9 | .class('UserGroup') .define({ 10 | 11 | __static__field__primary__number__read__Id: 12 | 'Id', 13 | 14 | __static__field__string__read__Name: 15 | 'Name', 16 | 17 | __static__field__number__read__OwnerId: 18 | 'OwnerId' 19 | 20 | }); -------------------------------------------------------------------------------- /lib/DataContext.js: -------------------------------------------------------------------------------- 1 | var Queryable = require('./Queryable'); 2 | var api = require('../infusionsoft/api'); 3 | var inflection = require('inflection'); 4 | var typedef = require('typedef'); 5 | var xmlrpc = require('xmlrpc'); 6 | var _ = require('underscore'); 7 | var Q = require('q'); 8 | 9 | module.exports = DataContext = typedef 10 | 11 | // Tracks the API key and app name that let's us query the API services and 12 | // load stuff from the Tables. Can be setup by providing app name and API key, 13 | // or (eventually) username / login + vendor key (to get a temp key) 14 | // 15 | // Point is to hang all of the (pluralized) tables off of this as well as all 16 | // of the services. 17 | .class('DataContext') .define({ 18 | 19 | __constructor__: function(appName, apiKey) 20 | { 21 | this.appName = appName; 22 | this.apiKey = apiKey; 23 | this.client = xmlrpc.createSecureClient( 24 | 'https://' + this.appName + '.infusionsoft.com/api/xmlrpc'); 25 | 26 | this._setupServices(); 27 | this._setupTables(); 28 | }, 29 | 30 | // Create all of the API services in this data context 31 | _setupServices: function() 32 | { 33 | var _this = this; 34 | 35 | _(api.services).each(function(service, key) { 36 | _this._addService(service); 37 | }); 38 | }, 39 | 40 | _setupTables: function() 41 | { 42 | var _this = this; 43 | 44 | _(api.tables).each(function(table, key) { 45 | _this._addTable(table); 46 | }); 47 | }, 48 | 49 | // Create a queryable that can be used via data service 50 | _addTable: function(T) 51 | { 52 | var tName = inflection.pluralize(T.__name__); 53 | this[tName] = new Queryable(T, this.DataService); 54 | }, 55 | 56 | // Given an interface, create and instantiate a class that let's us call 57 | // all of the methods 58 | _addService: function(iface) 59 | { 60 | var hash = {}; 61 | var collection = iface.__name__.substring(1); 62 | var dataContext = this; 63 | 64 | _(typedef.signature(iface)).each(function (info, key) { 65 | 66 | // create the function that calls method call and returns a promise 67 | hash[key] = function() { 68 | var args = [dataContext.apiKey].concat(_(arguments).toArray()); 69 | //http://community.infusionsoft.com/showthread.php/2140-API-vs-Web-Form?p=8853&viewfull=1#post8853 70 | //There is an issue in the sendTemplate function, it needs to be sendEmail 71 | if (key == 'sendTemplate') { 72 | key = 'sendEmail'; 73 | } 74 | var methodName = collection + '.' + key; 75 | var d = Q.defer(); 76 | 77 | dataContext.client.methodCall(methodName, args, d.makeNodeResolver()); 78 | 79 | return d.promise; 80 | }; 81 | }); 82 | 83 | // instantiate a version of this class 84 | this[collection] = new (typedef.class(collection).define(hash))(); 85 | } 86 | 87 | }); 88 | -------------------------------------------------------------------------------- /lib/Queryable.js: -------------------------------------------------------------------------------- 1 | var Q = require('q'); 2 | var _ = require('underscore'); 3 | 4 | module.exports = Queryable = require('typedef') 5 | 6 | // A class that can be used to build up an Infusionsoft DataService query. Each 7 | // of the primary methods mutates the queryable and returns a new one, allowing 8 | // us to piece-wise create the eventually executed function. All actual hits to 9 | // the API return promises for the eventual value 10 | .class('Queryable') .define({ 11 | 12 | __constructor__: function(T, dataService) 13 | { 14 | // Context info 15 | this.dataService = dataService; 16 | this._T = T; 17 | 18 | // Building up the query 19 | this._where = []; 20 | this._like = []; 21 | this._join = []; 22 | this._fields = Queryable.getFields(T); 23 | this._ascending = true; 24 | this._page = 0; 25 | this._orderBy = undefined; 26 | this._take = undefined; 27 | 28 | // Store results for later 29 | this._results = []; 30 | this._executePromise = undefined; 31 | this._doneLoading = false; 32 | }, 33 | 34 | // Attempt to determine all the fields on a given type 35 | __static__getFields: function(T) 36 | { 37 | var ret = []; 38 | 39 | _(typedef.signature(T)).each(function(info, key) { 40 | if (info.decorations.FIELD) 41 | ret.push(key); 42 | }); 43 | 44 | return ret; 45 | }, 46 | 47 | // Copies all of the relevent info to give us a fresh query object to 48 | // mutate. Shallow(ish) copies for arrays 49 | clone: function() 50 | { 51 | var q = new Queryable(this._T, this.dataService); 52 | 53 | var _this = this; 54 | 55 | for (var key in this) { 56 | if (_(this[key]).isArray()) 57 | q[key] = _(this[key]).clone(); 58 | else 59 | q[key] = this[key]; 60 | } 61 | 62 | return q; 63 | }, 64 | 65 | // ------------------------------------------------------------------------ 66 | // Query build methods. These just setup the parameters of the query and do 67 | // not actually execute yet. They all start with cloneing this as to not 68 | // mutate 69 | 70 | // Add more conditions that we will be feeding to the dataservice 71 | where: function(key, value, like) 72 | { 73 | var q = this.clone(); 74 | var type = like !== undefined ? '_like' : '_where'; 75 | 76 | // Can submit either an object or a k/v via arguments 77 | var opts = {}; 78 | if (!_(key).isObject()) 79 | opts[key] = value; 80 | else 81 | opts = key; 82 | 83 | // Add each of the pairs to the where array 84 | _(opts).each(function(v, k) { 85 | q[type].push({ key: k, value: v }); 86 | }); 87 | 88 | return q; 89 | }, 90 | 91 | // LEverage the where function 92 | like: function(key, value) 93 | { 94 | return this.clone().where.call(this, key, value, true); 95 | }, 96 | 97 | // Set limit 98 | take: function(n) 99 | { 100 | var q = this.clone(); 101 | q._take = n; 102 | return q; 103 | }, 104 | 105 | // Basic pagination 106 | page: function(page) 107 | { 108 | var q = this.clone(); 109 | q._page = page; 110 | return q; 111 | }, 112 | 113 | // Field to order results 114 | orderBy: function(o) 115 | { 116 | var q = this.clone(); 117 | q._orderBy = o; 118 | q._ascending = true; 119 | return q; 120 | }, 121 | 122 | orderByDescending: function(o) 123 | { 124 | var q = this.clone(); 125 | q._orderBy = o; 126 | q._ascending = false; 127 | return q; 128 | }, 129 | 130 | // Set what fields we will be using 131 | select: function(f) 132 | { 133 | var q = this.clone(); 134 | 135 | if (arguments.length > 1) 136 | q._fields = _(arguments).toArray(); 137 | else if (f) 138 | q._fields = _(f).isArray() ? f : [f]; 139 | else 140 | q._fields = Queryable.getFields(this._T); 141 | 142 | return q; 143 | }, 144 | 145 | // Wow. 146 | join: function(inner, outerKey, innerKey, selector) 147 | { 148 | var q = this.clone(); 149 | 150 | q._join.push({ 151 | inner: inner, 152 | innerKey: innerKey, 153 | outerKey: outerKey, 154 | selector: selector 155 | }); 156 | 157 | return q; 158 | }, 159 | 160 | // ------------------------------------------------------------------------ 161 | // Terminator methods. These will all return a promise for the eventual 162 | // value of the actual query execution 163 | 164 | sum: function(fn) 165 | { 166 | return this.execute().then(function(res) { 167 | return _(res).reduce(function(acc, x) { 168 | return acc + (0|fn(x)); 169 | }, 0); 170 | }); 171 | }, 172 | 173 | groupBy: function(fn) 174 | { 175 | return this.execute().then(function(res) { 176 | return _(res).groupBy(fn); 177 | }); 178 | }, 179 | 180 | // Return a promise for when the results are in the array 181 | toArray: function() 182 | { 183 | return this.execute(); 184 | }, 185 | 186 | first: function() 187 | { 188 | if (this._executePromise) 189 | return this._executePromise.then(function(res) { 190 | return res[0]; 191 | }); 192 | 193 | return this.clone().take(1).execute().then(function(res) { 194 | return res[0]; 195 | }); 196 | }, 197 | 198 | count: function() 199 | { 200 | return this.execute().then(function(res) { 201 | return res.length; 202 | }); 203 | }, 204 | 205 | // Given our joins and other transforms, return the results. Returns a 206 | // promise incase we are waiting on other stuff to be finished (ie joins) 207 | _getResults: function() 208 | { 209 | if (this._join.length) { 210 | 211 | var results = this._results; 212 | 213 | // Functions we need to call, that return a promise, for the value 214 | // we're recieving after subsequent joins 215 | var joins = []; 216 | 217 | this._join.forEach(function(join) { 218 | 219 | var f = function(outer) { 220 | var inner = join.inner.toArray(); 221 | 222 | return inner.then(function(inner) { 223 | var next = []; 224 | outer.forEach(function(o) { 225 | var oKey = o[join.outerKey]; 226 | 227 | // find the corresponding thing 228 | var i = _(inner).find(function(i) { 229 | return i[join.innerKey] == oKey; 230 | }); 231 | 232 | if (i) 233 | next.push(join.selector(o, i)); 234 | 235 | }); 236 | return next; 237 | }); 238 | }; 239 | 240 | joins.push(f); 241 | }); 242 | 243 | // Execute all of the joins, in order, feeding the result into the 244 | // next join. When they all are done, complete the promise for this 245 | // result 246 | return joins.reduce(Q.when, Q(results)).then(function(last) { 247 | return last; 248 | }); 249 | 250 | } else { 251 | return Q(this._results); 252 | } 253 | }, 254 | 255 | // Actually hit the API. Returns a promise for the eventual value of these 256 | // results. Ends up mutating the query and marking it as done 257 | // 258 | // If we already have a promise, return that, meaning that it can only be 259 | // eecuted once 260 | execute: function() 261 | { 262 | if (this._executePromise) 263 | return this._executePromise; 264 | 265 | var q = this.clone(); 266 | 267 | var table = q._T.__name__; 268 | var page = q._page; 269 | var fields = q._fields; 270 | 271 | // Create the query from our stuff 272 | var query = {}; 273 | _(q._where.concat(q._like)).each(function (q) { 274 | query[q.key] = q.value; 275 | }); 276 | 277 | var doneLoading = Q.defer(); 278 | this._executePromise = doneLoading.promise; 279 | 280 | var left = q._take; 281 | 282 | // A single iteration of fetching via the API. Called repeatedly in 283 | // the case of large / unbounded TAKES 284 | var loop = function() { 285 | 286 | // always take 1000 unless we're almost done 287 | var take = left < 1000 ? left : 1000; 288 | 289 | // Hit the API and incremement the page 290 | q._fetch(table, take, page++, query, fields).then(function(res) { 291 | 292 | // publish progress 293 | doneLoading.notify(q._results.length); 294 | 295 | if (left !== undefined) left -= res.length; 296 | 297 | // Either resolve the the promise with the results if we're 298 | // done or call the loop again 299 | 300 | if (q._doneLoading || left <= 0) 301 | doneLoading.resolve(q._getResults()); 302 | else 303 | process.nextTick(loop); 304 | 305 | }).catch(function(err) { 306 | doneLoading.reject(err); 307 | }); 308 | }; 309 | 310 | // do tha damn thing 311 | loop(); 312 | return doneLoading.promise; 313 | }, 314 | 315 | // Where the actual API call is fired off. Returns a promise for the 316 | // eventual raw value from the API call 317 | _fetch: function(table, limit, page, query, fields) 318 | { 319 | if (this._doneLoading) 320 | return; 321 | 322 | var _this = this; 323 | 324 | // Execute -- add orderBy and ascending? 325 | var args = [table, limit, page, query, fields]; 326 | if (this._orderBy) { 327 | args.push(this._orderBy); 328 | args.push(this._ascending); 329 | } 330 | 331 | var p = this.dataService.query.apply(this.dataService.query, args) 332 | 333 | // Pack results back into and add it to our _results array 334 | .then(function(results) { 335 | results.forEach(function(r) { 336 | var obj = new _this._T(); 337 | _(r).each(function(value, key) { 338 | obj[key] = value; 339 | }); 340 | _this._results.push(obj); 341 | }); 342 | 343 | // If we hit the last page 344 | if (results.length !== limit) 345 | _this._doneLoading = true; 346 | 347 | return _this._results; 348 | }); 349 | 350 | return p; 351 | }, 352 | 353 | }); 354 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "infusionsoft-api", 3 | "version": "0.6.0", 4 | "description": "Javscript wrapper for the Infusionsoft API", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "grunt test" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git@github.com:bvalosek/infusionsoft-api" 12 | }, 13 | "keywords": [ 14 | "infusionsoft", 15 | "api" 16 | ], 17 | "author": "Brandon Valosek", 18 | "license": "MIT", 19 | "bugs": { 20 | "url": "https://github.com/bvalosek/infusionsoft-api/issues" 21 | }, 22 | "dependencies": { 23 | "typedef": "~0.13.2", 24 | "xmlrpc": "~1.1.0", 25 | "underscore": "~1.5.1", 26 | "q": "~0.9.6", 27 | "inflection": "~1.2.6" 28 | }, 29 | "devDependencies": { 30 | "grunt-contrib-jshint": "~0.6.2", 31 | "grunt-infusionsoft": "~0.6.1" 32 | } 33 | } 34 | --------------------------------------------------------------------------------