Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Introduction

Zuora is a subscription billing and finance solution. It is designed to automate recurring billing, collections, quoting, revenue recognition, and subscription metrics.

User Storie(s)

  • As a pipeline developer, I would like to pull data from an object in Zuora in a streaming pipeline, so that I can transform, enrich and synthesize it in a data pipeline.
  • As a pipeline developer, I would like to post data to an object in Zuora in a batch or streaming pipeline, so that I can update Zuora with my enriched data.
  • As a pipeline developer, I would like to pull data from an object in Zuora in a batch pipeline, so that I can transform, enrich and synthesize it in a data pipeline.
  • As a pipeline developer, for both batch and streaming sources, I would like the schema to be auto-populated based on the selected objects.
  • As a pipeline developer, for all interactions with Zuora, I would like Zuora API limits to be handled by the framework, so that I do not have to worry about them. (https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Policies/Concurrent_Request_Limits)

Plugin Type

  •  Batch Source
  •  Batch Sink 
  •  Real-time Source
  •  Real-time Sink
  •  Action
  •  Post-Run Action
  •  Aggregate
  •  Join
  •  Spark Model
  •  Spark Compute

Configurables

Streaming Source 

Batch source - single object

Should automatically populate schema for the selected object

User Facing NameTypeDescriptionOptional?DefaultConstraints
Authentication Typeradio buttonThe Authentication type to use, either OAuth2 or Password or Authorization Cookie. Defaults to OAuth2.NoOAuth2
Access Key IDStringThe Zuora ID to use to make request. Only required when authentication type is password.Yes

Secret KeypasswordThe Zuora password. Only required when authentication type is password.Yes

Client IdStringThe Client ID of the OAuth2 client. Only required when Authentication Type is OAuth2Yes

Client SecretpasswordThe Client Secret that was displayed when the OAuth2 client was created. Only required when Authentication Type is OAuth2Yes

Authorization CookiepasswordThe authorization cookie to use for session authentication. Only required when authentication type is Authorization Cookie.Yes

Object (s) to pullmulti-selectSelect from Contact Lists, Contacts, Email Events, Email Subscription, Recent Campaigns, Analytics, Companies, Deals, Deal Pipelines, Marketing Email, Products, TicketsYesAnalyticsPull frequencyselect15 min, 30 min, 1 hour, 4 hour, 8 hoursYes30 minNumber of API calls per daynumberThe number of API calls to make per day, to avoid hitting HubSpot's rate limitsYes10000
Batch sink
The Zuora object to pull from the list at https://www.zuora.com/developer/api-reference/#section/Zuora-Object-ModelNoAccount

Batch source - multi object

Should generate records for every object, with a field in every record that identifies the object.

User Facing NameTypeDescriptionOptional?DefaultConstraints
Authentication Typeradio buttonThe Authentication type to use, either OAuth2 or Password or Authorization Cookie. Defaults to OAuth2.NoOAuth2
Access Key IDStringThe Zuora ID to use to make request. Only required when authentication type is password.Yes

Secret KeypasswordThe Zuora password. Only required when authentication type is password.Yes

Client IdStringThe Client ID of the OAuth2 client. Only required when Authentication Type is OAuth2Yes

Client SecretpasswordThe Client Secret that was displayed when the OAuth2 client was created. Only required when Authentication Type is OAuth2Yes

Authorization CookiepasswordThe authorization cookie to use for session authentication. Only required when authentication type is Authorization Cookie.Yes

Object(s) to pullselectThe Zuora objects to pull from the list at https://www.zuora.com/developer/api-reference/#section/Zuora-Object-ModelNoAccount

Streaming source

Should automatically populate schema for the selected object

User Facing NameTypeDescriptionOptional?DefaultConstraints
App IdStringOAuth2 App IDNoAPI KeyStringOAuth2 API KeyNoObject to post toselectSelect from Contact Lists, Contacts, Email Events, Email Subscription, Recent Campaigns, Analytics, Companies, Deals, Deal Pipelines, Marketing Email, Products, TicketsNoNumber of API calls per daynumberThe number of API calls to make per day, to avoid hitting HubSpot's rate limitsYes10000
Batch Source 
Authentication Typeradio buttonThe Authentication type to use, either OAuth2 or Password or Authorization Cookie. Defaults to OAuth2.NoOAuth2
Access Key IDStringThe Zuora ID to use to make request. Only required when authentication type is password.Yes

Secret KeypasswordThe Zuora password. Only required when authentication type is password.Yes

Client IdStringThe Client ID of the OAuth2 client. Only required when Authentication Type is OAuth2Yes

Client SecretpasswordThe Client Secret that was displayed when the OAuth2 client was created. Only required when Authentication Type is OAuth2Yes

Authorization CookiepasswordThe authorization cookie to use for session authentication. Only required when authentication type is Authorization Cookie.Yes

Object to pullselectThe Zuora object to pull from the list at https://www.zuora.com/developer/api-reference/#section/Zuora-Object-ModelNoAccount

Batch sink

Writes data to the selected object in Zuora

User Facing NameTypeDescriptionOptional?DefaultConstraints
App IdStringOAuth2 App IDNoAPI KeyStringOAuth2 API KeyNoObject(s) to pullmulti-selectSelect from Contact Lists, Contacts, Email Events, Email Subscription, Recent Campaigns, Analytics, Companies, Deals, Deal Pipelines, Marketing Email, Products, TicketsYesAnalyticsNumber of API calls per daynumberThe number of API calls to make per day, to avoid hitting HubSpot's rate limitsYes10000
Authentication Typeradio buttonThe Authentication type to use, either OAuth2 or Password or Authorization Cookie. Defaults to OAuth2.NoOAuth2
Access Key IDStringThe Zuora ID to use to make request. Only required when authentication type is password.Yes

Secret KeypasswordThe Zuora password. Only required when authentication type is password.Yes

Client IdStringThe Client ID of the OAuth2 client. Only required when Authentication Type is OAuth2Yes

Client SecretpasswordThe Client Secret that was displayed when the OAuth2 client was created. Only required when Authentication Type is OAuth2Yes

Authorization CookiepasswordThe authorization cookie to use for session authentication. Only required when authentication type is Authorization Cookie.Yes

Object to write toselectThe Zuora objects to pull from the list at https://www.zuora.com/developer/api-reference/#section/Zuora-Object-ModelNoAccount

Design / Implementation Tips

  • Tip #1
  • Tip #2

Design

Approach(s)

Properties

Security

Limitation(s)

Future Work

  • Some future work – HYDRATOR-99999
  • Another future work – HYDRATOR-99999

Test Case(s)

  • Test case #1
  • Test case #2

Sample Pipeline

Please attach one or more sample pipeline(s) and associated data. 

Pipeline #1

Pipeline #2



Table of Contents

Table of Contents
stylecircle

Checklist

  •  User stories documented 
  •  User stories reviewed 
  •  Design documented 
  •  Design reviewed 
  •  Feature merged 
  •  Examples and guides 
  •  Integration tests 
  •  Documentation for feature 
  •  Short video demonstrating the feature