Greetings, I am new to perfect and this is my fir...
# prefect-getting-started
m
Greetings, I am new to perfect and this is my first post. I am looking for a python/programming based alternative to n8n or make.com/zapier. Something which has "nodes" or connectors to various 3rd parties like zoho, google sheets etc for inserting rows, updating rows, populating columns. Is it something possible with Perfect? If yes, people guide me. 🙏🏽 Thanks.
n
welcome @Manuj Sharma yes! lots of people use prefect to connect data sources / move data around between 3rd parties we're not a "connector as a service" like Airbyte or Fivetran, instead in prefect you can write normal python code to define your "graph" where nodes are just the tasks or flows you call

this

video might be useful for you as far as high level how to use prefect
m
Thanks for your answer @Nate. So I am assuming, that Prefect does not offer connectors. We have to either write them on our own or use Airbyte like tool to create them and use in Prefect?
n
lots of folks will use prefect to orchestrate airbyte + upstream or downstream related work for example, upon airbyte moving some data to s3 or a db, you may want to have some process digest the new info and then send someone an email, and know if that piece of work fails, or maybe what other pieces of your stack it talks to in prefect we have integrations that define `Block` types that you can save to represent access / config of a 3rd party like airbyte. Similarly work pools are nicely typed forms to be used as an interface to your runtime, like a local machine, VM, ECS, or k8s. to continue with the airbyte example
Copy code
In [1]: from prefect.blocks.core import Block

In [2]: from pydantic import SecretStr

In [3]: class SomeService(Block):
   ...:     username: str
   ...:     password: SecretStr
   ...:
   ...:     def get_client(self):
   ...:         return type("WhateverClient")()
   ...:

In [4]: SomeService(username="n8", password=SecretStr("42")).save("nate-creds")
Out[4]: UUID('f417bb51-c09a-4d4c-a129-51aa05b2ed2e')

In [5]: SomeService.load("nate-creds").get_client()
Out[5]: ''

In [6]: from prefect.utilities.urls import url_for

In [7]: url_for(SomeService.load("nate-creds"))
Out[7]: '<https://app.prefect.cloud/account/><UUID>/workspace/<UUID>/blocks/block/<UUID>'
but ultimately as far as why people often need prefect, i'd give this a read!
and here's a template if you want a 0-60 on how we organize things
m
Thanks for your answers. I will check them out.