Free2Move Activation
import matplotlib.pyplot as plt import matplotlib.patches as mpatches import matplotlib.lines as mlines from matplotlib.offsetbox import TextArea, AnnotationBbox fig, ax = plt.subplots(figsize=(10, 15)) ax.set_xlim(0, 10) ax.set_ylim(0, 15) ax.axis('off') # Define the steps steps = [ "Free2move Sales Process Completed", "Free2move Agent Emails activations@fleetmovil.com", "Email Received in HubSpot Inbox", "Craig Hitchcock Processes Email", "Craig Sends Details to Roberto via Slack", "Roberto Creates Ticket in HubSpot", "Roberto Accesses CMS Manager for Activation", "Roberto Verifies Settings on us.free2move-connectfleet.com", "Roberto Updates Ticket and Notifies Free2move Contact", "Is Confirmation Received?", "Yes: Ticket Closed in HubSpot", "No: Revert to Last Process Point", "Continue Process Until Confirmation", "Ticket Closed in HubSpot" ] # Coordinates for the steps coordinates = [ (5, 14), (5, 13), (5, 12), (5, 11), (5, 10), (5, 9), (5, 8), (5, 7), (5, 6), (5, 5), (3, 4), (7, 4), (7, 3), (3, 3) ] # Draw rectangles for steps for (x, y), step in zip(coordinates, steps): rect = mpatches.FancyBboxPatch((x-1, y-0.5), 2, 1, boxstyle="round,pad=0.3", edgecolor='black', facecolor='lightblue') ax.add_patch(rect) ax.text(x, y, step, ha='center', va='center', fontsize=9) # Draw arrows between steps for (x1, y1), (x2, y2) in zip(coordinates[:-1], coordinates[1:]): if y1 == 5 and y2 == 4: continue if y1 == 5 and y2 == 3: ax.add_patch(mpatches.FancyArrowPatch((5, 5), (5, 4), connectionstyle="arc3,rad=0.3", mutation_scale=10, arrowstyle='-|>', color='black')) else: arrow = mlines.Line2D([x1, x2], [y1-0.5, y2+0.5], color='black', linestyle='-', linewidth=1.5, marker='o', markersize=5) ax.add_line(arrow) # Special arrow for Yes/No decision ax.add_patch(mpatches.FancyArrowPatch((5, 5), (3, 4), mutation_scale=10, arrowstyle='-|>', color='black')) ax.add_patch(mpatches.FancyArrowPatch((5, 5), (7, 4), mutation_scale=10, arrowstyle='-|>', color='black')) ax.add_patch(mpatches.FancyArrowPatch((7, 3), (7, 2.5), mutation_scale=10, arrowstyle='-|>', color='black')) ax.add_patch(mpatches.FancyArrowPatch((7, 3), (5, 4.5), connectionstyle="arc3,rad=0.3", mutation_scale=10, arrowstyle='-|>', color='black')) # Add labels for Yes/No yes = TextArea("Yes", textprops=dict(color='black', fontsize=9)) ab = AnnotationBbox(yes, (4, 4.5), frameon=False) ax.add_artist(ab) no = TextArea("No", textprops=dict(color='black', fontsize=9)) ab = AnnotationBbox(no, (6, 4.5), frameon=False) ax.add_artist(ab) plt.show()
Leave a Comment